Temporäre Meshes & Return (gelöst)
Übersicht

ProblemchenBetreff: Temporäre Meshes & Return (gelöst) |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 ![]() von Problemchen |
||
- Zuletzt bearbeitet von Problemchen am Mi, Jan 10, 2007 21:00, insgesamt einmal bearbeitet
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
Return springt generell sofort aus der funktion raus, alles was hinter dem return steht, wird ignoriert. | ||
Problemchen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
@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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke für die Antworten bisher.
@Fireballflame: Hm, ich denke, du hast schief geguckt ![]() 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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@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 ![]() Problemchen |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group