Français
Wünsche et Anregungen

OpenGL - encore un paire Propositions

 
- page 1 -



Uwe
''Pascal''
Niemeier
allô gens!

je hatte enfin Gelegenheit, qui OpenGL-Funktionen trop testen et veux la fois un paire Kommentare en supplément isoler.
il y a aussi un paire Propositions et quelque chose Kritik dabei. je hoffe, avant allem letzteres wird avec Wohlwollen aufgenommen

Allgemein:
Mir ist aufgefallen,dass quelques profan-eigene ogl-Funktionen pas entier avec den
gleichnamigen Original-APIs identique sommes. cela fait es schwer pour gens, qui irgendwelche Demos traduire voulons ou bien dans anderen Programmiersprachen déjà avec oGL gearbeitet avons. peut-être peut sich là encore quoi nachbessern, ou bien es muss dans qui späteren Aider entsprechend nachdrücklich sur solche Abweichungen hingewiesen volonté.

ici un paire Details:

ogl(Irgendein objet,...)
chez Übersetzung meiner Ballerspiel-Demos habe je 1 heure gegrübelt, pourquoi mon Asteroiden so komisch par qui région eiern, jusqu'à je qui Fussnote dans qui OpenGL.txt trouvé habe: chez Erzeugung eines Objektes per glu-API liegt qui Körpermittelpunkt im Nullpunkt des Koordinatensystems, chez RGH qui unterste Punkt des Körpers
veux on z.B. une Kugel um ihren Mittelpunkt rotieren laisser, muss on vous alors seulement um ihren Radius pour unten Déplacer. assez embêtant...

ogl(CLEAR)
Entspricht pas qui ogl-API glClear; zusätzlich zum Effacer qui Grafik wird aussi cela
Koordinatensystem zurückgesetzt (Ist là encore un glLoadIdentity incorporé?)
qui Folge ist, dass dans einer Boucle avec CLEAR aucun relativen Transformationen possible
sommes, seulement absolute.
Beispiel RGH-ogl:

[box:03f4aca031]window 50,50-500,500
ogl(Init,%hwnd,0,0,0,1)
declare R%
tandis que 1
cas R%=360:R%=0
inc R%
ogl(clear)
ogl(déplacer,0,0,-3)
ogl(rotate,0,R%,0)
ogL(sphere,0.5,4,2)
ogl(show)
endwhile[/box:03f4aca031]
Beispiel Standart-ogl:
[box:03f4aca031]window 50,50-500,500
oGL(Init,%hwnd,0,0,0,1)
ogl(déplacer,0,0,-3)
tandis que 1
ogl(glClear,~GL_COLOR_BUFFER_BIT | ~GL_DEPTH_BUFFER_BIT)
ogl(rotate,0,1,0)
ogL(sphere,0.5,4,2)
ogl(show)
endwhile[/box:03f4aca031]
Im 2. Beispiel wird qui ogl-Bildschirm zwar gelöscht, qui Matrix mais pas zurückgesetzt, sodass ROTATE chez chaque Durchlauf sur qui bereits gedrehte Szene angewendet wird.

Vorschlag: CLEAR sollte sich seulement sur cela Effacer des Bildes beschränken, pour pourrait on glLoadIdentity kapseln, z.B. comme ogl(RESETCOORD) ou bien so.

ogl(ORIGIN,...)
Besteht anscheinend aus glLoadIdentity + glTranslate (MOVE), mets alors qui Koordinaten sur absolute Werte. Könnte entfallen, si es ogl(RESETCOORD) gäbe.

ogl(STARTLIST)
Gibt une Integer-Namen pour qui DisplayList zurück. cela bedeutet mais, dass on chez mehreren DLs qui jeweiligen Namen z.B. dans einem Array enlever muss, um volle Kontrolle trop avons.
Besser wäre, den Namen selbst vorzugeben, so comment dans qui Original-API. So wüsste on toujours, comment quelle DL anzusprechen wäre, aussi pourrait on une bereits angelegt DL überschreiben.
comment wäre un optionaler paramètre iName% ?
Ausserdem fehlt encore une Kapselung de glDeleteList.

oGL(LOADTEXTUREBMP,...)
ici gilt cela Gleiche comment pour STARTLIST; qui IntegerName wird de Profan vorgegeben, pourrait mais aussi vom User zugeteilt volonté. Arrays könnten entfallen. Texturen könnten z.B. dans einer Boucle angelegt volonté et wären ensuite sur ses Nummerierung trop erreichen.
BTW: une Alternative, um bmp-Handles trop verarbeiten, wäre aussi pas mal

