graphics 1.0.0b6 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +5 -5
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/History.rdoc +88 -0
  5. data/Manifest.txt +2 -0
  6. data/Rakefile +7 -8
  7. data/examples/boid.rb +44 -63
  8. data/examples/bounce.rb +4 -4
  9. data/examples/canvas.rb +17 -16
  10. data/examples/collision.rb +1 -1
  11. data/examples/demo.rb +1 -1
  12. data/examples/editor.rb +1 -1
  13. data/examples/fluid.rb +6 -6
  14. data/examples/fluid2.rb +22 -9
  15. data/examples/gol.rb +1 -1
  16. data/examples/gol2.rb +14 -22
  17. data/examples/math.rb +1 -1
  18. data/examples/pi_polygon.rb +8 -3
  19. data/examples/radar.rb +3 -3
  20. data/examples/rainbow_fluid.rb +4 -3
  21. data/examples/tank.rb +7 -3
  22. data/examples/tank2.rb +3 -3
  23. data/examples/targeting.rb +3 -3
  24. data/examples/vants.rb +13 -4
  25. data/examples/walker.rb +1 -1
  26. data/examples/walker2.rb +1 -1
  27. data/examples/zombies.rb +13 -7
  28. data/ext/sdl/extconf.rb +12 -20
  29. data/ext/sdl/sdl.c +619 -360
  30. data/ext/sdl/sge/Makefile +36 -11
  31. data/ext/sdl/sge/Makefile.conf +15 -9
  32. data/ext/sdl/sge/sge_bm_text.cpp +7 -6
  33. data/ext/sdl/sge/sge_collision.cpp +3 -1
  34. data/ext/sdl/sge/sge_config.h +0 -2
  35. data/ext/sdl/sge/sge_internal.h +0 -8
  36. data/ext/sdl/sge/sge_primitives.cpp +0 -11
  37. data/ext/sdl/sge/sge_primitives.h +0 -3
  38. data/ext/sdl/sge/sge_rotation.cpp +1 -1
  39. data/ext/sdl/sge/sge_shape.cpp +18 -9
  40. data/ext/sdl/sge/sge_surface.cpp +10 -4
  41. data/ext/sdl/sge/sge_textpp.cpp +17 -13
  42. data/graphics_setup.sh +43 -13
  43. data/lib/graphics.rb +1 -1
  44. data/lib/graphics/body.rb +8 -0
  45. data/lib/graphics/decorators.rb +15 -3
  46. data/lib/graphics/extensions.rb +1 -1
  47. data/lib/graphics/rainbows.rb +17 -25
  48. data/lib/graphics/simulation.rb +265 -106
  49. data/lib/graphics/v.rb +8 -1
  50. data/resources/sounds/attribution.txt +2 -0
  51. data/resources/sounds/bullet.wav +0 -0
  52. data/test/test_graphics.rb +232 -107
  53. metadata +37 -43
  54. metadata.gz.sig +1 -2
@@ -8,24 +8,49 @@ LIBS =$(SGE_LIBS)
8
8
  SGE_VER = 030809
9
9
  API_VER = 0
10
10
 
11
+ UNAME = $(shell uname)
12
+ ARCH = $(shell uname -m)
13
+ ifeq ($(UNAME), Darwin)
14
+ LIBNAME = libSGE2.dylib
15
+ LIBNAMEAPI = libSGE2.$(API_VER).dylib
16
+ LIBNAMEVER = libSGE2.$(API_VER).$(SGE_VER).dylib
17
+ LIBDIR = lib
18
+ LIBFLAG = -install_name
19
+ else
20
+ LIBNAME = libSGE2.so
21
+ LIBNAMEAPI = libSGE2.so.$(API_VER)
22
+ LIBNAMEVER = libSGE2.so.$(API_VER).$(SGE_VER)
23
+ LIBFLAG = -soname
24
+ ifeq ($(FORCE32), y)
25
+ LIBDIR = lib
26
+ else
27
+ ifeq ($(ARCH), x86_64)
28
+ LIBDIR = lib64
29
+ else
30
+ LIBDIR = lib
31
+ endif
32
+ endif
33
+ endif
34
+
35
+
11
36
  OBJECTS=sge_surface.o sge_primitives.o sge_tt_text.o sge_bm_text.o sge_misc.o sge_textpp.o sge_blib.o sge_rotation.o sge_collision.o sge_shape.o
