Español
Foro

glEnableClientState XProfan Choque en ~GL_NORMAL_ARRAY

 
- Página 1 -



Andreas
Gaida
Hi!
En me verursacht glEnableClientState en verbindung con ~GL_NORMAL_ARRAY una Program absturz
en XProfan sowie auch con Profano2CPP.
Während el otro Arrays se sin Problemas aktivieren dejar macht dieser Ärger qué muy schade es
porque en verbindung con glVertexPointer y glDrawArrays es él muy rápidamente en dibujar vieler Objetos.
Yo hoffe lo kann me uno Helfen en el Problema.

Wenn en el Ejemplo Code en el Procedure DrawGLScene el oGL(glEnableClientState,$8075)
aktiviert se stürzt el Programa inmediatamente en erreichen el lugar de.
como Anhang Yo una Vollständigen Quellcode con obj Expediente angehängt .Das Programa liest el obj Expediente una y stellt el Vertex dar ,el Problema lugar para el Normalen es todavía auskommentiert.
Beim aktivieren dieser lugar en el proc DrawGLScene Stürzt el Programa de .
Für Ayuda wäre Yo muy Dankbar.
KompilierenMarcaSeparación
proc DrawGLScene

    oGL(Clear)
    oGL(Move, 0,-0.2, -1.0)
    --------------------- Vierecke zeichnen -----------------------------------------------
    oGL(glEnableClientState,$8075)                   Normale Array aktivieren  $8075 = ~GL_NORMAL_ARRAY
    oGL(glEnableClientState,$8074)                   Vertex Array aktivieren   $8074 = ~GL_VERTEX_ARRAY
    oGL(glNormalPointer,3,$140A,0,vertex_NF4#)       Normale Array definieren  $140A = ~GL_DOUBLE
    oGL(glVertexPointer,3,$140A,0,vertex_VF4#)       Vertex Array definieren
    oGL(glDrawArrays,~GL_QUADS, 0 ,zähler_VF4&)      Vertex Array zeichnen
    oGL(glDisableClientState,$8074)                 glDisableClientState
    oGL(glDisableClientState,$8075)                  Normale Array deaktivieren
    --------------------- Dreicke zeichnen -----------------------------------------------
    oGL(glEnableClientState,$8075)                   Normale Array aktivieren  $8075
    oGL(glEnableClientState,$8074)                   Vertex Array aktivieren   $8074
    oGL(glNormalPointer,3,$140A,0,vertex_NF3#)       Normale Array definieren
    oGL(glVertexPointer,3,$140A,0,vertex_VF3#)       Vertex Array definieren
    oGL(glDrawArrays,~GL_TRIANGLES, 0 ,zähler_VF3&)  Vertex Array zeichnen
    oGL(glDisableClientState,$8074)                  Vertex Array deaktivieren
    oGL(glDisableClientState,$8075)                  Normale Array deaktivieren
    ---------------------------------------------------------------------------------------
    oGL(Show)
    GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, und GL_POLYGON.

ENDPROC


MfG
Andreas

35 kB
Hochgeladen:01.06.2007
Ladeanzahl33
Descargar
 
Athlon X2 4800 , 2GB Ram , GeForce 7800GT
Windows XP Pro , XProfan 10 und 11 , Profan2Cpp 1.6b
01.06.2007  
 



 
- Página 1 -


Windowttitle es denkbar ungeeignet para debuggen - como una sendmessage gesendet se. Usted wirst así also eben no siempre el wirkliche Absturzstelle encontrar. Aber si el Windowtitle mehr Vertrauen schenkst como el echten Debugoutput des xpse entonces voluntad wir aneinander vorbei reden necesario - hiernach kann Yo entonces pero no mehr helfen.

Si usted todavía mi Vermutung hören möchtest: Como glDrawArrays accidentes se el Array falso befüllt ser.


Posesiones el Konstanten no verwendet porque me Profano2CPP el no angenommen ha.


Wer con XPSE arbeitet ha solche Problemas no. Lo son incluso una extra Schalter {$cpp}.
 
01.06.2007  
 




Andreas
Gaida
Yo glaube dir sí
pero yo habe en el quelltext 2 zeilen ausdokummentiert si beide aktiv son
stürtzt lo ya en el glVertexPointer befehl de lo stürzt auch de si glDrawArrays ausdokummentiert se qué gegen una falsche bestückung des befehls spricht oder bin Yo como así muy en el holzweg

dieser code debería früher abstürzen y si mann glDrawArrays ausdokummentiert stürtzt él trotzdem de

Könntest du esta teil en el Ejemplo einfügen y lo otra vez debugen ?
KompilierenMarcaSeparación
proc DrawGLScene

    oGL(Clear)
    oGL(Move, 0,-0.2, -1.0)
    --------------------- Vierecke zeichnen -----------------------------------------------
    oGL(glEnableClientState,$8075)                   Normale Array aktivieren  $8075 = ~GL_NORMAL_ARRAY
    oGL(glEnableClientState,$8074)                   Vertex Array aktivieren   $8074 = ~GL_VERTEX_ARRAY
    oGL(glNormalPointer,3,$140A,0,vertex_NF4#)       Normale Array definieren  $140A = ~GL_DOUBLE
    oGL(glVertexPointer,3,$140A,0,vertex_VF4#)       Vertex Array definieren
    oGL(glDrawArrays,~GL_QUADS, 0 ,zähler_VF4&)      Vertex Array zeichnen
    oGL(glDisableClientState,$8074)                 glDisableClientState
    oGL(glDisableClientState,$8075)                  Normale Array deaktivieren
    --------------------- Dreicke zeichnen -----------------------------------------------
    oGL(glEnableClientState,$8075)                   Normale Array aktivieren  $8075
    oGL(glEnableClientState,$8074)                   Vertex Array aktivieren   $8074
    oGL(glNormalPointer,3,$140A,0,vertex_NF3#)       Normale Array definieren
    oGL(glVertexPointer,3,$140A,0,vertex_VF3#)       Vertex Array definieren
    oGL(glDrawArrays,~GL_TRIANGLES, 0 ,zähler_VF3&)  Vertex Array zeichnen
    oGL(glDisableClientState,$8074)                  Vertex Array deaktivieren
    oGL(glDisableClientState,$8075)                  Normale Array deaktivieren
    ---------------------------------------------------------------------------------------
    oGL(Show)

ENDPROC

 
Athlon X2 4800 , 2GB Ram , GeForce 7800GT
Windows XP Pro , XProfan 10 und 11 , Profan2Cpp 1.6b
01.06.2007  
 



¿Por qué tust Usted no simplemente incluso?

Gekürzter Auszug - unteres Ende es Programmabbruch:
KompilierenMarcaSeparación
OGL(*Init*, %HWND, 0, 0, 0, 1)
@SET(*oGLDepth*, 1000)
SETTIMER 20

WHILENOT { WHILENOT ENDE% }/* LINE:11 {

WAITINPUT
DRAWGLSCENE
PROCEED PROCEDURE { proc DRAWGLSCENE } /* LINE:16 {
OGL(*Clear*)
OGL(*Move*, 0,-0.2, -1.0)
OGL(*glEnableClientState*,$8075)
OGL(*glEnableClientState*,$8074)
OGL(*glNormalPointer*,3,$140A,0,VERTEX
 
01.06.2007  
 




Andreas
Gaida
Gracias schöne .
Dachte me a Yo el con el debugen en él habe sería länger dauern y así siehste auch igual Yo mi . Wenn Yo el correcto sehe es also doch el glNormalPointer befehl el alles stopt .

Hast Usted oder alguien anders una Concepto wieso el spinnt lo probablemente no a OpenGL selber liegenoder wo mache Soy un blöden Fehler en.

Ansonsten nochmals viellen Dank para el Ayuda.

MfG
Andreas
 
Athlon X2 4800 , 2GB Ram , GeForce 7800GT
Windows XP Pro , XProfan 10 und 11 , Profan2Cpp 1.6b
01.06.2007  
 



Na lo son una Grund dafür - el Daten el Usted übergibst son en falscher Struktur, Usted wirst demnach simplemente sólo una solchen de Usted beschriebenen blöden Fehler hacer. *g*
 
01.06.2007  
 




Andreas
Gaida
Hier Yo el Daten para el Normalen en el gleiche Struktur gebracht como el Vertex Daten
pero la Befehl stürzt siempre todavía de .
Posesiones el selben Daten como Normale verwendet como para el Rechteck debería pero no el Programa
para absturz bringen hösten merkwürdig aussehen aber el formatierung Es el gleiche como ellos en dibujar el Daten funktioniert.
Daten voluntad en el daten_init initialisiert.

Also Yo gehe auch meisten su de el el Fehler en me liegt aber en diesem Fall fange Yo a langsam daran a zweifeln.
Währe aber trotzdem muy froh darüber si uno me una Fehler aufzeigen podría .
KompilierenMarcaSeparación
Declare Dateiname$,Datei$,ab$,rückgabe&,ende%
Declare vertex_P#,vertex_N#,vertex_T#,vertex_VF3#,vertex_VF4#,quad_A#
Declare zähler_P&,zähler_N&,zähler_T&,zähler_F&,zähler_VF3&,zähler_VF4&,vertex_NF3#,vertex_NF4#,zähler_NF4&
cls
daten_init
oGL(Init, %hWnd, 0, 0, 0, 1)
@Set(oGLDepth, 1000)
setTimer 20  max. 50 Frames /sek.

WhileNot ende%

    WaitInput
    DrawGLScene

EndWhile

ende_init

proc DrawGLScene

    oGL(Clear)
    oGL(Move, 0,-0.0, -5.0)
    --------------------- Vierecke zeichnen -----------------------------------------------
    oGL(glEnableClientState,~GL_NORMAL_ARRAY)             Normale Array aktivieren  $8075 = ~GL_NORMAL_ARRAY
    oGL(glEnableClientState,~GL_VERTEX_ARRAY)             Vertex Array aktivieren   $8074 = ~GL_VERTEX_ARRAY
    oGL(glNormalPointer,3,~GL_DOUBLE,0,vertex_NF4#)       Normale Array definieren  $140A = ~GL_DOUBLE
    oGL(glVertexPointer,3,~GL_DOUBLE,0,vertex_NF4#)       Vertex Array definieren
    oGL(glDrawArrays,~GL_QUADS, 0 ,zähler_VF4&)           Vertex Array zeichnen
    oGL(glDisableClientState,$8074)                      glDisableClientState
    oGL(glDisableClientState,$8075)                       Normale Array deaktivieren
    oGL(Show)

endproc

proc daten_init

    Dim vertex_P# ,240000
    Dim vertex_N# ,240000
    Dim vertex_T# ,160000
    Dim vertex_VF3#,120000
    Dim vertex_VF4#,120000
    Dim vertex_NF3#,120000
    Dim vertex_NF4#,120000
    Dim quad_A#    ,120000
    -------Vertex Array wird gefüllt ein Viereck--------------
    Float vertex_VF4#, 0 =   0.0
    Float vertex_VF4#, 8 =   1.0
    Float vertex_VF4#, 16 =  1.0
    Float vertex_VF4#, 24 =  0.0
    Float vertex_VF4#, 32 =  0.0
    Float vertex_VF4#, 40 =  1.0
    Float vertex_VF4#, 48 =  1.0
    Float vertex_VF4#, 56 =  0.0
    Float vertex_VF4#, 64 =  1.0
    Float vertex_VF4#, 72 =  1.0
    Float vertex_VF4#, 80 =  1.0
    Float vertex_VF4#, 88 =  1.0
    zähler_VF4& = 4
    -------Normal Vertex Array wird gefüllt---------------------
    Float vertex_NF4#, 0 =   0.0
    Float vertex_NF4#, 8 =   1.0
    Float vertex_NF4#, 16 =  1.0
    Float vertex_NF4#, 24 =  0.0
    Float vertex_NF4#, 32 =  0.0
    Float vertex_NF4#, 40 =  1.0
    Float vertex_NF4#, 48 =  1.0
    Float vertex_NF4#, 56 =  0.0
    Float vertex_NF4#, 64 =  1.0
    Float vertex_NF4#, 72 =  1.0
    Float vertex_NF4#, 80 =  1.0
    Float vertex_NF4#, 88 =  1.0
    zähler_NF4& = 4

endproc

proc ende_init

    Dispose vertex_P#
    Dispose vertex_N#
    Dispose vertex_T#
    Dispose vertex_VF3#
    Dispose vertex_VF4#
    Dispose vertex_NF3#
    Dispose vertex_NF4#
    Dispose_A#

ENDPROC

 
Athlon X2 4800 , 2GB Ram , GeForce 7800GT
Windows XP Pro , XProfan 10 und 11 , Profan2Cpp 1.6b
01.06.2007  
 



 
- Página 2 -



KompilierenMarcaSeparación
REM ---FILE---
CLS
DATEN_INIT
PROCEED PROCEDURE { proc DATEN_INIT }/* LINE:27 {
DIM VERTEX_P# ,240000
DIM VERTEX_N# ,240000
DIM VERTEX_T# ,160000
DIM VERTEX_VF3#,120000
DIM VERTEX_VF4#,120000
DIM VERTEX_NF3#,120000
DIM VERTEX_NF4#,120000
DIM QUAD_A# ,120000
FLOAT VERTEX_VF4#, 0=0.0
FLOAT VERTEX_VF4#, 8=1.0
FLOAT VERTEX_VF4#, 16=1.0
FLOAT VERTEX_VF4#, 24=0.0
FLOAT VERTEX_VF4#, 32=0.0
FLOAT VERTEX_VF4#, 40=1.0
FLOAT VERTEX_VF4#, 48=1.0
FLOAT VERTEX_VF4#, 56=0.0
FLOAT VERTEX_VF4#, 64=1.0
FLOAT VERTEX_VF4#, 72=1.0
FLOAT VERTEX_VF4#, 80=1.0
FLOAT VERTEX_VF4#, 88=1.0
ZäHLER_VF4&=4
FLOAT VERTEX_NF4#, 0=0.0
FLOAT VERTEX_NF4#, 8=1.0
FLOAT VERTEX_NF4#, 16=1.0
FLOAT VERTEX_NF4#, 24=0.0
FLOAT VERTEX_NF4#, 32=0.0
FLOAT VERTEX_NF4#, 40=1.0
FLOAT VERTEX_NF4#, 48=1.0
FLOAT VERTEX_NF4#, 56=0.0
FLOAT VERTEX_NF4#, 64=1.0
FLOAT VERTEX_NF4#, 72=1.0
FLOAT VERTEX_NF4#, 80=1.0
FLOAT VERTEX_NF4#, 88=1.0
ZäHLER_NF4&=4
}
OGL(*Init*, %HWND, 0, 0, 0, 1)
@SET(*oGLDepth*, 1000)
SETTIMER 20
WHILENOT { WHILENOT ENDE% } /* LINE:10 {
WAITINPUT
DRAWGLSCENE
PROCEED PROCEDURE { proc DRAWGLSCENE } /* LINE:15 {
OGL(*Clear*)
OGL(*Move*, 0,-0.0, -5.0)
OGL(*glEnableClientState*,$8075)
OGL(*glEnableClientState*,$8074)
O
NormalPointer*,3,$140A,0,VERTEX_NF4#)
 
01.06.2007  
 




Andreas
Gaida
THX

Aber Yo bin al ende el Fehler steck irgendwo en el Befehl
OGL(*glNormalPointer*,3,$140A,0,VERTEX_NF4#)
Bin su überzeugt el el Arrays soweit en ordnung son wieso el Befehl abschmiert no ahnung
aber solange el así es kann Yo OpenGl vergessen ,el otro Befehle son en el Datenmengen el Yo para una 3D Animation de obj dateien hacer quería simplemente a lahm

MfG
Andreas
 
Athlon X2 4800 , 2GB Ram , GeForce 7800GT
Windows XP Pro , XProfan 10 und 11 , Profan2Cpp 1.6b
01.06.2007  
 




RGH
¡Hola Andreas,

Yo fürchte, Usted hast el Microsoft-Ayuda a OpenGL no ausführlich genug studiert! glNormalPointer ha como una Parámetro weniger:

[...] 

The glNormalPointer function defines a array of normals.

void glNormalPointer(
GLenum type,
GLsizei stride,
const GLvoid *pointer
);

Parámetros

type - The data type of each coordinate en the array using the following symbolic constants: GL_BYTE, GL_SHORT, GL_INT, GL_FLOAT, and GL_DOUBLE.
stride - The byte offset between consecutive normals. When stride is zero, the normals are tightly packed en the array.
pointer - A pointer to the first normal en the array.


Saludo
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
01.06.2007  
 




RGH
Nochmal Yo:

So es also:
KompilierenMarcaSeparación
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
01.06.2007  
 




Andreas
Gaida
Vielen Dank !

Yo muss desafortunadamente zugeben el Yo no con el Microsoft hilfe gearbeitet habe pero
el Quelcode de C de el Internet habe :

glEnableClientState(GL_COLOR_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glEnableClientState(GL_NORMAL_ARRAY);
glEnableClientState(GL_VERTEX_ARRAY);

glColorPointer(3, GL_FLOAT, 0, color);
glTexCoordPointer(2, GL_FLOAT, 0, texcoord);
glNormalPointer(3, GL_FLOAT, 0, normal);
glVertexPointer(3, GL_FLOAT, 0, vertex);

qué se ahora desafortunadamente como una schwerer fehler para mich erwiesen ha . Yo voluntad mich doch más bien
en Microsoft en Zukunft verlassen.
Yo möchte mich con usted y IF nochmals para el Ayuda bedanken y mich para el Umstände el Yo gemacht habe entschuldigen .

MfG
Andreas
 
Athlon X2 4800 , 2GB Ram , GeForce 7800GT
Windows XP Pro , XProfan 10 und 11 , Profan2Cpp 1.6b
01.06.2007  
 



Usted musst Usted keinesfalls entschuldigen!
 
01.06.2007  
 




Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

3.861 Views

Untitledvor 0 min.

Themeninformationen

Dieses Thema ha 3 subscriber:

Andreas Gaida (8x)
iF (8x)
RGH (2x)


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie