JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=13f599d54ffbde8f6094b5b9c6c19f91Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

GDI und Direct3D

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
mortl2
Junior JLI'ler



Anmeldedatum: 18.09.2002
Beiträge: 88
Wohnort: Straubing/Bayern
Medaillen: Keine

BeitragVerfasst am: 22.02.2003, 17:39    Titel: GDI und Direct3D Antworten mit Zitat

Hi,

Ist es möglich neben Direct3D auch GDI Funktionen zu nutzen? Wenn ja, wie?

Mortl
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 22.02.2003, 18:12    Titel: Antworten mit Zitat

Hiho,

das geht mit der Methode GetDC(). Du muss dir zuerst einen Zeiger auf den Backbuffer holen GetBackBuffer().

lpDirect3DSurface = lpD3DDevice->GetBackBuffer(..);
HDC DC;

lpDirect3DSurface->GetDC(&DC);

Christian
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
mortl2
Junior JLI'ler



Anmeldedatum: 18.09.2002
Beiträge: 88
Wohnort: Straubing/Bayern
Medaillen: Keine

BeitragVerfasst am: 23.02.2003, 06:56    Titel: Antworten mit Zitat

Welche Parameter muss ich der GetBackBuffer Funktion übergeben?
Ich hab schon in der DX-Hilfe gesucht, doch des sagt mir nicht viel:

HRESULT GetBackBuffer(
UINT BackBuffer,
D3DBACKBUFFER_TYPE Type,
IDirect3DSurface8** ppBackBuffer

Mortl
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 23.02.2003, 10:01    Titel: Antworten mit Zitat

Hallo,

es sollte so gehen:

LPDIRECT3DSURFACE9 lpSurface;

lpD3DDevice->GetBackBuffer(0,D3DBACKBUFFER_TYPE_MONO,&lpSurface);

Christian
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
mortl2
Junior JLI'ler



Anmeldedatum: 18.09.2002
Beiträge: 88
Wohnort: Straubing/Bayern
Medaillen: Keine

BeitragVerfasst am: 23.02.2003, 10:25    Titel: Antworten mit Zitat

Es hat funktioniert, doch jetzt spuckt der Debugger die Fehlermelung "GetDC : Ist kein Element von 'IDirect3DSurface8" aus. Vielleicht liegt es daran das ich noch das DX SDK in der Version 8.1 hab?

Mortl
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 23.02.2003, 10:44    Titel: Antworten mit Zitat

Oh, ich dachte das gab es auch in DX8 -> gibt es aber nicht Embarassed . Was willst du den machen?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
mortl2
Junior JLI'ler



Anmeldedatum: 18.09.2002
Beiträge: 88
Wohnort: Straubing/Bayern
Medaillen: Keine

BeitragVerfasst am: 23.02.2003, 17:09    Titel: Antworten mit Zitat

Ich wollte mir mal ne Klasse für eine Benutzeroberfläche(Buttons, Checkboxe's, Eingabefelder...) unter Direct3D zusammenstellen, und ich find das ging am einfachsten mit dem GDI, oder?

Mortl
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Starwash
Senior JLI'ler


Alter: 40
Anmeldedatum: 22.09.2002
Beiträge: 252
Wohnort: Zossen (bei Berlin)
Medaillen: Keine

BeitragVerfasst am: 23.02.2003, 21:51    Titel: Antworten mit Zitat

Hi,
ich bin mir nicht sicher, ob dir das GDI wirklich die benötigte Geschwindigkeit für sowas bietet. Ein Button (oder so) mag ja per GDI noch halbwegs flott gehen, aber nun bedenkt mal was passiert wenn du ein Menü mit insgesamt vielleicht 10 bis 20 Steuerelementen. Ich denke, dass es da zu langsam wird. Außerdem bietet dir D3D noch tolle Möglichkeiten für deine Steuerelemente, die mit dem GDI nicht so einfach zu realisieren gewesen wären. So bspw. kannst du deine Buttons individuell beleuchten. Nicht so wie die Win32-Buttons wo das Licht immer von links oben kommt. Ich würde diese Steuerelemente an deiner Stelle, wenn in D3D programmieren, da es schneller ist und dir mehr Möglichkeiten bietet. Ich habe der Zeit ein ähnliches Projekt, ich programmiere Steuerelemente für mein Spiel, welche auf OpenGL basieren.

Gruss Tarek
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
mortl2
Junior JLI'ler



Anmeldedatum: 18.09.2002
Beiträge: 88
Wohnort: Straubing/Bayern
Medaillen: Keine

BeitragVerfasst am: 24.02.2003, 14:07    Titel: Antworten mit Zitat

Da hab ich mir wohl wieder zu viel vorgenommen. Wie könnte man eine Benutzeroberfläche unter Direct3D realisieren?

Mortl
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
AFE-GmdG
JLI MVP
JLI MVP


Alter: 45
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 24.02.2003, 14:24    Titel: Antworten mit Zitat

Auch nicht unbedingt einfacher, als mit GDI, läuft aber nach immer dem gleichen Prinzip ab:
Grafiken entwerfen für jeden Steuerelementzustand
Ein paar Statusvariablen definieren für den Zustand
Maus- und Tastaturschnittstelle Definieren und Programmieren
Messages zur Behandlung der Ereignisse Generieren

AFE-GmdG
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum