mirror of
				https://github.com/haya3218/SDfmL.git
				synced 2024-08-14 23:57:09 +00:00 
			
		
		
		
	experimental...............................
lua support! :)
This commit is contained in:
		
							parent
							
								
									0be41fede1
								
							
						
					
					
						commit
						5a41eeef4f
					
				
					 14 changed files with 31123 additions and 18 deletions
				
			
		
							
								
								
									
										3
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -11,4 +11,5 @@ lib/x86/*.txt
 | 
			
		|||
bin/*.exe
 | 
			
		||||
bin/*.dll
 | 
			
		||||
bin/log.txt
 | 
			
		||||
bin/conf.toml
 | 
			
		||||
bin/conf.toml
 | 
			
		||||
compile_flags.txt
 | 
			
		||||
| 
						 | 
				
			
			@ -11,6 +11,8 @@ set(OUT2_INCLUDE_DIRS "${CMAKE_CURRENT_LIST_DIR}/src/SoLoud/MIDI/")
 | 
			
		|||
set(OUT3_INCLUDE_DIRS "${CMAKE_CURRENT_LIST_DIR}/src/toml/")
 | 
			
		||||
set(OUT4_INCLUDE_DIRS "${CMAKE_CURRENT_LIST_DIR}/src/sdfml/")
 | 
			
		||||
set(OUT5_INCLUDE_DIRS "${CMAKE_CURRENT_LIST_DIR}/src/SDL_gpu/")
 | 
			
		||||
set(OUT6_INCLUDE_DIRS "${CMAKE_CURRENT_LIST_DIR}/src/lua/lua/")
 | 
			
		||||
set(OUT7_INCLUDE_DIRS "${CMAKE_CURRENT_LIST_DIR}/src/lua/")
 | 
			
		||||
 | 
			
		||||
option(PREFER_MODPLUG "Use libmodplug api instead of libopenmpt for module playback" ON)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -23,7 +25,7 @@ endif ()
 | 
			
		|||
# Support both 32 and 64 bit builds
 | 
			
		||||
# Someone make a pull request to support MingW
 | 
			
		||||
# Way to lazy to do that right now
 | 
			
		||||
set(MAIN_LIBRARIES "${MAIN_LIBRARIES_E}/SDL2_gpu.lib;${MAIN_LIBRARIES_E}/libmodplug.lib;${MAIN_LIBRARIES_E}/soloud_static.lib;${MAIN_LIBRARIES_E}/SDL2.lib;${MAIN_LIBRARIES_E}/SDL2_ttf.lib")
 | 
			
		||||
set(MAIN_LIBRARIES "${MAIN_LIBRARIES_E}/luajit.lib;${MAIN_LIBRARIES_E}/lua51.lib;${MAIN_LIBRARIES_E}/SDL2_gpu.lib;${MAIN_LIBRARIES_E}/libmodplug.lib;${MAIN_LIBRARIES_E}/soloud_static.lib;${MAIN_LIBRARIES_E}/SDL2.lib;${MAIN_LIBRARIES_E}/SDL2_ttf.lib")
 | 
			
		||||
 | 
			
		||||
# strip it all
 | 
			
		||||
string(STRIP "${MAIN_LIBRARIES}" MAIN_LIBRARIES)
 | 
			
		||||
| 
						 | 
				
			
			@ -35,6 +37,8 @@ include_directories(${OUT2_INCLUDE_DIRS})
 | 
			
		|||
include_directories(${OUT3_INCLUDE_DIRS})
 | 
			
		||||
include_directories(${OUT4_INCLUDE_DIRS})
 | 
			
		||||
include_directories(${OUT5_INCLUDE_DIRS})
 | 
			
		||||
include_directories(${OUT6_INCLUDE_DIRS})
 | 
			
		||||
include_directories(${OUT7_INCLUDE_DIRS})
 | 
			
		||||
include_directories(${CMAKE_CURRENT_LIST_DIR}/src)
 | 
			
		||||
 | 
			
		||||
# add EVERY FUCKING source file to SOURCES
 | 
			
		||||
| 
						 | 
				
			
			@ -53,6 +57,8 @@ FILE(GLOB SOURCES "${CMAKE_CURRENT_LIST_DIR}/src/*.cpp"
 | 
			
		|||
"${CMAKE_CURRENT_LIST_DIR}/src/sdfml/*.cpp" 
 | 
			
		||||
"${CMAKE_CURRENT_LIST_DIR}/src/sdfml/*.hpp"  
 | 
			
		||||
"${CMAKE_CURRENT_LIST_DIR}/src/SDL_gpu/*.h"  
 | 
			
		||||
"${CMAKE_CURRENT_LIST_DIR}/src/lua/*.hpp"  
 | 
			
		||||
"${CMAKE_CURRENT_LIST_DIR}/src/lua/lua/*.h"  
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
# set c++ std to 17
 | 
			
		||||
| 
						 | 
				
			
			@ -91,6 +97,8 @@ file(REMOVE_RECURSE "${BUILD_DIRECTORY}/SDL2test.lib")
 | 
			
		|||
file(REMOVE_RECURSE "${BUILD_DIRECTORY}/SDL2_gpu.lib")
 | 
			
		||||
file(REMOVE_RECURSE "${BUILD_DIRECTORY}/soloud_static.lib")
 | 
			
		||||
file(REMOVE_RECURSE "${BUILD_DIRECTORY}/libmodplug.lib")
 | 
			
		||||
file(REMOVE_RECURSE "${BUILD_DIRECTORY}/lua51.lib")
 | 
			
		||||
file(REMOVE_RECURSE "${BUILD_DIRECTORY}/luajit.lib")
 | 
			
		||||
 | 
			
		||||
if (PREFER_MODPLUG)
 | 
			
		||||
file(REMOVE_RECURSE "${BUILD_DIRECTORY}/libopenmpt.dll")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										16
									
								
								src/Main.cpp
									
										
									
									
									
								
							
							
						
						
									
										16
									
								
								src/Main.cpp
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -50,22 +50,6 @@ class ExampleState : public sdfml::sdState {
 | 
			
		|||
                example.y -= 1;
 | 
			
		||||
            if (sdfml::key_pressed(SDL_SCANCODE_DOWN))
 | 
			
		||||
                example.y += 1;
 | 
			
		||||
            if (sdfml::key_pressed(SDL_SCANCODE_A))
 | 
			
		||||
                sdfml::camera.x -= 1;
 | 
			
		||||
            if (sdfml::key_pressed(SDL_SCANCODE_D))
 | 
			
		||||
                sdfml::camera.x += 1;
 | 
			
		||||
            if (sdfml::key_pressed(SDL_SCANCODE_W))
 | 
			
		||||
                sdfml::camera.y -= 1;
 | 
			
		||||
            if (sdfml::key_pressed(SDL_SCANCODE_S))
 | 
			
		||||
                sdfml::camera.y += 1;
 | 
			
		||||
            if (sdfml::key_pressed(SDL_SCANCODE_J))
 | 
			
		||||
                sdfml::camera.zoom_x -= 0.1;
 | 
			
		||||
            if (sdfml::key_pressed(SDL_SCANCODE_L))
 | 
			
		||||
                sdfml::camera.zoom_x += 0.1;
 | 
			
		||||
            if (sdfml::key_pressed(SDL_SCANCODE_K))
 | 
			
		||||
                sdfml::camera.zoom_y -= 0.1;
 | 
			
		||||
            if (sdfml::key_pressed(SDL_SCANCODE_I))
 | 
			
		||||
                sdfml::camera.zoom_y += 0.1;
 | 
			
		||||
            if (sdfml::key_just_pressed(SDL_SCANCODE_R))
 | 
			
		||||
                sdfml::switchState(this);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										55
									
								
								src/lua/config.hpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								src/lua/config.hpp
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,55 @@
 | 
			
		|||
// The MIT License (MIT)
 | 
			
		||||
 | 
			
		||||
// Copyright (c) 2013-2020 Rapptz, ThePhD and contributors
 | 
			
		||||
 | 
			
		||||
// Permission is hereby granted, free of charge, to any person obtaining a copy of
 | 
			
		||||
// this software and associated documentation files (the "Software"), to deal in
 | 
			
		||||
// the Software without restriction, including without limitation the rights to
 | 
			
		||||
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
 | 
			
		||||
// the Software, and to permit persons to whom the Software is furnished to do so,
 | 
			
		||||
// subject to the following conditions:
 | 
			
		||||
 | 
			
		||||
// The above copyright notice and this permission notice shall be included in all
 | 
			
		||||
// copies or substantial portions of the Software.
 | 
			
		||||
 | 
			
		||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
			
		||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
 | 
			
		||||
// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
 | 
			
		||||
// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
 | 
			
		||||
// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 | 
			
		||||
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 | 
			
		||||
 | 
			
		||||
// This file was generated with a script.
 | 
			
		||||
// Generated 2022-02-19 05:39:55.556737 UTC
 | 
			
		||||
// This header was generated with sol  (revision )
 | 
			
		||||
// https://github.com/ThePhD/sol2
 | 
			
		||||
 | 
			
		||||
#ifndef SOL_SINGLE_CONFIG_HPP
 | 
			
		||||
#define SOL_SINGLE_CONFIG_HPP
 | 
			
		||||
 | 
			
		||||
// beginning of sol/config.hpp
 | 
			
		||||
 | 
			
		||||
/* Base, empty configuration file!
 | 
			
		||||
 | 
			
		||||
     To override, place a file in your include paths of the form:
 | 
			
		||||
 | 
			
		||||
. (your include path here)
 | 
			
		||||
| sol (directory, or equivalent)
 | 
			
		||||
  | config.hpp (your config.hpp file)
 | 
			
		||||
 | 
			
		||||
     So that when sol2 includes the file
 | 
			
		||||
 | 
			
		||||
#include <sol/config.hpp>
 | 
			
		||||
 | 
			
		||||
     it gives you the configuration values you desire. Configuration values can be
 | 
			
		||||
seen in the safety.rst of the doc/src, or at
 | 
			
		||||
https://sol2.readthedocs.io/en/latest/safety.html ! You can also pass them through
 | 
			
		||||
the build system, or the command line options of your compiler.
 | 
			
		||||
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#define SOL_LUAJIT
 | 
			
		||||
 | 
			
		||||
// end of sol/config.hpp
 | 
			
		||||
 | 
			
		||||
#endif // SOL_SINGLE_CONFIG_HPP
 | 
			
		||||
							
								
								
									
										1310
									
								
								src/lua/forward.hpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1310
									
								
								src/lua/forward.hpp
									
										
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
							
								
								
									
										161
									
								
								src/lua/lua/lauxlib.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										161
									
								
								src/lua/lua/lauxlib.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,161 @@
 | 
			
		|||
/*
 | 
			
		||||
** $Id: lauxlib.h,v 1.88.1.1 2007/12/27 13:02:25 roberto Exp $
 | 
			
		||||
** Auxiliary functions for building Lua libraries
 | 
			
		||||
** See Copyright Notice in lua.h
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef lauxlib_h
 | 
			
		||||
#define lauxlib_h
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#include <stddef.h>
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
 | 
			
		||||
#include "lua.h"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* extra error code for `luaL_load' */
 | 
			
		||||
