Skip to content

Commit

Permalink
lib/sdl2_gfx.rb, test/test_gfx.rb: Added.
Browse files Browse the repository at this point in the history
  • Loading branch information
UK authored and UK committed Apr 2, 2016
1 parent 954ecf4 commit c5f442f
Show file tree
Hide file tree
Showing 2 changed files with 124 additions and 1 deletion.
115 changes: 115 additions & 0 deletions lib/sdl2_gfx.rb
Expand Up @@ -5,10 +5,26 @@ module SDL2

extend Fiddle::Importer

# SDL2_framerate
FPS_UPPER_LIMIT = 200
FPS_LOWER_LIMIT = 1
FPS_DEFAULT = 30

FPSmanager = struct(["unsigned int framecount",
"float rateticks",
"unsigned int baseticks",
"unsigned int lastticks",
"unsigned int rate"])

# SDL2_gfxPrimitives
SDL2_GFXPRIMITIVES_MAJOR = 1
SDL2_GFXPRIMITIVES_MINOR = 0
SDL2_GFXPRIMITIVES_MICRO = 1

# SDL2_rotozoom
SMOOTHING_OFF = 0
SMOOTHING_ON = 1

#
# Fiddle's default 'extern' stores all methods into local variable '@func_map', that makes difficult to 'include SDL2'.
# So I override it and replace '@func_map' into 'SDL2GFX_FUNCTIONS_MAP'.
Expand Down Expand Up @@ -49,7 +65,106 @@ def self.load_gfx_lib(libpath)


def self.import_gfx_symbols

# SDL2_framerate
extern 'void SDL_initFramerate(FPSmanager*)'
extern 'int SDL_setFramerate(FPSmanager*, unsigned int)'
extern 'int SDL_getFramerate(FPSmanager*)'
extern 'int SDL_getFramecount(FPSmanager*)'
extern 'unsigned int SDL_framerateDelay(FPSmanager*)'


# SDL2_gfxPrimitives
extern 'int pixelColor(SDL_Renderer*, short, short, unsigned int)'
extern 'int pixelRGBA(SDL_Renderer*, short, short, unsigned char, unsigned char, unsigned char, unsigned char)'

extern 'int hlineColor(SDL_Renderer*, short, short, short, unsigned int)'
extern 'int hlineRGBA(SDL_Renderer*, short, short, short, unsigned char, unsigned char, unsigned char, unsigned char)'

extern 'int vlineColor(SDL_Renderer*, short, short, short, unsigned int)'
extern 'int vlineRGBA(SDL_Renderer*, short, short, short, unsigned char, unsigned char, unsigned char, unsigned char)'

extern 'int rectangleColor(SDL_Renderer*, short, short, short, short, unsigned int)'
extern 'int rectangleRGBA(SDL_Renderer*, short, short, short, short, unsigned char, unsigned char, unsigned char, unsigned char)'

extern 'int roundedRectangleColor(SDL_Renderer*, short, short, short, short, short, unsigned int)'
extern 'int roundedRectangleRGBA(SDL_Renderer*, short, short, short, short, short, unsigned char, unsigned char, unsigned char, unsigned char)'

extern 'int boxColor(SDL_Renderer*, short, short, short, short, unsigned int)'
extern 'int boxRGBA(SDL_Renderer*, short, short, short, short, unsigned char, unsigned char, unsigned char, unsigned char)'

extern 'int roundedBoxColor(SDL_Renderer*, short, short, short, short, short, unsigned int)'
extern 'int roundedBoxRGBA(SDL_Renderer*, short, short, short, short, short, unsigned char, unsigned char, unsigned char, unsigned char)'

extern 'int lineColor(SDL_Renderer*, short, short, short, short, unsigned int)'
extern 'int lineRGBA(SDL_Renderer*, short, short, short, short, unsigned char, unsigned char, unsigned char, unsigned char)'

extern 'int aalineColor(SDL_Renderer*, short, short, short, short, unsigned int)'
extern 'int aalineRGBA(SDL_Renderer*, short, short, short, short, unsigned char, unsigned char, unsigned char, unsigned char)'

extern 'int thickLineColor(SDL_Renderer*, short, short, short, short, unsigned char, unsigned int)'
extern 'int thickLineRGBA(SDL_Renderer*, short, short, short, short, unsigned char, unsigned char, unsigned char, unsigned char, unsigned char)'

extern 'int circleColor(SDL_Renderer*, short, short, short, unsigned int)'
extern 'int circleRGBA(SDL_Renderer*, short, short, short, unsigned char, unsigned char, unsigned char, unsigned char)'

extern 'int arcColor(SDL_Renderer*, short, short, short, short, short, unsigned int)'
extern 'int arcRGBA(SDL_Renderer*, short, short, short, short, short, unsigned char, unsigned char, unsigned char, unsigned char)'

extern 'int aacircleColor(SDL_Renderer*, short, short, short, unsigned int)'
extern 'int aacircleRGBA(SDL_Renderer*, short, short, short, unsigned char, unsigned char, unsigned char, unsigned char)'

