| 923 | }; |
| 924 | |
| 925 | void InitializeGraphics(lua_State* L, dmGraphics::HContext graphics_context) |
| 926 | { |
| 927 | g_GraphicsModule.m_GraphicsContext = graphics_context; |
| 928 | |
| 929 | DM_LUA_STACK_CHECK(L, 0); |
| 930 | |
| 931 | luaL_register(L, SCRIPT_LIB_NAME, ScriptGraphics_methods); |
| 932 | |
| 933 | #define SET_GRAPHICS_ENUM(name) \ |
| 934 | lua_pushnumber(L, (lua_Number) dmGraphics:: name); \ |
| 935 | lua_setfield(L, -2, #name); |
| 936 | |
| 937 | #define SET_GRAPHICS_ENUM_NAMED(enum_name, name) \ |
| 938 | lua_pushnumber(L, (lua_Number) dmGraphics:: enum_name); \ |
| 939 | lua_setfield(L, -2, #name); |
| 940 | |
| 941 | #define SET_TEXTUREFORMAT_IF_SUPPORTED(name) \ |
| 942 | if (graphics_context && dmGraphics::IsTextureFormatSupported(graphics_context, dmGraphics::name)) \ |
| 943 | { \ |
| 944 | lua_pushnumber(L, (lua_Number) dmGraphics:: name); \ |
| 945 | lua_setfield(L, -2, #name); \ |
| 946 | } |
| 947 | |
| 948 | // Buffer |
| 949 | SET_GRAPHICS_ENUM(BUFFER_TYPE_COLOR0_BIT); |
| 950 | SET_GRAPHICS_ENUM(BUFFER_TYPE_DEPTH_BIT); |
| 951 | SET_GRAPHICS_ENUM(BUFFER_TYPE_STENCIL_BIT); |
| 952 | |
| 953 | if (graphics_context && dmGraphics::IsContextFeatureSupported(graphics_context, dmGraphics::CONTEXT_FEATURE_MULTI_TARGET_RENDERING)) |
| 954 | { |
| 955 | SET_GRAPHICS_ENUM(BUFFER_TYPE_COLOR1_BIT); |
| 956 | SET_GRAPHICS_ENUM(BUFFER_TYPE_COLOR2_BIT); |
| 957 | SET_GRAPHICS_ENUM(BUFFER_TYPE_COLOR3_BIT); |
| 958 | } |
| 959 | |
| 960 | // State |
| 961 | SET_GRAPHICS_ENUM(STATE_DEPTH_TEST); |
| 962 | SET_GRAPHICS_ENUM(STATE_SCISSOR_TEST); |
| 963 | SET_GRAPHICS_ENUM(STATE_STENCIL_TEST); |
| 964 | SET_GRAPHICS_ENUM(STATE_ALPHA_TEST); |
| 965 | SET_GRAPHICS_ENUM(STATE_BLEND); |
| 966 | SET_GRAPHICS_ENUM(STATE_CULL_FACE); |
| 967 | SET_GRAPHICS_ENUM(STATE_POLYGON_OFFSET_FILL); |
| 968 | SET_GRAPHICS_ENUM(STATE_ALPHA_TEST_SUPPORTED); |
| 969 | |
| 970 | // BlendFactor |
| 971 | SET_GRAPHICS_ENUM(BLEND_FACTOR_ZERO); |
| 972 | SET_GRAPHICS_ENUM(BLEND_FACTOR_ONE); |
| 973 | SET_GRAPHICS_ENUM(BLEND_FACTOR_SRC_COLOR); |
| 974 | SET_GRAPHICS_ENUM(BLEND_FACTOR_ONE_MINUS_SRC_COLOR); |
| 975 | SET_GRAPHICS_ENUM(BLEND_FACTOR_DST_COLOR); |
| 976 | SET_GRAPHICS_ENUM(BLEND_FACTOR_ONE_MINUS_DST_COLOR); |
| 977 | SET_GRAPHICS_ENUM(BLEND_FACTOR_SRC_ALPHA); |
| 978 | SET_GRAPHICS_ENUM(BLEND_FACTOR_ONE_MINUS_SRC_ALPHA); |
| 979 | SET_GRAPHICS_ENUM(BLEND_FACTOR_DST_ALPHA); |
| 980 | SET_GRAPHICS_ENUM(BLEND_FACTOR_ONE_MINUS_DST_ALPHA); |
| 981 | SET_GRAPHICS_ENUM(BLEND_FACTOR_SRC_ALPHA_SATURATE); |
| 982 | SET_GRAPHICS_ENUM(BLEND_FACTOR_CONSTANT_COLOR); |
no test coverage detected