SDL  2.0
testautomation_surface.c
Go to the documentation of this file.
1 /**
2  * Original code: automated SDL surface test written by Edgar Simo "bobbens"
3  * Adapted/rewritten for test lib by Andreas Schiffler
4  */
5 
6 /* Supress C4996 VS compiler warnings for unlink() */
7 #define _CRT_SECURE_NO_DEPRECATE
8 #define _CRT_NONSTDC_NO_DEPRECATE
9 
10 #include <stdio.h>
11 #ifndef _MSC_VER
12 #include <unistd.h>
13 #endif
14 #include <sys/stat.h>
15 
16 #include "SDL.h"
17 #include "SDL_test.h"
18 
19 #ifdef __MACOSX__
20 #include <unistd.h> /* For unlink() */
21 #endif
22 
23 /* ================= Test Case Implementation ================== */
24 
25 /* Shared test surface */
26 
29 
30 /* Helper functions for the test cases */
31 
32 #define TEST_SURFACE_WIDTH testSurface->w
33 #define TEST_SURFACE_HEIGHT testSurface->h
34 
35 /* Fixture */
36 
37 /* Create a 32-bit writable surface for blitting tests */
38 void
39 _surfaceSetUp(void *arg)
40 {
41  int result;
43  SDL_BlendMode currentBlendMode;
44  Uint32 rmask, gmask, bmask, amask;
45 #if SDL_BYTEORDER == SDL_BIG_ENDIAN
46  rmask = 0xff000000;
47  gmask = 0x00ff0000;
48  bmask = 0x0000ff00;
49  amask = 0x000000ff;
50 #else
51  rmask = 0x000000ff;
52  gmask = 0x0000ff00;
53  bmask = 0x00ff0000;
54  amask = 0xff000000;
55 #endif
56 
57  referenceSurface = SDLTest_ImageBlit(); /* For size info */
58  testSurface = SDL_CreateRGBSurface(SDL_SWSURFACE, referenceSurface->w, referenceSurface->h, 32, rmask, gmask, bmask, amask);
59  SDLTest_AssertCheck(testSurface != NULL, "Check that testSurface is not NULL");
60  if (testSurface != NULL) {
61  /* Disable blend mode for target surface */
63  SDLTest_AssertCheck(result == 0, "Validate result from SDL_SetSurfaceBlendMode, expected: 0, got: %i", result);
64  result = SDL_GetSurfaceBlendMode(testSurface, &currentBlendMode);
65  SDLTest_AssertCheck(result == 0, "Validate result from SDL_GetSurfaceBlendMode, expected: 0, got: %i", result);
66  SDLTest_AssertCheck(currentBlendMode == blendMode, "Validate blendMode, expected: %i, got: %i", blendMode, currentBlendMode);
67  }
68 }
69 
70 void
71 _surfaceTearDown(void *arg)
72 {
76  testSurface = NULL;
77 }
78 
79 /**
80  * Helper that clears the test surface
81  */
83 {
84  int ret;
85  Uint32 color;
86 
87  /* Clear surface. */
88  color = SDL_MapRGBA( testSurface->format, 0, 0, 0, 0);
89  SDLTest_AssertPass("Call to SDL_MapRGBA()");
91  SDLTest_AssertPass("Call to SDL_FillRect()");
92  SDLTest_AssertCheck(ret == 0, "Verify result from SDL_FillRect, expected: 0, got: %i", ret);
93 }
94 
95 /**
96  * Helper that blits in a specific blend mode, -1 for basic blitting, -2 for color mod, -3 for alpha mod, -4 for mixed blend modes.
97  */
99 {
100  int ret;
101  int i, j, ni, nj;
102  SDL_Surface *face;
103  SDL_Rect rect;
104  int nmode;
105  SDL_BlendMode bmode;
106  int checkFailCount1;
107  int checkFailCount2;
108  int checkFailCount3;
109  int checkFailCount4;
110 
111  /* Check test surface */
112  SDLTest_AssertCheck(testSurface != NULL, "Verify testSurface is not NULL");
113  if (testSurface == NULL) return;
114 
115  /* Create sample surface */
117  SDLTest_AssertCheck(face != NULL, "Verify face surface is not NULL");
118  if (face == NULL) return;
119 
120  /* Reset alpha modulation */
121  ret = SDL_SetSurfaceAlphaMod(face, 255);
122  SDLTest_AssertPass("Call to SDL_SetSurfaceAlphaMod()");
123  SDLTest_AssertCheck(ret == 0, "Verify result from SDL_SetSurfaceAlphaMod(), expected: 0, got: %i", ret);
124 
125  /* Reset color modulation */
126  ret = SDL_SetSurfaceColorMod(face, 255, 255, 255);
127  SDLTest_AssertPass("Call to SDL_SetSurfaceColorMod()");
128  SDLTest_AssertCheck(ret == 0, "Verify result from SDL_SetSurfaceColorMod(), expected: 0, got: %i", ret);
129 
130  /* Reset color key */
131  ret = SDL_SetColorKey(face, SDL_FALSE, 0);
132  SDLTest_AssertPass("Call to SDL_SetColorKey()");
133  SDLTest_AssertCheck(ret == 0, "Verify result from SDL_SetColorKey(), expected: 0, got: %i", ret);
134 
135  /* Clear the test surface */
137 
138  /* Target rect size */
139  rect.w = face->w;
140  rect.h = face->h;
141 
142  /* Steps to take */
143  ni = testSurface->w - face->w;
144  nj = testSurface->h - face->h;
145 
146  /* Optionally set blend mode. */
147  if (mode >= 0) {
149  SDLTest_AssertPass("Call to SDL_SetSurfaceBlendMode()");
150  SDLTest_AssertCheck(ret == 0, "Verify result from SDL_SetSurfaceBlendMode(..., %i), expected: 0, got: %i", mode, ret);
151  }
152 
153  /* Test blend mode. */
154  checkFailCount1 = 0;
155  checkFailCount2 = 0;
156  checkFailCount3 = 0;
157  checkFailCount4 = 0;
158  for (j=0; j <= nj; j+=4) {
159  for (i=0; i <= ni; i+=4) {
160  if (mode == -2) {
161  /* Set color mod. */
162  ret = SDL_SetSurfaceColorMod( face, (255/nj)*j, (255/ni)*i, (255/nj)*j );
163  if (ret != 0) checkFailCount2++;
164  }
165  else if (mode == -3) {
166  /* Set alpha mod. */
167  ret = SDL_SetSurfaceAlphaMod( face, (255/ni)*i );
168  if (ret != 0) checkFailCount3++;
169  }
170  else if (mode == -4) {
171  /* Crazy blending mode magic. */
172  nmode = (i/4*j/4) % 4;
173  if (nmode==0) {
174  bmode = SDL_BLENDMODE_NONE;
175  } else if (nmode==1) {
176  bmode = SDL_BLENDMODE_BLEND;
177  } else if (nmode==2) {
178  bmode = SDL_BLENDMODE_ADD;
179  } else if (nmode==3) {
180  bmode = SDL_BLENDMODE_MOD;
181  }
182  ret = SDL_SetSurfaceBlendMode( face, bmode );
183  if (ret != 0) checkFailCount4++;
184  }
185 
186  /* Blitting. */
187  rect.x = i;
188  rect.y = j;
190  if (ret != 0) checkFailCount1++;
191  }
192  }
193  SDLTest_AssertCheck(checkFailCount1 == 0, "Validate results from calls to SDL_BlitSurface, expected: 0, got: %i", checkFailCount1);
194  SDLTest_AssertCheck(checkFailCount2 == 0, "Validate results from calls to SDL_SetSurfaceColorMod, expected: 0, got: %i", checkFailCount2);
195  SDLTest_AssertCheck(checkFailCount3 == 0, "Validate results from calls to SDL_SetSurfaceAlphaMod, expected: 0, got: %i", checkFailCount3);
196  SDLTest_AssertCheck(checkFailCount4 == 0, "Validate results from calls to SDL_SetSurfaceBlendMode, expected: 0, got: %i", checkFailCount4);
197 
198  /* Clean up */
200  face = NULL;
201 }
202 
203 /* Helper to check that a file exists */
204 void
206 {
207  struct stat st;
208  int ret = stat(filename, &st);
209 
210  SDLTest_AssertCheck(ret == 0, "Verify file '%s' exists", filename);
211 }
212 
213 
214 /* Test case functions */
215 
216 /**
217  * @brief Tests sprite saving and loading
218  */
219 int
221 {
222  int ret;
223  const char *sampleFilename = "testSaveLoadBitmap.bmp";
224  SDL_Surface *face;
225  SDL_Surface *rface;
226 
227  /* Create sample surface */
229  SDLTest_AssertCheck(face != NULL, "Verify face surface is not NULL");
230  if (face == NULL) return TEST_ABORTED;
231 
232  /* Delete test file; ignore errors */
233  unlink(sampleFilename);
234 
235  /* Save a surface */
236  ret = SDL_SaveBMP(face, sampleFilename);
237  SDLTest_AssertPass("Call to SDL_SaveBMP()");
238  SDLTest_AssertCheck(ret == 0, "Verify result from SDL_SaveBMP, expected: 0, got: %i", ret);
239  _AssertFileExist(sampleFilename);
240 
241  /* Load a surface */
242  rface = SDL_LoadBMP(sampleFilename);
243  SDLTest_AssertPass("Call to SDL_LoadBMP()");
244  SDLTest_AssertCheck(rface != NULL, "Verify result from SDL_LoadBMP is not NULL");
245  if (rface != NULL) {
246  SDLTest_AssertCheck(face->w == rface->w, "Verify width of loaded surface, expected: %i, got: %i", face->w, rface->w);
247  SDLTest_AssertCheck(face->h == rface->h, "Verify height of loaded surface, expected: %i, got: %i", face->h, rface->h);
248  }
249 
250  /* Delete test file; ignore errors */
251  unlink(sampleFilename);
252 
253  /* Clean up */
255  face = NULL;
256  SDL_FreeSurface(rface);
257  rface = NULL;
258 
259  return TEST_COMPLETED;
260 }
261 
262 /* !
263  * Tests surface conversion.
264  */
265 int
267 {
268  SDL_Surface *rface = NULL, *face = NULL;
269  int ret = 0;
270 
271  /* Create sample surface */
273  SDLTest_AssertCheck(face != NULL, "Verify face surface is not NULL");
274  if (face == NULL)
275  return TEST_ABORTED;
276 
277  /* Set transparent pixel as the pixel at (0,0) */
278  if (face->format->palette) {
279  ret = SDL_SetColorKey(face, SDL_RLEACCEL, *(Uint8 *) face->pixels);
280  SDLTest_AssertPass("Call to SDL_SetColorKey()");
281  SDLTest_AssertCheck(ret == 0, "Verify result from SDL_SetColorKey, expected: 0, got: %i", ret);
282  }
283 
284  /* Convert to 32 bit to compare. */
285  rface = SDL_ConvertSurface( face, testSurface->format, 0 );
286  SDLTest_AssertPass("Call to SDL_ConvertSurface()");
287  SDLTest_AssertCheck(rface != NULL, "Verify result from SDL_ConvertSurface is not NULL");
288 
289  /* Compare surface. */
290  ret = SDLTest_CompareSurfaces( rface, face, 0 );
291  SDLTest_AssertCheck(ret == 0, "Validate result from SDLTest_CompareSurfaces, expected: 0, got: %i", ret);
292 
293  /* Clean up. */
295  face = NULL;
296  SDL_FreeSurface(rface);
297  rface = NULL;
298 
299  return TEST_COMPLETED;
300 }
301 
302 
303 /* !
304  * Tests surface conversion across all pixel formats.
305  */
306 int
308 {
309  Uint32 pixel_formats[] = {
337  };
338  SDL_Surface *face = NULL, *cvt1, *cvt2, *final;
339  SDL_PixelFormat *fmt1, *fmt2;
340  int i, j, ret = 0;
341 
342  /* Create sample surface */
344  SDLTest_AssertCheck(face != NULL, "Verify face surface is not NULL");
345  if (face == NULL)
346  return TEST_ABORTED;
347 
348  /* Set transparent pixel as the pixel at (0,0) */
349  if (face->format->palette) {
350  ret = SDL_SetColorKey(face, SDL_RLEACCEL, *(Uint8 *) face->pixels);
351  SDLTest_AssertPass("Call to SDL_SetColorKey()");
352  SDLTest_AssertCheck(ret == 0, "Verify result from SDL_SetColorKey, expected: 0, got: %i", ret);
353  }
354 
355  for ( i = 0; i < SDL_arraysize(pixel_formats); ++i ) {
356  for ( j = 0; j < SDL_arraysize(pixel_formats); ++j ) {
357  fmt1 = SDL_AllocFormat(pixel_formats[i]);
358  SDL_assert(fmt1 != NULL);
359  cvt1 = SDL_ConvertSurface(face, fmt1, 0);
360  SDL_assert(cvt1 != NULL);
361 
362  fmt2 = SDL_AllocFormat(pixel_formats[j]);
363  SDL_assert(fmt1 != NULL);
364  cvt2 = SDL_ConvertSurface(cvt1, fmt2, 0);
365  SDL_assert(cvt2 != NULL);
366 
367  if ( fmt1->BytesPerPixel == face->format->BytesPerPixel &&
368  fmt2->BytesPerPixel == face->format->BytesPerPixel &&
369  (fmt1->Amask != 0) == (face->format->Amask != 0) &&
370  (fmt2->Amask != 0) == (face->format->Amask != 0) ) {
371  final = SDL_ConvertSurface( cvt2, face->format, 0 );
372  SDL_assert(final != NULL);
373 
374  /* Compare surface. */
375  ret = SDLTest_CompareSurfaces( face, final, 0 );
376  SDLTest_AssertCheck(ret == 0, "Validate result from SDLTest_CompareSurfaces, expected: 0, got: %i", ret);
377  SDL_FreeSurface(final);
378  }
379 
380  SDL_FreeSurface(cvt1);
381  SDL_FreeFormat(fmt1);
382  SDL_FreeSurface(cvt2);
383  SDL_FreeFormat(fmt2);
384  }
385  }
386 
387  /* Clean up. */
389 
390  return TEST_COMPLETED;
391 }
392 
393 
394 /**
395  * @brief Tests sprite loading. A failure case.
396  */
397 int
399 {
400  SDL_Surface *face = SDL_LoadBMP("nonexistant.bmp");
401  SDLTest_AssertCheck(face == NULL, "SDL_CreateLoadBmp");
402 
403  return TEST_COMPLETED;
404 }
405 
406 /**
407  * @brief Tests some blitting routines.
408  */
409 int
411 {
412  int ret;
413  SDL_Surface *compareSurface;
414 
415  /* Basic blitting */
416  _testBlitBlendMode(-1);
417 
418  /* Verify result by comparing surfaces */
419  compareSurface = SDLTest_ImageBlit();
420  ret = SDLTest_CompareSurfaces( testSurface, compareSurface, 0 );
421  SDLTest_AssertCheck(ret == 0, "Validate result from SDLTest_CompareSurfaces, expected: 0, got: %i", ret);
422 
423  /* Clean up. */
424  SDL_FreeSurface(compareSurface);
425 
426  return TEST_COMPLETED;
427 }
428 
429 /**
430  * @brief Tests some blitting routines with color mod
431  */
432 int
434 {
435  int ret;
436  SDL_Surface *compareSurface;
437 
438  /* Basic blitting with color mod */
439  _testBlitBlendMode(-2);
440 
441  /* Verify result by comparing surfaces */
442  compareSurface = SDLTest_ImageBlitColor();
443  ret = SDLTest_CompareSurfaces( testSurface, compareSurface, 0 );
444  SDLTest_AssertCheck(ret == 0, "Validate result from SDLTest_CompareSurfaces, expected: 0, got: %i", ret);
445 
446  /* Clean up. */
447  SDL_FreeSurface(compareSurface);
448 
449  return TEST_COMPLETED;
450 }
451 
452 /**
453  * @brief Tests some blitting routines with alpha mod
454  */
455 int
457 {
458  int ret;
459  SDL_Surface *compareSurface;
460 
461  /* Basic blitting with alpha mod */
462  _testBlitBlendMode(-3);
463 
464  /* Verify result by comparing surfaces */
465  compareSurface = SDLTest_ImageBlitAlpha();
466  ret = SDLTest_CompareSurfaces( testSurface, compareSurface, 0 );
467  SDLTest_AssertCheck(ret == 0, "Validate result from SDLTest_CompareSurfaces, expected: 0, got: %i", ret);
468 
469  /* Clean up. */
470  SDL_FreeSurface(compareSurface);
471 
472  return TEST_COMPLETED;
473 }
474 
475 
476 /**
477  * @brief Tests some more blitting routines.
478  */
479 int
481 {
482  int ret;
483  SDL_Surface *compareSurface;
484 
485  /* Basic blitting */
487 
488  /* Verify result by comparing surfaces */
489  compareSurface = SDLTest_ImageBlitBlendNone();
490  ret = SDLTest_CompareSurfaces( testSurface, compareSurface, 0 );
491  SDLTest_AssertCheck(ret == 0, "Validate result from SDLTest_CompareSurfaces, expected: 0, got: %i", ret);
492 
493  /* Clean up. */
494  SDL_FreeSurface(compareSurface);
495 
496  return TEST_COMPLETED;
497 }
498 
499 /**
500  * @brief Tests some more blitting routines.
501  */
502 int
504 {
505  int ret;
506  SDL_Surface *compareSurface;
507 
508  /* Blend blitting */
510 
511  /* Verify result by comparing surfaces */
512  compareSurface = SDLTest_ImageBlitBlend();
513  ret = SDLTest_CompareSurfaces( testSurface, compareSurface, 0 );
514  SDLTest_AssertCheck(ret == 0, "Validate result from SDLTest_CompareSurfaces, expected: 0, got: %i", ret);
515 
516  /* Clean up. */
517  SDL_FreeSurface(compareSurface);
518 
519  return TEST_COMPLETED;
520 }
521 
522 /**
523  * @brief Tests some more blitting routines.
524  */
525 int
527 {
528  int ret;
529  SDL_Surface *compareSurface;
530 
531  /* Add blitting */
533 
534  /* Verify result by comparing surfaces */
535  compareSurface = SDLTest_ImageBlitBlendAdd();
536  ret = SDLTest_CompareSurfaces( testSurface, compareSurface, 0 );
537  SDLTest_AssertCheck(ret == 0, "Validate result from SDLTest_CompareSurfaces, expected: 0, got: %i", ret);
538 
539  /* Clean up. */
540  SDL_FreeSurface(compareSurface);
541 
542  return TEST_COMPLETED;
543 }
544 
545 /**
546  * @brief Tests some more blitting routines.
547  */
548 int
550 {
551  int ret;
552  SDL_Surface *compareSurface;
553 
554  /* Mod blitting */
556 
557  /* Verify result by comparing surfaces */
558  compareSurface = SDLTest_ImageBlitBlendMod();
559  ret = SDLTest_CompareSurfaces( testSurface, compareSurface, 0 );
560  SDLTest_AssertCheck(ret == 0, "Validate result from SDLTest_CompareSurfaces, expected: 0, got: %i", ret);
561 
562  /* Clean up. */
563  SDL_FreeSurface(compareSurface);
564 
565  return TEST_COMPLETED;
566 }
567 
568 /**
569  * @brief Tests some more blitting routines with loop
570  */
571 int
573 
574  int ret;
575  SDL_Surface *compareSurface;
576 
577  /* All blitting modes */
578  _testBlitBlendMode(-4);
579 
580  /* Verify result by comparing surfaces */
581  compareSurface = SDLTest_ImageBlitBlendAll();
582  ret = SDLTest_CompareSurfaces( testSurface, compareSurface, 0 );
583  SDLTest_AssertCheck(ret == 0, "Validate result from SDLTest_CompareSurfaces, expected: 0, got: %i", ret);
584 
585  /* Clean up. */
586  SDL_FreeSurface(compareSurface);
587 
588  return TEST_COMPLETED;
589 
590 }
591 
592 /* ================= Test References ================== */
593 
594 /* Surface test cases */
596  { (SDLTest_TestCaseFp)surface_testSaveLoadBitmap, "surface_testSaveLoadBitmap", "Tests sprite saving and loading.", TEST_ENABLED};
597 
599  { (SDLTest_TestCaseFp)surface_testBlit, "surface_testBlit", "Tests basic blitting.", TEST_ENABLED};
600 
602  { (SDLTest_TestCaseFp)surface_testBlitBlendNone, "surface_testBlitBlendNone", "Tests blitting routines with none blending mode.", TEST_ENABLED};
603 
605  { (SDLTest_TestCaseFp)surface_testLoadFailure, "surface_testLoadFailure", "Tests sprite loading. A failure case.", TEST_ENABLED};
606 
608  { (SDLTest_TestCaseFp)surface_testSurfaceConversion, "surface_testSurfaceConversion", "Tests surface conversion.", TEST_ENABLED};
609 
611  { (SDLTest_TestCaseFp)surface_testCompleteSurfaceConversion, "surface_testCompleteSurfaceConversion", "Tests surface conversion across all pixel formats", TEST_ENABLED};
612 
614  { (SDLTest_TestCaseFp)surface_testBlitColorMod, "surface_testBlitColorMod", "Tests some blitting routines with color mod.", TEST_ENABLED};
615 
617  { (SDLTest_TestCaseFp)surface_testBlitAlphaMod, "surface_testBlitAlphaMod", "Tests some blitting routines with alpha mod.", TEST_ENABLED};
618 
619 /* TODO: rewrite test case, define new test data and re-enable; current implementation fails */
621  { (SDLTest_TestCaseFp)surface_testBlitBlendLoop, "surface_testBlitBlendLoop", "Test blitting routines with various blending modes", TEST_DISABLED};
622 
623 /* TODO: rewrite test case, define new test data and re-enable; current implementation fails */
625  { (SDLTest_TestCaseFp)surface_testBlitBlendBlend, "surface_testBlitBlendBlend", "Tests blitting routines with blend blending mode.", TEST_DISABLED};
626 
627 /* TODO: rewrite test case, define new test data and re-enable; current implementation fails */
629  { (SDLTest_TestCaseFp)surface_testBlitBlendAdd, "surface_testBlitBlendAdd", "Tests blitting routines with add blending mode.", TEST_DISABLED};
630 
632  { (SDLTest_TestCaseFp)surface_testBlitBlendMod, "surface_testBlitBlendMod", "Tests blitting routines with mod blending mode.", TEST_ENABLED};
633 
634 /* Sequence of Surface test cases */
639 };
640 
641 /* Surface test suite (global) */
643  "Surface",
645  surfaceTests,
647 
648 };
SDL.h
sort_controllers.filename
string filename
Definition: sort_controllers.py:8
SDL_PIXELFORMAT_ARGB1555
@ SDL_PIXELFORMAT_ARGB1555
Definition: SDL_pixels.h:215
Uint32
uint32_t Uint32
Definition: SDL_stdinc.h:203
surfaceTest2
static const SDLTest_TestCaseReference surfaceTest2
Definition: testautomation_surface.c:598
SDL_PIXELFORMAT_BGRA4444
@ SDL_PIXELFORMAT_BGRA4444
Definition: SDL_pixels.h:212
SDL_PixelFormat::BytesPerPixel
Uint8 BytesPerPixel
Definition: SDL_pixels.h:323
surface_testBlitColorMod
int surface_testBlitColorMod(void *arg)
Tests some blitting routines with color mod.
Definition: testautomation_surface.c:433
SDLTest_ImageBlitBlendAdd
SDL_Surface * SDLTest_ImageBlitBlendAdd(void)
Returns the BlitBlendAdd test image as SDL_Surface.
Definition: SDL_test_imageBlitBlend.c:581
blendMode
static SDL_BlendMode blendMode
Definition: testdraw2.c:34
SDL_MapRGBA
#define SDL_MapRGBA
Definition: SDL_dynapi_overrides.h:287
SDL_Surface
A collection of pixels used in software blitting.
Definition: SDL_surface.h:70
surface_testBlitBlendNone
int surface_testBlitBlendNone(void *arg)
Tests some more blitting routines.
Definition: testautomation_surface.c:480
SDL_PIXELFORMAT_RGB888
@ SDL_PIXELFORMAT_RGB888
Definition: SDL_pixels.h:239
SDL_BLENDMODE_ADD
@ SDL_BLENDMODE_ADD
Definition: SDL_blendmode.h:47
SDL_RLEACCEL
#define SDL_RLEACCEL
Definition: SDL_surface.h:54
SDL_test.h
SDL_PIXELFORMAT_RGBX8888
@ SDL_PIXELFORMAT_RGBX8888
Definition: SDL_pixels.h:242
NULL
#define NULL
Definition: begin_code.h:167
referenceSurface
static SDL_Surface * referenceSurface
Definition: testautomation_surface.c:27
surfaceTest9
static const SDLTest_TestCaseReference surfaceTest9
Definition: testautomation_surface.c:620
mode
GLenum mode
Definition: SDL_opengl_glext.h:1125
SDL_Surface::w
int w
Definition: SDL_surface.h:74
surfaceTest7
static const SDLTest_TestCaseReference surfaceTest7
Definition: testautomation_surface.c:613
_surfaceSetUp
void _surfaceSetUp(void *arg)
Definition: testautomation_surface.c:39
SDL_PIXELFORMAT_BGR888
@ SDL_PIXELFORMAT_BGR888
Definition: SDL_pixels.h:245
SDL_PIXELFORMAT_BGR565
@ SDL_PIXELFORMAT_BGR565
Definition: SDL_pixels.h:230
SDLTest_ImageBlitColor
SDL_Surface * SDLTest_ImageBlitColor(void)
Returns the BlitColor test image as SDL_Surface.
Definition: SDL_test_imageBlit.c:1024
SDL_ConvertSurface
#define SDL_ConvertSurface
Definition: SDL_dynapi_overrides.h:463
TEST_ENABLED
#define TEST_ENABLED
Definition: SDL_test_harness.h:47
_clearTestSurface
void _clearTestSurface()
Definition: testautomation_surface.c:82
surfaceTest4
static const SDLTest_TestCaseReference surfaceTest4
Definition: testautomation_surface.c:604
SDL_SWSURFACE
#define SDL_SWSURFACE
Definition: SDL_surface.h:52
surfaceTest10
static const SDLTest_TestCaseReference surfaceTest10
Definition: testautomation_surface.c:624
SDL_PIXELFORMAT_RGB565
@ SDL_PIXELFORMAT_RGB565
Definition: SDL_pixels.h:227
SDL_PIXELFORMAT_BGRX8888
@ SDL_PIXELFORMAT_BGRX8888
Definition: SDL_pixels.h:248
surface_testLoadFailure
int surface_testLoadFailure(void *arg)
Tests sprite loading. A failure case.
Definition: testautomation_surface.c:398
surface_testBlit
int surface_testBlit(void *arg)
Tests some blitting routines.
Definition: testautomation_surface.c:410
SDL_GetSurfaceBlendMode
#define SDL_GetSurfaceBlendMode
Definition: SDL_dynapi_overrides.h:460
SDL_Rect::x
int x
Definition: SDL_rect.h:79
surface_testCompleteSurfaceConversion
int surface_testCompleteSurfaceConversion(void *arg)
Definition: testautomation_surface.c:307
result
GLuint64EXT * result
Definition: SDL_opengl_glext.h:9435
_AssertFileExist
void _AssertFileExist(const char *filename)
Definition: testautomation_surface.c:205
SDL_AllocFormat
#define SDL_AllocFormat
Definition: SDL_dynapi_overrides.h:280
SDL_Rect::w
int w
Definition: SDL_rect.h:80
SDLTest_ImageFace
SDL_Surface * SDLTest_ImageFace(void)
Returns the Face test image as SDL_Surface.
Definition: SDL_test_imageFace.c:224
SDL_PIXELFORMAT_RGB332
@ SDL_PIXELFORMAT_RGB332
Definition: SDL_pixels.h:188
surfaceTest5
static const SDLTest_TestCaseReference surfaceTest5
Definition: testautomation_surface.c:607
surface_testBlitBlendAdd
int surface_testBlitBlendAdd(void *arg)
Tests some more blitting routines.
Definition: testautomation_surface.c:526
SDL_BLENDMODE_MOD
@ SDL_BLENDMODE_MOD
Definition: SDL_blendmode.h:50
SDL_BLENDMODE_NONE
@ SDL_BLENDMODE_NONE
Definition: SDL_blendmode.h:42
SDL_PIXELFORMAT_BGR555
@ SDL_PIXELFORMAT_BGR555
Definition: SDL_pixels.h:200
SDL_FALSE
@ SDL_FALSE
Definition: SDL_stdinc.h:163
SDL_PIXELFORMAT_ARGB4444
@ SDL_PIXELFORMAT_ARGB4444
Definition: SDL_pixels.h:203
color
GLuint color
Definition: SDL_opengl_glext.h:1151
SDL_PIXELFORMAT_RGBA5551
@ SDL_PIXELFORMAT_RGBA5551
Definition: SDL_pixels.h:218
SDL_Rect::y
int y
Definition: SDL_rect.h:79
SDLTest_TestCaseFp
int(* SDLTest_TestCaseFp)(void *arg)
Definition: SDL_test_harness.h:67
SDL_SetSurfaceColorMod
#define SDL_SetSurfaceColorMod
Definition: SDL_dynapi_overrides.h:455
SDLTest_AssertPass
void SDLTest_AssertPass(SDL_PRINTF_FORMAT_STRING const char *assertDescription,...) SDL_PRINTF_VARARG_FUNC(1)
Explicitly pass without checking an assertion condition. Updates assertion counter.
Definition: SDL_test_assert.c:94
SDL_Rect::h
int h
Definition: SDL_rect.h:80
SDL_PIXELFORMAT_RGB444
@ SDL_PIXELFORMAT_RGB444
Definition: SDL_pixels.h:191
TEST_ABORTED
#define TEST_ABORTED
Definition: SDL_test_harness.h:51
SDL_BlitSurface
#define SDL_BlitSurface
Definition: SDL_surface.h:484
surfaceTest8
static const SDLTest_TestCaseReference surfaceTest8
Definition: testautomation_surface.c:616
SDL_PIXELFORMAT_BGR444
@ SDL_PIXELFORMAT_BGR444
Definition: SDL_pixels.h:194
surface_testBlitBlendBlend
int surface_testBlitBlendBlend(void *arg)
Tests some more blitting routines.
Definition: testautomation_surface.c:503
SDL_PIXELFORMAT_ARGB2101010
@ SDL_PIXELFORMAT_ARGB2101010
Definition: SDL_pixels.h:263
rect
SDL_Rect rect
Definition: testrelative.c:27
SDL_FreeSurface
#define SDL_FreeSurface
Definition: SDL_dynapi_overrides.h:446
surface_testSurfaceConversion
int surface_testSurfaceConversion(void *arg)
Definition: testautomation_surface.c:266
SDL_PIXELFORMAT_ABGR1555
@ SDL_PIXELFORMAT_ABGR1555
Definition: SDL_pixels.h:221
SDL_SetColorKey
#define SDL_SetColorKey
Definition: SDL_dynapi_overrides.h:453
SDLTest_AssertCheck
int SDLTest_AssertCheck(int assertCondition, SDL_PRINTF_FORMAT_STRING const char *assertDescription,...) SDL_PRINTF_VARARG_FUNC(2)
Assert for test cases that logs but does not break execution flow on failures. Updates assertion coun...
Definition: SDL_test_assert.c:65
SDLTest_TestCaseReference
Definition: SDL_test_harness.h:75
surface_testBlitBlendLoop
int surface_testBlitBlendLoop(void *arg)
Tests some more blitting routines with loop.
Definition: testautomation_surface.c:572
TEST_COMPLETED
#define TEST_COMPLETED
Definition: SDL_test_harness.h:53
testSurface
static SDL_Surface * testSurface
Definition: testautomation_surface.c:28
SDL_FreeFormat
#define SDL_FreeFormat
Definition: SDL_dynapi_overrides.h:281
SDL_PixelFormat::Amask
Uint32 Amask
Definition: SDL_pixels.h:328
SDL_PIXELFORMAT_ABGR4444
@ SDL_PIXELFORMAT_ABGR4444
Definition: SDL_pixels.h:209
SDL_PIXELFORMAT_ARGB8888
@ SDL_PIXELFORMAT_ARGB8888
Definition: SDL_pixels.h:251
SDL_PixelFormat
Definition: SDL_pixels.h:318
SDL_LoadBMP
#define SDL_LoadBMP(file)
Definition: SDL_surface.h:201
SDLTest_ImageBlitBlendAll
SDL_Surface * SDLTest_ImageBlitBlendAll(void)
Returns the BlitBlendAll test image as SDL_Surface.
Definition: SDL_test_imageBlitBlend.c:2822
SDL_assert
#define SDL_assert(condition)
Definition: SDL_assert.h:169
SDL_PIXELFORMAT_RGBA4444
@ SDL_PIXELFORMAT_RGBA4444
Definition: SDL_pixels.h:206
surface_testBlitAlphaMod
int surface_testBlitAlphaMod(void *arg)
Tests some blitting routines with alpha mod.
Definition: testautomation_surface.c:456
SDLTest_ImageBlitBlendNone
SDL_Surface * SDLTest_ImageBlitBlendNone(void)
Returns the BlitBlendNone test image as SDL_Surface.
Definition: SDL_test_imageBlitBlend.c:2354
_surfaceTearDown
void _surfaceTearDown(void *arg)
Definition: testautomation_surface.c:71
SDL_BLENDMODE_BLEND
@ SDL_BLENDMODE_BLEND
Definition: SDL_blendmode.h:44
SDLTest_CompareSurfaces
int SDLTest_CompareSurfaces(SDL_Surface *surface, SDL_Surface *referenceSurface, int allowable_error)
Compares a surface and with reference image data for equality.
Definition: SDL_test_compare.c:39
SDL_CreateRGBSurface
#define SDL_CreateRGBSurface
Definition: SDL_dynapi_overrides.h:444
surfaceTest11
static const SDLTest_TestCaseReference surfaceTest11
Definition: testautomation_surface.c:628
SDL_arraysize
#define SDL_arraysize(array)
Definition: SDL_stdinc.h:115
SDL_Surface::h
int h
Definition: SDL_surface.h:74
SDL_PIXELFORMAT_RGB555
@ SDL_PIXELFORMAT_RGB555
Definition: SDL_pixels.h:197
_testBlitBlendMode
void _testBlitBlendMode(int mode)
Definition: testautomation_surface.c:98
surfaceTestSuite
SDLTest_TestSuiteReference surfaceTestSuite
Definition: testautomation_surface.c:642
surfaceTest12
static const SDLTest_TestCaseReference surfaceTest12
Definition: testautomation_surface.c:631
SDL_PIXELFORMAT_RGBA8888
@ SDL_PIXELFORMAT_RGBA8888
Definition: SDL_pixels.h:254
SDL_Rect
A rectangle, with the origin at the upper left (integer).
Definition: SDL_rect.h:77
SDLTest_ImageBlitAlpha
SDL_Surface * SDLTest_ImageBlitAlpha(void)
Returns the BlitAlpha test image as SDL_Surface.
Definition: SDL_test_imageBlit.c:1536
SDL_PIXELFORMAT_RGB24
@ SDL_PIXELFORMAT_RGB24
Definition: SDL_pixels.h:233
SDL_PIXELFORMAT_BGRA5551
@ SDL_PIXELFORMAT_BGRA5551
Definition: SDL_pixels.h:224
surfaceTests
static const SDLTest_TestCaseReference * surfaceTests[]
Definition: testautomation_surface.c:635
SDL_PIXELFORMAT_BGRA8888
@ SDL_PIXELFORMAT_BGRA8888
Definition: SDL_pixels.h:260
SDL_SetSurfaceBlendMode
#define SDL_SetSurfaceBlendMode
Definition: SDL_dynapi_overrides.h:459
SDL_FillRect
#define SDL_FillRect
Definition: SDL_dynapi_overrides.h:466
SDL_PIXELFORMAT_BGR24
@ SDL_PIXELFORMAT_BGR24
Definition: SDL_pixels.h:236
TEST_DISABLED
#define TEST_DISABLED
Definition: SDL_test_harness.h:48
j
return Display return Display Bool Bool int int int return Display XEvent Bool(*) XPointer return Display return Display Drawable _Xconst char unsigned int unsigned int return Display Pixmap Pixmap XColor XColor unsigned int unsigned int return Display _Xconst char char int char return Display Visual unsigned int int int char unsigned int unsigned int int in j)
Definition: SDL_x11sym.h:50
SDL_PIXELFORMAT_INDEX8
@ SDL_PIXELFORMAT_INDEX8
Definition: SDL_pixels.h:186
surfaceTest6
static const SDLTest_TestCaseReference surfaceTest6
Definition: testautomation_surface.c:610
face
GLenum GLuint GLint GLenum face
Definition: SDL_opengl_glext.h:3022
SDL_SaveBMP
#define SDL_SaveBMP(surface, file)
Definition: SDL_surface.h:224
st
set set set set set set set set set set set set set set set set set set set set *set set set macro pixldst op &r &cond WK op &r &cond WK op &r &cond WK else op &m &cond &ia op &r &cond WK else op &m &cond &ia elseif elseif else error unsupported base if elseif elseif else error unsupported unaligned pixldst unaligned endm macro pixst base base else pixldst st
Definition: pixman-arm-simd-asm.h:160
SDL_PIXELFORMAT_ABGR8888
@ SDL_PIXELFORMAT_ABGR8888
Definition: SDL_pixels.h:257
SDL_BlendMode
SDL_BlendMode
The blend mode used in SDL_RenderCopy() and drawing operations.
Definition: SDL_blendmode.h:40
SDL_Surface::format
SDL_PixelFormat * format
Definition: SDL_surface.h:73
surface_testSaveLoadBitmap
int surface_testSaveLoadBitmap(void *arg)
Tests sprite saving and loading.
Definition: testautomation_surface.c:220
SDLTest_TestSuiteReference
Definition: SDL_test_harness.h:89
SDLTest_ImageBlitBlend
SDL_Surface * SDLTest_ImageBlitBlend(void)
Returns the BlitBlend test image as SDL_Surface.
Definition: SDL_test_imageBlitBlend.c:1111
i
return Display return Display Bool Bool int int int return Display XEvent Bool(*) XPointer return Display return Display Drawable _Xconst char unsigned int unsigned int return Display Pixmap Pixmap XColor XColor unsigned int unsigned int return Display _Xconst char char int char return Display Visual unsigned int int int char unsigned int unsigned int in i)
Definition: SDL_x11sym.h:50
surfaceTest3
static const SDLTest_TestCaseReference surfaceTest3
Definition: testautomation_surface.c:601
SDLTest_ImageBlitBlendMod
SDL_Surface * SDLTest_ImageBlitBlendMod(void)
Returns the BlitBlendMod test image as SDL_Surface.
Definition: SDL_test_imageBlitBlend.c:1541
surfaceTest1
static const SDLTest_TestCaseReference surfaceTest1
Definition: testautomation_surface.c:595
SDL_SetSurfaceAlphaMod
#define SDL_SetSurfaceAlphaMod
Definition: SDL_dynapi_overrides.h:457
SDLTest_ImageBlit
SDL_Surface * SDLTest_ImageBlit(void)
Returns the Blit test image as SDL_Surface.
Definition: SDL_test_imageBlit.c:541
surface_testBlitBlendMod
int surface_testBlitBlendMod(void *arg)
Tests some more blitting routines.
Definition: testautomation_surface.c:549
Uint8
uint8_t Uint8
Definition: SDL_stdinc.h:179