| Ver tema anterior :: Ver siguiente tema |
| Autor | Mensaje |
|---|
kingfoslide54
Registrado: 25 Dic 2006 Mensajes: 75
| Publicado: 22/06/2007 8:50 am | | | Título: Ocultar la ventana en SDL |
| Buenas!
Quería saber si hay alguna forma de ejecutar un programa en SDL sin fullcreen, sin que se vea la ventana de windows, el scrool, etc, es decir, mostrando solo el contenido y que se siga viendo detrás el entorno de windows y los programas en segundo plano. Es decir, pasar de esto:
A ésto:
Un saludo, y gracias por adelantado! |
|
| Volver arriba | |
 |
Killrazor
Registrado: 24 Ene 2006 Mensajes: 1182 Ubicación: Barcelona
| Publicado: 29/06/2007 3:28 am | | | Título: |
| Creo que no se puede. Es el precio que se debe pagar por el cross platform. Aunque tienes una manera de acceder al handler de la ventana pero no se hasta que punto de puede dar dolores de cabeza manipularlo. Mira aqui:
Espero que te sirva: _________________ I wanna heal i wanna feel like I'm close to something real. I wanna find something I've wanted all along somewhere i belong |
|
| Volver arriba | |
 |
nwg
Registrado: 09 Ago 2006 Mensajes: 40
| Publicado: 30/06/2007 4:54 am | | | Título: |
| Proba poniendole cuando inicias el video esto SDL_NOFRAME
Asi:
SDL_SetVideoMode(480,320,16,SDL_NOFRAME);
Espero que te sirva.
PD: La desgracia de eso es que no vas a poder mover la ventana como cuando lo hacias con la barra de la ventana windows. Pero si alguien sabe si se puede soy todo oidos |
|
| Volver arriba | |
 |
|
kingfoslide54
Registrado: 25 Dic 2006 Mensajes: 75
| Publicado: 08/07/2007 5:34 pm | | | Título: |
| El noframe es lo que buscaba.
Muchas gracias! |
|
| Volver arriba | |
 |
kingfoslide54
Registrado: 25 Dic 2006 Mensajes: 75
| Publicado: 09/07/2007 2:49 pm | | | Título: |
| Por cierto... cómo se puede obtener del sistema la resolución de pantalla actual? Sé hacer algo "parecido" en opengl, pero en sdl (o en todo caso fuera de opengl) no sé hacer nada así.
Un saludo, y gracias! |
|
| Volver arriba | |
 |
nwg
Registrado: 09 Ago 2006 Mensajes: 40
| Publicado: 09/07/2007 9:11 pm | | | Título: |
| Para obtener la altura y el ancho podes hacer esto:
SDL_Surface *video; video=SDL_SetVideoMode(480,320,16,SDL_NOFRAME);
int ancho=video->w; int alto=video->h;
y para obtener los bpp :
Uint8 bpp=video->format->BitsPerPixel;
Espero te sirva
Saludos |
|
| Volver arriba | |
 |
|
kingfoslide54
Registrado: 25 Dic 2006 Mensajes: 75
| Publicado: 09/07/2007 11:55 pm | | | Título: |
| Pero ésto, ¿me daría la resolución dela ventana SDL o la resolución de pantalla (y profundidad de color) de la pantalla? Esto último es lo qu busc, no sé si me he expliado bien.
Muchas gracias, nwg.
Un saludo. |
|
| Volver arriba | |
 |
nwg
Registrado: 09 Ago 2006 Mensajes: 40
| Publicado: 10/07/2007 2:51 pm | | | Título: |
| Esto te estaria dando la resolucion de la ventana creada con SDL.
¿Con resolucion de pantalla te referis a la del sistema (boton derecho->propiedades->configuracion)?
Si es eso no se como se podria obtener.
Saludos. |
|
| Volver arriba | |
 |
rir3760

Registrado: 01 Oct 2004 Mensajes: 3841 Ubicación: Mexico
| Publicado: 10/07/2007 5:00 pm | | | Título: |
| Para obtener la resolucion en pixeles de la pantalla puedes utilizar la funcion GetSystemMetrics (winuser.h + user32.lib, mas informacion en MSDN) pasandole como unico argumento las constantes SM_CXSCREEN, SM_CYSCREEN.
Por ejemplo:
| Código: | #include <stdio.h> #include <windows.h>
int main(void) { printf( "La resolucion de pantalla es %dx%d\n", GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN) ); return EXIT_SUCCESS; }
|
Un saludo _________________ The capacity to learn is a gift; The ability to learn is a skill; The willingness to learn is a choice. -- Rebec of Ginaz |
|
| Volver arriba | |
 |
|
kingfoslide54
Registrado: 25 Dic 2006 Mensajes: 75
| Publicado: 12/07/2007 2:47 am | | | Título: |
| Sí, era lo que buscaba.
Muchas gracias! |
|
| Volver arriba | |
 |
kingfoslide54
Registrado: 25 Dic 2006 Mensajes: 75
| Publicado: 12/07/2007 2:52 am | | | Título: |
| bueno... pues ya tengo dos de las tres cosas que necesitaba 
Ahora me falta la lógica... ¿Cómo hago que la ventana me aparezca ceñida a la esquina superior izquierda de la pantalla?
Os debo unas birras  |
|
| Volver arriba | |
 |
rir3760

Registrado: 01 Oct 2004 Mensajes: 3841 Ubicación: Mexico
| Publicado: 12/07/2007 7:23 am | | | Título: |
| Utilizando solo Win32 la forma de hacerlo es llamando a la funcion MoveWindow. El problema con esta funcion seria obtener el handle de la ventana, no manejo SDL por lo que habra que esperar la opinion de un usuario con experiencia en este para que nos indique si es posible o hay una mejor opcion propia de SDL.
Un saludo _________________ The capacity to learn is a gift; The ability to learn is a skill; The willingness to learn is a choice. -- Rebec of Ginaz |
|
| Volver arriba | |
 |
|
kingfoslide54
Registrado: 25 Dic 2006 Mensajes: 75
| Publicado: 12/07/2007 7:42 am | | | Título: |
| Muchas gracias, rir, esperaremos 
Mientras, otra preguntita al aire...
¿Cómo puedo crear en SDL una imagen del tamaño que quiera, que no sea cargando un mapa ya existente?
Un saludo. |
|
| Volver arriba | |
 |
|
|