⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lua_bmp.c

📁 lua脚本语言调用allegro游戏程序库的接口-跨平台
💻 C
📖 第 1 页 / 共 2 页
字号:
   get_bitmap_userdata();
   lua_pushnumber(L,bitmap_color_depth(bitmap));
return 1;
}

//---------------------------------------------------------------------------------------------
//int bitmap_mask_color(BITMAP *bmp);
//---------------------------------------------------------------------------------------------
static int l_bitmap_mask_color(lua_State *L)
{
   get_bitmap_userdata();
   lua_pushnumber(L,bitmap_mask_color(bitmap));
return 1;
}

//---------------------------------------------------------------------------------------------
//int is_linear_bitmap(BITMAP *bmp);
//---------------------------------------------------------------------------------------------
static int l_is_linear_bitmap(lua_State *L)
{
   get_bitmap_userdata();
   lua_pushboolean(L,is_linear_bitmap(bitmap));
return 1;
}

//---------------------------------------------------------------------------------------------
//int is_planar_bitmap(BITMAP *bmp);
//---------------------------------------------------------------------------------------------
static int l_is_planar_bitmap(lua_State *L)
{
   get_bitmap_userdata();
   lua_pushboolean(L,is_planar_bitmap(bitmap));
return 1;
}

//---------------------------------------------------------------------------------------------
//int is_memory_bitmap(BITMAP *bmp);
//---------------------------------------------------------------------------------------------
static int l_is_memory_bitmap(lua_State *L)
{
   get_bitmap_userdata();
   lua_pushboolean(L,is_memory_bitmap(bitmap));
return 1;
}

//---------------------------------------------------------------------------------------------
//int is_screen_bitmap(BITMAP *bmp);
//---------------------------------------------------------------------------------------------
static int l_is_screen_bitmap(lua_State *L)
{
   get_bitmap_userdata();
   lua_pushboolean(L,is_screen_bitmap(bitmap));
return 1;
}

//---------------------------------------------------------------------------------------------
//int is_sub_bitmap(BITMAP *bmp);
//---------------------------------------------------------------------------------------------
static int l_is_sub_bitmap(lua_State *L)
{
   get_bitmap_userdata();
   lua_pushboolean(L,is_sub_bitmap(bitmap));
return 1;
}

//---------------------------------------------------------------------------------------------
//int is_system_bitmap(BITMAP *bmp);
//---------------------------------------------------------------------------------------------
static int l_is_system_bitmap(lua_State *L)
{
   get_bitmap_userdata();
   lua_pushboolean(L,is_system_bitmap(bitmap));
return 1;
}

//---------------------------------------------------------------------------------------------
//int is_video_bitmap(BITMAP *bmp);
//---------------------------------------------------------------------------------------------
static int l_is_video_bitmap(lua_State *L)
{
   get_bitmap_userdata();
   lua_pushboolean(L,is_video_bitmap(bitmap));
return 1;
}

//---------------------------------------------------------------------------------------------
//int is_inside_bitmap(BITMAP *bmp, int x, int y, int clip);
//---------------------------------------------------------------------------------------------
static int l_is_inside_bitmap(lua_State *L)
{
   int x       = lua_tonumber (L,2);
   int y       = lua_tonumber (L,3);
   int clip    = lua_toboolean(L,4);
   get_bitmap_userdata();
   lua_pushboolean(L,is_inside_bitmap(bitmap,x,y,clip));
return 1;
}

//---------------------------------------------------------------------------------------------
//int is_same_bitmap(BITMAP *bmp1, BITMAP *bmp2);
//---------------------------------------------------------------------------------------------
static int l_is_same_bitmap(lua_State *L)
{
   AUD*    au_bitmap2;
   BITMAP* bitmap2;

   get_bitmap_userdata();

   au_bitmap2 = (AUD*) lua_touserdata (L,2);
   if (au_bitmap2 && au_bitmap2->DataType==AL_BITMAP) bitmap2 = (BITMAP*) au_bitmap2->DataPtr;
                                                 else bitmap2 = screen;

   lua_pushboolean(L,is_same_bitmap(bitmap,bitmap2));
return 1;
}

