Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

ChrisJ

Alter Hase

  • »ChrisJ« ist der Autor dieses Themas

Beiträge: 487

Wohnort: Schweich

Beruf: Schüler

  • Private Nachricht senden

1

21.06.2007, 15:21

OpenGL Instanz?

hi.
ich habe eine frage bezüglich dem umgang mit opengl.
wenn ich eine engine schreibe, kann ich mit directx ja die schnittstellen vor dem benutzer verstecken, indem ich sie beispielsweise als private member einer klasse definiere, und so vermeiden, dass der benutzer irgendwelche funktionen von directx "per hand" aufruft.
ginge soetwas auch mit opengl?
soweit ich weiss, kann man, sobald das fenster mit rendering context erzeugt wurde, aus jeder beliebigen funktion aus gl* funktionen aufrufen.
und bitte nicht den sinn davon debattieren - ich wills einfach so :)
"Don't trust your eyes: They are a hell of a lot smarter than you are"

2

21.06.2007, 15:45

Wieso machst nicht ne klasse, wo alle variablen private sind und alle Funktion die mit OpenGl was zu tun haben public. So kannst nur du auf deine variablen zugreifen und abfragen. oder nimm gleich d3d oder ddraw :D
http://www.pennergame.de/functions/generate_signature_114955.jpg

Wo die Fähigkeiten aufhören ... fängt der Optimismus an

"Unendlichkeit ist der Mangel an Grenzen" Aristoteles

rewb0rn

Supermoderator

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

3

21.06.2007, 15:49

du kannst die opengl header immer in deinen cpp dateien einbinden, nicht in den header dateien, dann sind die funktionen für den benutzer nicht mehr zugänglich (solange er die header nicht nochmal selbst einbindet)

ChrisJ

Alter Hase

  • »ChrisJ« ist der Autor dieses Themas

Beiträge: 487

Wohnort: Schweich

Beruf: Schüler

  • Private Nachricht senden

4

21.06.2007, 15:54

erstmal danke für die schnellen antworten!

@giesbert
ja, das mache ich ja sowieso... nur kann man dann immer noch zb glClearColor() aufrufen und es funktioniert

@reborn
okay, dann muss ich das wohl so machen
"Don't trust your eyes: They are a hell of a lot smarter than you are"

DarioFrodo

Treue Seele

Beiträge: 349

Wohnort: Kerkau, 100km nördlich von Magdeburg

Beruf: Selbstständig

  • Private Nachricht senden

5

21.06.2007, 18:08

Ich habe eine Vermutung.
Wenn du OpenGL in einem Extra Thread initalisierst, hast du nur aus diesem Thread aus zugriff darauf. Das hatte mir schon mal bei OpenAL (welches OpenGL sehr nahe sein soll) schon mal probleme verursacht. Aber man kann es ja auch sinvoll nutzen.

Wenn du OpenGL in einem Extra Thread aufrufst und der Engin-Benutze eine OpenGL Funktionen nutzen will, funktioniert es nicht, da OpenGL im Thread des Benutzers ja nicht initalisisert ist.

Ich hoffe ich konnte dir ein kleinen Hinweis geben.

Viel Glück.
Erst wenn der letzte Fluss vergiftet,
der letzte Baum gefällt,
der letzte Fisch gefangen,
dann werdet ihr merken, dass man Geld nicht essen kann

Man verkauft die Erde nicht, auf der die Menschen wandeln.

- Indianerweisheiten

Ich bin auch ein einhornimmond ;)

ChrisJ

Alter Hase

  • »ChrisJ« ist der Autor dieses Themas

Beiträge: 487

Wohnort: Schweich

Beruf: Schüler

  • Private Nachricht senden

6

21.06.2007, 18:12

oha, danke, dass werde ich mal ausprobieren :)
"Don't trust your eyes: They are a hell of a lot smarter than you are"

7

22.06.2007, 14:07

Welchen Sinn verfolg die ganze Aktion eigentlich?
Es hört sich ja eigentlich so an als wolltest du eine Engine schreiben die du anderen zur Verfügung stellst damit sie schneller entwickeln können (oder verkaufen, wie auch immer).
In diesem Fall würde das ja nur jemand veruschen wenn ihm die Funktionen deiner Engine nicht ausreichen.

ChrisJ

Alter Hase

  • »ChrisJ« ist der Autor dieses Themas

Beiträge: 487

Wohnort: Schweich

Beruf: Schüler

  • Private Nachricht senden

8

22.06.2007, 14:23

Zitat von »"chriss"«

Welchen Sinn verfolg die ganze Aktion eigentlich?

Zitat von »"Ich"«

und bitte nicht den sinn davon debattieren - ich wills einfach so



man sollte den benutzer der engine/framework/wasauchimmer einfach davor bewahren auf eigene faust irgendwas zeichnen zu wollen, was mit der engine/framework/wasauchimmer schneller oder sicherer wäre...
"Don't trust your eyes: They are a hell of a lot smarter than you are"

9

23.06.2007, 19:52

Du könntest auch deine Engine komplett closed machen und eine Skriptsprache für das Spiel verwenden. Dann ist garantiert das nur das gemacht wird was du erlaubst.

LUA ist schnell und schön. Nicht OOP aber dafür gibt es andere Skriptsprachen.

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

10

23.06.2007, 20:29

LUA erlaubt auch OOP.
@D13_Dreinig

Werbeanzeige