Foros - Stratos

Programadores => Programación gráfica => Mensaje iniciado por: deadLock++ en 04 de Septiembre de 2003, 11:13:39 PM

Título: [directx] ¿glscissor En Directx?
Publicado por: deadLock++ en 04 de Septiembre de 2003, 11:13:39 PM
 Estoy implemetando un sistema de ventanas dentro de mi motor utilizando DirectX8.1 y para evitar que el dibujado de algún texto se escape de la ventana quería setear lo que en OpenGL haría con glScissor, que es una zona fuera de la cual todo se clipea.

No encontré una función similar en DirectX. Si fijo un viewport (con SetViewport) generaría también una zona fuera de la cual todo se clipearía pero también tendría que alterar la matriz de proyección para evitar un reescalado. ¿Existe otro método alternativo bajo en costos de CPU?
Título: [directx] ¿glscissor En Directx?
Publicado por: BeRSeRKeR en 04 de Septiembre de 2003, 11:21:42 PM
 No estoy seguro de que en Direct3D 8.1 exista esa opción. En Direct3D 9 si. Aquí están los métodos relacionados con el scissor test

// methods
HRESULT IDirect3DDevice9::SetScissorRect( CONST RECT* pRect );
HRESULT IDirect3DDevice9::GetScissorRect( RECT* pRect );
   
// new RenderState, values are TRUE or FALSE
D3DRS_SCISSORTESTENABLE
   
// new hardware cap
D3D9CAPS.RasterCaps -> D3DPRASTERCAPS_SCISSORTEST;


Saludos
Título: [directx] ¿glscissor En Directx?
Publicado por: deadLock++ en 06 de Septiembre de 2003, 12:57:36 AM
 Muchas gracias, BeRSeRKeR. Lástima que a MS se le ocurrió agregar los scissors recién la versión 9 (grrr)    ya veré como hacer.

Saludos
Título: [directx] ¿glscissor En Directx?
Publicado por: Mars Attacks en 06 de Septiembre de 2003, 11:18:51 AM
 Para que luego digan que es siempre M$ el que innova y los demás los que copian  (twist)

P.D.: No hagáis caso del comentario, es mi parida de las 11:20