//---------------------------------------------------------------------------------------------
//void lock_bitmap(BITMAP *bitmap);
//---------------------------------------------------------------------------------------------
static int l_lock_bitmap(lua_State *L)
{
   get_bitmap_userdata();
   lock_bitmap(bitmap);
return 0;
}

//---------------------------------------------------------------------------------------------
//int SCREEN_H()
//---------------------------------------------------------------------------------------------
static int l_SCREEN_H(lua_State *L)
{
lua_pushnumber(L,SCREEN_H);
return 1;
}

//---------------------------------------------------------------------------------------------
//int SCREEN_W()
//---------------------------------------------------------------------------------------------
static int l_SCREEN_W(lua_State *L)
{
lua_pushnumber(L,SCREEN_W);
return 1;
}

//---------------------------------------------------------------------------------------------
//int VIRTUAL_H()
//---------------------------------------------------------------------------------------------
static int l_VIRTUAL_H(lua_State *L)
{
lua_pushnumber(L,VIRTUAL_H);
return 1;
}

//---------------------------------------------------------------------------------------------
//int VIRTUAL_W()
//---------------------------------------------------------------------------------------------
static int l_VIRTUAL_W(lua_State *L)
{
lua_pushnumber(L,VIRTUAL_W);
return 1;
}

//---------------------------------------------------------------------------------------------
//w,h,clip,cl,cr,ct,cb=get_bitmap_info(bitmap)
//---------------------------------------------------------------------------------------------
static int l_get_bitmap_info(lua_State *L)
{
   get_bitmap_userdata();

   lua_pushnumber(L,bitmap->w);
   lua_pushnumber(L,bitmap->h);
   lua_pushboolean(L,bitmap->clip);
   lua_pushnumber(L,bitmap->cl);
   lua_pushnumber(L,bitmap->cr);
   lua_pushnumber(L,bitmap->ct);
   lua_pushnumber(L,bitmap->cb);

return 7;
}


//---------------------------------------------------------------------------------------------
static const struct luaL_reg allegro_bmp_lib [] = {
      {"create_bitmap",         l_create_bitmap},
      {"create_bitmap_ex",      l_create_bitmap_ex},
      {"create_sub_bitmap",     l_create_sub_bitmap},
      {"create_system_bitmap",  l_create_system_bitmap},
      {"create_video_bitmap",   l_create_video_bitmap},

      {"get_clip_rect",         l_get_clip_rect},
      {"get_clip_state",        l_get_clip_state},
      {"set_clip_rect",         l_set_clip_rect},
      {"add_clip_rect",         l_add_clip_rect},
      {"set_clip_state",        l_set_clip_state},

      {"bitmap_color_depth",    l_bitmap_color_depth},
      {"bitmap_mask_color",     l_bitmap_mask_color},

      {"is_linear_bitmap",      l_is_linear_bitmap},
      {"is_planar_bitmap",      l_is_planar_bitmap},
      {"is_memory_bitmap",      l_is_memory_bitmap},
      {"is_screen_bitmap",      l_is_screen_bitmap},
      {"is_system_bitmap",      l_is_system_bitmap},
      {"is_video_bitmap",       l_is_video_bitmap},
      {"is_sub_bitmap",         l_is_sub_bitmap},
      {"is_inside_bitmap",      l_is_inside_bitmap},

      {"lock_bitmap",           l_lock_bitmap},
      {"SCREEN_H",              l_SCREEN_H},
      {"SCREEN_W",              l_SCREEN_W},
      {"VIRTUAL_H",             l_VIRTUAL_H},
      {"VIRTUAL_W",             l_VIRTUAL_W},
 
      {"get_bitmap_info",       l_get_bitmap_info},

      {"acquire_bitmap",        l_acquire_bitmap},
      {"acquire_screen",        l_acquire_screen},
      {"release_bitmap",        l_release_bitmap},
      {"release_screen",        l_release_screen},

      {NULL,                    NULL}  /* sentinel */
    };


//-----------------------------------------------------------------------------------------------
int luaopen_allegro_bmp(lua_State *L) 
{
   luaL_openlib(L, "allegro",   allegro_bmp_lib,   0);
   return 1;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -