Temporäre Meshes & Return (gelöst)

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Problemchen

Betreff: Temporäre Meshes & Return (gelöst)

BeitragMi, Jan 10, 2007 14:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo zusammen,

mich würde mal interessieren, ob folgender Code so Ok ist oder ob Reste irgendwo im Speicher verbleiben :
Code: [AUSKLAPPEN]
Function make_mesh()
Local temp_mesh
Local objekt1_brush, objekt2_brush
   [..]
   PaintSurface objekt1_surface, objekt1_brush
   PaintSurface objekt2_surface, objekt2_brush

   Return (tempmesh)

   FreeEntity (tempmesh)
   FreeBrush objekt1_brush
   FreeBrush objekt2_brush
End Function


Aufgerufen wird mit :

Code: [AUSKLAPPEN]
FreeEntity (main_mesh)
main_mesh=make_mesh()


wobei main_mesh Global ist. Werden die Befehle nach dem Return noch ausgeführt oder sollte ich das anders realisieren?

Danke schonmal für die Hilfe Smile
von Problemchen
  • Zuletzt bearbeitet von Problemchen am Mi, Jan 10, 2007 21:00, insgesamt einmal bearbeitet

BtbN

BeitragMi, Jan 10, 2007 14:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Return springt generell sofort aus der funktion raus, alles was hinter dem return steht, wird ignoriert.
 

Problemchen

BeitragMi, Jan 10, 2007 14:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, danke, das würde bedeuten ich muss so etwas verwenden:
Code: [AUSKLAPPEN]
Function make_mesh()
   [..]
   PaintSurface objekt1_surface, objekt1_brush
   PaintSurface objekt2_surface, objekt2_brush

   Return (tempmesh)
End Function


und aufrufen mit

Code: [AUSKLAPPEN]
FreeEntity (main_mesh)
main_mesh=-1
main_mesh=make_mesh()
If main_mesh<>-1 Then
   FreeEntity (tempmesh)
   FreeBrush objekt1_brush
   FreeBrush objekt2_brush
EndIf


und die Variablen alle Global machen. Damit sollten die Meshes entfernt sein oder gibt es eine elegantere Möglichkeit?

Problemchen

FireballFlame

BeitragMi, Jan 10, 2007 16:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab ich jetzt schief geguckt, oder willst du das Mesh nach dem Funktionsaufruf gleich wieder löschen? Was bringt das?
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit

hectic

Sieger des IS Talentwettbewerb 2006

BeitragMi, Jan 10, 2007 16:53
Antworten mit Zitat
Benutzer-Profile anzeigen
@Problemchen, du kannst zB ein Mesh löschen (egal ob es bereits vorhanden war oder nicht) und dann ein neues erstellen. Dadurch hast du immer nur das, was du grade brauchst und kein anderes im Speicher.
 

Problemchen

BeitragMi, Jan 10, 2007 18:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für die Antworten bisher.
@Fireballflame: Hm, ich denke, du hast schief geguckt Cool , ich will das temporäre Mesh aus der Funktion löschen.

Ich generiere sozusagen ein Entity aus prozedural erstellten MiniMeshes.
Nehmen wir einen Würfel als Beispiel:
Der Würfel soll Fläche für Fläche aufgebaut werden, also habe ich eine Function make_fläche(x1,y1,x2,y2). Diese erzeugt eine einzelne Würfelseite als mesh mit Texturkoordinaten, positioniert/rotiert diese Fläche und gibt sie zurück, damit der andere Teil dieses MiniMesh mit dem Hauptmesh(Entity) verbinden kann.
Nun muss dieses temporäre Mesh (die Würfelseite) aus dem Speicher, nachdem ich es zurückgegeben haben aber am besten eben ohne Globals, das ist mein Problem.

Problemchen

FreetimeCoder

BeitragMi, Jan 10, 2007 18:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit Return lieferst du lediglich die Speicheradresse zurück. Wenn du das temporäre Mesh löscht, kannst du auch nichts zurückliefern.
"Wir haben keine Chance, aber wir werden sie nutzen!"
Projekte:
Dexterity Ball (100%)
Aquatic Atmosfear (22 % ca 4700 Zeilen) eingefrohren mangels OOP Fähigkeiten von Blitz
(ehemals Uboot)
PC: Intel D 3 GHz | NVidiaGforce 6700 256 Mb | 1024 Mb DDR RAM 400 Mhz | 2x160 GB S-ATA
 

Problemchen

BeitragMi, Jan 10, 2007 20:59
Antworten mit Zitat
Benutzer-Profile anzeigen
@FreetimeCoder: ..nachdem ich es zurückgegeben...
Aber Danke, das Zitat:
Mit Return lieferst du lediglich die Speicheradresse zurück.
wars, ich hatte ein dickes Brett vorm Kopf und dachte, Return gibt ein (kopiertes) Mesh zurück und nicht nur das Handle.

Danke an alle, Prob gelöst Smile

Problemchen

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group