ogl(2D,...)
vois je cela richtig, dass ici zum 1. la fois qui Rückgabewerte einer Funktion direct dans vorgegebene Zielvariablen geschrieben volonté?? très gewöhnungsbedürftig!
BTW: qui entsprechende Umkehrfunktion wäre aussi très nützlich!

ogl(TESTMOUSE,...) & ogl(TESTXY,...)
si on chez letzterem qui Mausposition übergibt, peux on sich ersteres sparen...

ogl(STARTTEST,...) & ogl(ENDTEST)
Praktischer wäre, si on ici un Rechteck vorgeben pourrait comment dans qui Original-API. ensuite entspräche cela Ganze pratique qui alten @Souris-Funktion. qui une Punkt testen veux, peux oui Start- et Endpunkte des Rechtecks übereinanderlegen.

Soviel pour erste.
suis sur Kommentare gespannt (avant allem de Roland)
PS: Werde bientôt encore un paire angepasste Demos posten.

SeeYou
Pascal
 
03.05.2006  
 



 
- page 2 -


Läuft chez Dir cela mitgelieferte Demo lesson13a.prf sans Absturz?
 
21.05.2006  
 




Frank
Abbing
Pascal, mets cela -7 la fois dans Klammern, ensuite devrait es aller. Habe chez meinen Tests encore quelques cette Stolperstellen entdeckt et Roland aussi gemeldet. suis sûrement, dass il vous bientôt korrigiert hat.
 
21.05.2006  
 




RGH
[quote-part:60ba900c81=Uwe Pascal Niemeier]
ogl(STARTLIST)
Gibt une Integer-Namen pour qui DisplayList zurück. cela bedeutet mais, dass on chez mehreren DLs qui jeweiligen Namen z.B. dans einem Array enlever muss, um volle Kontrolle trop avons.
Besser wäre, den Namen selbst vorzugeben, so comment dans qui Original-API. So wüsste on toujours, comment quelle DL anzusprechen wäre, aussi pourrait on une bereits angelegt DL überschreiben.
comment wäre un optionaler paramètre iName% ?[/quote-part:60ba900c81]
Dein Spieledemo avec den Asteroiden hat mich überzeugt, qui cela doch sinnvoll ist. Ab qui prochain Subscriptionsversion (qui 11.) gibt es diesem optionalen paramètre. sans cette paramètre wird avec glGenList qui prochain freie Listennummer ermittelt, avec paramètre wird plan cet numéro benutzt.

Salut
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
22.05.2006  
 




RGH
[quote-part:47f614c4dd=Uwe Pascal Niemeier]si je cet la fenêtre dans den Hintergrund schicke (z.B. indem je ins dahinterstehende Editorfenster klicke), bekomme je une heftige Fehlermeldung.
OK, qui Code comme solcher ist zwar assez sinnlos, mais c'est pourquoi juste un Gleitkomma-faute?
ou bien habe je quoi übersehen?[/quote-part:47f614c4dd]
Hm, chez mir fonctionne es völlig problemlos.

Salut
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
22.05.2006  
 




RGH
[quote-part:b4209c4237=Uwe Pascal Niemeier][quote-part:b4209c4237]quoi den Ursprung qui Objekte betrifft, habe je longtemps avec mir gerungen. je suis en ausgegangen, qui OpenGL dans erster ligne number pour Jeux eingesetzt volonté wird et là liegen qui Objekte eh bien la fois alle sur dem Erdboden (qui Nulllinie) et ragen pas zur Moitié dans cette hinein.[/quote-part:b4209c4237]
Stimmt, so hab je cela garnicht gesehen; cela fait Sinn !

quoi IMHO encore avec rein sollte: une Skalierfunktion[/quote-part:b4209c4237]
Pour längerem Hin et Her habe je mich maintenant entschieden beides trop ermöglichen. avec oGL(PosMode, N%) peux on den Modus einstellen. Im Defaultmodus 0 ist qui Ursprung qui Objekte bodenständig ausgerichtet et im Modus 1 ist es qui Mittelpunkt des Objektes.

et qui Funktion oGL(Scale, N!) zum Verkleinern et agrandir de Objekten wird es aussi donner.

je denke la fois, dans qui prochain ou bien übernächsten Subscriptionsversion wird es soweit son.

Salut
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
23.05.2006  
 




RGH
[quote-part:b46363596f=Uwe Pascal Niemeier]et naturellement une Funktion, qui den letzten ogl-faute comme String ausgibt
(ou bien une entsprechende Systemvariable et une liste zum Nachschlagen)[/quote-part:b46363596f]
mais pas doch! Händisches Nachschlagen im 21. siècle?

il y a ne...aucune spezielles Fehlerhandling pour dans qui OpenGL-API auftretende faute, mais Windows utilise ici cela Windowseigene Fehlerhandling. Den letzten aufgetretenen faute ermittelt qui API-Funktion GetLastError() et sur FormatMessage(...) peux on den passenden Fehlertext ermitteln. cet beiden Funktionalitäten habe je eh bien comme Système dans XProfan integriert:

