Deutsch
C ++ Forum

Erledigt: glOrtho scheitert?

 
- Seite 1 -


Hallo Sebastian, bei diesem mit XProfan 11 korrekt ausgeführten Quelltext wird neben dem Kubus eine rote Linie gezeichnet - aber nicht wenn man mit der Prf2Cpp 2.0a + Borland 5.5 kompiliert. Hast Du eine Idee woran das liegt? (Typen?)
KompilierenMarkierenSeparieren
cls
var xx&=width(%hWnd)
var yy&=height(%hWnd)
ogl(init,%hWnd,0,0,0,0)
ogl(posmode,1)
ogl(clear)
ogl(color,3,0,0,3)
ogl(move,0,0,-5)
ogl(cuboid,1,1,1)
ogl(origin,0,0,0)
glMatrixMode(GL_PROJECTION)
ogl.ortho(0,yy&-1,xx&,-1,0-xx&,xx&)
ogl.line(10,10,200,100)
ogl(show)
waitInput
end

proc OGL.ORTHO

    PARAMETERS X&,Y&,XX&,YY&,Z&,ZZ&
    OGL(glLoadIdentity)
    OGL(glViewport,0,0,WIDTH(%HWND),HEIGHT(%HWND))
    DECLARE MEM#
    DIM MEM#,48
    FLOAT MEM#,0=X&,XX&,Y&,YY&,Z&,ZZ&
    OGL(glOrtho,LONG(MEM#,0 ),LONG(MEM#,4 ),LONG(MEM#,8 ),LONG(MEM#,12),LONG(MEM#,16),LONG(MEM#,20),LONG(MEM#,24),LONG(MEM#,28),LONG(MEM#,32),LONG(MEM#,36),LONG(MEM#,40),LONG(MEM#,44))
    DISPOSE MEM#

endproc

proc OGL.LINE

    PARAMETERS X!,Y!,XX!,YY!
    OGL(glBegin,1)
    OGL(glVertex3f,X!,Y!,0)
    OGL(glVertex3f,XX!,YY!,0)
    OGL(glEnd)

endproc


1.032 kB
Kurzbeschreibung: xprofan11
Hochgeladen:05.04.2009
Ladeanzahl156
Herunterladen
5 kB
Hochgeladen:05.04.2009
Ladeanzahl231
Herunterladen
307 kB
Kurzbeschreibung: prf2cpp2.0a
Hochgeladen:05.04.2009
Ladeanzahl118
Herunterladen
 
05.04.2009  
 



 
- Seite 1 -



KompilierenMarkierenSeparieren
P2CPP: <USE_CALL_ST>
call(__cf1&,$1701)
P2CPP: </USE_CALL_ST>

würde dann zu welchem c++-Source konvertiert werden?
 
06.04.2009  
 




Sebastian
König
iF

KompilierenMarkierenSeparieren
P2CPP: <USE_CALL_ST>
call(__cf1&,$1701)
P2CPP: </USE_CALL_ST>

würde dann zu welchem c++-Source konvertiert werden?


Call_ST(l__cf1, 1, _L(0x1701L));

Das ST steht für same thread, also ein Call(), das ohne Wechsel im Kontext des aufrufenden Threads stattfindet.

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
06.04.2009  
 



Und wenn ich z.B. per einem Inline-ASM im Inline-Cpp ein CALL schreibe, landet dieses dann im OGL-Thread?

Ich will einfach jeden Umweg über Wrapperfunktionen umgehen, wenn schon in die schnelleren Calls umgewandelt wird.
 
06.04.2009  
 



 
- Seite 2 -



Sebastian
König
iF
Und wenn ich z.B. per einem Inline-ASM im Inline-Cpp ein CALL schreibe, landet dieses dann im OGL-Thread?

Ich will einfach jeden Umweg über Wrapperfunktionen umgehen, wenn schon in die schnelleren Calls umgewandelt wird.

Ja, Inline-C++ Blöcke langen immer im Profan-Thread (den Namen verwende ich intern ).

Bedenke aber, dass Du Dich mit der Verwendung von Inline-ASM innerhalb des Inline-C++ Blocks (mehr oder weniger) an einen Compiler bindest. Zumindest Dev-C++/MinGW verwendet eine andere Syntax als Microsoft und Borland.
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
06.04.2009  
 



Hab eigentlich nur immer ich diese Qual der Wahl zwischen Syntax und Performance oder reden andere nur nicht darüber?

Danke Sebastian!

Thema erledigt
 
06.04.2009  
 



Inline-C++? Klingt geil. Wie geht das bitte? Könnte man da nicht das shebang-Konzept verwenden, sprich, die erste Zeile + 1 Leerzeile bestimmt den Präprozessor? Bei CGI´s ja zB recht beliebt...
 
06.04.2009  
 



Für Inline-C hat Sebastian imho neulig ein Switch bereitgestellt - also für Code welcher nicht nach C übersetzt wird sondern 1:1 übernommen wird. Habs aber auch nur am Rande mitbekommen.
 
06.04.2009  
 




Sebastian
König
iF
Für Inline-C hat Sebastian imho neulig ein Switch bereitgestellt - also für Code welcher nicht nach C übersetzt wird sondern 1:1 übernommen wird. Habs aber auch nur am Rande mitbekommen.


Genau so ist es, wobei es zusätzlich noch einen Hilfestellung zum Zugriff auf Variablen mit ihrem XProfan-Namen. Hier mal der entsprechende Teil aus der Profan2Cpp-Hilfe:

Profan2Cpp-Hilfe
Ab Profan2Cpp Version 2.0 ist es möglich, C++ Code direkt in ein (X)Profan-Programm einzubetten. Alles, was mit dem Spezial-Kommentar INLINE_CPP eingekapselt ist, wird beim Übersetzen direkt in die erzeugte .cpp-Datei übernommen. Um Profan-Variablen in diesem Code zu verwenden, sollten sie als PVAR(name) geschrieben werden. Beispiel:
KompilierenMarkierenSeparieren
Ein Szenario zur Anwendung dieses Features sind zum Beispiel mit Hilfe von Profan2Cpp erzeugte DLLs.


MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
06.04.2009  
 



Ha, dann weiss ich was z.B. ich gerne hätte, umgekehrt - also inlinePrf2CPP im XProfan-Code.
KompilierenMarkierenSeparieren
Und am liebsten als Konsolenanwendung welche keine Tastatur-Eingriffe vom Benutzer abverlangt.
 
06.04.2009  
 




Sebastian
König
iF
Ha, dann weiss ich was z.B. ich gerne hätte, umgekehrt - also inlinePrf2CPP im XProfan-Code.

(...)

Und am liebsten als Konsolenanwendung welche keine Tastatur-Eingriffe vom Benutzer abverlangt.


Dafür sehe ich leider keine gute Möglichkeit... sorry Aber zum Auslagern von einzelnen Performance-kritischen Sachen gibt es ja die Möglichkeit, DLLs mit Profan2Cpp zu erstellen.

Mit diversen Optionen kannst Du Profan2Cpp übrigens recht gut über die Kommandozeile steuern. Neben den Schaltern für Dateien und Verzeichnisse sind z.B. -silent und -close. Eine Liste zeigt der Start mit -h.

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
06.04.2009  
 



Klingt doch super, dann liesse sich das Inline-Prf2CPP vielleicht per XPSE herzaubern.
 
06.04.2009  
 



-falschpost-
 
08.04.2009  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

13.021 Betrachtungen

Unbenanntvor 0 min.
Sven Bader25.07.2021
funkheld25.05.2016
iF09.11.2011

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie