- 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