#define LUA_ERRFILE     (LUA_ERRERR+1)
 | 
			
		||||
 | 
			
		||||
typedef struct luaL_Reg {
 | 
			
		||||
  const char *name;
 | 
			
		||||
  lua_CFunction func;
 | 
			
		||||
} luaL_Reg;
 | 
			
		||||
 | 
			
		||||
LUALIB_API void (luaL_openlib) (lua_State *L, const char *libname,
 | 
			
		||||
                                const luaL_Reg *l, int nup);
 | 
			
		||||
LUALIB_API void (luaL_register) (lua_State *L, const char *libname,
 | 
			
		||||
                                const luaL_Reg *l);
 | 
			
		||||
LUALIB_API int (luaL_getmetafield) (lua_State *L, int obj, const char *e);
 | 
			
		||||
LUALIB_API int (luaL_callmeta) (lua_State *L, int obj, const char *e);
 | 
			
		||||
LUALIB_API int (luaL_typerror) (lua_State *L, int narg, const char *tname);
 | 
			
		||||
LUALIB_API int (luaL_argerror) (lua_State *L, int numarg, const char *extramsg);
 | 
			
		||||
LUALIB_API const char *(luaL_checklstring) (lua_State *L, int numArg,
 | 
			
		||||
                                                          size_t *l);
 | 
			
		||||
LUALIB_API const char *(luaL_optlstring) (lua_State *L, int numArg,
 | 
			
		||||
                                          const char *def, size_t *l);
 | 
			
		||||
LUALIB_API lua_Number (luaL_checknumber) (lua_State *L, int numArg);
 | 
			
		||||
LUALIB_API lua_Number (luaL_optnumber) (lua_State *L, int nArg, lua_Number def);
 | 
			
		||||
 | 
			
		||||
LUALIB_API lua_Integer (luaL_checkinteger) (lua_State *L, int numArg);
 | 
			
		||||
LUALIB_API lua_Integer (luaL_optinteger) (lua_State *L, int nArg,
 | 
			
		||||
                                          lua_Integer def);
 | 
			
		||||
 | 
			
		||||
LUALIB_API void (luaL_checkstack) (lua_State *L, int sz, const char *msg);
 | 
			
		||||
LUALIB_API void (luaL_checktype) (lua_State *L, int narg, int t);
 | 
			
		||||
LUALIB_API void (luaL_checkany) (lua_State *L, int narg);
 | 
			
		||||
 | 
			
		||||
LUALIB_API int   (luaL_newmetatable) (lua_State *L, const char *tname);
 | 
			
		||||
LUALIB_API void *(luaL_checkudata) (lua_State *L, int ud, const char *tname);
 | 
			
		||||
 | 
			
		||||
LUALIB_API void (luaL_where) (lua_State *L, int lvl);
 | 
			
		||||
LUALIB_API int (luaL_error) (lua_State *L, const char *fmt, ...);
 | 
			
		||||
 | 
			
		||||
LUALIB_API int (luaL_checkoption) (lua_State *L, int narg, const char *def,
 | 
			
		||||
                                   const char *const lst[]);
 | 
			
		||||
 | 
			
		||||
/* pre-defined references */
 | 
			
		||||
#define LUA_NOREF       (-2)
 | 
			
		||||
#define LUA_REFNIL      (-1)
 | 
			
		||||
 | 
			
		||||
LUALIB_API int (luaL_ref) (lua_State *L, int t);
 | 
			
		||||
LUALIB_API void (luaL_unref) (lua_State *L, int t, int ref);
 | 
			
		||||
 | 
			
		||||
LUALIB_API int (luaL_loadfile) (lua_State *L, const char *filename);
 | 
			
		||||
LUALIB_API int (luaL_loadbuffer) (lua_State *L, const char *buff, size_t sz,
 | 
			
		||||
                                  const char *name);
 | 
			
		||||
LUALIB_API int (luaL_loadstring) (lua_State *L, const char *s);
 | 
			
		||||
 | 
			
		||||
LUALIB_API lua_State *(luaL_newstate) (void);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
LUALIB_API const char *(luaL_gsub) (lua_State *L, const char *s, const char *p,
 | 
			
		||||
                                                  const char *r);
 | 
			
		||||
 | 
			
		||||
LUALIB_API const char *(luaL_findtable) (lua_State *L, int idx,
 | 
			
		||||
                                         const char *fname, int szhint);
 | 
			
		||||
 | 
			
		||||
