Author: gregor
Date: Mon Apr 11 17:22:29 2005
New Revision: 7809
Added:
trunk/languages/jako/SDL.jako
Log:
Tinkering with making SDL work via Jako.
Added: trunk/languages/jako/SDL.jako
==============================================================================
--- (empty file)
+++ trunk/languages/jako/SDL.jako Mon Apr 11 17:22:29 2005
@@ -0,0 +1,340 @@
+#
+# SDL.jako
+#
+# A Jako module for interfacing with the SDL library.
+#
+# Copyright (C) 2004-2005 Gregor N. Purdy. All rights reserved.
+# This program is free software. Its use is subject to the same
+# license as Parrot.
+#
+# $Id: $
+#
+
+module SDL
+ :fnlib = "libSDL"
+{
+
+
+ #
+ # Basic Functions:
+ #
+ # SDL_Surface * SDL_DisplayFormat(SDL_Surface * surface)
+ # int SDL_FillRect(SDL_Surface * dst, SDL_Rect * dstrect, Uint32 color)
+ # int SDL_Flip(SDL_Surface * screen)
+ # void SDL_FreeSurface(SDL_Surface * surface)
+ # char * SDL_GetKeyName(SDLKey key)
+ # int SDL_Init(Uint32 flags)
+ # SDL_Surface * SDL_LoadBMP(const char * file)
+ # int SDL_PollEvent(SDL_Event * event)
+ # void SDL_Quit(void)
+ # SDL_Surface * SDL_SetVideoMode(int width, int height, int bpp,
+ # Uint32 flags)
+ # void SDL_UpdateRect(SDL_Surface * screen, Sint32 x, Sint32 y,
+ # Sint32 w, Sint32 h)
+ # int SDL_WaitEvent(SDL_Event * event)
+ #
+ # TODO: What about SDL_LoadBMP_RW?
+ #
+ # From /usr/include/SDL/SDL_video.h:
+ #
+ # int SDL_UpperBlit(SDL_Surface * src, SDL_Rect * srcrect,
+ # SDL_Surface * dst, SDL_Rect * dstrect)
+ #
+
+ sub int DisplayFormat :fn = "SDL_DisplayFormat" (int surface);
+ sub int FillRect :fn = "SDL_FillRect" (int dst, int dstrect, int
color);
+ sub int Flip :fn = "SDL_Flip" (int screen);
+ sub FreeSurface :fn = "SDL_FreeSurface" (int surface);
+ sub str GetKeyName :fn = "SDL_GetKeyName" (int key);
+ sub int Init :fn = "SDL_Init" (int flags);
+ sub int LoadBMP :fn = "SDL_LoadBMP" (str file);
+ sub int PollEvent :fn = "SDL_PollEvent" (int event);
+ sub Quit :fn = "SDL_Quit" ();
+ sub int SetVideoMode :fn = "SDL_SetVideoMode" (int width, int height, int
bpp, int flags);
+ sub int WaitEvent :fn = "SDL_WaitEvent" (int event);
+ sub UpdateRect :fn = "SDL_UpdateRect" (int screen, int x, int y,
int w, int h);
+ sub int UpperBlit :fn = "SDL_UpperBlit" (int src, int srcrect, int
dst, int dstrect);
+
+
+ #
+ # Image functions:
+ #
+ # SDL_Surface * IMG_Load(const char * file)
+ #
+
+ sub int IMG_Load :fn = "IMG_Load" :fnlib = "libSDL_image" (str file);
+
+
+ #
+ # SDL Init Flags:
+
+
+ const int SDL_INIT_TIMER = 0x00000001;
+ const int SDL_INIT_AUDIO = 0x00000010;
+ const int SDL_INIT_VIDEO = 0x00000020;
+ const int SDL_INIT_CDROM = 0x00000100;
+ const int SDL_INIT_JOYSTICK = 0x00000200;
+ const int SDL_INIT_NOPARACHUTE = 0x00100000;
+ const int SDL_INIT_EVENTTHREAD = 0x01000000;
+ const int SDL_INIT_EVERYTHING = 0x0000ffff;
+
+ #
+ # Event type constants:
+ #
+
+ const int SDL_KEYDOWN = 2;
+ const int SDL_KEYUP = 3;
+ const int SDL_QUIT = 12;
+
+ #
+ # Key symbol constants:
+ #
+
+ const int SDLK_UNKNOWN = 0;
+
+ const int SDLK_FIRST = 0;
+ # 1 - 7?
+ const int SDLK_BACKSPACE = 8;
+ const int SDLK_TAB = 9;
+ # 10 - 11?
+ const int SDLK_CLEAR = 12;
+ const int SDLK_RETURN = 13;
+ # 14 - 18?
+ const int SDLK_PAUSE = 19;
+ # 20 - 26?
+ const int SDLK_ESCAPE = 27;
+ # 28 - 31?
+ const int SDLK_SPACE = 32;
+ const int SDLK_EXCLAIM = 33;
+ const int SDLK_QUOTEDBL = 34;
+ const int SDLK_HASH = 35;
+ const int SDLK_DOLLAR = 36;
+ # 37?
+ const int SDLK_AMPERSAND = 38;
+ const int SDLK_QUOTE = 39;
+ const int SDLK_LEFTPAREN = 40;
+ const int SDLK_RIGHTPAREN = 41;
+ const int SDLK_ASTERISK = 42;
+ const int SDLK_PLUS = 43;
+ const int SDLK_COMMA = 44;
+ const int SDLK_MINUS = 45;
+ const int SDLK_PERIOD = 46;
+ const int SDLK_SLASH = 47;
+ const int SDLK_0 = 48;
+ const int SDLK_1 = 49;
+ const int SDLK_2 = 50;
+ const int SDLK_3 = 51;
+ const int SDLK_4 = 52;
+ const int SDLK_5 = 53;
+ const int SDLK_6 = 54;
+ const int SDLK_7 = 55;
+ const int SDLK_8 = 56;
+ const int SDLK_9 = 57;
+ const int SDLK_COLON = 58;
+ const int SDLK_SEMICOLON = 59;
+ const int SDLK_LESS = 60;
+ const int SDLK_EQUALS = 61;
+ const int SDLK_GREATER = 62;
+ const int SDLK_QUESTION = 63;
+ const int SDLK_AT = 64;
+ # 65 - 90?
+ const int SDLK_LEFTBRACKET = 91;
+ const int SDLK_BACKSLASH = 92;
+ const int SDLK_RIGHTBRACKET = 93;
+ const int SDLK_CARET = 94;
+ const int SDLK_UNDERSCORE = 95;
+ const int SDLK_BACKQUOTE = 96;
+ const int SDLK_a = 97;
+ const int SDLK_b = 98;
+ const int SDLK_c = 99;
+ const int SDLK_d = 100;
+ const int SDLK_e = 101;
+ const int SDLK_f = 102;
+ const int SDLK_g = 103;
+ const int SDLK_h = 104;
+ const int SDLK_i = 105;
+ const int SDLK_j = 106;
+ const int SDLK_k = 107;
+ const int SDLK_l = 108;
+ const int SDLK_m = 109;
+ const int SDLK_n = 110;
+ const int SDLK_o = 111;
+ const int SDLK_p = 112;
+ const int SDLK_q = 113;
+ const int SDLK_r = 114;
+ const int SDLK_s = 115;
+ const int SDLK_t = 116;
+ const int SDLK_u = 117;
+ const int SDLK_v = 118;
+ const int SDLK_w = 119;
+ const int SDLK_x = 120;
+ const int SDLK_y = 121;
+ const int SDLK_z = 122;
+ # 123 - 126?
+ const int SDLK_DELETE = 127;
+ # 128 - 159?
+ const int SDLK_WORLD_0 = 160;
+ const int SDLK_WORLD_1 = 161;
+ const int SDLK_WORLD_2 = 162;
+ const int SDLK_WORLD_3 = 163;
+ const int SDLK_WORLD_4 = 164;
+ const int SDLK_WORLD_5 = 165;
+ const int SDLK_WORLD_6 = 166;
+ const int SDLK_WORLD_7 = 167;
+ const int SDLK_WORLD_8 = 168;
+ const int SDLK_WORLD_9 = 169;
+ const int SDLK_WORLD_10 = 170;
+ const int SDLK_WORLD_11 = 171;
+ const int SDLK_WORLD_12 = 172;
+ const int SDLK_WORLD_13 = 173;
+ const int SDLK_WORLD_14 = 174;
+ const int SDLK_WORLD_15 = 175;
+ const int SDLK_WORLD_16 = 176;
+ const int SDLK_WORLD_17 = 177;
+ const int SDLK_WORLD_18 = 178;
+ const int SDLK_WORLD_19 = 179;
+ const int SDLK_WORLD_20 = 180;
+ const int SDLK_WORLD_21 = 181;
+ const int SDLK_WORLD_22 = 182;
+ const int SDLK_WORLD_23 = 183;
+ const int SDLK_WORLD_24 = 184;
+ const int SDLK_WORLD_25 = 185;
+ const int SDLK_WORLD_26 = 186;
+ const int SDLK_WORLD_27 = 187;
+ const int SDLK_WORLD_28 = 188;
+ const int SDLK_WORLD_29 = 189;
+ const int SDLK_WORLD_30 = 190;
+ const int SDLK_WORLD_31 = 191;
+ const int SDLK_WORLD_32 = 192;
+ const int SDLK_WORLD_33 = 193;
+ const int SDLK_WORLD_34 = 194;
+ const int SDLK_WORLD_35 = 195;
+ const int SDLK_WORLD_36 = 196;
+ const int SDLK_WORLD_37 = 197;
+ const int SDLK_WORLD_38 = 198;
+ const int SDLK_WORLD_39 = 199;
+ const int SDLK_WORLD_40 = 200;
+ const int SDLK_WORLD_41 = 201;
+ const int SDLK_WORLD_42 = 202;
+ const int SDLK_WORLD_43 = 203;
+ const int SDLK_WORLD_44 = 204;
+ const int SDLK_WORLD_45 = 205;
+ const int SDLK_WORLD_46 = 206;
+ const int SDLK_WORLD_47 = 207;
+ const int SDLK_WORLD_48 = 208;
+ const int SDLK_WORLD_49 = 209;
+ const int SDLK_WORLD_50 = 210;
+ const int SDLK_WORLD_51 = 211;
+ const int SDLK_WORLD_52 = 212;
+ const int SDLK_WORLD_53 = 213;
+ const int SDLK_WORLD_54 = 214;
+ const int SDLK_WORLD_55 = 215;
+ const int SDLK_WORLD_56 = 216;
+ const int SDLK_WORLD_57 = 217;
+ const int SDLK_WORLD_58 = 218;
+ const int SDLK_WORLD_59 = 219;
+ const int SDLK_WORLD_60 = 220;
+ const int SDLK_WORLD_61 = 221;
+ const int SDLK_WORLD_62 = 222;
+ const int SDLK_WORLD_63 = 223;
+ const int SDLK_WORLD_64 = 224;
+ const int SDLK_WORLD_65 = 225;
+ const int SDLK_WORLD_66 = 226;
+ const int SDLK_WORLD_67 = 227;
+ const int SDLK_WORLD_68 = 228;
+ const int SDLK_WORLD_69 = 229;
+ const int SDLK_WORLD_70 = 230;
+ const int SDLK_WORLD_71 = 231;
+ const int SDLK_WORLD_72 = 232;
+ const int SDLK_WORLD_73 = 233;
+ const int SDLK_WORLD_74 = 234;
+ const int SDLK_WORLD_75 = 235;
+ const int SDLK_WORLD_76 = 236;
+ const int SDLK_WORLD_77 = 237;
+ const int SDLK_WORLD_78 = 238;
+ const int SDLK_WORLD_79 = 239;
+ const int SDLK_WORLD_80 = 240;
+ const int SDLK_WORLD_81 = 241;
+ const int SDLK_WORLD_82 = 242;
+ const int SDLK_WORLD_83 = 243;
+ const int SDLK_WORLD_84 = 244;
+ const int SDLK_WORLD_85 = 245;
+ const int SDLK_WORLD_86 = 246;
+ const int SDLK_WORLD_87 = 247;
+ const int SDLK_WORLD_88 = 248;
+ const int SDLK_WORLD_89 = 249;
+ const int SDLK_WORLD_90 = 250;
+ const int SDLK_WORLD_91 = 251;
+ const int SDLK_WORLD_92 = 252;
+ const int SDLK_WORLD_93 = 253;
+ const int SDLK_WORLD_94 = 254;
+ const int SDLK_WORLD_95 = 255;
+ const int SDLK_KP0 = 256;
+ const int SDLK_KP1 = 257;
+ const int SDLK_KP2 = 258;
+ const int SDLK_KP3 = 259;
+ const int SDLK_KP4 = 260;
+ const int SDLK_KP5 = 261;
+ const int SDLK_KP6 = 262;
+ const int SDLK_KP7 = 263;
+ const int SDLK_KP8 = 264;
+ const int SDLK_KP9 = 265;
+ const int SDLK_KP_PERIOD = 266;
+ const int SDLK_KP_DIVIDE = 267;
+ const int SDLK_KP_MULTIPLY = 268;
+ const int SDLK_KP_MINUS = 269;
+ const int SDLK_KP_PLUS = 270;
+ const int SDLK_KP_ENTER = 271;
+ const int SDLK_KP_EQUALS = 272;
+ const int SDLK_UP = 273;
+ const int SDLK_DOWN = 274;
+ const int SDLK_RIGHT = 275;
+ const int SDLK_LEFT = 276;
+ const int SDLK_INSERT = 277;
+ const int SDLK_HOME = 278;
+ const int SDLK_END = 279;
+ const int SDLK_PAGEUP = 280;
+ const int SDLK_PAGEDOWN = 281;
+ const int SDLK_F1 = 282;
+ const int SDLK_F2 = 283;
+ const int SDLK_F3 = 284;
+ const int SDLK_F4 = 285;
+ const int SDLK_F5 = 286;
+ const int SDLK_F6 = 287;
+ const int SDLK_F7 = 288;
+ const int SDLK_F8 = 289;
+ const int SDLK_F9 = 290;
+ const int SDLK_F10 = 291;
+ const int SDLK_F11 = 292;
+ const int SDLK_F12 = 293;
+ const int SDLK_F13 = 294;
+ const int SDLK_F14 = 295;
+ const int SDLK_F15 = 296;
+ # 297 - 299?
+ const int SDLK_NUMLOCK = 300;
+ const int SDLK_CAPSLOCK = 301;
+ const int SDLK_SCROLLOCK = 302;
+ const int SDLK_RSHIFT = 303;
+ const int SDLK_LSHIFT = 304;
+ const int SDLK_RCTRL = 305;
+ const int SDLK_LCTRL = 306;
+ const int SDLK_RALT = 307;
+ const int SDLK_LALT = 308;
+ const int SDLK_RMETA = 309;
+ const int SDLK_LMETA = 310;
+ const int SDLK_LSUPER = 311;
+ const int SDLK_RSUPER = 312;
+ const int SDLK_MODE = 313;
+ const int SDLK_COMPOSE = 314;
+ const int SDLK_HELP = 315;
+ const int SDLK_PRINT = 316;
+ const int SDLK_SYSREQ = 317;
+ const int SDLK_BREAK = 318;
+ const int SDLK_MENU = 319;
+ const int SDLK_POWER = 320;
+ const int SDLK_EURO = 321;
+ const int SDLK_UNDO = 322;
+ const int SDLK_LAST = 323;
+
+}
+