Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/08/2010, 22:20
davidtadeo
 
Fecha de Ingreso: agosto-2010
Mensajes: 153
Antigüedad: 14 años, 3 meses
Puntos: 1
Ayuda en SDL porfavor

Hola, estoy leyendo el tutorial, pero me e atorado por que no puedo compilar el programa que sale ahi, este es tal y como viene en el tutorial:

// Listado: pixels.h
2 ;// Fichero de Cabecera
3 ;// Funciones para el manejo de píxeles dentro de superficies
4 ;
5 ;#ifndef _PIXELS_H_
6 ;#dene _PIXELS_H_
7 ;
8 ;
9 ;enum colores {R, G, B};
10 ;
11 ;// Esta función sustituye el color del píxel (x, y) de la superficie
12 ;// surface por el color que recibe en el parámtro pixel
13 ;
14 ;void PutPixel(SDL_Surface *superficie, int x, int y, Uint32 pixel);
15 ;
16 ;
17 ;// Esta función devuelve el color del píxel de la
18 ;// posición (x, y) de la superficie
19 ;
20 ;Uint32 GetPixel(SDL_Surface *superficie, int x, int y);
21 ;
22 ;#endif ;

La implementación de estas funciones es:


1 // Listado: pixels.c
2 ;// Funciones para el manejo de píxeles dentro de superficies
3 ;
4 ;
5 ;#include <SDL/SDL.h>
6 ;#include "pixels.h"
7 ;
8 ;
9 ;void PutPixel(SDL_Surface *superficie, int x, int y, Uint32 pixel) {
10 ;
11 ; // Obtenemos la profundida de color
12 ;
13 ; int bpp = superficie->format->BytesPerPixel;
14 ;
15 ;
16 ; // Obtenemos la posición del píxel a sustituir
17 ;
18 ; Uint8 *p = (Uint8 *)superficie->pixels + y * superficie->pitch + x*bpp;
19 ;
20 ;
21 ; // Según sea la profundidad de color
22 ;
23 ; switch (bpp) {
24 ;
25 ; case 1: // 8 bits (256 colores)
26 ;
27 ; *p = pixel;
break;
29 ;
30 ; case 2: // 16 bits (65536 colores o HigColor)
31 ; *(Uint16 *)p = pixel;
32 ; break;
33 ;
34 ; case 3: // 24 bits (True Color)
35 ;
36 ; // Depende de la naturaleza del sistema
37 ; // Puede ser Big Endian o Little Endian
38 ;
39 ; if (SDL_BYTEORDER == SDL_BIG_ENDIAN) {
40 ;
41 ; // Calculamos cada una de las componentes de color
42 ; // 3 bytes, 3 posiciones
43 ;
44 ; p[R]=(pixel >> 16) & 0xFF;
45 ; p[G]=(pixel >> 8) & 0xFF;
46 ; p[B]=pixel & 0xFF;
47 ; }
48 ; else {
49 ;
50 ; // Calculamos cada una de las componentes de color
51 ; // 3 byes, 3 posiciones
52 ;
53 ; p[R]=pixel & 0xFF;
54 ; p[G]=(pixel >> 8) & 0xFF;
55 ; p[B]=(pixel >> 16) & 0xFF;
56 ;
57 ; }
58 ; break;
59 ;
60 ; case 4: // 32 bits (True Color + Alpha)
61 ;
62 ; *(Uint32 *) p = pixel;
63 ; break;
64 ; }
65 ;}
66 ;
67 ;
68 ;
69 ;
70 ;Uint32 GetPixel(SDL_Surface *superficie, int x, int y) {
71 ;
72 ; // Obtenemos la profunidad de color
73 ;
74 ; int bpp = superficie->format->BytesPerPixel;
75 ;
76 ;
77 ; // Obtenemos la posición del píxel a consultar
78 ;
79 ; Uint8 *p = (Uint8 *)superficie->pixels + \
80 ; y * superficie->pitch + x * bpp;
// Según sea la profundidad de color
84 ;
85 ; switch (bpp) {
86 ;
87 ; case 1: // 256 colores
88 ;
89 ; return *p;
90 ;
91 ; case 2: // 65536 colores
92 ;
93 ; return *(Uint16 *)p;
94 ;
95 ; case 3: // True Color
96 ;
97 ; // Según la naturaleza del sistema
98 ;
99 ; if (SDL_BYTEORDER == SDL_BIG_ENDIAN)
100 ;
101 ; // OR entre los distintos componentes del color
102 ;
103 ; return p[R] << 16 | p[G] << 8 | p[B];
104 ;
105 ; else
106 ;
107 ; // OR entre los distintos componentes del color
108 ;
109 ; return p[R] | p[G] << 8 | p[B] << 16;
110 ;
111 ; case 4: // True Color + Alpha
112 ;
113 ; return *(Uint32 *)p;
114 ;
115 ; default:
116 ;
117 ; return 0;
118 ; }
119 ;}


y yo lo que hice fue poner lo que dice archivo de cabecera como pixels.h y lo puse en la misma carpta donde se crea mi ejecutable y el otro en pixels.c, pero me dice error:


2 In file included from E:\Documents and Settings\Administrador\Escritorio\TADEO\ESTUDIO\ES TUDIO 4\SDL\a preguntar\PREGUNTA 3\pixels.c