EXE datein immer 2.3MB

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

 

Matthias

Betreff: EXE datein immer 2.3MB

BeitragFr, Aug 31, 2007 11:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Hay. Ich habe da so einige Fragen und hoffe das ihr mir helfen könnt.
Ich verstehe nicht warum meine Exe-Datein immer so groß sind. Gibt es da einen Trick die kleiner zu machen?

Muß mann etwas beachten wenn mann für Linux oder max eine EXE Machen will?

Gibt es in BMax einen Erstz befehl für AvailVidMem also einen Befehl um den Grafikkartenspeicherverbrauch zu ermitteln?

Und gibt es auch einen Befehl der wie TFormImage wirkt also nicht nur drehen und Scalieren sondernt so richtig Trasformieren.
Code: [AUSKLAPPEN]

    __________
   /........ /
  /........./
 /........./
/_________/

hectic

Sieger des IS Talentwettbewerb 2006

BeitragFr, Aug 31, 2007 11:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Zu 1) Das liegt daran, dass BlitzMax ohne weiteren Angabe erstmal alle Module mit in die EXE rein packt. Willst du die .exe kleiner haben, so gibt es Befehle die nur bestimmte Module in die .exe mit rein packen:

Beispielcode:

Code: [AUSKLAPPEN]
Framework BRL.GLGraphics
Import BRL.Math
Import Pub.OpenGL


Je nachdem was grade für dein Projekt benötigt wird, steht da eben was anderes hinder Framework und Import. Auch die Anzehl der Import -Zeilen variiert. Da das ganze aber sehr mühsam ist, sich alle benötigten Module raus zu suchen, gibt es den wundervollen Framework Assistant V.2.07 der eine -bmx -Datei durchsucht und dir die einzubindende Imports auflistet. Suche mal einfach nach dem Programm.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

Markus2

BeitragFr, Aug 31, 2007 12:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Wegen Transformieren,
so wie du das dargestellt hast würde das Image bzw. die Pixmap größer
werden .
Wenn du das nicht in Echtzeit brauchst kannst du das mit den Pixmap Befehlen selber neu erstellen bzw. transformieren .
Sonst auf OpenGl bzw. 3D umsteigen .
Wofür brauchste das denn ?
 

Matthias

BeitragFr, Aug 31, 2007 13:03
Antworten mit Zitat
Benutzer-Profile anzeigen
@hectic Danke für deinen Tipp. Hat gut functioniert frisst jetzt nur noch 240KB anstat 2,3MB

@Makus2. Also doch es soll schon Echtzeitfähig sein. Drehen und Scalieren ist ja auch Echtzeitfähig. Wie jetzt auf 3DUmsteigen brauch ich da eine Lib oder so für diesen einen befehl. Und wie würde er dann heisen.

BladeRunner

Moderator

BeitragFr, Aug 31, 2007 14:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Kompilieren kannst Du nur auf dem System dass grade läuft, d.h. unter Windows kannst Du kein Linuxprogramm erstellen.
Sonst gibt es nur zu beachten dass Systemspezifische Dinge nur auf diesen Systemen laufen, d.h. WinAPI-Aufrufe machen unter Linux und MacOS keinen Sinn.

Es gibt Direktiven mit denen Teile des Codes nur unter einer Plattform kompiliert werden:
Code: [AUSKLAPPEN]
?win32
print "test"
?

Der Printbefehl wird nur unter Windows kompiliert.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

ChristianK

BeitragFr, Aug 31, 2007 14:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Und gibt es auch einen Befehl der wie TFormImage wirkt also nicht nur drehen und Scalieren sondernt so richtig Trasformieren.

Drehen und skalieren ist eigentlich 'richtig' transformieren. Wink

Ich habe dir hier mal eine Funktion mit Beispiel geschrieben ( DrawFreeformImage ):

Code: [AUSKLAPPEN]
SuperStrict

Graphics( 800, 600, 0 )

Local image:TImage = LoadImage( "test.bmp" )

Global driver:TD3D7Max2DDriver = D3D7Max2DDriver( )
Global dev:IDirect3DDevice7 = driver.device

While( Not( KeyDown( KEY_ESCAPE ) Or AppTerminate( ) ) )
   Cls
   
   DrawFreeformImage( image, [100.0, 100.0], [500.0, 100.0], [700.0, 500.0], [300.0, 500.0], 0 )

   Flip
Wend

Function DrawFreeformImage( image:TImage, v1:Float[], v2:Float[], v3:Float[], v4:Float[], frame:Int )
   If Not image Return

   Local verts:Float[24]
   Local color:Int = driver.drawcolor
   
   verts[0] = v1[0]; verts[1] = v1[1]
   verts[2] = 0
   verts[3] = Float Ptr( Varptr color )[0]
   verts[4] = 0; verts[5] = 0
   
   verts[6] = v2[0]; verts[7] = v2[1]
   verts[8] = 0
   verts[9] = Float Ptr( Varptr color )[0]
   verts[10] = 1; verts[11] = 0
   
   verts[12] = v3[0]; verts[13] = v3[1]
   verts[14] = 0
   verts[15] = Float Ptr( Varptr color )[0]
   verts[16] = 1; verts[17] = 1
   
   verts[18] = v4[0]; verts[19] = v4[1]
   verts[20] = 0
   verts[21] = Float Ptr( Varptr color )[0]
   verts[22] = 0; verts[23] = 1
   
   driver.SetActiveFrame( TD3D7ImageFrame( image.frame( frame ) ) )
   dev.DrawPrimitive( D3DPT_TRIANGLEFAN, D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_TEX1, verts, 4, 0 )
End Function

Mit dieser Funktion kannst du ein Bild zeichnen, indem zu die Koordinaten der 4 Eckpunkte angibst. In dem Beispiel wird das Bild so dargestellt, wie in deiner Skizze oben.

Geht übrigens nur mit DirectX.
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT
 

Dreamora

BeitragFr, Aug 31, 2007 15:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Und es gibt keinen Befehl um den verfügbaren Grafikspeicher abzufragen, da OpenGL keinen Speichermanager hat und selbst schätzen nichts bringt ausser falschen Angaben.

Also musst du dir da wohl selbst eine "Schätzfunktion" einbauen.
Aber das ist nicht so schwer: Höhe * Breite * 4Byte = Anzahl Byte die im VRAM und RAM gebraucht werden.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Markus2

BeitragFr, Aug 31, 2007 16:43
Antworten mit Zitat
Benutzer-Profile anzeigen
In 3D gibt man halt nur die Eckpunkte an und die Texture
der Fläche wird so aufgespannt .
 

ChristianK

BeitragFr, Aug 31, 2007 17:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Markus2 hat Folgendes geschrieben:
In 3D gibt man halt nur die Eckpunkte an und die Texture
der Fläche wird so aufgespannt .

Also genau wie in meinem Beispiel oben. Rolling Eyes
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT
 

Matthias

BeitragFr, Aug 31, 2007 17:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielen Dank an alle.

@ProGamer.Coder Very Happy Smile Very Happy
Cool. Das ist ja noch besser mit denn Vertex. Das ist sehr gut.


Naja ok. Das ist zwar schade das es keinen Befehl für den GFXSpeicher gibt aber auch wieder nicht so schlimm. Confused

Aber das mann Linux haben muß damit mann für Linux Kompelieren kann
das find ich nicht so toll. Mus ich mir extra noch eine Festplatte nur mit Linux machen. Sad
 

#Reaper

Newsposter

BeitragFr, Aug 31, 2007 19:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn dein PC recht flott ist, kannst du dir ja auch VMware installieren Wink
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7
 

Matthias

BeitragSa, Sep 01, 2007 12:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja das ist ja leider das Problem mein PC ist echt larm 1,875GH und das ist eigentlich auch das Problem warum ich auf BMax umgestiegen bin.

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group