extern 'int filledCircleColor(SDL_Renderer*, short, short, short, unsigned int)'
extern 'int filledCircleRGBA(SDL_Renderer*, short, short, short, unsigned char, unsigned char, unsigned char, unsigned char)'

extern 'int ellipseColor(SDL_Renderer*, short, short, short, short, unsigned int)'
extern 'int ellipseRGBA(SDL_Renderer*, short, short, short, short, unsigned char, unsigned char, unsigned char, unsigned char)'

extern 'int aaellipseColor(SDL_Renderer*, short, short, short, short, unsigned int)'
extern 'int aaellipseRGBA(SDL_Renderer*, short, short, short, short, unsigned char, unsigned char, unsigned char, unsigned char)'

extern 'int filledEllipseColor(SDL_Renderer*, short, short, short, short, unsigned int)'
extern 'int filledEllipseRGBA(SDL_Renderer*, short, short, short, short, unsigned char, unsigned char, unsigned char, unsigned char)'

extern 'int pieColor(SDL_Renderer*, short, short, short, short, short, unsigned int)'
extern 'int pieRGBA(SDL_Renderer*, short, short, short, short, short, unsigned char, unsigned char, unsigned char, unsigned char)'

extern 'int filledPieColor(SDL_Renderer*, short, short, short, short, short, unsigned int)'
extern 'int filledPieRGBA(SDL_Renderer*, short, short, short, short, short, unsigned char, unsigned char, unsigned char, unsigned char)'

extern 'int trigonColor(SDL_Renderer*, short, short, short, short, short, short, unsigned int)'
extern 'int trigonRGBA(SDL_Renderer*, short, short, short, short, short, short, unsigned char, unsigned char, unsigned char, unsigned char)'

extern 'int aatrigonColor(SDL_Renderer*, short, short, short, short, short, short, unsigned int)'
extern 'int aatrigonRGBA(SDL_Renderer*, short, short, short, short, short, short, unsigned char, unsigned char, unsigned char, unsigned char)'

extern 'int filledTrigonColor(SDL_Renderer*, short, short, short, short, short, short, unsigned int)'
extern 'int filledTrigonRGBA(SDL_Renderer*, short, short, short, short, short, short, unsigned char, unsigned char, unsigned char, unsigned char)'

extern 'int polygonColor(SDL_Renderer*, const short*, const short*, int, unsigned int)'
extern 'int polygonRGBA(SDL_Renderer*, const short*, const short*, int, unsigned char, unsigned char, unsigned char, unsigned char)'

extern 'int aapolygonColor(SDL_Renderer*, const short*, const short*, int, unsigned int)'
extern 'int aapolygonRGBA(SDL_Renderer*, const short*, const short*, int, unsigned char, unsigned char, unsigned char, unsigned char)'

extern 'int filledPolygonColor(SDL_Renderer*, const short*, const short*, int, unsigned int)'
extern 'int filledPolygonRGBA(SDL_Renderer*, const short*, const short*, int, unsigned char, unsigned char, unsigned char, unsigned char)'

extern 'int texturedPolygon(SDL_Renderer*, const short*, const short*, int, SDL_Surface*, int, int)'

extern 'int bezierColor(SDL_Renderer*, const short*, const short*, int, int, unsigned int)'
extern 'int bezierRGBA(SDL_Renderer*, const short*, const short*, int, int, unsigned char, unsigned char, unsigned char, unsigned char)'

extern 'void gfxPrimitivesSetFont(const void*, unsigned int, unsigned int)'
extern 'void gfxPrimitivesSetFontRotation(unsigned int)'
extern 'int characterColor(SDL_Renderer*, short, short, char, unsigned int)'
extern 'int characterRGBA(SDL_Renderer*, short, short, char, unsigned char, unsigned char, unsigned char, unsigned char)'
extern 'int stringColor(SDL_Renderer*, short, short, const char*, unsigned int)'
extern 'int stringRGBA(SDL_Renderer*, short, short, const char*, unsigned char, unsigned char, unsigned char, unsigned char)'

# SDL2_imageFilter

# SDL2_rotozoom

@@sdl2gfx_import_done = true
end
Expand Down
10 changes: 9 additions & 1 deletion test/test_gfx.rb
Expand Up @@ -34,8 +34,16 @@

SDL_SetRenderDrawColor(renderer, 0xA0, 0xA0, 0xA0, 0xFF)
SDL_RenderClear(renderer)
# SDL_RenderCopy(renderer, texture, nil, pos)

pixelColor(renderer, 100, 100, 0xFFFFFFFF)
pixelRGBA(renderer, 101, 100, 0xFF, 0x00, 0x00, 0xFF)

hlineColor(renderer, 0, 100, 50, 0xFFFFFFFF)
vlineColor(renderer, 50, 0, 100, 0xFFFF00FF)

rectangleColor(renderer, 5, 5, 95, 95, 0xFF00FFFF)
rectangleRGBA(renderer, 10, 10, 90, 90, 0, 0, 0xFF, 0xFF)

SDL_RenderPresent(renderer)

SDL_Delay(10)
Expand Down

0 comments on commit c5f442f

Please sign in to comment.