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

11

18.02.2009, 19:32

Und dieses (DX-) Format heißt wie?
fka tm

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

12

18.02.2009, 19:41

Zitat von »"TrikkieMikkie"«

Und dieses (DX-) Format heißt wie?


D3DFMT_X1R5G5B5

13

18.02.2009, 19:45

Ach sooo.
War etwas irritiert, weil es letztlich halt doch ein Vielfaches von 8 ist.

(Aber du sagtest ja bereits "Stimmt nicht ganz" ;) )
fka tm

idontknow

unregistriert

14

18.02.2009, 19:53

hmm.

und auf welche dieser Formate sollte man dann überprüfen ob und welche Videomodi die Grafihkarte unterstüzt?

Ich denke mal dass es da ein par bestimmte Modi gibt, die einfach "gebräuchlich" sind und die man daher standardmäßig nutzt.
(Ansonsten wären es ja zimelich viele BIT-Formate!!)

15

18.02.2009, 20:01

naja, du kannst dem user n Auswahlmenü für die Farbtiefe (die anzahl an bits) geben, und dann jeweils das Format nehmen, das dir am besten in den Kram passt, also zu dem passt, was du machen willst, z.b. brauchst du ein Format mit nem "A" drin, wenn die betreffende Oberfläche Transparenzinformationen speichern soll, ansonsten grade nicht (bei nem Bildpuffer in der regel letzteres). wenn du dem User kein Auswahlmenü machen willst, nimm die höchste verfügbare farbtiefe.

16

18.02.2009, 20:07

Du kannst dir das Leben zunächst etwas einfacher machen, in dem du das aktuelle Format verwendest.

C-/C++-Quelltext

1
2
D3DDISPLAYMODE displayMode;
pD3D->GetAdapterDisplayMode( D3DADAPTER_DEFAULT, &displayMode );


Anschließend setzt du es bei der Initialisierung des Adapters ein:

C-/C++-Quelltext

1
D3D_PP.BackBufferFormat = displayMode.Format;


Ansonsten ist D3DFMT_X8R8G8B8 ein gängiges Format.
Oder verwende D3DFMT_UNKNOWN.

D3DFMT_D24S8 für AutoDepthStencilFormat.

Tipp: GetDeviceCaps verwenden.
fka tm

Gotbread

Alter Hase

Beiträge: 421

Beruf: Student (Etechnik) + Hiwi

  • Private Nachricht senden

17

18.02.2009, 20:16

Zitat von »"David_pb"«


Und unpraktisch ist es auch nicht, wenn Grün ein Bit mehr hat.


hm geschmackssache, aber ich finde es ganz praktisch einfach
nur im RGB Makro 2 werte tauschen zu können ohne umrechnen zu
müssen. dann lieber ein bit für alpha. damit kann man wenigstens
colorkeying machen.

Zitat von »"drakon"«


Er meint wohl Lost Device.


jup.

Zitat von »"drakon"«


Fürs Debuggen ohne zweiten Screen die Hölle.


wenn _ein_ fehler passiert und du nicht in den taskmanager kommst
um das programm zu killen.... ganz mies...

Zitat von »"PCShadow"«


wahrscheinlich, weil er genauso wenig wie ich weiß, warum das passiert - meinem wissensstand nach, macht das keinen sinn, und da es negativ ist, nennt mans bug


"bug" ist kürzer als "nerfiges feature"

das passiert deswegen, weil DX den exklusivmodus für die grafikkarte verliert. damit sind auch alle daten in der grafikkarte weg. (texturen, vertexbuffer....) dass das bild dann komiisch aussieht ist klar.

wenn DX im fenstermodus läuft passiert das nicht, da es keinen exklusivzugriff auf die graka hat.
Mfg Goti
www.gotbread.bplaced.net
viele tolle spiele kostenlos, viele hardware-basteleien :)

"Es ist nicht undicht, es läuft über" - Homer Simpson

18

18.02.2009, 20:20

Zitat von »"Gotbread"«

damit sind auch alle daten in der grafikkarte weg. (texturen, vertexbuffer....)

Stimmt so auch nicht! Je nachdem, wo du die Daten vorher (D3DPOOL_MANAGED etc.) abgelegt hast.
Sorry, dass ich schon wieder nörgle. :)
fka tm

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

19

18.02.2009, 20:29

Zitat von »"Gotbread"«

Zitat von »"David_pb"«


Und unpraktisch ist es auch nicht, wenn Grün ein Bit mehr hat.


hm geschmackssache, aber ich finde es ganz praktisch einfach
nur im RGB Makro 2 werte tauschen zu können ohne umrechnen zu
müssen. dann lieber ein bit für alpha. damit kann man wenigstens
colorkeying machen.


Dann bist du auch kein Freund der anderen "wilden" Formate die da so kursieren? So 10, oder 12 Bit Formate mit variablen low- und hightbits? :-P (Keine Sorge, DirectX kennt sowas nicht) ;)

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

20

18.02.2009, 20:31

Zitat von »"TrikkieMikkie"«

Zitat von »"Gotbread"«

damit sind auch alle daten in der grafikkarte weg. (texturen, vertexbuffer....)

Stimmt so auch nicht! Je nachdem, wo du die Daten vorher abgelegt hast.
Sorry, dass ich schon wieder nörgle. :)


Ja, aber der Speicher ist dann nicht in der Grafikkarte. ;)
(OK. AGP auch nicht direkt, aber der gehört dort hinzu..)

Werbeanzeige