/* From Lua 5.2. */
 | 
			
		||||
LUALIB_API int luaL_fileresult(lua_State *L, int stat, const char *fname);
 | 
			
		||||
LUALIB_API int luaL_execresult(lua_State *L, int stat);
 | 
			
		||||
LUALIB_API int (luaL_loadfilex) (lua_State *L, const char *filename,
 | 
			
		||||
				 const char *mode);
 | 
			
		||||
LUALIB_API int (luaL_loadbufferx) (lua_State *L, const char *buff, size_t sz,
 | 
			
		||||
				   const char *name, const char *mode);
 | 
			
		||||
LUALIB_API void luaL_traceback (lua_State *L, lua_State *L1, const char *msg,
 | 
			
		||||
				int level);
 | 
			
		||||
LUALIB_API void (luaL_setfuncs) (lua_State *L, const luaL_Reg *l, int nup);
 | 
			
		||||
LUALIB_API void (luaL_pushmodule) (lua_State *L, const char *modname,
 | 
			
		||||
				   int sizehint);
 | 
			
		||||
LUALIB_API void *(luaL_testudata) (lua_State *L, int ud, const char *tname);
 | 
			
		||||
LUALIB_API void (luaL_setmetatable) (lua_State *L, const char *tname);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
** ===============================================================
 | 
			
		||||
** some useful macros
 | 
			
		||||
** ===============================================================
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#define luaL_argcheck(L, cond,numarg,extramsg)	\
 | 
			
		||||
		((void)((cond) || luaL_argerror(L, (numarg), (extramsg))))
 | 
			
		||||
#define luaL_checkstring(L,n)	(luaL_checklstring(L, (n), NULL))
 | 
			
		||||
#define luaL_optstring(L,n,d)	(luaL_optlstring(L, (n), (d), NULL))
 | 
			
		||||
#define luaL_checkint(L,n)	((int)luaL_checkinteger(L, (n)))
 | 
			
		||||
#define luaL_optint(L,n,d)	((int)luaL_optinteger(L, (n), (d)))
 | 
			
		||||
#define luaL_checklong(L,n)	((long)luaL_checkinteger(L, (n)))
 | 
			
		||||
#define luaL_optlong(L,n,d)	((long)luaL_optinteger(L, (n), (d)))
 | 
			
		||||
 | 
			
		||||
#define luaL_typename(L,i)	lua_typename(L, lua_type(L,(i)))
 | 
			
		||||
 | 
			
		||||
#define luaL_dofile(L, fn) \
 | 
			
		||||
	(luaL_loadfile(L, fn) || lua_pcall(L, 0, LUA_MULTRET, 0))
 | 
			
		||||
 | 
			
		||||
#define luaL_dostring(L, s) \
 | 
			
		||||
	(luaL_loadstring(L, s) || lua_pcall(L, 0, LUA_MULTRET, 0))
 | 
			
		||||
 | 
			
		||||
#define luaL_getmetatable(L,n)	(lua_getfield(L, LUA_REGISTRYINDEX, (n)))
 | 
			
		||||
 | 
			
		||||
#define luaL_opt(L,f,n,d)	(lua_isnoneornil(L,(n)) ? (d) : f(L,(n)))
 | 
			
		||||
 | 
			
		||||
/* From Lua 5.2. */
 | 
			
		||||
#define luaL_newlibtable(L, l) \
 | 
			
		||||
	lua_createtable(L, 0, sizeof(l)/sizeof((l)[0]) - 1)
 | 
			
		||||
#define luaL_newlib(L, l)	(luaL_newlibtable(L, l), luaL_setfuncs(L, l, 0))
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
** {======================================================
 | 
			
		||||
** Generic Buffer manipulation
 | 
			
		||||
** =======================================================
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
typedef struct luaL_Buffer {
 | 
			
		||||
  char *p;			/* current position in buffer */
 | 
			
		||||
  int lvl;  /* number of strings in the stack (level) */
 | 
			
		||||
  lua_State *L;
 | 
			
		||||
  char buffer[LUAL_BUFFERSIZE];
 | 
			
		||||
} luaL_Buffer;
 | 
			
		||||
 | 
			
		||||
#define luaL_addchar(B,c) \
 | 
			
		||||
  ((void)((B)->p < ((B)->buffer+LUAL_BUFFERSIZE) || luaL_prepbuffer(B)), \
 | 
			
		||||
   (*(B)->p++ = (char)(c)))
 | 
			
		||||
 | 
			
		||||
/* compatibility only */
 | 
			
		||||
#define luaL_putchar(B,c)	luaL_addchar(B,c)
 | 
			
		||||
 | 
			
		||||
#define luaL_addsize(B,n)	((B)->p += (n))
 | 
			
		||||
 | 
			
		||||
LUALIB_API void (luaL_buffinit) (lua_State *L, luaL_Buffer *B);
 | 
			
		||||
LUALIB_API char *(luaL_prepbuffer) (luaL_Buffer *B);
 | 
			
		||||
LUALIB_API void (luaL_addlstring) (luaL_Buffer *B, const char *s, size_t l);
 | 
			
		||||
LUALIB_API void (luaL_addstring) (luaL_Buffer *B, const char *s);
 | 
			
		||||
LUALIB_API void (luaL_addvalue) (luaL_Buffer *B);
 | 
			
		||||
LUALIB_API void (luaL_pushresult) (luaL_Buffer *B);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* }====================================================== */
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										402
									
								
								src/lua/lua/lua.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										402
									
								
								src/lua/lua/lua.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,402 @@
 | 
			
		|||
/*
 | 
			
		||||
** $Id: lua.h,v 1.218.1.5 2008/08/06 13:30:12 roberto Exp $
 | 
			
		||||
** Lua - An Extensible Extension Language
 | 
			
		||||
** Lua.org, PUC-Rio, Brazil (http://www.lua.org)
 | 
			
		||||
** See Copyright Notice at the end of this file
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef lua_h
 | 
			
		||||
#define lua_h
 | 
			
		||||
 | 
			
		||||
#include <stdarg.h>
 | 
			
		||||
#include <stddef.h>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#include "luaconf.h"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#define LUA_VERSION	"Lua 5.1"
 | 
			
		||||
#define LUA_RELEASE	"Lua 5.1.4"
 | 
			
		||||
#define LUA_VERSION_NUM	501
 | 
			
		||||
#define LUA_COPYRIGHT	"Copyright (C) 1994-2008 Lua.org, PUC-Rio"
 | 
			
		||||
#define LUA_AUTHORS	"R. Ierusalimschy, L. H. de Figueiredo & W. Celes"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* mark for precompiled code (`<esc>Lua') */
 | 
			
		||||
#define	LUA_SIGNATURE	"\033Lua"
 | 
			
		||||
 | 
			
		||||
/* option for multiple returns in `lua_pcall' and `lua_call' */
 | 
			
		||||
#define LUA_MULTRET	(-1)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
** pseudo-indices
 | 
			
		||||
*/
 | 
			
		||||
#define LUA_REGISTRYINDEX	(-10000)
 | 
			
		||||
#define LUA_ENVIRONINDEX	(-10001)
 | 
			
		||||
#define LUA_GLOBALSINDEX	(-10002)
 | 
			
		||||
#define lua_upvalueindex(i)	(LUA_GLOBALSINDEX-(i))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* thread status */
 | 
			
		||||
#define LUA_OK		0
 | 
			
		||||
#define LUA_YIELD	1
 | 
			
		||||
#define LUA_ERRRUN	2
 | 
			
		||||
#define LUA_ERRSYNTAX	3
 | 
			
		||||
#define LUA_ERRMEM	4
 | 
			
		||||
#define LUA_ERRERR	5
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
typedef struct lua_State lua_State;
 | 
			
		||||
 | 
			
		||||
