- Código: Seleccionar todo
- // Listado: compatibilidad_video.h
 #ifndef _COMPATIBILIDAD_SDL_
 #define _COMPATIBILIDAD_SDL_
 // Precondición: Subsistema de video de SDL activo.
 // Postcondición: Realiza comprobaciones de compatibilidad de
 // SDL con varias opciones de inicialización.
 void compatibilidad_video_sdl(int w, int h, int bpp);
 #endif
Segun he leido, #define sirve para declarar una constante?
y #ifndef comprueba que esa constante no este declarada?
Es asi? Por que hacer eso?
Que representa que es _COMPATIBILIDAD_SDL_, es ningun momento se usa en todo el codigo:
- Código: Seleccionar todo
- 1 // Listado: compatibilidad_video.c
 2 ;// Comprueba la compatibilidad del sistema con los modos de video de libsdl
 3 ;// mediante el método ensayo-error
 4 ;
 5 ;#include <stdio.h>
 6 ;#include <SDL/SDL.h>
 7 ;#include "compatibilidad_video.h"
 8 ;
 9 ;
 10 ;void compatibilidad_video_sdl(int w, int h, int bpp)
 11 ;{
 12 ;
 13 ; // Nuestro "rectángulo" gráfico con la información de video a mostrar;
 14 ;
 15 ; SDL_Surface *pantalla;
 16 ;
 17 ; // Vamos a probar los diferentes parametros de SetVideoMode
 18 ;
 19 ; // Almacenando la superficie en memoria principal a w x h x bpp
 20 ;
 21 ; pantalla = SDL_SetVideoMode(w, h, bpp, SDL_SWSURFACE);
 22 ;
 23 ; if(pantalla == NULL)
 24 ; printf("SDL_SWSURFACE %d x %d x %d no compatible. Error: %s\n",
 25 ; w, h, bpp, SDL_GetError());
 26 ; else
 27 ; printf("Compatible con SDL_SWSURFACE %d x %d x %d\n", w, h, bpp);
 28 ;
 29 ; // Almacenando la superficia en memoria de video a w x h x bpp
 30 ;
 31 ; pantalla = SDL_SetVideoMode(w, h, bpp, SDL_HWSURFACE);
 32 ;
 33 ; if(pantalla == NULL)
 34 ; printf("SDL_HWSURFACE %d x %d x %d no compatible. Error: %s\n",
 35 ; w, h, bpp, SDL_GetError());
 36 ; else {
 37 ;
 38 ; printf("Compatible con SDL_HWSURFACE %d x %d x %d\n", w, h, bpp);
 39 ;
 40 ; // ¾Es compatible con el doble búffer? Sólo con HWSURFACE
 41 ; pantalla = SDL_SetVideoMode(w, h, bpp, SDL_HWSURFACE | SDL_DOUBLEBUF);
 42 ; if(pantalla == NULL)
 43 ; printf("SDL_DOUBLEBUF %d x %d x %d no compatible. Error: %s\n",
 44 ; w, h, bpp, SDL_GetError());
 45 ; else
 46 ; printf("Compatible con SDL_DOUBLEBUF %d x %d x %d\n", w, h, bpp);
 47 ; }
 48 ;
 49 ; // Blit asíncrono para mejorar rendimiento en máquinas multiprocesador
 50 ; pantalla = SDL_SetVideoMode(w, h, bpp, SDL_ASYNCBLIT);
 51 ; if(pantalla == NULL)
 52 ; printf("SDL_ASYNCBLIT %d x %d x %d no compatible. Error: %s\n",
 53 ; w, h, bpp, SDL_GetError());
 54 ; else
 55 ; printf("Compatible con SDL_ASYNCBLIT %d x %d x %d\n", w, h, bpp);
 56 ;
 57 ; // Forzamos los bpp en modo ventana
 58 ; pantalla = SDL_SetVideoMode(w, h, bpp, SDL_ANYFORMAT);
 59 ; if(pantalla == NULL)
 60 ; printf("SDL_ANYFORMAT %d x %d x %d no compatible. Error: %s\n",
 61 ; w, h, bpp, SDL_GetError());
 62 ; else
 63 ; printf("Compatible con SDL_ANYFORMAT %d x %d x %d\n", w, h, bpp);
 64 ;
 65 ;
 66 ; // Acceso exclusivo a la paleta de color
 67 ; pantalla = SDL_SetVideoMode(w, h, bpp, SDL_HWPALETTE);
 68 ; if(pantalla == NULL)
 69 ; printf("SDL_HWPALETTE %d x %d x %d no compatible. Error: %s\n",
 70 ; w, h, bpp, SDL_GetError());
 71 ; else
 72 ; printf("Compatible con SDL_HWPALETTE %d x %d x %d\n", w, h, bpp);
 73 ;
 74 ;
 75 ; // Modo a pantalla completa
 76 ; pantalla = SDL_SetVideoMode(w, h, bpp, SDL_FULLSCREEN);
 77 ; if(pantalla == NULL)
 78 ; printf("SDL_FULLSCREEN %d x %d x %d no compatible. Error: %s\n",
 79 ; w, h, bpp, SDL_GetError());
 80 ; else
 81 ; printf("Compatible con SDL_FULLSCREEN %d x %d x %d\n", w, h, bpp);
 82 ;
 83 ;
 84 ; // Crear un contexto OpenGL en la superficie
 85 ; pantalla = SDL_SetVideoMode(w, h, bpp, SDL_OPENGL);
 86 ; if(pantalla == NULL)
 87 ; printf("SDL_OPENGL %d x %d x %d no compatible. Error: %s\n",
 88 ; w, h, bpp, SDL_GetError());
 89 ; else
 90 ; printf("Compatible con SDL_OPENGL %d x %d x %d\n", w, h, bpp);
 91 ;
 92 ;
 93 ; // Crear un contexto OpenGL en la superficie y
 94 ; // permitir renderizado opengl
 95 ; pantalla = SDL_SetVideoMode(w, h, bpp, SDL_OPENGLBLIT);
 96 ; if(pantalla == NULL)
 97 ; printf("SDL_OPENGLBLIT %d x %d x %d no compatible. Error: %s\n",
 98 ; w, h, bpp, SDL_GetError());
 99 ; else
 100 ; printf("Compatible con SDL_OPENGLBLIT %d x %d x %d\n", w, h, bpp);
 101 ;
 102 ; // Permite que la superficie principal pueda cambiarsele el tamaño
 103 ; pantalla = SDL_SetVideoMode(w, h, bpp, SDL_RESIZABLE);
 104 ; if(pantalla == NULL)
 105 ; printf("SDL_RESIZABLE %d x %d x %d no compatible. Error: %s\n",
 106 ; w, h, bpp, SDL_GetError());
 107 ; else
 108 ; printf("Compatible con SDL_RESIZABLE %d x %d x %d\n", w, h, bpp);
 109 ;
 110 ; pantalla = SDL_SetVideoMode(w, h, bpp, SDL_NOFRAME);
 111 ; if(pantalla == NULL)
 112 ; printf("SDL_NOFRAME %d x %d x %d no compatible. Error: %s\n",
 113 ; w, h, bpp, SDL_GetError());
 114 ; else
 115 ; printf("Compatible con SDL_NOFRAME %d x %d x %d\n", w, h, bpp);
 116 ;
 117 ;
 118 ;}
Lo siento si es una duda muy basica pero de verdad que no lo entiendo, gracias por la ayuda




 XDD
 XDD