%LastError : qui dernier aufgetretene Windowsfehler. 0 = ne...aucune faute. qui Wert qui Système ändert sich seulement, si un weiterer faute auftritt. Wichtiger Hinweis: un aufgetretener Windowsfehler sagt pas zwingend aus, qui un XProfan-faute aufgetreten ist. il y a durchaus aussi Windowsfehler, qui XProfan bewußt ignoriert.

$LastError : qui dernier aufgetretene Windowsfehler dans Textform.

Salut
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
23.05.2006  
 




Uwe
''Pascal''
Niemeier
allô Roland!

[quote-part:a770c6eb53]il y a ne...aucune spezielles Fehlerhandling pour dans qui OpenGL-API auftretende faute, mais Windows utilise ici cela Windowseigene Fehlerhandling. [/quote-part:a770c6eb53]
es du là sûrement??
KompilierenMarqueSéparation
!
window 10,10-700,500

proc glError?--------------------------------

    parameters a$
    declare a&,b&
    a&=ogl("glGetError")
    b&=ogl("gluErrorString",a&)
    messagebox(str$(a&)+": "+string$(b&,0),a$,0)
    endproc--------------------------------------
    ogl("init",%hwnd,0,0,0,1)
    ogl("glClear",0)
    glError? "Test 1"
    ogl("glClear",-1)
    glError? "Test
t;

SeeYou
Pascal
 
24.05.2006  
 




Uwe
''Pascal''
Niemeier
allô gens!

[quote-part:ed5606461a]Uwe Pascal Niemeier: si je cet la fenêtre dans den Hintergrund schicke (z.B. indem je ins dahinterstehende Editorfenster klicke), bekomme je une heftige Fehlermeldung.[/quote-part:ed5606461a]
Es scheint wohl vom OS bzw. de qui Version qui oGL-dlls dépendant trop son...

qui faute tritt chez mir sur, si sich qui Szene pour Anwendung de Push/Pop sur qui Z-Achse am Nullpunkt est et ensuite angezeigt volonté soll:
KompilierenMarqueSéparation
!
window 50,50-500,500
ogl("init",%hwnd,0,0,0,1)

while 1

    sleep 50
    ogl("clear")
    ogl("origin",0,0,0)--------Fehler!
    ogl("origin",0,0,0.0001)--Klappt!
    ogl("push")
    ogl("move",2,1,-5)
    ogl("sphere",1,5,5)
    ogl("pop")
    ogl("move",0,0,0.0001)--Klappt auch!
    ogl("show")

24.05.2006  
 




RGH
[quote-part:2aa2723ce6=Uwe Pascal Niemeier]allô Roland!

[quote-part:2aa2723ce6]il y a ne...aucune spezielles Fehlerhandling pour dans qui OpenGL-API auftretende faute, mais Windows utilise ici cela Windowseigene Fehlerhandling. [/quote-part:2aa2723ce6]
es du là sûrement??[/quote-part:2aa2723ce6]
là J'ai eu offensichtlich quoi übersehen. mais getLastError() klappt aussi chez chez oGL-Fehlern. Offensichtlich utilise OpenGL aussi cela windowseigene Fehlerhandling. mais umso besser, ensuite gibt es eh bien une weitere Systemvariable et une neue oGL-Funktion:

e% = %oGLError et e$ = oGL(ErrorString, e%)

(qui l'affaire avec %LastError et $LastError peux je ensuite wieder einmotten.)

merci!

Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
24.05.2006  
 




Michael
Wodrich
Einmotten???

si on so simple dans Profan une Windowsfehler serviert bekommt, ensuite wird es peut-être aussi häufiger benutzt.

je serait cet LastError-Geschichte drin laisser. Gehört oui zur Allgemeinen Fehlerbehandlung dans Windows.

et es wird oui toujours quelqu'un donner, qui pas sur Profan mais direct sur qui Windows-API am System dreht - là braucht on qui Fehlerabfrage oui.

belle Grüße
Michael Wodrich
 
Programmieren, das spannendste Detektivspiel der Welt.
24.05.2006  
 




Frank
Abbing
vois je ähnlich. je würds drinlassen...
 
24.05.2006  
 



 
- page 3 -


Zum ID-Sparen empfehle je get(lastmessage), get(errormessage) ou bien get(oglerror) ou bien quoi que + subj....
 
24.05.2006  
 




répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

7.450 Views

Untitledvor 0 min.
Peter Max Müller23.10.2017
Andreas Koch10.01.2013
Deli Beatz28.08.2012

Themeninformationen



Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie