Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Visualizar Texto En Directx Y Visual C

Iniciado por Goosebrush, 31 de Agosto de 2005, 01:54:35 PM

« anterior - próximo »

Goosebrush

 Saludos a todos.

Estoy haciendo una "especie de juego" y tengo una pequeña duda que no se como resolver  (nooo) .

¿Alguien sabe como imprimir texto, ya sean letras o numero bajo un entorno directx?

Tan solo quiero imprimir algo asi como "hola" en el tipo de fuente que sea.

Estoy usando Directx9 y Visual C.

Gracias y saludos.

TheAzazel

 Tengo una clase para dibujar cualquier tipo de fuente en mi libreria pero esta basada en SDL, por lo que sobre DirectX directamente no sirve.

Busca por el google alguna lib de fuentes para DirectX o create una. Por ahi encontraras algunas con soporte TrueType (son lentillas) que hacen mil cosas, antialias, sombreado, alpha blending, etc.. y otras mas sencillas que guardan un bitmap con todas las letras y luego, al escribir la cadena van averiguando que posicion ocupa el caracter dado en el bitmap y van volcando para dibujar. Estas son mas rapidas y te quitas de todos los rollos de copyrights de las truetype...

quizas alguien conozca la lib definitiva para fuentes bajo directx.... espera un poco ya veras, que aqui hay bastante nivel.

saludos

Lord Trancos 2

 En la libreria D3DX venia un interfaz para trabajar con fuentes truetype, pero ahora mismo no recuerdo el nombre... Era algo asi como ID3DXFont...
on los años y mucho esfuerzo he llegado a atesorar una ignorancia total sobre casi todas las cosas.
Gate to Avalon (mi Blog)

Zaelsius

 
Cita de: "Lord Trancos 2"En la libreria D3DX venia un interfaz para trabajar con fuentes truetype, pero ahora mismo no recuerdo el nombre... Era algo asi como ID3DXFont...
D3DXFont, sip. Uno de los cientos de tutoriales http://www.drunkenhyena.com/cgi-bin/view_c...er=3;article=17

Goosebrush

 Esto es velocidad !!!!  (ole)

Muchisimas gracias a todo. Ahora lo probare a ver que tal  ;)  

Ray

 Puedes probar a usar el GDI para texto, yo lo use para no complicarme la vida y me fue siempre bién.

Solo hay que obtener el identificador del buffer trasero, y escribir en él.
No se si es lo más correcto pero rapido y sencillo de implementar sí que es.


// Obtenemos el buffer trasero
LPDIRECT3DSURFACE9 lpDSBackBuffer;
lpDevice->GetBackBuffer(0, 0, D3DBACKBUFFER_TYPE_MONO, &lpDSBackBuffer);

// Obtenemos el contexto de dispositivo del buffer trasero
HDC hdc;
if (FAILED(lpDSBackBuffer->GetDC(&hdc))) return FALSE;

// Escribimos
TextOut(hdc, 20,20, "hola",  4);

// Liberamos el contexto de dispositivo
lpDSBackBuffer->ReleaseDC(hdc);


Ray

 Se me olvidó apuntar que para acceder a la superficie trasera hay que crear el Device con el flag D3DPRESENTFLAG_LOCKABLE_BACKBUFFER, si sigue sin funcionar consulta GetDC porque tiene alguna que otra restricción más, aunque son más bien para otro tipo de superficies.

Goosebrush

 Muchas gracias Ray.

De momento voy a usar la opción que me has comentado que me parece mas facil de implementar. Mas adelante me pondre con la otra ya que me interesa saber como va la D3DXFont.

Un saludo.






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.