| |
|
|
- 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?) KompilierenMarkierenSeparierencls
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
|
|
|
| |
|
|
|
| |
|
- Seite 1 - |
|
| |
|
| |
|
|
|
Sebastian König | iF
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 |
|
|
| |
|
|
|
| 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. |
|
|
| |
|
|
| |
|
- 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. |
|
|
| |
|
|
|
| Hab eigentlich nur immer ich diese Qual der Wahl zwischen Syntax und Performance oder reden andere nur nicht darüber?
Danke Sebastian!
Thema erledigt |
|
|
| |
|
|
|
| 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... |
|
|
| |
|
|
|
| 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. |
|
|
| |
|
|
|
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: KompilierenMarkierenSeparierenEin Szenario zur Anwendung dieses Features sind zum Beispiel mit Hilfe von Profan2Cpp erzeugte DLLs.
MfG
Sebastian |
|
|
| |
|
|
|
| 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. |
|
|
| |
|
|
|
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 |
|
|
| |
|
|
|
| Klingt doch super, dann liesse sich das Inline-Prf2CPP vielleicht per XPSE herzaubern. |
|
|
| |
|
|
|
| |
|
| |
|
|