webForumDet fria alternativet

Större bild än skärm med DirectX

C/C++

3 svar · 427 visningar · startad av Gaski

Medlem sedan juni 2000310 inlägg
Frågan#1

Har ett program som ska rita upp en bmp bild med hjälp av DirectX vilken den klarar utmärkt men om bilden är större än fönstrer ritar den inte upp någonting, jag vill att den ska rita upp den delen som får plats inom skärmen.

Hur gör man det? Ska man ändra på någonting när man sätter DirectX egenskaper för hur den ska hantera skärmen. Har följande kod för det nu:

lpDD->SetCooperativeLevel(hwnd, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN | DDSCL_ALLOWREBOOT);

Eller?

Medlem sedan maj 20002 993 inlägg
#2

Kan inte DX men man klan "blita" bilder på olika sätt. På ett av sätten visas inte bilden om den är utanför skärmen. Du kanske använder det sättet? fastblit kalalse det tror jag... såg något om det när jag läste om hur man gjorde en isometrictilemotor :)

Medlem sedan juni 2000310 inlägg
#3

Jag använder yta->Blt() funktionen.
Har tittat lite på OpenGL. Det verkar fett mycket enklare ju! Eller är jag helt ute och cyklar?

Medlem sedan maj 20002 993 inlägg
#4

Nej
OpenGL är inte mycket enklare.
Speciellt inte i 2D. De verkar skit krångligt... jag har aldrig lyckats själv men man måste först ställa in nåt m,ed Ortho2d() och sen skapa texturerade QUADS för att rita upp bilder. Tror man bara kan rita bilder som är i formatet ^2, men jag är imnte helt säker.

man måste ha ett grafikkort med 3D acceleration för att använda OpenGL i program även om man gör det i 2D

260 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)