Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Sa Jul 19, 2025 12:35

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 12 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Sa Nov 03, 2007 18:48 
Offline
DGL Member

Registriert: So Okt 21, 2007 14:16
Beiträge: 123
Programmiersprache: Delphi
Hallo,

ich programmiere seit kurzem mittels FPC4NDS eher testweise Miniprogramme für den Nintendo DS. Dort gibt es auch OpenGl-Unterstützung, aber ich habe merkwürdige Fehlermeldungen bekommen:

undefined reference to 'glInit'

und das auch mit glClearColor, glClearPolyID und glTexCoord2f. Auf die ersten drei kann man verzichten, auch wenn ich glClearColor gerne benutzen würde, aber glTexCoord ist da schon wichtiger :) (es gibt eine Alternative zu glTexCoord2f, nämlich glTexCoord2f32, die Integers erfordert, aber damit bin ich nicht klar gekommen, die Oberfläche war weiß) . Hat jemand zufällig ne Idee, woran es liegen könnte, oder hatte das Problem selbst schon mal? Für Hilfe wäre ich sehr danbar.

Gruß Joni.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Nov 03, 2007 18:52 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Kann es sein, dass dort "OpenGL ES" läuft und nicht "echtes" OpenGL?
Dieses unterscheidet sich im Befehlssatz. Das ist fast schon was gaanz anderes.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Nov 03, 2007 19:19 
Offline
DGL Member

Registriert: So Okt 21, 2007 14:16
Beiträge: 123
Programmiersprache: Delphi
Hallo,

danke für die Antwort! Ich hatte mir auch schon überlegt, ob der Befehl vllt. gar nicht existiert, aber das Problem war in einem mitgelieferten Beispiel (eine Übersetzung eines NeHe Tutorials). Ich habe jetzt jedoch herausgefunden, dass es in den Headern Befehle gibt, die als external deklariert sind, und es gibt andere, die per Pointer direkt die Befehle ausführen (ein NDS hat doch keine GraKa, oder? wenn nein, ist ein Teil des Hauptpeichers für den Grafikteil zugewiesen, in den dann geschrieben wird). Die externals scheinen nicht zu funktionieren, die anderen tun es. Es gibt noch einen Befehl, der funktioniert (glTexCoord2t16), aber ich weiß eben nicht wie die Parameter lauten müssen. Ich experimentiere noch etwas, falls jemand etwas darüber weiß, äre ich sehr dankbar wenn er hier posten würde.

Gruß Joni.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Nov 03, 2007 21:25 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Guck mal ob der Befehl "glBegin" existiert. Wenn nein, dann ist es OpenGL ES.

Leider haben wir hier (soweit ich weiß) niemanden der OpenGL ES einsetzt. (Schade!)

Ich bin hier auch eher für die Fragen ohne technischen Tiefgang zuständig. 8) ;) Deshalb werd ich dir da wohl nicht helfen können.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Nov 03, 2007 21:52 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Schau dir mal folgenden Beitrag an. Dort hat noeska einen Alpha Header für OpenGL ES vorgestellt.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Nov 03, 2007 21:57 
Offline
DGL Member

Registriert: So Okt 21, 2007 14:16
Beiträge: 123
Programmiersprache: Delphi
Hallo,

danke für den Tipp, aber glBegin existiert. Ich glaube auch, dass die weißen Quads nicht an den Texturkoordinaten liegen, da ich eine Demo gefunden habe, in der glTexCoord2t16 verwendet wird, die aber trotzdem nicht funktioniert bzw. weiße Objekte ausspuckt. Außerdem funktioniert glGetInt nicht. Für mich sieht das eher so aus, als ob die Befehle nicht in der NDS-"Api" (gibts da sowas?) vorhanden sind und das Kompilieren deswegen nicht klappt. Was jedoch erstaunlich ist, ist dass alles mit normalen Farben (also mittels glColor3f) funktioniert. Vllt. hat ja jemand noch eine Idee, woran das hier liegen könnte.

Gruß Joni.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Nov 03, 2007 22:03 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Das Format deiner Texturen ist aber OpenGL konform? (Pot2 Texturen)

Die Befehle die du nennst sind keine OpenGL Befehle (Siehe OpenGL-Funktionsübersicht). Es kann sein, dass die tatsächlich Nintendospezifisch sind. Da wirst du dann wohl mal ein Nintendo-Programmierforum befragen müssen.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Nov 04, 2007 11:44 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jul 01, 2003 18:59
Beiträge: 887
Wohnort: (The Netherlands)
Programmiersprache: fpc/delphi/java/c#
There is no OpenGL nor OpenGL ES on DS.
Yes there are some commands that resemble openlgl, but it is not OpenGL as we know it.
Actualy it mostly resembles TinyGL: http://fabrice.bellard.free.fr/TinyGL/

My efforts so far on the ds i having a rotating cube.
I have not gotten as far as using textures as i have no clue how to load one on the ds.
Storing a texture in code is not the way to go i think.

_________________
http://3das.noeska.com - create adventure games without programming


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Nov 04, 2007 13:25 
Offline
DGL Member

Registriert: So Okt 21, 2007 14:16
Beiträge: 123
Programmiersprache: Delphi
Hallo,

danke für die Antworten. Ich glaube, dass das hier ein angepasstes OpenGl für den DS ist, welches einige Funktionen beinhaltet, die auf dem Computer nicht erforderlich sind. Aber ich glaube dass das Problem mit den Texturen eher an meinem Emulator liegt, ich habe nur leider keine Möglichkeit, das Ganze auf einem DS zu testen, aber ich werde mal einen Freund fragen, ob er das machen kann.

Gruß Joni.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Nov 04, 2007 14:02 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jul 01, 2003 18:59
Beiträge: 887
Wohnort: (The Netherlands)
Programmiersprache: fpc/delphi/java/c#
You should be able to use the following:

Code:
  1.     glBindTexture(GL_TEXTURE_2D, texture[0]);
  2.  
  3.     glBegin(GL_QUADS);
  4.         // Front Face
  5.         glTexCoord2f(0.0, 0.0); glVertex3f(-1.0, -1.0,  1.0);
  6.         glTexCoord2f(1.0, 0.0); glVertex3f( 1.0, -1.0,  1.0);
  7.         glTexCoord2f(1.0, 1.0); glVertex3f( 1.0,  1.0,  1.0);
  8.         glTexCoord2f(0.0, 1.0); glVertex3f(-1.0,  1.0,  1.0);


As it is used that way in an devkitpro example for the nds so it should also work for the FPC4NDS.

A few devkit examples i converted some time ago to the FPC4NDS:

http://www.noeska.com/downloads/helloworld.zip

http://www.noeska.com/downloads/openglex1.zip

http://www.noeska.com/downloads/openglex2.zip

[edit]

How to use the glTexCoord2f32: first you have to convert the float to f32
Code:
  1. function floattof32(n: single): f32; inline;        
  2. begin
  3.   floattof32 := f32(n * (1 shl 12));
  4. end;


this function can be found in: \fpc4nds\include\libndsfpc\nds\arm9\videoGl.inc
but is useable as you start your source with:
Code:
  1. {$apptype arm9} //...or arm7
  2. {$define ARM9}   //...or arm7, according to apptype
  3.  
  4. {$mode objfpc}   // required for some libc funcs implementation
  5.  
  6. uses
  7.   ctypes; // required by nds headers!
  8.  
  9. {$include nds.inc}  // headers!


[/edit]

_________________
http://3das.noeska.com - create adventure games without programming


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Nov 04, 2007 18:45 
Offline
DGL Member

Registriert: So Okt 21, 2007 14:16
Beiträge: 123
Programmiersprache: Delphi
Hallo,

@noeska: danke für die Demos, aber ich hatte Probleme, sie zu kompilieren und bei fpc4nds waren bereits ähnliche Demos dabei.

Ich hatte jetzt meinem Freund die Dateien geschickt, und er hat sie auch getestet, aber er sah bei den texturierten Varianten überhaupt nichts, wobei die Varianten mit glColor3f einwandfrei funktionierten. Vllt. hat ja jemand noch nen Tipp, falls jemand ein gutes Nintendo-DS-Entwicklerforum kennt, wäre es ebenfalls nett hier zu posten.

Gruß Joni.

[EDIT]

Hab das Problem mittlerweile gelöst, es lag an Fehlern im Delphi-Header (glInit musste glInit_C sein).

[/EDIT]


Zuletzt geändert von Joni am Mi Sep 10, 2008 14:06, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Nov 04, 2007 20:15 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jul 01, 2003 18:59
Beiträge: 887
Wohnort: (The Netherlands)
Programmiersprache: fpc/delphi/java/c#
Hmm, must be my version of FPC4NDS (2006-12-15). I should download the new version ASAP.

Do you have the following in \fpc4nds\include\libndsfpc\nds\arm9\videoGl.inc :
Code:
  1.  
  2. //---------------------------------------------------------------------------------
  3. //float wrappers for porting
  4. //---------------------------------------------------------------------------------
  5. procedure glRotatef(angle, x, y, z: single); cdecl; external;
  6. procedure glVertex3f(x, y, z: single); cdecl; external;
  7. procedure glTexCoord2f(s, t: single); cdecl; external;
  8. procedure glColor3f(r, g, b: single); cdecl; external;
  9. procedure glScalef(x, y, z: single); cdecl; external;
  10. procedure glTranslatef(x, y, z: single); cdecl; external;
  11. procedure glNormal3f(x, y, z: single); cdecl; external;
  12.  


if not you could try adding them just before:
Code:
  1.  
  2. {$DEFINE NO_GL_INLINE}  // ### TO DO!!!
  3.  


[edit]

Also take a look here: http://libndsfpc.svn.sourceforge.net/vi ... /lesson06/
for how to use texturing on the nds.

[/edit]

_________________
http://3das.noeska.com - create adventure games without programming


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 12 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 7 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.009s | 14 Queries | GZIP : On ]