Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





[directx] ¿glscissor En Directx?

Iniciado por deadLock++, 04 de Septiembre de 2003, 11:13:39 PM

« anterior - próximo »

deadLock++

 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?

BeRSeRKeR

 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
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

deadLock++

 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

Mars Attacks

 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






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.