typedef int (*lua_CFunction) (lua_State *L);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
** functions that read/write blocks when loading/dumping Lua chunks
 | 
			
		||||
*/
 | 
			
		||||
typedef const char * (*lua_Reader) (lua_State *L, void *ud, size_t *sz);
 | 
			
		||||
 | 
			
		||||
typedef int (*lua_Writer) (lua_State *L, const void* p, size_t sz, void* ud);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
** prototype for memory-allocation functions
 | 
			
		||||
*/
 | 
			
		||||
typedef void * (*lua_Alloc) (void *ud, void *ptr, size_t osize, size_t nsize);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
** basic types
 | 
			
		||||
*/
 | 
			
		||||
#define LUA_TNONE		(-1)
 | 
			
		||||
 | 
			
		||||
#define LUA_TNIL		0
 | 
			
		||||
#define LUA_TBOOLEAN		1
 | 
			
		||||
#define LUA_TLIGHTUSERDATA	2
 | 
			
		||||
#define LUA_TNUMBER		3
 | 
			
		||||
#define LUA_TSTRING		4
 | 
			
		||||
#define LUA_TTABLE		5
 | 
			
		||||
#define LUA_TFUNCTION		6
 | 
			
		||||
#define LUA_TUSERDATA		7
 | 
			
		||||
#define LUA_TTHREAD		8
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* minimum Lua stack available to a C function */
 | 
			
		||||
#define LUA_MINSTACK	20
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
** generic extra include file
 | 
			
		||||
*/
 | 
			
		||||
#if defined(LUA_USER_H)
 | 
			
		||||
#include LUA_USER_H
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* type of numbers in Lua */
 | 
			
		||||
typedef LUA_NUMBER lua_Number;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* type for integer functions */
 | 
			
		||||
typedef LUA_INTEGER lua_Integer;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
** state manipulation
 | 
			
		||||
*/
 | 
			
		||||
LUA_API lua_State *(lua_newstate) (lua_Alloc f, void *ud);
 | 
			
		||||
LUA_API void       (lua_close) (lua_State *L);
 | 
			
		||||
LUA_API lua_State *(lua_newthread) (lua_State *L);
 | 
			
		||||
 | 
			
		||||
LUA_API lua_CFunction (lua_atpanic) (lua_State *L, lua_CFunction panicf);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
** basic stack manipulation
 | 
			
		||||
*/
 | 
			
		||||
LUA_API int   (lua_gettop) (lua_State *L);
 | 
			
		||||
LUA_API void  (lua_settop) (lua_State *L, int idx);
 | 
			
		||||
LUA_API void  (lua_pushvalue) (lua_State *L, int idx);
 | 
			
		||||
LUA_API void  (lua_remove) (lua_State *L, int idx);
 | 
			
		||||
LUA_API void  (lua_insert) (lua_State *L, int idx);
 | 
			
		||||
LUA_API void  (lua_replace) (lua_State *L, int idx);
 | 
			
		||||
LUA_API int   (lua_checkstack) (lua_State *L, int sz);
 | 
			
		||||
 | 
			
		||||
LUA_API void  (lua_xmove) (lua_State *from, lua_State *to, int n);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
** access functions (stack -> C)
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
LUA_API int             (lua_isnumber) (lua_State *L, int idx);
 | 
			
		||||
LUA_API int             (lua_isstring) (lua_State *L, int idx);
 | 
			
		||||
LUA_API int             (lua_iscfunction) (lua_State *L, int idx);
 | 
			
		||||
LUA_API int             (lua_isuserdata) (lua_State *L, int idx);
 | 
			
		||||
LUA_API int             (lua_type) (lua_State *L, int idx);
 | 
			
		||||
LUA_API const char     *(lua_typename) (lua_State *L, int tp);
 | 
			
		||||
 | 
			
		||||
LUA_API int            (lua_equal) (lua_State *L, int idx1, int idx2);
 | 
			
		||||
LUA_API int            (lua_rawequal) (lua_State *L, int idx1, int idx2);
 | 
			
		||||
LUA_API int            (lua_lessthan) (lua_State *L, int idx1, int idx2);
 | 
			
		||||
 | 
			
		||||
LUA_API lua_Number      (lua_tonumber) (lua_State *L, int idx);
 | 
			
		||||
LUA_API lua_Integer     (lua_tointeger) (lua_State *L, int idx);
 | 
			
		||||
LUA_API int             (lua_toboolean) (lua_State *L, int idx);
 | 
			
		||||
LUA_API const char     *(lua_tolstring) (lua_State *L, int idx, size_t *len);
 | 
			
		||||
LUA_API size_t          (lua_objlen) (lua_State *L, int idx);
 | 
			
		||||
LUA_API lua_CFunction   (lua_tocfunction) (lua_State *L, int idx);
 | 
			
		||||
LUA_API void	       *(lua_touserdata) (lua_State *L, int idx);
 | 
			
		||||
LUA_API lua_State      *(lua_tothread) (lua_State *L, int idx);
 | 
			
		||||
LUA_API const void     *(lua_topointer) (lua_State *L, int idx);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
** push functions (C -> stack)
 | 
			
		||||
*/
 | 
			
		||||
LUA_API void  (lua_pushnil) (lua_State *L);
 | 
			
		||||
LUA_API void  (lua_pushnumber) (lua_State *L, lua_Number n);
 | 
			
		||||
LUA_API void  (lua_pushinteger) (lua_State *L, lua_Integer n);
 | 
			
		||||
LUA_API void  (lua_pushlstring) (lua_State *L, const char *s, size_t l);
 | 
			
		||||
LUA_API void  (lua_pushstring) (lua_State *L, const char *s);
 | 
			
		||||
LUA_API const char *(lua_pushvfstring) (lua_State *L, const char *fmt,
 | 
			
		||||
                                                      va_list argp);
 | 
			
		||||
LUA_API const char *(lua_pushfstring) (lua_State *L, const char *fmt, ...);
 | 
			
		||||
LUA_API void  (lua_pushcclosure) (lua_State *L, lua_CFunction fn, int n);
 | 
			
		||||
LUA_API void  (lua_pushboolean) (lua_State *L, int b);
 | 
			
		||||
LUA_API void  (lua_pushlightuserdata) (lua_State *L, void *p);
 | 
			
		||||
LUA_API int   (lua_pushthread) (lua_State *L);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
** get functions (Lua -> stack)
 | 
			
		||||
*/
 | 
			
		||||
LUA_API void  (lua_gettable) (lua_State *L, int idx);
 | 
			
		||||
LUA_API void  (lua_getfield) (lua_State *L, int idx, const char *k);
 | 
			
		||||
LUA_API void  (lua_rawget) (lua_State *L, int idx);
 | 
			
		||||
LUA_API void  (lua_rawgeti) (lua_State *L, int idx, int n);
 | 
			
		||||
LUA_API void  (lua_createtable) (lua_State *L, int narr, int nrec);
 | 
			
		||||
LUA_API void *(lua_newuserdata) (lua_State *L, size_t sz);
 | 
			
		||||
LUA_API int   (lua_getmetatable) (lua_State *L, int objindex);
 | 
			
		||||
LUA_API void  (lua_getfenv) (lua_State *L, int idx);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
** set functions (stack -> Lua)
 | 
			
		||||
*/
 | 
			
		||||
LUA_API void  (lua_settable) (lua_State *L, int idx);
 | 
			
		||||
LUA_API void  (lua_setfield) (lua_State *L, int idx, const char *k);
 | 
			
		||||
LUA_API void  (lua_rawset) (lua_State *L, int idx);
 | 
			
		||||
LUA_API void  (lua_rawseti) (lua_State *L, int idx, int n);
 | 
			
		||||
LUA_API int   (lua_setmetatable) (lua_State *L, int objindex);
 | 
			
		||||
LUA_API int   (lua_setfenv) (lua_State *L, int idx);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
** `load' and `call' functions (load and run Lua code)
 | 
			
		||||
