Problem mit SetViewport (DirectX)
-
Hi ihr (ja, ich schon wieder... ;-))
Ich habe in meine Grafik Manager Klasse vor kurzem (gestern) eine Funktion eingebaut, um nur auf ein bestimmtes feld auf dem screen zu rendern. Hierfür benutze ich SetViewport, die funktion sieht so aus:
void Graphics::SetViewport(unsigned long ulX, unsigned long ulY, unsigned long ulWidth, unsigned long ulHeight, float fMinZ = 0.0f, float fMaxZ = 1.0f)
{
m_SViewport.X = ulX;
m_SViewport.Y = ulY;
m_SViewport.Width = ulWidth;
m_SViewport.Height = ulHeight;
m_SViewport.MinZ = fMinZ;
m_SViewport.MaxZ = fMaxZ;
m_pIDirect3DDevice->SetViewport(&m_SViewport);
}
Soweit so gut, alles richtig, wenn ich im code nun meine funktion aufrufe, funktioniert es auch... meistens jedenfals, bei der übergabe spezieller werte schlägt die methode fehl. als ich z.B. folgendes eingab:
g_Graphics.SetViewport(300, 300, 600, 600. 0.0f, 1.0f);
gab das programm einen fehler aus (weil ich es ihm gesagt habe, es soll, wenn die function sheitert, einen fehler ausgeben soll, dies geschieht via FAILED() und MessageBox)
weiß einer, wieso? hoffe, ihr könnt mir helfen, danke schonmal.
-
Und Du bist Dir sicher, daß g_Graphics.SetViewport(300, 300, 600, 600. 0.0f, 1.0f); im Rahmen liegt?!
-
Was heißt: "Im Rahmen liegen"???
-
AAAAAAHHHHHHHHHHH
prob gelöst, danle.
ich benutze auflösung 1024x768.
natürlich ist ein viewport, der bei Y 300 beginnt un 600 pixel nach "unten" geht, viel zu groß, er endet dann ja bei 900, also außerhalb des bildschirms, nochmals danke, cya
-
Hehehe...