12
37
 
13
38
  all: config $(OBJECTS)
14
- @ar rsc libSGE.a $(OBJECTS)
39
+ @ar rsc libSGE2.a $(OBJECTS)
15
40
 
16
41
  $(OBJECTS): %.o:%.cpp %.h #Each object depends on thier .cpp and .h file
17
42
  $(CXX) $(CFLAGS) -c $<
18
43
 
19
44
  shared: all
20
- $(CXX) $(CFLAGS) -Wl,-soname,libSGE.so.$(API_VER) -fpic -fPIC -shared -o libSGE.so $(OBJECTS) $(LIBS)
45
+ $(CXX) $(CFLAGS) -Wl,$(LIBFLAG),$(LIBNAMEAPI) -fpic -fPIC -shared -o $(LIBNAME) $(OBJECTS) $(LIBS)
21
46
 
22
47
  shared-strip: shared
23
- @strip libSGE.so
48
+ @strip $(LIBNAME)
24
49
 
25
50
  # Building a dll... I have no idea how to do this, but it should be something like below.
26
51
  dll: config $(OBJECTS)
27
52
  dlltool --output-def SGE.def $(OBJECTS)
28
- dllwrap --driver-name $(CXX) -o SGE.dll --def SGE.def --output-lib libSGE.a --dllname SGE.dll $(OBJECTS) $(LIBS)
53
+ dllwrap --driver-name $(CXX) -o SGE.dll --def SGE.def --output-lib libSGE2.a --dllname SGE.dll $(OBJECTS) $(LIBS)
29
54
 
30
55
  dll-strip: dll
31
56
  @strip SGE.dll
@@ -73,11 +98,11 @@ endif
73
98
  install: shared
74
99
  @mkdir -p $(PREFIX_H)
75
100
  install -c -m 644 sge*.h $(PREFIX_H)
76
- @mkdir -p $(PREFIX)/lib
77
- install -c -m 644 libSGE.a $(PREFIX)/lib
78
- install -c libSGE.so $(PREFIX)/lib/libSGE.so.$(API_VER).$(SGE_VER)
79
- @cd $(PREFIX)/lib;\
80
- ln -sf libSGE.so.$(API_VER).$(SGE_VER) libSGE.so.$(API_VER);\
81
- ln -sf libSGE.so.$(API_VER) libSGE.so
101
+ @mkdir -p $(PREFIX)/$(LIBDIR)
102
+ install -c -m 644 libSGE2.a $(PREFIX)/$(LIBDIR)
103
+ install -c $(LIBNAME) $(PREFIX)/$(LIBDIR)/$(LIBNAMEVER)
104
+ @cd $(PREFIX)/$(LIBDIR);\
105
+ ln -sf $(LIBNAMEVER) $(LIBNAMEAPI);\
106
+ ln -sf $(LIBNAMEAPI) $(LIBNAME)
82
107
  @echo "** Headerfiles installed in $(PREFIX_H)"
83
- @echo "** Library files installed in $(PREFIX)/lib"
108
+ @echo "** Library files installed in $(PREFIX)/$(LIBDIR)"
@@ -3,36 +3,42 @@
3
3
  # Comment/uncomment the following line to disable/enable build options
4
4
  # (See README for more info)
5
5
  C_COMP = y
6
- #USE_FT = n
7
- #USE_IMG = n
6
+ USE_FT = n
7
+ USE_IMG = n
8
8
  #QUIET = y
9
9
 
10
+ # Use this to build 32-bit libs on 64-bit Linux systems
11
+ FORCE32 = n
10
12
 
11
13
  # Compilers (C and C++)
12
14
  CC=gcc
13
15
  CXX=g++
16
+ ifeq ($(FORCE32), y)
17
+ CC += -m32
18
+ CXX += -m32
19
+ endif
14
20
 
15
21
  # Make sure sdl-config is available
16
- HAVE_SDL =$(shell if (sdl-config --version) < /dev/null > /dev/null 2>&1; then echo "y"; else echo "n"; fi;)
22
+ HAVE_SDL =$(shell if (sdl2-config --version) < /dev/null > /dev/null 2>&1; then echo "y"; else echo "n"; fi;)
17
23
  ifeq ($(HAVE_SDL),n)
18
24
  $(error ERROR: Can't find SDL! Make sure that you have SDL (http://www.libsdl.org/) and its development files installed)
19
25
  endif
20
26
 
21
27
  # Where should SGE be installed?
22
- PREFIX =$(shell sdl-config --prefix)
28
+ PREFIX =$(shell sdl2-config --prefix)
23
29
 
24
30
  # Where should the headerfiles be installed?
25
- PREFIX_H =$(shell sdl-config --prefix)/include/SDL
31
+ PREFIX_H =$(shell sdl2-config --prefix)/include/SDL2
26
32
 
27
33
  # Flags passed to the compiler
28
34
  CFLAGS =-Wall -O3 -ffast-math
29
- SGE_CFLAGS =$(shell sdl-config --cflags)
35
+ SGE_CFLAGS =$(shell sdl2-config --cflags)
30
36
  # Uncomment to make some more optimizations
31
37
  #CFLAGS =-Wall -O9 -ffast-math -march=i686
32
38
 
33
39
 
34
40
  # Libs config
35
- SGE_LIBS =$(shell sdl-config --libs) -lstdc++
41
+ SGE_LIBS =$(shell sdl2-config --libs) -lstdc++
36
42
 
37
43
 
38
44
  # Is freetype-config available?
@@ -49,7 +55,7 @@ endif
49
55
 
50
56
 
51
57
  # Is SDL_image available?
52
- HAVE_IMG =$(shell if test -e "`sdl-config --prefix`/include/SDL/SDL_image.h" >/dev/null 2>&1; then echo "y"; else echo "n"; fi;)
58
+ HAVE_IMG =$(shell if test -e "`sdl2-config --prefix`/include/SDL2/SDL_image.h" >/dev/null 2>&1; then echo "y"; else echo "n"; fi;)
53
59
 
54
60
  ifneq ($(USE_IMG),y)
55
61
  ifneq ($(USE_IMG),n)
@@ -58,6 +64,6 @@ ifneq ($(USE_IMG),y)
58
64
  endif
59
65
 
60
66
  ifeq ($(USE_IMG),y)
61
- SGE_LIBS +=-lSDL_image
67
+ SGE_LIBS +=-lSDL2_image
62
68
  endif
63
69
 
@@ -51,12 +51,13 @@ sge_bmpFont* sge_BF_CreateFont(SDL_Surface *surface, Uint8 flags)
51
51
  font = new(nothrow) sge_bmpFont; if(font==NULL){SDL_SetError("SGE - Out of memory");return NULL;}
52
52
 
53
53
  if(!(flags&SGE_BFNOCONVERT) && !(flags&SGE_BFSFONT)){ /* Get a converted copy */
54
- font->FontSurface = SDL_DisplayFormat(surface);
54
+ SDL_assert(0 && "sge_BF_CreateFont");
55
+ /*font->FontSurface = SDL_DisplayFormat(surface);*/
55
56
  if(font->FontSurface==NULL){SDL_SetError("SGE - Out of memory");return NULL;}
56
57
 
57
58
  if(flags&SGE_BFPALETTE){ //We want an 8bit surface
58
59
  SDL_Surface *tmp;
59
- tmp = SDL_AllocSurface(SDL_SWSURFACE, surface->w, surface->h, 8, 0, 0, 0, 0);
60
+ tmp = SDL_CreateRGBSurface(SDL_SWSURFACE, surface->w, surface->h, 8, 0, 0, 0, 0);
60
61
  if(tmp==NULL){SDL_SetError("SGE - Out of memory");SDL_FreeSurface(font->FontSurface);return NULL;}
61
62
 
62
63
  //Set the palette
@@ -64,7 +65,7 @@ sge_bmpFont* sge_BF_CreateFont(SDL_Surface *surface, Uint8 flags)
64
65
  c[0].r=0; c[1].r=255;
65
66
  c[0].g=0; c[1].g=255;
66
67
  c[0].b=0; c[1].b=255;
67
- SDL_SetColors(tmp, c, 0, 2);
68
+ SDL_SetPaletteColors(tmp->format->palette, c, 0, 2);
68
69
 
69
70
  if (SDL_MUSTLOCK(font->FontSurface) && _sge_lock)
70
71
  if (SDL_LockSurface(font->FontSurface) < 0){
@@ -154,7 +155,7 @@ sge_bmpFont* sge_BF_CreateFont(SDL_Surface *surface, Uint8 flags)
154
155
  if(flags&SGE_BFTRANSP || flags&SGE_BFSFONT)
155
156
  #if SDL_VERSIONNUM(SDL_MAJOR_VERSION, SDL_MINOR_VERSION, SDL_PATCHLEVEL) >= \
156
157
  SDL_VERSIONNUM(1, 1, 4)
157
- SDL_SetColorKey(font->FontSurface,SDL_SRCCOLORKEY, font->bcolor); //Some versions of SDL have a bug with SDL_RLEACCEL
158
+ SDL_SetColorKey(font->FontSurface,SDL_TRUE, font->bcolor); //Some versions of SDL have a bug with SDL_RLEACCEL
158
159
  #else
159
160
  SDL_SetColorKey(font->FontSurface,SDL_SRCCOLORKEY|SDL_RLEACCEL, font->bcolor);
160
161
  #endif
@@ -383,7 +384,7 @@ void sge_BF_SetColor(sge_bmpFont *font, Uint8 R, Uint8 G, Uint8 B)
383
384
  c[0].r=0; c[1].r=R;
384
385
  c[0].g=0; c[1].g=G;
385
386
  c[0].b=0; c[1].b=B;
386
- SDL_SetColors(font->FontSurface, c, 0, 2);
387
+ SDL_SetPaletteColors(font->FontSurface->format->palette, c, 0, 2);
387
388
  }
388
389
  }
389
390
 
@@ -393,7 +394,7 @@ void sge_BF_SetColor(sge_bmpFont *font, Uint8 R, Uint8 G, Uint8 B)
393
394
  //==================================================================================
394
395
  void sge_BF_SetAlpha(sge_bmpFont *font, Uint8 alpha)
395
396
  {
396
- SDL_SetAlpha(font->FontSurface,SDL_SRCALPHA|SDL_RLEACCEL, alpha);
397
+ SDL_SetSurfaceAlphaMod(font->FontSurface, alpha);
397
398
  }
398
399
 
399
400
 
@@ -40,6 +40,7 @@ sge_cdata *sge_make_cmap(SDL_Surface *img)
40
40
  Uint8 *map;
41
41
  Sint16 x,y;
42
42
  Sint32 offs;
43
+ Uint32 key;
43
44
  int i;
44
45
 
45
46
  cdata=new(nothrow) sge_cdata;
@@ -56,7 +57,8 @@ sge_cdata *sge_make_cmap(SDL_Surface *img)
56
57
  for(y=0; y < img->h; y++){
57
58
  for(x=0; x < img->w; x++){
58
59
  if(i>7){i=0;map++;}
59
- if(sge_GetPixel(img, Sint16(x),Sint16(y))!=img->format->colorkey){
60
+ SDL_GetColorKey(img, &key);
61
+ if(sge_GetPixel(img, Sint16(x),Sint16(y))!=key){
60
62
  *map=*map|sge_mask[i];
61
63
  }
62
64
  i++;
@@ -1,6 +1,4 @@
1
1
  /* SGE Config header (generated automatically) */
2
2
  #define SGE_VER 030809
3
3
  #define _SGE_C_AND_CPP
4
- #define _SGE_HAVE_IMG
5
4
  #define _SGE_NOTTF
6
-
@@ -79,14 +79,6 @@
79
79
  #endif
80
80
 
81
81
 
82
- /*
83
- * Older versions of SDL doesn't have SDL_CreateRGBSurface
84
- */
85
- #ifndef SDL_AllocSurface
86
- #define SDL_CreateRGBSurface SDL_AllocSurface
87
- #endif
88
-
89
-
90
82
  /*
91
83
  * Macro to get clipping
92
84
  */
@@ -2514,14 +2514,3 @@ void sge_AABezier(SDL_Surface *surface, Sint16 x1, Sint16 y1, Sint16 x2, Sint16
2514
2514
  sge_AABezierAlpha(surface,x1,y1,x2,y2,x3,y3,x4,y4,level, SDL_MapRGB(surface->format,R,G,B),255);
2515
2515
  }
2516
2516
 
2517
- //==================================================================================
2518
- // Added by zenspider:
2519
- //==================================================================================
2520
-
2521
- void sge_FastFilledRect(SDL_Surface *Surface, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint32 color) {
2522
- for (Sint16 y = y1; y <= y2; y++) {
2523
- _HLine(Surface, x1, x2, y, color);
2524
- }
2525
-
2526
- sge_UpdateRect(Surface, x1, y1, x2, y2);
2527
- }
@@ -105,9 +105,6 @@ DECLSPEC void sge_Bezier(SDL_Surface *surface, Sint16 x1, Sint16 y1, Sint16 x2,
105
105
  DECLSPEC void sge_BezierAlpha(SDL_Surface *surface, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2,Sint16 x3, Sint16 y3, Sint16 x4, Sint16 y4, int level, Uint8 R, Uint8 G, Uint8 B, Uint8 alpha);
106
106
  DECLSPEC void sge_AABezier(SDL_Surface *surface, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2,Sint16 x3, Sint16 y3, Sint16 x4, Sint16 y4, int level, Uint8 R, Uint8 G, Uint8 B);
107
107
  DECLSPEC void sge_AABezierAlpha(SDL_Surface *surface, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2,Sint16 x3, Sint16 y3, Sint16 x4, Sint16 y4, int level, Uint8 R, Uint8 G, Uint8 B, Uint8 alpha);
108
-
109
- // Added by zenspider
110
- DECLSPEC void sge_FastFilledRect(SDL_Surface *Surface, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint32 color);
111
108
  #endif /* sge_C_ONLY */
112
109
 
113
110
 
@@ -645,7 +645,7 @@ SDL_Surface *sge_rotate_scaled_surface(SDL_Surface *src, int angle, double scale
645
645
 
646
646
  /* Create the destination surface*/
647
647
  int max = int( sqrt( (src->h*src->h/2 + src->w*src->w/2) *scale + 1 ) );
648
- dest=SDL_AllocSurface(SDL_SWSURFACE, max, max, src->format->BitsPerPixel, src->format->Rmask, src->format->Gmask, src->format->Bmask, src->format->Amask );
648
+ dest=SDL_CreateRGBSurface(SDL_SWSURFACE, max, max, src->format->BitsPerPixel, src->format->Rmask, src->format->Gmask, src->format->Bmask, src->format->Amask );
649
649
  if(!dest){SDL_SetError("SGE - Out of memory");return NULL;}
650
650
  sge_ClearSurface(dest,bcol);
651
651
 
@@ -27,6 +27,11 @@
27
27
 
28
28
  using namespace std;
29
29
 
30
+ template <typename T>
31
+ T absDiff(T a, T b)
32
+ {
33
+ return (a > b) ? (a - b) : (b - a);
34
+ }
30
35
 
31
36
  sge_screen *the_screen=NULL; //The pointer to the active screen class (or NULL)
32
37
 
@@ -37,10 +42,12 @@ sge_screen::sge_screen(SDL_Surface *screen)
37
42
  {
38
43
  sge_screen::screen=screen; //Our screen pointer
39
44
 
40
- /* Test some flags */
45
+ SDL_assert(0 && "sge_screen");
46
+ /* Test some flags
41
47
  HW=(((screen->flags) & SDL_HWSURFACE) != 0);
42
48
  DB=(((screen->flags) & SDL_DOUBLEBUF) != 0);
43
49
  FS=(((screen->flags) & SDL_FULLSCREEN) != 0);
50
+ */
44
51
 
45
52
  /* Test the resolution of SDL_Delay() */
46
53
  //sge_CalibrateDelay();
@@ -144,14 +151,16 @@ void sge_screen::update(void)
144
151
  r[j++]=*i;
145
152
  }
146
153
 
147
- SDL_UpdateRects(screen,rects.size(), r); //Let SDL update the rectangles
154
+ SDL_assert(0 && "sge_screen::update");
155
+ //SDL_UpdateRects(screen,rects.size(), r); //Let SDL update the rectangles
148
156
 
149
157
  delete[] r;
150
158
 
151
159
  rects.clear(); //Empty the list
152
160
  }
153
161
  else if(DB) //double-buffered
154
- SDL_Flip(screen);
162
+ SDL_assert(0 && "sge_screen::update");
163
+ //SDL_Flip(screen);
155
164
  }
156
165
 
157
166
 
@@ -214,14 +223,14 @@ int sge_surface::get_warp(SDL_Rect rec, SDL_Rect &r1, SDL_Rect &r2, SDL_Rect &r3
214
223
  if(rec.x<border.x){
215
224
  r1.w = border.x - rec.x;
216
225
  r1.x = border.x + border.w - r1.w;
217
- r2.w = abs(rec.w - r1.w); //SDL_Rect w/h is unsigned
226
+ r2.w = absDiff(rec.w, r1.w); //SDL_Rect w/h is unsigned
218
227
  r2.x = border.x;
219
228
  rects=2;
220
229
  }else if(rec.x+rec.w > border.x + border.w){
221
230
  r1.x = rec.x;
222
231
  r1.w = border.x + border.w - rec.x;
223
232
  r2.x = border.x;
224
- r2.w = abs(rec.w - r1.w);
233
+ r2.w = absDiff(rec.w, r1.w);
225
234
  rects=2;
226
235
  }
227
236
 
@@ -232,13 +241,13 @@ int sge_surface::get_warp(SDL_Rect rec, SDL_Rect &r1, SDL_Rect &r2, SDL_Rect &r3
232
241
  if(rects==0){
233
242
  r1.h = border.y - rec.y;
234
243
  r1.y = border.y + border.h - r1.h;
235
- r2.h = abs(rec.h - r1.h);
244
+ r2.h = absDiff(rec.h, r1.h);
236
245
  r2.y = border.y;
237
246
  rects=2;
238
247
  }else{
239
248
  r2.h = r1.h= border.y - rec.y;
240
249
  r2.y = r1.y= border.y + border.h - r1.h;
241
- r4.h = r3.h= abs(rec.h - r1.h);
250
+ r4.h = r3.h= absDiff(rec.h, r1.h);
242
251
  r4.y = r3.y= border.y;
243
252
  rects=4;
244
253
  }
@@ -247,13 +256,13 @@ int sge_surface::get_warp(SDL_Rect rec, SDL_Rect &r1, SDL_Rect &r2, SDL_Rect &r3
247
256
  r1.y = rec.y;
248
257
  r1.h = border.y + border.h - rec.y;
249
258
  r2.y = border.y;
250
- r2.h = abs(rec.h - r1.h);
259
+ r2.h = absDiff(rec.h, r1.h);
251
260
  rects=2;
252
261
  }else{
253
262
  r2.y = r1.y = rec.y;
254
263
  r2.h = r1.h = border.y + border.h - rec.y;
255
264
  r4.y = r3.y = border.y;
256
- r4.h = r3.h = abs(rec.h - r1.h);
265
+ r4.h = r3.h = absDiff(rec.h, r1.h);
257
266
  rects=4;
258
267
  }
259
268
  }
@@ -87,6 +87,8 @@ Uint8 sge_getLock(void)
87
87
  //==================================================================================
88
88
  void sge_UpdateRect(SDL_Surface *screen, Sint16 x, Sint16 y, Uint16 w, Uint16 h)
89
89
  {
90
+ SDL_assert(0 && "sge_UpdateRect");
91
+ /*
90
92
  if(_sge_update!=1 || screen != SDL_GetVideoSurface()){return;}
91
93
 
92
94
  if(x>=screen->w || y>=screen->h){return;}
@@ -103,6 +105,7 @@ void sge_UpdateRect(SDL_Surface *screen, Sint16 x, Sint16 y, Uint16 w, Uint16 h)
103
105
  if(b+y > screen->h){b=screen->h-y;}
104
106
 
105
107
  SDL_UpdateRect(screen,x,y,a,b);
108
+ */
106
109
  }
107
110
 
108
111
 
@@ -592,8 +595,11 @@ void sge_ClearSurface(SDL_Surface *Surface, Uint32 color)
592
595
 
593
596
  SDL_FillRect(Surface,NULL, color);
594
597
 
598
+ SDL_assert(0 && "sge_ClearSurface");
599
+ /*
595
600
  if(_sge_update!=1){return;}
596
601
  SDL_UpdateRect(Surface, 0,0,0,0);
602
+ */
597
603
  }
598
604
 
599
605
 
@@ -659,10 +665,10 @@ int sge_BlitTransparent(SDL_Surface *Src, SDL_Surface *Dest, Sint16 SrcX, Sint16
659
665
  #endif
660
666
 
661
667
  /* Set the color to be transparent */
662
- SDL_SetColorKey(Src, SDL_SRCCOLORKEY, Clear);
668
+ SDL_SetColorKey(Src, SDL_TRUE, Clear);
663
669
 
664
670
  /* Set the alpha value */
665
- SDL_SetAlpha(Src, SDL_SRCALPHA, Alpha);
671
+ SDL_SetSurfaceAlphaMod(Src, Alpha);
666
672
 
667
673
  /* Blit */
668
674
  ret=SDL_BlitSurface(Src, &src, Dest, &dest);
@@ -676,8 +682,8 @@ int sge_BlitTransparent(SDL_Surface *Src, SDL_Surface *Dest, Sint16 SrcX, Sint16
676
682
  #endif
677
683
 
678
684
  /* Set normal levels */
679
- SDL_SetAlpha(Src,0,0);
680
- SDL_SetColorKey(Src,0,0);
685
+ SDL_SetSurfaceAlphaMod(Src,0);
686
+ SDL_SetColorKey(Src,SDL_TRUE,0);
681
687
 
682
688
  return ret;
683
689
  }
@@ -310,8 +310,10 @@ bool sge_TextEditor::check(SDL_Event* event)
310
310
  return move_start();
311
311
  else if(event->key.keysym.sym==SDLK_END)
312
312
  return move_end();
313
+ /*
313
314
  else if(event->key.keysym.unicode!=0)
314
315
  return insert(event->key.keysym.unicode);
316
+ */
315
317
 
316
318
  return false;
317
319
  }
@@ -415,10 +417,10 @@ bool sge_text::update_textSurface(bool force)
415
417
  if(!text_surface)
416
418
  return false;
417
419
 
418
- SDL_SetColorKey(text_surface,SDL_SRCCOLORKEY,SDL_MapRGB(text_surface->format,background.r,background.g,background.b));
420
+ SDL_SetColorKey(text_surface,SDL_TRUE,SDL_MapRGB(text_surface->format,background.r,background.g,background.b));
419
421
 
420
422
  if( alpha_level != SDL_ALPHA_OPAQUE )
421
- SDL_SetAlpha(text_surface, SDL_SRCALPHA, alpha_level);
423
+ SDL_SetSurfaceAlphaMod(text_surface, alpha_level);
422
424
 
423
425
  set_textSurface(text_surface);
424
426
  }else
@@ -453,7 +455,7 @@ bool sge_text::update_textSurface(bool force)
453
455
  c[1].r=bm_font->FontSurface->format->palette->colors[1].r;
454
456
  c[1].g=bm_font->FontSurface->format->palette->colors[1].g;
455
457
  c[1].b=bm_font->FontSurface->format->palette->colors[1].b;
456
- SDL_SetColors(text_surface, c, 0, 2);
458
+ SDL_SetPaletteColors(text_surface->format->palette, c, 0, 2);
457
459
  bcol = 0;
458
460
  }else{
459
461
  //Use the same background color as the font surface
@@ -465,10 +467,10 @@ bool sge_text::update_textSurface(bool force)
465
467
 
466
468
  sge_BF_textout(text_surface, bm_font, (char*)(text.c_str()), 0, 0);
467
469
 
468
- SDL_SetColorKey(text_surface,SDL_SRCCOLORKEY, bcol);
470
+ SDL_SetColorKey(text_surface,SDL_TRUE, bcol);
469
471
 
470
472
  if( alpha_level != SDL_ALPHA_OPAQUE )
471
- SDL_SetAlpha(text_surface, SDL_SRCALPHA, alpha_level);
473
+ SDL_SetSurfaceAlphaMod(text_surface, alpha_level);
472
474
 
473
475
  set_textSurface(text_surface);
474
476
  }else
@@ -519,9 +521,9 @@ SDL_Rect sge_text::render_text(SDL_Surface *surface, Sint16 x, Sint16 y)
519
521
  if(!tmp)
520
522
  return ret;
521
523
 
522
- SDL_SetColorKey(tmp,SDL_SRCCOLORKEY,SDL_MapRGB(tmp->format,background.r,background.g,background.b));
524
+ SDL_SetColorKey(tmp,SDL_TRUE,SDL_MapRGB(tmp->format,background.r,background.g,background.b));
523
525
  if( alpha_level != SDL_ALPHA_OPAQUE )
524
- SDL_SetAlpha(tmp, SDL_SRCALPHA, alpha_level);
526
+ SDL_SetSurfaceAlphaMod(tmp, alpha_level);
525
527
 
526
528
  sge_Blit(tmp, surface, 0, 0, x, y, tmp->w, tmp->h);
527
529
  ret.x=x; ret.y=y; ret.w=tmp->w; ret.h=tmp->h;
@@ -534,7 +536,7 @@ SDL_Rect sge_text::render_text(SDL_Surface *surface, Sint16 x, Sint16 y)
534
536
  string text=get_string(sCursor);
535
537
 
536
538
  if( alpha_level != SDL_ALPHA_OPAQUE && !bm_font->FontSurface->format->Amask)
537
- SDL_SetAlpha(bm_font->FontSurface,SDL_SRCALPHA, alpha_level);
539
+ SDL_SetSurfaceAlphaMod(bm_font->FontSurface, alpha_level);
538
540
 
539
541
  return sge_BF_textout(surface, bm_font, (char*)(text.c_str()), x, y);
540
542
  }else{
@@ -705,17 +707,19 @@ int sge_text_input(sge_TextSurface *tc, Uint8 flags)
705
707
  bool is_ttf = tc->get_bg(&bg); /* No bc color indicates bitmap font */
706
708
 
707
709
  if( flags&SGE_FLAG1 || !is_ttf ){ /* Keep background? */
708
- buffer = SDL_DisplayFormat(screen);
710
+ SDL_assert(0 && "sge_text_input");
711
+ //buffer = SDL_DisplayFormat(screen);
709
712
  if(buffer==NULL){
710
713
  SDL_SetError("SGE - Out of memory");return -3;
711
714
  }
712
715
  }
713
716
 
714
717
  /* Enable keyrepeat */
715
- if(!(flags&SGE_FLAG3))
716
- SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL+50);
718
+ //if(!(flags&SGE_FLAG3))
719
+ // SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL+50);
717
720
 
718
- int uflag = SDL_EnableUNICODE(1);
721
+ SDL_assert(0 && "sge_text_input");
722
+ //int uflag = SDL_EnableUNICODE(1);
719
723
 
720
724
  Sint16 x = tc->get_xpos();
721
725
  Sint16 y = tc->get_ypos();
@@ -773,7 +777,7 @@ int sge_text_input(sge_TextSurface *tc, Uint8 flags)
773
777
 
774
778
  _sge_update = update;
775
779
 
776
- SDL_EnableUNICODE(uflag); //Restore unicode setting
780
+ //SDL_EnableUNICODE(uflag); //Restore unicode setting
777
781
 
778
782
  if( quit < 0 )
779
783
  return quit;