*/
 | 
			
		||||
LUA_API void  (lua_call) (lua_State *L, int nargs, int nresults);
 | 
			
		||||
LUA_API int   (lua_pcall) (lua_State *L, int nargs, int nresults, int errfunc);
 | 
			
		||||
LUA_API int   (lua_cpcall) (lua_State *L, lua_CFunction func, void *ud);
 | 
			
		||||
LUA_API int   (lua_load) (lua_State *L, lua_Reader reader, void *dt,
 | 
			
		||||
                                        const char *chunkname);
 | 
			
		||||
 | 
			
		||||
LUA_API int (lua_dump) (lua_State *L, lua_Writer writer, void *data);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
** coroutine functions
 | 
			
		||||
*/
 | 
			
		||||
LUA_API int  (lua_yield) (lua_State *L, int nresults);
 | 
			
		||||
LUA_API int  (lua_resume) (lua_State *L, int narg);
 | 
			
		||||
LUA_API int  (lua_status) (lua_State *L);
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
** garbage-collection function and options
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#define LUA_GCSTOP		0
 | 
			
		||||
#define LUA_GCRESTART		1
 | 
			
		||||
#define LUA_GCCOLLECT		2
 | 
			
		||||
#define LUA_GCCOUNT		3
 | 
			
		||||
#define LUA_GCCOUNTB		4
 | 
			
		||||
#define LUA_GCSTEP		5
 | 
			
		||||
#define LUA_GCSETPAUSE		6
 | 
			
		||||
#define LUA_GCSETSTEPMUL	7
 | 
			
		||||
#define LUA_GCISRUNNING		9
 | 
			
		||||
 | 
			
		||||
LUA_API int (lua_gc) (lua_State *L, int what, int data);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
** miscellaneous functions
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
LUA_API int   (lua_error) (lua_State *L);
 | 
			
		||||
 | 
			
		||||
LUA_API int   (lua_next) (lua_State *L, int idx);
 | 
			
		||||
 | 
			
		||||
LUA_API void  (lua_concat) (lua_State *L, int n);
 | 
			
		||||
 | 
			
		||||
LUA_API lua_Alloc (lua_getallocf) (lua_State *L, void **ud);
 | 
			
		||||
LUA_API void lua_setallocf (lua_State *L, lua_Alloc f, void *ud);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
** ===============================================================
 | 
			
		||||
** some useful macros
 | 
			
		||||
** ===============================================================
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#define lua_pop(L,n)		lua_settop(L, -(n)-1)
 | 
			
		||||
 | 
			
		||||
#define lua_newtable(L)		lua_createtable(L, 0, 0)
 | 
			
		||||
 | 
			
		||||
#define lua_register(L,n,f) (lua_pushcfunction(L, (f)), lua_setglobal(L, (n)))
 | 
			
		||||
 | 
			
		||||
#define lua_pushcfunction(L,f)	lua_pushcclosure(L, (f), 0)
 | 
			
		||||
 | 
			
		||||
#define lua_strlen(L,i)		lua_objlen(L, (i))
 | 
			
		||||
 | 
			
		||||
#define lua_isfunction(L,n)	(lua_type(L, (n)) == LUA_TFUNCTION)
 | 
			
		||||
#define lua_istable(L,n)	(lua_type(L, (n)) == LUA_TTABLE)
 | 
			
		||||
#define lua_islightuserdata(L,n)	(lua_type(L, (n)) == LUA_TLIGHTUSERDATA)
 | 
			
		||||
#define lua_isnil(L,n)		(lua_type(L, (n)) == LUA_TNIL)
 | 
			
		||||
#define lua_isboolean(L,n)	(lua_type(L, (n)) == LUA_TBOOLEAN)
 | 
			
		||||
#define lua_isthread(L,n)	(lua_type(L, (n)) == LUA_TTHREAD)
 | 
			
		||||
#define lua_isnone(L,n)		(lua_type(L, (n)) == LUA_TNONE)
 | 
			
		||||
#define lua_isnoneornil(L, n)	(lua_type(L, (n)) <= 0)
 | 
			
		||||
 | 
			
		||||
#define lua_pushliteral(L, s)	\
 | 
			
		||||
	lua_pushlstring(L, "" s, (sizeof(s)/sizeof(char))-1)
 | 
			
		||||
 | 
			
		||||
#define lua_setglobal(L,s)	lua_setfield(L, LUA_GLOBALSINDEX, (s))
 | 
			
		||||
#define lua_getglobal(L,s)	lua_getfield(L, LUA_GLOBALSINDEX, (s))
 | 
			
		||||
 | 
			
		||||
#define lua_tostring(L,i)	lua_tolstring(L, (i), NULL)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
** compatibility macros and functions
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#define lua_open()	luaL_newstate()
 | 
			
		||||
 | 
			
		||||
#define lua_getregistry(L)	lua_pushvalue(L, LUA_REGISTRYINDEX)
 | 
			
		||||
 | 
			
		||||
#define lua_getgccount(L)	lua_gc(L, LUA_GCCOUNT, 0)
 | 
			
		||||
 | 
			
		||||
#define lua_Chunkreader		lua_Reader
 | 
			
		||||
#define lua_Chunkwriter		lua_Writer
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* hack */
 | 
			
		||||
