Foros del Web » Programación para mayores de 30 ;) » C/C++ »

problema al dibujar mucho bitmap

Estas en el tema de problema al dibujar mucho bitmap en el foro de C/C++ en Foros del Web. Hola, mi problema es que después de hacer dibujado es una ventana un bitmap, para borrarlo dibujo otro encima del color del fondo, y luego ...
  #1 (permalink)  
Antiguo 01/05/2007, 12:21
 
Fecha de Ingreso: abril-2007
Mensajes: 16
Antigüedad: 17 años, 1 mes
Puntos: 0
problema al dibujar mucho bitmap

Hola, mi problema es que después de hacer dibujado es una ventana un bitmap, para borrarlo dibujo otro encima del color del fondo, y luego puedo volver a dibujar encima otro bitmap diferente. El problema e sque después de hacer esta operación 3 o 4 veces,( algunas veces incluso mas), ya no se dibuja el bitmap que se debería dibujar.
En el tema de programación está bien, y sospecho que el problema puede ser que se llene algun tipo de buffer, o que se agote la memoria., o algo por el estilo.
Si alguien conoce alguna función que vacie el buffer o algo por estilo, le agradería mucho que me la dijera. Muchas gracias
  #2 (permalink)  
Antiguo 01/05/2007, 21:13
 
Fecha de Ingreso: noviembre-2003
Ubicación: Mexico
Mensajes: 1.081
Antigüedad: 20 años, 5 meses
Puntos: 7
Re: problema al dibujar mucho bitmap

esa tecnica no es muy eficiente que digamos.....

si tu bitmap contiene animaciones, lo que debes de hacer, es crear una especie de bitmap temporal, sobre el cual vas a dibujar TODOS tus demas bitmaps, y ya luego mandas ese bitmap temporal a dibujar en pantalla.

Pero bueno, eso no resuelve tu problema....

la pregunta es:
que libreria estas usando para dibujar los bitmaps?

saludos,
  #3 (permalink)  
Antiguo 02/05/2007, 04:35
 
Fecha de Ingreso: abril-2007
Mensajes: 16
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: problema al dibujar mucho bitmap

utilizo la libreria windows.h

el problema es al redibujar, que llega un momento en el cual no se redibujan.pero al principio si, y eso es lo preocupante. Ya no se que hacer
  #4 (permalink)  
Antiguo 02/05/2007, 10:58
 
Fecha de Ingreso: noviembre-2003
Ubicación: Mexico
Mensajes: 1.081
Antigüedad: 20 años, 5 meses
Puntos: 7
Re: problema al dibujar mucho bitmap

puedes poner tu codigo donde cargas la imagen y la mandas a dibujar?
  #5 (permalink)  
Antiguo 02/05/2007, 14:51
 
Fecha de Ingreso: abril-2007
Mensajes: 16
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: problema al dibujar mucho bitmap

gracias por molestarte. la verdad es que me esoty desesperando, ya que he invertido muchas horas en hacer este juego que debo entregar como proyecto de una asignatura de la universidad; y ya lo tengo acabado, pero me da fallo en la 2 o la tercera partida siempre(si reinicio partida desde el juego, que lo que hago es repintar el fondo de las casillas del color de fondo, ya que no se eliminar el bitmap, si salgo y vuelvo a ejecutar me va de cine), pero el fallo es siempre al dibujar ficha



Código:
void dibujaficharedonda(HBITMAP hBitmap, HDC hdc,HWND hwnd)
{
       
                          HDC memDC = CreateCompatibleDC(hdc);
                          SelectObject(memDC, hBitmap);
                          BitBlt(hdc, 0,0, 140, 100, memDC, 0, 0, SRCCOPY);
                          DeleteDC(memDC);
                         
                          turno++;
                          jugadas++;
                         
                          EnableWindow(hwnd,FALSE);         /*Inhibe la ventana para que no se dibujen otras cosas*/
                         
}

Última edición por figal87; 02/05/2007 a las 15:02 Razón: etiqueta de codigo
  #6 (permalink)  
Antiguo 03/05/2007, 03:21
 
Fecha de Ingreso: noviembre-2003
Ubicación: Mexico
Mensajes: 1.081
Antigüedad: 20 años, 5 meses
Puntos: 7
Re: problema al dibujar mucho bitmap

que tal,

no estoy seguro que hagan estas 2 lineas:
SelectObject(memDC, hBitmap);
BitBlt(hdc, 0,0, 140, 100, memDC, 0, 0, SRCCOPY);


Pero... que no deberias de pasarle hBitmap a BitBlt()?

Tambien creo que deberias de tener tu funcion para crear los bitmpas cuando se inicie el programa, y otro para cuando se termine llamar a los delete...

Otra cosa.... cuando termina el juego.... que haces de diferente para llamar a dibujarFichaRedonda()?
borras todo lo anterior y lo vuelves a cargar? podrias poner tambien esa parte del codigo?
  #7 (permalink)  
Antiguo 03/05/2007, 05:01
 
Fecha de Ingreso: abril-2007
Mensajes: 16
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: problema al dibujar mucho bitmap

SelectObject(memDC, hBitmap); es la encargada de pasar a BitBlt(hdc, 0,0, 140, 100, memDC, 0, 0, SRCCOPY); el bitmap correspondiente mediante el dc.

La función de dibujarFichaRedonda(); es la misma al iniciar una nueva partida.

Yo creo que el problema esta en que al iniciar una partida nueva, lo que hago es pintar con un bitmap el fondo de las casillas, del mismo color que el fondo de la ventana.

Si supiera alguien alguna forma de borrar un bitmap o de reiniciar la aplicación entera , es decir de llamar a ejecución al mismo programa de nuevo, yo creo que se resolveríami problema.

Gracias y un saludo
  #8 (permalink)  
Antiguo 03/05/2007, 17:52
 
Fecha de Ingreso: noviembre-2003
Ubicación: Mexico
Mensajes: 1.081
Antigüedad: 20 años, 5 meses
Puntos: 7
Re: problema al dibujar mucho bitmap

estoy casi seguro que el problema ha de ser que cuando empieza una nueva partida no estas borrando o reinicializando bien los datos utilizados.... pero eso no se puede saber sin ve el codigo.....
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:34.