Mercurial > sdl-ios-xcode
annotate test/automated/surface/surface.c @ 3720:09bbf9dc41ed gsoc2009_unit_tests
Changed the surface blit test to test colour and alpha mod individually.
author | Edgar Simo <bobbens@gmail.com> |
---|---|
date | Thu, 09 Jul 2009 10:21:03 +0000 |
parents | 15373e31daff |
children | 9bb7758a9741 |
rev | line source |
---|---|
3715
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
1 /** |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
2 * Automated SDL_Surface test. |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
3 * |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
4 * Written by Edgar Simo "bobbens" |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
5 * |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
6 * Released under Public Domain. |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
7 */ |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
8 |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
9 |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
10 #include "SDL.h" |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
11 #include "SDL_at.h" |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
12 |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
13 |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
14 #if (SDL_BYTEORDER == SDL_BIG_ENDIAN) |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
15 # define RMASK 0xff000000 /**< Red bit mask. */ |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
16 # define GMASK 0x00ff0000 /**< Green bit mask. */ |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
17 # define BMASK 0x0000ff00 /**< Blue bit mask. */ |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
18 # define AMASK 0x000000ff /**< Alpha bit mask. */ |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
19 #else |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
20 # define RMASK 0x000000ff /**< Red bit mask. */ |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
21 # define GMASK 0x0000ff00 /**< Green bit mask. */ |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
22 # define BMASK 0x00ff0000 /**< Blue bit mask. */ |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
23 # define AMASK 0xff000000 /**< Alpha bit mask. */ |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
24 #endif |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
25 |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
26 |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
27 typedef struct SurfaceImage_s { |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
28 unsigned int width; |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
29 unsigned int height; |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
30 unsigned int bytes_per_pixel; /* 3:RGB, 4:RGBA */ |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
31 const unsigned char pixel_data[]; |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
32 } SurfaceImage_t; |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
33 |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
34 |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
35 /* |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
36 * Pull in images for testcases. |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
37 */ |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
38 #include "primitives.c" |
3716
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
39 #include "blend.c" |
3718
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
40 #include "face.c" |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
41 #include "blit.c" |
3715
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
42 |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
43 |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
44 /** |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
45 * @brief Compares a surface and a surface image for equality. |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
46 * |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
47 * @param sur Surface to compare. |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
48 * @param img Image to compare against. |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
49 * @return 0 if they are the same, -1 on error and positive if different. |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
50 */ |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
51 static int surface_compare( SDL_Surface *sur, const SurfaceImage_t *img ) |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
52 { |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
53 int ret; |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
54 int i,j; |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
55 Uint32 pix; |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
56 int bpp; |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
57 Uint8 *p, *pd; |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
58 |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
59 /* Make sure size is the same. */ |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
60 if ((sur->w != img->width) || (sur->h != img->height)) |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
61 return -1; |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
62 |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
63 SDL_LockSurface( sur ); |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
64 |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
65 ret = 0; |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
66 bpp = sur->format->BytesPerPixel; |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
67 |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
68 /* Compare image - should be same format. */ |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
69 for (j=0; j<sur->h; j++) { |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
70 for (i=0; i<sur->w; i++) { |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
71 p = (Uint8 *)sur->pixels + j * sur->pitch + i * bpp; |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
72 pd = (Uint8 *)img->pixel_data + (j*img->width + i) * img->bytes_per_pixel; |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
73 switch (bpp) { |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
74 case 1: |
3720
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
75 case 2: |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
76 case 3: |
3715
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
77 ret += 1; |
3720
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
78 printf("%d BPP not supported yet.\n",bpp); |
3715
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
79 break; |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
80 |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
81 case 4: |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
82 ret += !( (p[0] == pd[0]) && |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
83 (p[1] == pd[1]) && |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
84 (p[2] == pd[2]) ); |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
85 break; |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
86 } |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
87 } |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
88 } |
3720
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
89 |
3715
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
90 SDL_UnlockSurface( sur ); |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
91 |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
92 return ret; |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
93 } |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
94 |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
95 |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
96 /** |
3718
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
97 * @brief Tests sprite loading. |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
98 */ |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
99 static void surface_testLoad (void) |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
100 { |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
101 int ret; |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
102 SDL_Surface *face, *rface, *testsur; |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
103 |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
104 SDL_ATbegin( "Load Test" ); |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
105 |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
106 /* Create the blit surface. */ |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
107 face = SDL_LoadBMP("../icon.bmp"); |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
108 if (SDL_ATassert( "SDL_CreateLoadBmp", face != NULL)) |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
109 return; |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
110 |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
111 /* Set transparent pixel as the pixel at (0,0) */ |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
112 if (face->format->palette) { |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
113 ret = SDL_SetColorKey(face, (SDL_SRCCOLORKEY | SDL_RLEACCEL), |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
114 *(Uint8 *) face->pixels); |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
115 if (SDL_ATassert( "SDL_SetColorKey", ret == 0)) |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
116 return; |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
117 } |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
118 |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
119 /* Create the test surface. */ |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
120 testsur = SDL_CreateRGBSurface( 0, 80, 60, 32, |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
121 RMASK, GMASK, BMASK, AMASK ); |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
122 if (SDL_ATassert( "SDL_CreateRGBSurface", testsur != NULL)) |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
123 return; |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
124 |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
125 /* Convert to 32 bit to compare. */ |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
126 rface = SDL_ConvertSurface( face, testsur->format, 0 ); |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
127 if (SDL_ATassert( "SDL_ConvertSurface", rface != NULL)) |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
128 return; |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
129 |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
130 /* See if it's the same. */ |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
131 if (SDL_ATassert( "Primitives output not the same.", |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
132 surface_compare( rface, &img_face)==0 )) |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
133 return; |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
134 |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
135 /* Clean up. */ |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
136 SDL_FreeSurface( testsur ); |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
137 SDL_FreeSurface( rface ); |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
138 SDL_FreeSurface( face ); |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
139 |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
140 SDL_ATend(); |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
141 } |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
142 |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
143 |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
144 /** |
3715
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
145 * @brief Tests the SDL primitives for rendering. |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
146 */ |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
147 static void surface_testPrimitives (void) |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
148 { |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
149 int ret; |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
150 int x, y; |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
151 SDL_Rect rect; |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
152 SDL_Surface *testsur; |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
153 |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
154 SDL_ATbegin( "Primitives Test" ); |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
155 |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
156 /* Create the surface. */ |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
157 testsur = SDL_CreateRGBSurface( 0, 80, 60, 32, |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
158 RMASK, GMASK, BMASK, AMASK ); |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
159 if (SDL_ATassert( "SDL_CreateRGBSurface", testsur != NULL)) |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
160 return; |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
161 |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
162 /* Draw a rectangle. */ |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
163 rect.x = 40; |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
164 rect.y = 0; |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
165 rect.w = 40; |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
166 rect.h = 80; |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
167 ret = SDL_FillRect( testsur, &rect, |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
168 SDL_MapRGB( testsur->format, 13, 73, 200 ) ); |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
169 if (SDL_ATassert( "SDL_FillRect", ret == 0)) |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
170 return; |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
171 |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
172 /* Draw a rectangle. */ |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
173 rect.x = 10; |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
174 rect.y = 10; |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
175 rect.w = 60; |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
176 rect.h = 40; |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
177 ret = SDL_FillRect( testsur, &rect, |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
178 SDL_MapRGB( testsur->format, 200, 0, 100 ) ); |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
179 if (SDL_ATassert( "SDL_FillRect", ret == 0)) |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
180 return; |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
181 |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
182 /* Draw some points like so: |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
183 * X.X.X.X.. |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
184 * .X.X.X.X. |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
185 * X.X.X.X.. */ |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
186 for (y=0; y<3; y++) { |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
187 x = y % 2; |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
188 for (; x<80; x+=2) |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
189 ret = SDL_DrawPoint( testsur, x, y, |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
190 SDL_MapRGB( testsur->format, x*y, x*y/2, x*y/3 ) ); |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
191 if (SDL_ATassert( "SDL_DrawPoint", ret == 0)) |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
192 return; |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
193 } |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
194 |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
195 /* Draw some lines. */ |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
196 ret = SDL_DrawLine( testsur, 0, 30, 80, 30, |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
197 SDL_MapRGB( testsur->format, 0, 255, 0 ) ); |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
198 if (SDL_ATassert( "SDL_DrawLine", ret == 0)) |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
199 return; |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
200 ret = SDL_DrawLine( testsur, 40, 30, 40, 60, |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
201 SDL_MapRGB( testsur->format, 55, 55, 5 ) ); |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
202 if (SDL_ATassert( "SDL_DrawLine", ret == 0)) |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
203 return; |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
204 ret = SDL_DrawLine( testsur, 0, 60, 80, 0, |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
205 SDL_MapRGB( testsur->format, 5, 105, 105 ) ); |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
206 if (SDL_ATassert( "SDL_DrawLine", ret == 0)) |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
207 return; |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
208 |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
209 /* See if it's the same. */ |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
210 if (SDL_ATassert( "Primitives output not the same.", |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
211 surface_compare( testsur, &img_primitives )==0 )) |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
212 return; |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
213 |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
214 /* Clean up. */ |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
215 SDL_FreeSurface( testsur ); |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
216 |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
217 SDL_ATend(); |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
218 } |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
219 |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
220 |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
221 /** |
3716
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
222 * @brief Tests the SDL primitives with alpha for rendering. |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
223 */ |
3720
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
224 static void surface_testPrimitivesBlend (void) |
3716
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
225 { |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
226 int ret; |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
227 int i, j; |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
228 SDL_Rect rect; |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
229 SDL_Surface *testsur; |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
230 |
3720
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
231 SDL_ATbegin( "Primitives Blend Test" ); |
3716
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
232 |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
233 /* Create the surface. */ |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
234 testsur = SDL_CreateRGBSurface( 0, 80, 60, 32, |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
235 RMASK, GMASK, BMASK, AMASK ); |
3718
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
236 if (SDL_ATassert( "SDL_CreateRGBSurface", testsur != NULL)) |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
237 return; |
3716
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
238 |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
239 /* Create some rectangles for each blend mode. */ |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
240 ret = SDL_BlendRect( testsur, NULL, SDL_BLENDMODE_NONE, 255, 255, 255, 0 ); |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
241 if (SDL_ATassert( "SDL_BlendRect", ret == 0)) |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
242 return; |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
243 rect.x = 10; |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
244 rect.y = 25; |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
245 rect.w = 40; |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
246 rect.h = 25; |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
247 ret = SDL_BlendRect( testsur, &rect, SDL_BLENDMODE_ADD, 240, 10, 10, 75 ); |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
248 if (SDL_ATassert( "SDL_BlendRect", ret == 0)) |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
249 return; |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
250 rect.x = 30; |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
251 rect.y = 40; |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
252 rect.w = 45; |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
253 rect.h = 15; |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
254 ret = SDL_BlendRect( testsur, &rect, SDL_BLENDMODE_BLEND, 10, 240, 10, 100 ); |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
255 if (SDL_ATassert( "SDL_BlendRect", ret == 0)) |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
256 return; |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
257 rect.x = 25; |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
258 rect.y = 25; |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
259 rect.w = 25; |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
260 rect.h = 25; |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
261 ret = SDL_BlendRect( testsur, &rect, SDL_BLENDMODE_MOD, 10, 10, 240, 125 ); |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
262 if (SDL_ATassert( "SDL_BlendRect", ret == 0)) |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
263 return; |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
264 |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
265 /* Draw blended lines, lines for everyone. */ |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
266 for (i=0; i<testsur->w; i+=2) { |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
267 ret = SDL_BlendLine( testsur, 0, 0, i, 59, |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
268 (((i/2)%3)==0) ? SDL_BLENDMODE_BLEND : |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
269 (((i/2)%3)==1) ? SDL_BLENDMODE_ADD : SDL_BLENDMODE_MOD, |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
270 60+2*j, 240-2*j, 50, 3*j ); |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
271 if (SDL_ATassert( "SDL_BlendLine", ret == 0)) |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
272 return; |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
273 } |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
274 for (i=0; i<testsur->h; i+=2) { |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
275 ret = SDL_BlendLine( testsur, 0, 0, 79, i, |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
276 (((i/2)%3)==0) ? SDL_BLENDMODE_BLEND : |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
277 (((i/2)%3)==1) ? SDL_BLENDMODE_ADD : SDL_BLENDMODE_MOD, |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
278 60+2*j, 240-2*j, 50, 3*j ); |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
279 if (SDL_ATassert( "SDL_BlendLine", ret == 0)) |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
280 return; |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
281 } |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
282 |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
283 /* Draw points. */ |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
284 for (j=0; j<testsur->h; j+=3) { |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
285 for (i=0; i<testsur->w; i+=3) { |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
286 ret = SDL_BlendPoint( testsur, i, j, |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
287 ((((i+j)/3)%3)==0) ? SDL_BLENDMODE_BLEND : |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
288 ((((i+j)/3)%3)==1) ? SDL_BLENDMODE_ADD : SDL_BLENDMODE_MOD, |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
289 j*4, i*3, j*4, i*3 ); |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
290 if (SDL_ATassert( "SDL_BlendPoint", ret == 0)) |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
291 return; |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
292 } |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
293 } |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
294 |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
295 /* See if it's the same. */ |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
296 if (SDL_ATassert( "Primitives output not the same.", |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
297 surface_compare( testsur, &img_blend )==0 )) |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
298 return; |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
299 |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
300 /* Clean up. */ |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
301 SDL_FreeSurface( testsur ); |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
302 |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
303 SDL_ATend(); |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
304 } |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
305 |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
306 |
ac6bc19a2dfb
Added surfarce blend rendering functions testcase.
Edgar Simo <bobbens@gmail.com>
parents:
3715
diff
changeset
|
307 /** |
3718
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
308 * @brief Tests some blitting routines. |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
309 */ |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
310 static void surface_testBlit (void) |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
311 { |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
312 int ret; |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
313 SDL_Rect rect; |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
314 SDL_Surface *face, *testsur; |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
315 int i, j, ni, nj; |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
316 int mode; |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
317 |
3720
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
318 SDL_ATbegin( "Blit Tests" ); |
3718
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
319 |
3719 | 320 /* Create face surface. */ |
3718
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
321 face = SDL_CreateRGBSurfaceFrom( (void*)img_face.pixel_data, |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
322 img_face.width, img_face.height, 32, img_face.width*4, |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
323 RMASK, GMASK, BMASK, AMASK ); |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
324 if (SDL_ATassert( "SDL_CreateRGBSurfaceFrom", face != NULL)) |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
325 return; |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
326 |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
327 /* Create the test surface. */ |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
328 testsur = SDL_CreateRGBSurface( 0, 80, 60, 32, |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
329 RMASK, GMASK, BMASK, AMASK ); |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
330 if (SDL_ATassert( "SDL_CreateRGBSurface", testsur != NULL)) |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
331 return; |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
332 |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
333 /* Constant values. */ |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
334 rect.w = face->w; |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
335 rect.h = face->h; |
3720
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
336 ni = testsur->w - face->w; |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
337 nj = testsur->h - face->h; |
3718
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
338 |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
339 /* Loop blit. */ |
3720
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
340 for (j=0; j <= nj; j+=4) { |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
341 for (i=0; i <= ni; i+=4) { |
3718
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
342 /* Blitting. */ |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
343 rect.x = i; |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
344 rect.y = j; |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
345 ret = SDL_BlitSurface( face, NULL, testsur, &rect ); |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
346 if (SDL_ATassert( "SDL_BlitSurface", ret == 0)) |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
347 return; |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
348 } |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
349 } |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
350 |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
351 /* See if it's the same. */ |
3720
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
352 if (SDL_ATassert( "Blitting output not the same (normal blit).", |
3718
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
353 surface_compare( testsur, &img_blit )==0 )) |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
354 return; |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
355 |
3720
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
356 /* Clear surface. */ |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
357 ret = SDL_FillRect( testsur, NULL, |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
358 SDL_MapRGB( testsur->format, 0, 0, 0 ) ); |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
359 if (SDL_ATassert( "SDL_FillRect", ret == 0)) |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
360 return; |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
361 |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
362 /* Test blitting with colour mod. */ |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
363 for (j=0; j <= nj; j+=4) { |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
364 for (i=0; i <= ni; i+=4) { |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
365 /* Set colour mod. */ |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
366 ret = SDL_SetSurfaceColorMod( face, (255/nj)*j, (255/ni)*i, (255/nj)*j ); |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
367 if (SDL_ATassert( "SDL_SetSurfaceColorMod", ret == 0)) |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
368 return; |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
369 |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
370 /* Blitting. */ |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
371 rect.x = i; |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
372 rect.y = j; |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
373 ret = SDL_BlitSurface( face, NULL, testsur, &rect ); |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
374 if (SDL_ATassert( "SDL_BlitSurface", ret == 0)) |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
375 return; |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
376 } |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
377 } |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
378 |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
379 /* See if it's the same. */ |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
380 if (SDL_ATassert( "Blitting output not the same (using SDL_SetSurfaceColorMod).", |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
381 surface_compare( testsur, &img_blitColour )==0 )) |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
382 return; |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
383 |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
384 /* Clear surface. */ |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
385 ret = SDL_FillRect( testsur, NULL, |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
386 SDL_MapRGB( testsur->format, 0, 0, 0 ) ); |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
387 if (SDL_ATassert( "SDL_FillRect", ret == 0)) |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
388 return; |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
389 |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
390 /* Restore colour. */ |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
391 ret = SDL_SetSurfaceColorMod( face, 255, 255, 255 ); |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
392 if (SDL_ATassert( "SDL_SetSurfaceColorMod", ret == 0)) |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
393 return; |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
394 |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
395 /* Test blitting with colour mod. */ |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
396 for (j=0; j <= nj; j+=4) { |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
397 for (i=0; i <= ni; i+=4) { |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
398 /* Set alpha mod. */ |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
399 ret = SDL_SetSurfaceAlphaMod( face, (255/ni)*i ); |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
400 if (SDL_ATassert( "SDL_SetSurfaceAlphaMod", ret == 0)) |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
401 return; |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
402 |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
403 /* Blitting. */ |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
404 rect.x = i; |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
405 rect.y = j; |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
406 ret = SDL_BlitSurface( face, NULL, testsur, &rect ); |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
407 if (SDL_ATassert( "SDL_BlitSurface", ret == 0)) |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
408 return; |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
409 } |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
410 } |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
411 |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
412 /* See if it's the same. */ |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
413 if (SDL_ATassert( "Blitting output not the same (using SDL_SetSurfaceAlphaMod).", |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
414 surface_compare( testsur, &img_blitAlpha )==0 )) |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
415 return; |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
416 |
3718
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
417 /* Clean up. */ |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
418 SDL_FreeSurface( face ); |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
419 SDL_FreeSurface( testsur ); |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
420 |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
421 SDL_ATend(); |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
422 } |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
423 |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
424 |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
425 /** |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
426 * @brief Tests some more blitting routines. |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
427 */ |
3720
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
428 static void surface_testBlitBlend (void) |
3718
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
429 { |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
430 int ret; |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
431 SDL_Rect rect; |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
432 SDL_Surface *face, *testsur; |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
433 int i, j, ni, nj; |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
434 int mode; |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
435 |
3720
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
436 SDL_ATbegin( "Blit Blending Tests" ); |
3718
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
437 |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
438 /* Create the blit surface. */ |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
439 face = SDL_CreateRGBSurfaceFrom( (void*)img_face.pixel_data, |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
440 img_face.width, img_face.height, 32, img_face.width*4, |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
441 RMASK, GMASK, BMASK, AMASK ); |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
442 if (SDL_ATassert( "SDL_CreateRGBSurfaceFrom", face != NULL)) |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
443 return; |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
444 |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
445 /* Create the test surface. */ |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
446 testsur = SDL_CreateRGBSurface( 0, 80, 60, 32, |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
447 RMASK, GMASK, BMASK, AMASK ); |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
448 if (SDL_ATassert( "SDL_CreateRGBSurface", testsur != NULL)) |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
449 return; |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
450 |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
451 /* Steps to take. */ |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
452 ni = 40; |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
453 nj = 30; |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
454 |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
455 /* Constant values. */ |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
456 rect.w = face->w; |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
457 rect.h = face->h; |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
458 |
3720
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
459 /* Test blitting with colour mod. */ |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
460 for (j=0; j <= nj; j+=4) { |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
461 for (i=0; i <= ni; i+=4) { |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
462 /* Set alpha mod. */ |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
463 ret = SDL_SetSurfaceAlphaMod( face, (255/ni)*i ); |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
464 if (SDL_ATassert( "SDL_SetSurfaceAlphaMod", ret == 0)) |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
465 return; |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
466 |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
467 /* Blitting. */ |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
468 rect.x = i; |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
469 rect.y = j; |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
470 ret = SDL_BlitSurface( face, NULL, testsur, &rect ); |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
471 if (SDL_ATassert( "SDL_BlitSurface", ret == 0)) |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
472 return; |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
473 } |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
474 } |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
475 |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
476 SDL_SaveBMP( testsur, "testsur.bmp" ); |
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
477 |
3718
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
478 /* Loop blit. */ |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
479 for (j=0; j <= testsur->h - face->h; j+=4) { |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
480 for (i=0; i <= testsur->w - face->w; i+=4) { |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
481 |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
482 /* Set colour mod. */ |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
483 ret = SDL_SetSurfaceColorMod( face, (255/nj)*j, (255/ni)*i, (255/nj)*j ); |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
484 if (SDL_ATassert( "SDL_SetSurfaceColorMod", ret == 0)) |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
485 return; |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
486 |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
487 /* Set alpha mod. */ |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
488 ret = SDL_SetSurfaceAlphaMod( face, (255/ni)*i ); |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
489 if (SDL_ATassert( "SDL_SetSurfaceAlphaMod", ret == 0)) |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
490 return; |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
491 |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
492 /* Crazy blending mode magic. */ |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
493 mode = (i*j)%5; |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
494 if (mode==0) mode = SDL_BLENDMODE_NONE; |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
495 else if (mode==1) mode = SDL_BLENDMODE_MASK; |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
496 else if (mode==2) mode = SDL_BLENDMODE_BLEND; |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
497 else if (mode==3) mode = SDL_BLENDMODE_ADD; |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
498 else if (mode==4) mode = SDL_BLENDMODE_MOD; |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
499 ret = SDL_SetSurfaceBlendMode( face, mode ); |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
500 if (SDL_ATassert( "SDL_SetSurfaceBlendMode", ret == 0)) |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
501 return; |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
502 |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
503 /* Blitting. */ |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
504 rect.x = i; |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
505 rect.y = j; |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
506 ret = SDL_BlitSurface( face, NULL, testsur, &rect ); |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
507 if (SDL_ATassert( "SDL_BlitSurface", ret == 0)) |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
508 return; |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
509 } |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
510 } |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
511 |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
512 SDL_SaveBMP( testsur, "blit.bmp" ); |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
513 |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
514 /* Clean up. */ |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
515 SDL_FreeSurface( face ); |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
516 SDL_FreeSurface( testsur ); |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
517 |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
518 SDL_ATend(); |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
519 } |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
520 |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
521 |
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
522 /** |
3715
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
523 * @brief Entry point. |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
524 */ |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
525 int main( int argc, const char *argv[] ) |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
526 { |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
527 SDL_ATinit( "SDL_Surface" ); |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
528 |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
529 /* Initializes the SDL subsystems. */ |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
530 SDL_Init(0); |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
531 |
3718
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
532 surface_testLoad(); |
3715
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
533 surface_testPrimitives(); |
3720
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
534 surface_testPrimitivesBlend(); |
3718
9d71382713b5
Added 3 new tests: loadsurface, blitting, alpha blitting.
Edgar Simo <bobbens@gmail.com>
parents:
3716
diff
changeset
|
535 surface_testBlit(); |
3720
09bbf9dc41ed
Changed the surface blit test to test colour and alpha mod individually.
Edgar Simo <bobbens@gmail.com>
parents:
3719
diff
changeset
|
536 /*surface_testBlitBlend();*/ |
3715
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
537 |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
538 /* Exit SDL. */ |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
539 SDL_Quit(); |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
540 |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
541 return SDL_ATfinish(1); |
3c9d9c052c8f
Initial revision of SDL_Surface testsuite.
Edgar Simo <bobbens@gmail.com>
parents:
diff
changeset
|
542 } |