LUA_API void lua_setlevel	(lua_State *from, lua_State *to);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
** {======================================================================
 | 
			
		||||
** Debug API
 | 
			
		||||
** =======================================================================
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
** Event codes
 | 
			
		||||
*/
 | 
			
		||||
#define LUA_HOOKCALL	0
 | 
			
		||||
#define LUA_HOOKRET	1
 | 
			
		||||
#define LUA_HOOKLINE	2
 | 
			
		||||
#define LUA_HOOKCOUNT	3
 | 
			
		||||
#define LUA_HOOKTAILRET 4
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
** Event masks
 | 
			
		||||
*/
 | 
			
		||||
#define LUA_MASKCALL	(1 << LUA_HOOKCALL)
 | 
			
		||||
#define LUA_MASKRET	(1 << LUA_HOOKRET)
 | 
			
		||||
#define LUA_MASKLINE	(1 << LUA_HOOKLINE)
 | 
			
		||||
#define LUA_MASKCOUNT	(1 << LUA_HOOKCOUNT)
 | 
			
		||||
 | 
			
		||||
typedef struct lua_Debug lua_Debug;  /* activation record */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Functions to be called by the debuger in specific events */
 | 
			
		||||
typedef void (*lua_Hook) (lua_State *L, lua_Debug *ar);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
LUA_API int lua_getstack (lua_State *L, int level, lua_Debug *ar);
 | 
			
		||||
LUA_API int lua_getinfo (lua_State *L, const char *what, lua_Debug *ar);
 | 
			
		||||
LUA_API const char *lua_getlocal (lua_State *L, const lua_Debug *ar, int n);
 | 
			
		||||
LUA_API const char *lua_setlocal (lua_State *L, const lua_Debug *ar, int n);
 | 
			
		||||
LUA_API const char *lua_getupvalue (lua_State *L, int funcindex, int n);
 | 
			
		||||
LUA_API const char *lua_setupvalue (lua_State *L, int funcindex, int n);
 | 
			
		||||
LUA_API int lua_sethook (lua_State *L, lua_Hook func, int mask, int count);
 | 
			
		||||
LUA_API lua_Hook lua_gethook (lua_State *L);
 | 
			
		||||
LUA_API int lua_gethookmask (lua_State *L);
 | 
			
		||||
LUA_API int lua_gethookcount (lua_State *L);
 | 
			
		||||
 | 
			
		||||
/* From Lua 5.2. */
 | 
			
		||||
LUA_API void *lua_upvalueid (lua_State *L, int idx, int n);
 | 
			
		||||
LUA_API void lua_upvaluejoin (lua_State *L, int idx1, int n1, int idx2, int n2);
 | 
			
		||||
LUA_API int lua_loadx (lua_State *L, lua_Reader reader, void *dt,
 | 
			
		||||
		       const char *chunkname, const char *mode);
 | 
			
		||||
LUA_API const lua_Number *lua_version (lua_State *L);
 | 
			
		||||
LUA_API void lua_copy (lua_State *L, int fromidx, int toidx);
 | 
			
		||||
LUA_API lua_Number lua_tonumberx (lua_State *L, int idx, int *isnum);
 | 
			
		||||
LUA_API lua_Integer lua_tointegerx (lua_State *L, int idx, int *isnum);
 | 
			
		||||
 | 
			
		||||
/* From Lua 5.3. */
 | 
			
		||||
LUA_API int lua_isyieldable (lua_State *L);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
struct lua_Debug {
 | 
			
		||||
  int event;
 | 
			
		||||
  const char *name;	/* (n) */
 | 
			
		||||
  const char *namewhat;	/* (n) `global', `local', `field', `method' */
 | 
			
		||||
  const char *what;	/* (S) `Lua', `C', `main', `tail' */
 | 
			
		||||
  const char *source;	/* (S) */
 | 
			
		||||
  int currentline;	/* (l) */
 | 
			
		||||
  int nups;		/* (u) number of upvalues */
 | 
			
		||||
  int linedefined;	/* (S) */
 | 
			
		||||
  int lastlinedefined;	/* (S) */
 | 
			
		||||
  char short_src[LUA_IDSIZE]; /* (S) */
 | 
			
		||||
  /* private part */
 | 
			
		||||
  int i_ci;  /* active function */
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* }====================================================================== */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/******************************************************************************
 | 
			
		||||
* Copyright (C) 1994-2008 Lua.org, PUC-Rio.  All rights reserved.
 | 
			
		||||
*
 | 
			
		||||
* Permission is hereby granted, free of charge, to any person obtaining
 | 
			
		||||
* a copy of this software and associated documentation files (the
 | 
			
		||||
* "Software"), to deal in the Software without restriction, including
 | 
			
		||||
* without limitation the rights to use, copy, modify, merge, publish,
 | 
			
		||||
* distribute, sublicense, and/or sell copies of the Software, and to
 | 
			
		||||
* permit persons to whom the Software is furnished to do so, subject to
 | 
			
		||||
* the following conditions:
 | 
			
		||||
*
 | 
			
		||||
* The above copyright notice and this permission notice shall be
 | 
			
		||||
* included in all copies or substantial portions of the Software.
 | 
			
		||||
*
 | 
			
		||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 | 
			
		||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 | 
			
		||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 | 
			
		||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
 | 
			
		||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
 | 
			
		||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 | 
			
		||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 | 
			
		||||
******************************************************************************/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										9
									
								
								src/lua/lua/lua.hpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								src/lua/lua/lua.hpp
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,9 @@
 | 
			
		|||
// C++ wrapper for LuaJIT header files.
 | 
			
		||||
 | 
			
		||||
extern "C" {
 | 
			
		||||
#include "lua.h"
 | 
			
		||||
#include "lauxlib.h"
 | 
			
		||||
#include "lualib.h"
 | 
			
		||||
#include "luajit.h"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										152
									
								
								src/lua/lua/luaconf.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										152
									
								
								src/lua/lua/luaconf.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,152 @@
 | 
			
		|||
/*
 | 
			
		||||
** Configuration header.
 | 
			
		||||
** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef luaconf_h
 | 
			
		||||
#define luaconf_h
 | 
			
		||||
 | 
			
		||||
#ifndef WINVER
 | 
			
		||||
#define WINVER 0x0501
 | 
			
		||||
#endif
 | 
			
		||||
#include <limits.h>
 | 
			
		||||
#include <stddef.h>
 | 
			
		||||
 | 
			
		||||
/* Default path for loading Lua and C modules with require(). */
 | 
			
		||||
#if defined(_WIN32)
 | 
			
		||||
/*
 | 
			
		||||
** In Windows, any exclamation mark ('!') in the path is replaced by the
 | 
			
		||||
** path of the directory of the executable file of the current process.
 | 
			
		||||
*/
 | 
			
		||||
#define LUA_LDIR	"!\\lua\\"
 | 
			
		||||
#define LUA_CDIR	"!\\"
 | 
			
		||||
#define LUA_PATH_DEFAULT \
 | 
			
		||||
  ".\\?.lua;" LUA_LDIR"?.lua;" LUA_LDIR"?\\init.lua;"
 | 
			
		||||
#define LUA_CPATH_DEFAULT \
 | 
			
		||||
  ".\\?.dll;" LUA_CDIR"?.dll;" LUA_CDIR"loadall.dll"
 | 
			
		||||
#else
 | 
			
		||||
/*
 | 
			
		||||
** Note to distribution maintainers: do NOT patch the following lines!
 | 
			
		||||
** Please read ../doc/install.html#distro and pass PREFIX=/usr instead.
 | 
			
		||||
*/
 | 
			
		||||
#ifndef LUA_MULTILIB
 | 
			
		||||
#define LUA_MULTILIB	"lib"
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef LUA_LMULTILIB
 | 
			
		||||
#define LUA_LMULTILIB	"lib"
 | 
			
		||||
#endif
 | 
			
		||||
#define LUA_LROOT	"/usr/local"
 | 
			
		||||
#define LUA_LUADIR	"/lua/5.1/"
 | 
			
		||||
#define LUA_LJDIR	"/luajit-2.1.0-beta3/"
 | 
			
		||||
 | 
			
		||||
#ifdef LUA_ROOT
 | 
			
		||||
#define LUA_JROOT	LUA_ROOT
 | 
			
		||||
#define LUA_RLDIR	LUA_ROOT "/share" LUA_LUADIR
 | 
			
		||||
#define LUA_RCDIR	LUA_ROOT "/" LUA_MULTILIB LUA_LUADIR
 | 
			
		||||
#define LUA_RLPATH	";" LUA_RLDIR "?.lua;" LUA_RLDIR "?/init.lua"
 | 
			
		||||
#define LUA_RCPATH	";" LUA_RCDIR "?.so"
 | 
			
		||||
#else
 | 
			
		||||
#define LUA_JROOT	LUA_LROOT
 | 
			
		||||
#define LUA_RLPATH
 | 
			
		||||
#define LUA_RCPATH
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define LUA_JPATH	";" LUA_JROOT "/share" LUA_LJDIR "?.lua"
 | 
			
		||||
#define LUA_LLDIR	LUA_LROOT "/share" LUA_LUADIR
 | 
			
		||||
#define LUA_LCDIR	LUA_LROOT "/" LUA_LMULTILIB LUA_LUADIR
 | 
			
		||||
#define LUA_LLPATH	";" LUA_LLDIR "?.lua;" LUA_LLDIR "?/init.lua"
 | 
			
		||||
#define LUA_LCPATH1	";" LUA_LCDIR "?.so"
 | 
			
		||||
#define LUA_LCPATH2	";" LUA_LCDIR "loadall.so"
 | 
			
		||||
 | 
			
		||||
#define LUA_PATH_DEFAULT	"./?.lua" LUA_JPATH LUA_LLPATH LUA_RLPATH
 | 
			
		||||
#define LUA_CPATH_DEFAULT	"./?.so" LUA_LCPATH1 LUA_RCPATH LUA_LCPATH2
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* Environment variable names for path overrides and initialization code. */
 | 
			
		||||
#define LUA_PATH	"LUA_PATH"
 | 
			
		||||
#define LUA_CPATH	"LUA_CPATH"
 | 
			
		||||
#define LUA_INIT	"LUA_INIT"
 | 
			
		||||
 | 
			
		||||
/* Special file system characters. */
 | 
			
		||||
#if defined(_WIN32)
 | 
			
		||||
#define LUA_DIRSEP	"\\"
 | 
			
		||||
#else
 | 
			
		||||
#define LUA_DIRSEP	"/"
 | 
			
		||||
#endif
 | 
			
		||||
#define LUA_PATHSEP	";"
 | 
			
		||||
#define LUA_PATH_MARK	"?"
 | 
			
		||||
#define LUA_EXECDIR	"!"
 | 
			
		||||
#define LUA_IGMARK	"-"
 | 
			
		||||
#define LUA_PATH_CONFIG \
 | 
			
		||||
  LUA_DIRSEP "\n" LUA_PATHSEP "\n" LUA_PATH_MARK "\n" \
 | 
			
		||||
  LUA_EXECDIR "\n" LUA_IGMARK "\n"
 | 
			
		||||
 | 
			
		||||
/* Quoting in error messages. */
 | 
			
		||||
#define LUA_QL(x)	"'" x "'"
 | 
			
		||||
#define LUA_QS		LUA_QL("%s")
 | 
			
		||||
 | 
			
		||||
/* Various tunables. */
 | 
			
		||||
#define LUAI_MAXSTACK	65500	/* Max. # of stack slots for a thread (<64K). */
 | 
			
		||||
#define LUAI_MAXCSTACK	8000	/* Max. # of stack slots for a C func (<10K). */
 | 
			
		||||
#define LUAI_GCPAUSE	200	/* Pause GC until memory is at 200%. */
 | 
			
		||||
#define LUAI_GCMUL	200	/* Run GC at 200% of allocation speed. */
 | 
			
		||||
#define LUA_MAXCAPTURES	32	/* Max. pattern captures. */
 | 
			
		||||
 | 
			
		||||
/* Configuration for the frontend (the luajit executable). */
 | 
			
		||||
#if defined(luajit_c)
 | 
			
		||||
#define LUA_PROGNAME	"luajit"  /* Fallback frontend name. */
 | 
			
		||||
#define LUA_PROMPT	"> "	/* Interactive prompt. */
 | 
			
		||||
#define LUA_PROMPT2	">> "	/* Continuation prompt. */
 | 
			
		||||
#define LUA_MAXINPUT	512	/* Max. input line length. */
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* Note: changing the following defines breaks the Lua 5.1 ABI. */
 | 
			
		||||
#define LUA_INTEGER	ptrdiff_t
 | 
			
		||||
#define LUA_IDSIZE	60	/* Size of lua_Debug.short_src. */
 | 
			
		||||
/*
 | 
			
		||||
** Size of lauxlib and io.* on-stack buffers. Weird workaround to avoid using
 | 
			
		||||
** unreasonable amounts of stack space, but still retain ABI compatibility.
 | 
			
		||||
** Blame Lua for depending on BUFSIZ in the ABI, blame **** for wrecking it.
 | 
			
		||||
*/
 | 
			
		||||
#define LUAL_BUFFERSIZE	(BUFSIZ > 16384 ? 8192 : BUFSIZ)
 | 
			
		||||
 | 
			
		||||
/* The following defines are here only for compatibility with luaconf.h
 | 
			
		||||
** from the standard Lua distribution. They must not be changed for LuaJIT.
 | 
			
		||||
*/
 | 
			
		||||
#define LUA_NUMBER_DOUBLE
 | 
			
		||||
#define LUA_NUMBER		double
 | 
			
		||||
#define LUAI_UACNUMBER		double
 | 
			
		||||
#define LUA_NUMBER_SCAN		"%lf"
 | 
			
		||||
#define LUA_NUMBER_FMT		"%.14g"
 | 
			
		||||
#define lua_number2str(s, n)	sprintf((s), LUA_NUMBER_FMT, (n))
 | 
			
		||||
#define LUAI_MAXNUMBER2STR	32
 | 
			
		||||
#define LUA_INTFRMLEN		"l"
 | 
			
		||||
#define LUA_INTFRM_T		long
 | 
			
		||||
 | 
			
		||||
/* Linkage of public API functions. */
 | 
			
		||||
#if defined(LUA_BUILD_AS_DLL)
 | 
			
		||||
#if defined(LUA_CORE) || defined(LUA_LIB)
 | 
			
		||||
#define LUA_API		__declspec(dllexport)
 | 
			
		||||
#else
 | 
			
		||||
#define LUA_API		__declspec(dllimport)
 | 
			
		||||
#endif
 | 
			
		||||
#else
 | 
			
		||||
#define LUA_API		extern
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define LUALIB_API	LUA_API
 | 
			
		||||
 | 
			
		||||
/* Support for internal assertions. */
 | 
			
		||||
#if defined(LUA_USE_ASSERT) || defined(LUA_USE_APICHECK)
 | 
			
		||||
#include <assert.h>
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef LUA_USE_ASSERT
 | 
			
		||||
#define lua_assert(x)		assert(x)
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef LUA_USE_APICHECK
 | 
			
		||||
#define luai_apicheck(L, o)	{ (void)L; assert(o); }
 | 
			
		||||
#else
 | 
			
		||||
#define luai_apicheck(L, o)	{ (void)L; }
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										79
									
								
								src/lua/lua/luajit.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										79
									
								
								src/lua/lua/luajit.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,79 @@
 | 
			
		|||
/*
 | 
			
		||||
** LuaJIT -- a Just-In-Time Compiler for Lua. http://luajit.org/
 | 
			
		||||
**
 | 
			
		||||
** Copyright (C) 2005-2017 Mike Pall. All rights reserved.
 | 
			
		||||
**
 | 
			
		||||
** Permission is hereby granted, free of charge, to any person obtaining
 | 
			
		||||
** a copy of this software and associated documentation files (the
 | 
			
		||||
** "Software"), to deal in the Software without restriction, including
 | 
			
		||||
** without limitation the rights to use, copy, modify, merge, publish,
 | 
			
		||||
** distribute, sublicense, and/or sell copies of the Software, and to
 | 
			
		||||
** permit persons to whom the Software is furnished to do so, subject to
 | 
			
		||||
** the following conditions:
 | 
			
		||||
**
 | 
			
		||||
** The above copyright notice and this permission notice shall be
 | 
			
		||||
** included in all copies or substantial portions of the Software.
 | 
			
		||||
**
 | 
			
		||||
** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 | 
			
		||||
** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 | 
			
		||||
** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 | 
			
		||||
** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
 | 
			
		||||
** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
 | 
			
		||||
** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 | 
			
		||||
** SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 | 
			
		||||
**
 | 
			
		||||
** [ MIT license: http://www.opensource.org/licenses/mit-license.php ]
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef _LUAJIT_H
 | 
			
		||||
#define _LUAJIT_H
 | 
			
		||||
 | 
			
		||||
#include "lua.h"
 | 
			
		||||
 | 
			
		||||
#define LUAJIT_VERSION		"LuaJIT 2.1.0-beta3"
 | 
			
		||||
#define LUAJIT_VERSION_NUM	20100  /* Version 2.1.0 = 02.01.00. */
 | 
			
		||||
#define LUAJIT_VERSION_SYM	luaJIT_version_2_1_0_beta3
 | 
			
		||||
#define LUAJIT_COPYRIGHT	"Copyright (C) 2005-2017 Mike Pall"
 | 
			
		||||
#define LUAJIT_URL		"http://luajit.org/"
 | 
			
		||||
 | 
			
		||||
/* Modes for luaJIT_setmode. */
 | 
			
		||||
#define LUAJIT_MODE_MASK	0x00ff
 | 
			
		||||
 | 
			
		||||
enum {
 | 
			
		||||
  LUAJIT_MODE_ENGINE,		/* Set mode for whole JIT engine. */
 | 
			
		||||
  LUAJIT_MODE_DEBUG,		/* Set debug mode (idx = level). */
 | 
			
		||||
 | 
			
		||||
  LUAJIT_MODE_FUNC,		/* Change mode for a function. */
 | 
			
		||||
  LUAJIT_MODE_ALLFUNC,		/* Recurse into subroutine protos. */
 | 
			
		||||
  LUAJIT_MODE_ALLSUBFUNC,	/* Change only the subroutines. */
 | 
			
		||||
 | 
			
		||||
  LUAJIT_MODE_TRACE,		/* Flush a compiled trace. */
 | 
			
		||||
 | 
			
		||||
  LUAJIT_MODE_WRAPCFUNC = 0x10,	/* Set wrapper mode for C function calls. */
 | 
			
		||||
 | 
			
		||||
  LUAJIT_MODE_MAX
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* Flags or'ed in to the mode. */
 | 
			
		||||
#define LUAJIT_MODE_OFF		0x0000	/* Turn feature off. */
 | 
			
		||||
#define LUAJIT_MODE_ON		0x0100	/* Turn feature on. */
 | 
			
		||||
#define LUAJIT_MODE_FLUSH	0x0200	/* Flush JIT-compiled code. */
 | 
			
		||||
 | 
			
		||||
/* LuaJIT public C API. */
 | 
			
		||||
 | 
			
		||||
/* Control the JIT engine. */
 | 
			
		||||
LUA_API int luaJIT_setmode(lua_State *L, int idx, int mode);
 | 
			
		||||
 | 
			
		||||
/* Low-overhead profiling API. */
 | 
			
		||||
typedef void (*luaJIT_profile_callback)(void *data, lua_State *L,
 | 
			
		||||
					int samples, int vmstate);
 | 
			
		||||
LUA_API void luaJIT_profile_start(lua_State *L, const char *mode,
 | 
			
		||||
				  luaJIT_profile_callback cb, void *data);
 | 
			
		||||
LUA_API void luaJIT_profile_stop(lua_State *L);
 | 
			
		||||
LUA_API const char *luaJIT_profile_dumpstack(lua_State *L, const char *fmt,
 | 
			
		||||
					     int depth, size_t *len);
 | 
			
		||||
 | 
			
		||||
/* Enforce (dynamic) linker error for version mismatches. Call from main. */
 | 
			
		||||
LUA_API void LUAJIT_VERSION_SYM(void);
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										43
									
								
								src/lua/lua/lualib.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								src/lua/lua/lualib.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,43 @@
 | 
			
		|||
/*
 | 
			
		||||
** Standard library header.
 | 
			
		||||
** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef _LUALIB_H
 | 
			
		||||
#define _LUALIB_H
 | 
			
		||||
 | 
			
		||||
#include "lua.h"
 | 
			
		||||
 | 
			
		||||
#define LUA_FILEHANDLE	"FILE*"
 | 
			
		||||
 | 
			
		||||
#define LUA_COLIBNAME	"coroutine"
 | 
			
		||||
#define LUA_MATHLIBNAME	"math"
 | 
			
		||||
#define LUA_STRLIBNAME	"string"
 | 
			
		||||
#define LUA_TABLIBNAME	"table"
 | 
			
		||||
#define LUA_IOLIBNAME	"io"
 | 
			
		||||
#define LUA_OSLIBNAME	"os"
 | 
			
		||||
#define LUA_LOADLIBNAME	"package"
 | 
			
		||||
#define LUA_DBLIBNAME	"debug"
 | 
			
		||||
#define LUA_BITLIBNAME	"bit"
 | 
			
		||||
#define LUA_JITLIBNAME	"jit"
 | 
			
		||||
#define LUA_FFILIBNAME	"ffi"
 | 
			
		||||
 | 
			
		||||
LUALIB_API int luaopen_base(lua_State *L);
 | 
			
		||||
LUALIB_API int luaopen_math(lua_State *L);
 | 
			
		||||
LUALIB_API int luaopen_string(lua_State *L);
 | 
			
		||||
LUALIB_API int luaopen_table(lua_State *L);
 | 
			
		||||
LUALIB_API int luaopen_io(lua_State *L);
 | 
			
		||||
LUALIB_API int luaopen_os(lua_State *L);
 | 
			
		||||
LUALIB_API int luaopen_package(lua_State *L);
 | 
			
		||||
LUALIB_API int luaopen_debug(lua_State *L);
 | 
			
		||||
LUALIB_API int luaopen_bit(lua_State *L);
 | 
			
		||||
LUALIB_API int luaopen_jit(lua_State *L);
 | 
			
		||||
LUALIB_API int luaopen_ffi(lua_State *L);
 | 
			
		||||
 | 
			
		||||
LUALIB_API void luaL_openlibs(lua_State *L);
 | 
			
		||||
 | 
			
		||||
#ifndef lua_assert
 | 
			
		||||
#define lua_assert(x)	((void)0)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										28839
									
								
								src/lua/sol.hpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										28839
									
								
								src/lua/sol.hpp
									
										
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
							
								
								
									
										30
									
								
								src/sdfml/sdfml_lua.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								src/sdfml/sdfml_lua.cpp
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,30 @@
 | 
			
		|||
#include "sdfml_lua.hpp"
 | 
			
		||||
 | 
			
		||||
int sdfml::LuaHandler::open_state(std::string path, bool immediate) {
 | 
			
		||||
    _cur_result = _lua_state.load_file(path.c_str());
 | 
			
		||||
    if (immediate) 
 | 
			
		||||
        return 0;
 | 
			
		||||
 | 
			
		||||
    sol::protected_function_result result = _cur_result();
 | 
			
		||||
    return 1 - result.valid();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int sdfml::LuaHandler::run_state() {
 | 
			
		||||
    sol::protected_function_result result = _cur_result();
 | 
			
		||||
    return 1 - result.valid();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
template <typename TName>
 | 
			
		||||
void sdfml::LuaHandler::set_variable(std::string var_name, TName value) {
 | 
			
		||||
    _lua_state[var_name] = value;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
template <typename TName>
 | 
			
		||||
TName sdfml::LuaHandler::get_variable(std::string var_name) {
 | 
			
		||||
    return _lua_state.get<TName>(var_name);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
template <typename... Args>
 | 
			
		||||
void sdfml::LuaHandler::add_libraries(Args&&... libraries) {
 | 
			
		||||
    _lua_state.open_libraries(libraries...);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										32
									
								
								src/sdfml/sdfml_lua.hpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								src/sdfml/sdfml_lua.hpp
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,32 @@
 | 
			
		|||
#ifndef LUA_SDFML_IMPLEMENTATION
 | 
			
		||||
#define LUA_SDFML_IMPLEMENTATION
 | 
			
		||||
 | 
			
		||||
#include <string>
 | 
			
		||||
#include <functional>
 | 
			
		||||
#include "../lua/sol.hpp"
 | 
			
		||||
 | 
			
		||||
namespace sdfml {
 | 
			
		||||
    typedef std::function<void> LFunc;
 | 
			
		||||
 | 
			
		||||
    class LuaHandler {
 | 
			
		||||
        protected:
 | 
			
		||||
            sol::state _lua_state;
 | 
			
		||||
            sol::state_view _lua_view;
 | 
			
		||||
            sol::load_result _cur_result;
 | 
			
		||||
        public:
 | 
			
		||||
            int open_state(std::string path, bool immediate = false);
 | 
			
		||||
 | 
			
		||||
            int run_state();
 | 
			
		||||
 | 
			
		||||
            template <typename TName = int>
 | 
			
		||||
            void set_variable(std::string var_name, TName value);
 | 
			
		||||
 | 
			
		||||
            template <typename TName = int>
 | 
			
		||||
            TName get_variable(std::string var_name);
 | 
			
		||||
 | 
			
		||||
            template <typename... Args>
 | 
			
		||||
            void add_libraries(Args&&... libraries);
 | 
			
		||||
    };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue