mirror of
https://github.com/holub/mame
synced 2025-07-05 01:48:29 +03:00
Merge branch 'master' of https://github.com/mamedev/mame
This commit is contained in:
commit
0823325dbb
2
.gitignore
vendored
2
.gitignore
vendored
@ -11,8 +11,10 @@
|
|||||||
/inp
|
/inp
|
||||||
/nvram
|
/nvram
|
||||||
/obj
|
/obj
|
||||||
|
/roms
|
||||||
/snap
|
/snap
|
||||||
src/regtests/chdman/temp
|
src/regtests/chdman/temp
|
||||||
src/regtests/jedutil/output
|
src/regtests/jedutil/output
|
||||||
/sta
|
/sta
|
||||||
*.pyc
|
*.pyc
|
||||||
|
/build
|
3
3rdparty/bgfx/.editorconfig
vendored
3
3rdparty/bgfx/.editorconfig
vendored
@ -8,6 +8,9 @@ max_line_length = 100
|
|||||||
insert_final_newline = true
|
insert_final_newline = true
|
||||||
trim_trailing_whitespace = true
|
trim_trailing_whitespace = true
|
||||||
|
|
||||||
|
[*.c99.h]
|
||||||
|
indent_style = space
|
||||||
|
|
||||||
[*.md]
|
[*.md]
|
||||||
trim_trailing_whitespace = false
|
trim_trailing_whitespace = false
|
||||||
max_line_length = 80
|
max_line_length = 80
|
||||||
|
@ -350,8 +350,8 @@
|
|||||||
#pragma clang diagnostic ignored "-Wexit-time-destructors" // warning : declaration requires an exit-time destructor // exit-time destruction order is undefined. if MemFree() leads to users code that has been disabled before exit it might cause problems. ImGui coding style welcomes static/globals.
|
#pragma clang diagnostic ignored "-Wexit-time-destructors" // warning : declaration requires an exit-time destructor // exit-time destruction order is undefined. if MemFree() leads to users code that has been disabled before exit it might cause problems. ImGui coding style welcomes static/globals.
|
||||||
#pragma clang diagnostic ignored "-Wglobal-constructors" // warning : declaration requires a global destructor // similar to above, not sure what the exact difference it.
|
#pragma clang diagnostic ignored "-Wglobal-constructors" // warning : declaration requires a global destructor // similar to above, not sure what the exact difference it.
|
||||||
#pragma clang diagnostic ignored "-Wsign-conversion" // warning : implicit conversion changes signedness //
|
#pragma clang diagnostic ignored "-Wsign-conversion" // warning : implicit conversion changes signedness //
|
||||||
#endif
|
#pragma clang diagnostic ignored "-Wunused-parameter" // warning: unused parameter ‘xxxx’
|
||||||
#ifdef __GNUC__
|
#elif defined(__GNUC__)
|
||||||
#pragma GCC diagnostic ignored "-Wunused-function" // warning: 'xxxx' defined but not used
|
#pragma GCC diagnostic ignored "-Wunused-function" // warning: 'xxxx' defined but not used
|
||||||
#pragma GCC diagnostic ignored "-Wunused-parameter" // warning: unused parameter ‘xxxx’
|
#pragma GCC diagnostic ignored "-Wunused-parameter" // warning: unused parameter ‘xxxx’
|
||||||
#pragma GCC diagnostic ignored "-Wtype-limits" // warning: comparison is always true due to limited range of data type
|
#pragma GCC diagnostic ignored "-Wtype-limits" // warning: comparison is always true due to limited range of data type
|
||||||
|
2
3rdparty/bgfx/3rdparty/sdf/sdf.h
vendored
2
3rdparty/bgfx/3rdparty/sdf/sdf.h
vendored
@ -92,7 +92,7 @@ static float sdf__edgedf(float gx, float gy, float a)
|
|||||||
} else if (a < (1.0-a1)) { // a1 <= a <= 1-a1
|
} else if (a < (1.0-a1)) { // a1 <= a <= 1-a1
|
||||||
df = (0.5f-a)*gx;
|
df = (0.5f-a)*gx;
|
||||||
} else { // 1-a1 < a <= 1
|
} else { // 1-a1 < a <= 1
|
||||||
df = -0.5f*(gx + gy) + sqrt(2.0f*gx*gy*(1.0f-a));
|
df = -0.5f*(gx + gy) + sqrtf(2.0f*gx*gy*(1.0f-a));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return df;
|
return df;
|
||||||
|
15
3rdparty/bgfx/3rdparty/stb/stb_image.c
vendored
15
3rdparty/bgfx/3rdparty/stb/stb_image.c
vendored
@ -187,10 +187,15 @@
|
|||||||
|
|
||||||
#ifndef STBI_NO_STDIO
|
#ifndef STBI_NO_STDIO
|
||||||
|
|
||||||
#if defined(_MSC_VER) && _MSC_VER >= 1400 && !defined(_CRT_SECURE_NO_WARNINGS)
|
#if defined(_MSC_VER) && _MSC_VER >= 1400
|
||||||
#define _CRT_SECURE_NO_WARNINGS // suppress warnings about fopen()
|
# if !defined(_CRT_SECURE_NO_WARNINGS)
|
||||||
#pragma warning(push)
|
# define _CRT_SECURE_NO_WARNINGS // suppress warnings about fopen()
|
||||||
#pragma warning(disable:4996) // suppress even more warnings about fopen()
|
# endif
|
||||||
|
# pragma warning(push)
|
||||||
|
# pragma warning(disable:4996) // suppress even more warnings about fopen()
|
||||||
|
# pragma warning(disable:4312) // warning C4312: 'type cast': conversion from 'int' to 'unsigned char *' of greater size
|
||||||
|
# pragma warning(disable:4456) // warning C4456: declaration of 'k' hides previous local declaration
|
||||||
|
# pragma warning(disable:4457) // warning C4457: declaration of 'y' hides function parameter
|
||||||
#endif
|
#endif
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#endif // STBI_NO_STDIO
|
#endif // STBI_NO_STDIO
|
||||||
@ -3249,7 +3254,7 @@ static stbi_uc *stbi__tga_load(stbi__context *s, int *x, int *y, int *comp, int
|
|||||||
unsigned char *tga_data;
|
unsigned char *tga_data;
|
||||||
unsigned char *tga_palette = NULL;
|
unsigned char *tga_palette = NULL;
|
||||||
int i, j;
|
int i, j;
|
||||||
unsigned char raw_data[4];
|
unsigned char raw_data[4] = {};
|
||||||
int RLE_count = 0;
|
int RLE_count = 0;
|
||||||
int RLE_repeating = 0;
|
int RLE_repeating = 0;
|
||||||
int read_next_pixel = 1;
|
int read_next_pixel = 1;
|
||||||
|
12
3rdparty/bgfx/README.md
vendored
12
3rdparty/bgfx/README.md
vendored
@ -432,6 +432,13 @@ Configuration is `<platform>-<debug/release>[32/64]`. For example:
|
|||||||
linux-release32, nacl-debug64, nacl-arm-debug, pnacl-release,
|
linux-release32, nacl-debug64, nacl-arm-debug, pnacl-release,
|
||||||
android-release, etc.
|
android-release, etc.
|
||||||
|
|
||||||
|
Amalgamated build
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
For ease of integration to other build system bgfx library can be built with
|
||||||
|
single .cpp file. It's only necessary to build [src/amalgamated.cpp](https://github.com/bkaradzic/bgfx/blob/master/src/amalgamated.cpp)
|
||||||
|
inside different build system.
|
||||||
|
|
||||||
OculusVR integration
|
OculusVR integration
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
@ -568,6 +575,11 @@ with examples:
|
|||||||
|
|
||||||
genie --with-sdl vs2012
|
genie --with-sdl vs2012
|
||||||
|
|
||||||
|
**NOTE** Special care is necessary to make custom windowing to work with
|
||||||
|
multithreaded renderer. Each platform has rules about where renderer can be and
|
||||||
|
how multithreading interacts with context/device. To disable multithreaded
|
||||||
|
render use `BGFX_CONFIG_MULTITHREDED=0` preprocessor define.
|
||||||
|
|
||||||
Tools
|
Tools
|
||||||
-----
|
-----
|
||||||
|
|
||||||
|
@ -592,10 +592,10 @@ int _main_(int /*_argc*/, char** /*_argv*/)
|
|||||||
float sphere[numSpheres][4];
|
float sphere[numSpheres][4];
|
||||||
for (uint32_t ii = 0; ii < numSpheres; ++ii)
|
for (uint32_t ii = 0; ii < numSpheres; ++ii)
|
||||||
{
|
{
|
||||||
sphere[ii][0] = sin(time*(ii*0.21f)+ii*0.37f) * (DIMS * 0.5f - 8.0f);
|
sphere[ii][0] = sinf(time*(ii*0.21f)+ii*0.37f) * (DIMS * 0.5f - 8.0f);
|
||||||
sphere[ii][1] = sin(time*(ii*0.37f)+ii*0.67f) * (DIMS * 0.5f - 8.0f);
|
sphere[ii][1] = sinf(time*(ii*0.37f)+ii*0.67f) * (DIMS * 0.5f - 8.0f);
|
||||||
sphere[ii][2] = cos(time*(ii*0.11f)+ii*0.13f) * (DIMS * 0.5f - 8.0f);
|
sphere[ii][2] = cosf(time*(ii*0.11f)+ii*0.13f) * (DIMS * 0.5f - 8.0f);
|
||||||
sphere[ii][3] = 1.0f/(2.0f + (sin(time*(ii*0.13f) )*0.5f+0.5f)*2.0f);
|
sphere[ii][3] = 1.0f/(2.0f + (sinf(time*(ii*0.13f) )*0.5f+0.5f)*2.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
profUpdate = bx::getHPCounter();
|
profUpdate = bx::getHPCounter();
|
||||||
|
@ -182,9 +182,9 @@ int _main_(int /*_argc*/, char** /*_argv*/)
|
|||||||
mtx[14] = 0.0f;
|
mtx[14] = 0.0f;
|
||||||
|
|
||||||
float* color = (float*)&data[64];
|
float* color = (float*)&data[64];
|
||||||
color[0] = sin(time+float(xx)/11.0f)*0.5f+0.5f;
|
color[0] = sinf(time+float(xx)/11.0f)*0.5f+0.5f;
|
||||||
color[1] = cos(time+float(yy)/11.0f)*0.5f+0.5f;
|
color[1] = cosf(time+float(yy)/11.0f)*0.5f+0.5f;
|
||||||
color[2] = sin(time*3.0f)*0.5f+0.5f;
|
color[2] = sinf(time*3.0f)*0.5f+0.5f;
|
||||||
color[3] = 1.0f;
|
color[3] = 1.0f;
|
||||||
|
|
||||||
data += instanceStride;
|
data += instanceStride;
|
||||||
|
4
3rdparty/bgfx/examples/06-bump/bump.cpp
vendored
4
3rdparty/bgfx/examples/06-bump/bump.cpp
vendored
@ -227,8 +227,8 @@ int _main_(int /*_argc*/, char** /*_argv*/)
|
|||||||
float lightPosRadius[4][4];
|
float lightPosRadius[4][4];
|
||||||
for (uint32_t ii = 0; ii < numLights; ++ii)
|
for (uint32_t ii = 0; ii < numLights; ++ii)
|
||||||
{
|
{
|
||||||
lightPosRadius[ii][0] = sin( (time*(0.1f + ii*0.17f) + ii*bx::piHalf*1.37f ) )*3.0f;
|
lightPosRadius[ii][0] = sinf( (time*(0.1f + ii*0.17f) + ii*bx::piHalf*1.37f ) )*3.0f;
|
||||||
lightPosRadius[ii][1] = cos( (time*(0.2f + ii*0.29f) + ii*bx::piHalf*1.49f ) )*3.0f;
|
lightPosRadius[ii][1] = cosf( (time*(0.2f + ii*0.29f) + ii*bx::piHalf*1.49f ) )*3.0f;
|
||||||
lightPosRadius[ii][2] = -2.5f;
|
lightPosRadius[ii][2] = -2.5f;
|
||||||
lightPosRadius[ii][3] = 3.0f;
|
lightPosRadius[ii][3] = 3.0f;
|
||||||
}
|
}
|
||||||
|
@ -372,6 +372,8 @@ int _main_(int /*_argc*/, char** /*_argv*/)
|
|||||||
|
|
||||||
bgfx::init(
|
bgfx::init(
|
||||||
renderers[bx::getHPCounter() % numRenderers] /* randomize renderer */
|
renderers[bx::getHPCounter() % numRenderers] /* randomize renderer */
|
||||||
|
, BGFX_PCI_ID_NONE
|
||||||
|
, 0
|
||||||
, &callback // custom callback handler
|
, &callback // custom callback handler
|
||||||
, &allocator // custom allocator
|
, &allocator // custom allocator
|
||||||
);
|
);
|
||||||
|
45
3rdparty/bgfx/examples/08-update/update.cpp
vendored
45
3rdparty/bgfx/examples/08-update/update.cpp
vendored
@ -167,12 +167,29 @@ int _main_(int /*_argc*/, char** /*_argv*/)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bgfx::TextureHandle textures3d[] =
|
const bgfx::Caps* caps = bgfx::getCaps();
|
||||||
|
const bool texture3DSupported = !!(caps->supported & BGFX_CAPS_TEXTURE_3D);
|
||||||
|
|
||||||
|
uint32_t numTextures3d = 0;
|
||||||
|
bgfx::TextureHandle textures3d[3] = {};
|
||||||
|
|
||||||
|
if (texture3DSupported)
|
||||||
{
|
{
|
||||||
bgfx::createTexture3D(32, 32, 32, 0, bgfx::TextureFormat::R8, BGFX_TEXTURE_U_CLAMP|BGFX_TEXTURE_V_CLAMP|BGFX_TEXTURE_W_CLAMP, mem8),
|
if (0 != (BGFX_CAPS_FORMAT_TEXTURE_COLOR & caps->formats[bgfx::TextureFormat::R8]) )
|
||||||
bgfx::createTexture3D(32, 32, 32, 0, bgfx::TextureFormat::R16F, BGFX_TEXTURE_U_CLAMP|BGFX_TEXTURE_V_CLAMP|BGFX_TEXTURE_W_CLAMP, mem16f),
|
{
|
||||||
bgfx::createTexture3D(32, 32, 32, 0, bgfx::TextureFormat::R32F, BGFX_TEXTURE_U_CLAMP|BGFX_TEXTURE_V_CLAMP|BGFX_TEXTURE_W_CLAMP, mem32f),
|
textures3d[numTextures3d++] = bgfx::createTexture3D(32, 32, 32, 0, bgfx::TextureFormat::R8, BGFX_TEXTURE_U_CLAMP|BGFX_TEXTURE_V_CLAMP|BGFX_TEXTURE_W_CLAMP, mem8);
|
||||||
};
|
}
|
||||||
|
|
||||||
|
if (0 != (BGFX_CAPS_FORMAT_TEXTURE_COLOR & caps->formats[bgfx::TextureFormat::R16F]) )
|
||||||
|
{
|
||||||
|
textures3d[numTextures3d++] = bgfx::createTexture3D(32, 32, 32, 0, bgfx::TextureFormat::R16F, BGFX_TEXTURE_U_CLAMP|BGFX_TEXTURE_V_CLAMP|BGFX_TEXTURE_W_CLAMP, mem16f);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (0 != (BGFX_CAPS_FORMAT_TEXTURE_COLOR & caps->formats[bgfx::TextureFormat::R32F]) )
|
||||||
|
{
|
||||||
|
textures3d[numTextures3d++] = bgfx::createTexture3D(32, 32, 32, 0, bgfx::TextureFormat::R32F, BGFX_TEXTURE_U_CLAMP|BGFX_TEXTURE_V_CLAMP|BGFX_TEXTURE_W_CLAMP, mem32f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Create static vertex buffer.
|
// Create static vertex buffer.
|
||||||
bgfx::VertexBufferHandle vbh = bgfx::createVertexBuffer(bgfx::makeRef(s_cubeVertices, sizeof(s_cubeVertices) ), PosTexcoordVertex::ms_decl);
|
bgfx::VertexBufferHandle vbh = bgfx::createVertexBuffer(bgfx::makeRef(s_cubeVertices, sizeof(s_cubeVertices) ), PosTexcoordVertex::ms_decl);
|
||||||
@ -188,7 +205,11 @@ int _main_(int /*_argc*/, char** /*_argv*/)
|
|||||||
|
|
||||||
bgfx::ProgramHandle program = loadProgram("vs_update", "fs_update");
|
bgfx::ProgramHandle program = loadProgram("vs_update", "fs_update");
|
||||||
bgfx::ProgramHandle programCmp = loadProgram("vs_update", "fs_update_cmp");
|
bgfx::ProgramHandle programCmp = loadProgram("vs_update", "fs_update_cmp");
|
||||||
bgfx::ProgramHandle program3d = loadProgram("vs_update", "fs_update_3d");
|
bgfx::ProgramHandle program3d = BGFX_INVALID_HANDLE;
|
||||||
|
if (texture3DSupported)
|
||||||
|
{
|
||||||
|
program3d = loadProgram("vs_update", "fs_update_3d");
|
||||||
|
}
|
||||||
|
|
||||||
const uint32_t textureSide = 2048;
|
const uint32_t textureSide = 2048;
|
||||||
|
|
||||||
@ -271,8 +292,7 @@ int _main_(int /*_argc*/, char** /*_argv*/)
|
|||||||
|
|
||||||
for (uint32_t ii = 0, num = bx::uint32_min(10, (uint32_t)quads.size() ); ii < num; ++ii)
|
for (uint32_t ii = 0, num = bx::uint32_min(10, (uint32_t)quads.size() ); ii < num; ++ii)
|
||||||
{
|
{
|
||||||
const PackCube& face = quads.front();
|
cube.clear(quads.front() );
|
||||||
cube.clear(face);
|
|
||||||
quads.pop_front();
|
quads.pop_front();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -399,7 +419,7 @@ int _main_(int /*_argc*/, char** /*_argv*/)
|
|||||||
bgfx::submit(1);
|
bgfx::submit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (uint32_t ii = 0; ii < BX_COUNTOF(textures3d); ++ii)
|
for (uint32_t ii = 0; ii < numTextures3d; ++ii)
|
||||||
{
|
{
|
||||||
bx::mtxTranslate(mtx, xpos + ii*2.1f, -4.0f, 0.0f);
|
bx::mtxTranslate(mtx, xpos + ii*2.1f, -4.0f, 0.0f);
|
||||||
|
|
||||||
@ -465,7 +485,7 @@ int _main_(int /*_argc*/, char** /*_argv*/)
|
|||||||
bgfx::destroyTexture(textures[ii]);
|
bgfx::destroyTexture(textures[ii]);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (uint32_t ii = 0; ii < BX_COUNTOF(textures3d); ++ii)
|
for (uint32_t ii = 0; ii < numTextures3d; ++ii)
|
||||||
{
|
{
|
||||||
bgfx::destroyTexture(textures3d[ii]);
|
bgfx::destroyTexture(textures3d[ii]);
|
||||||
}
|
}
|
||||||
@ -474,7 +494,10 @@ int _main_(int /*_argc*/, char** /*_argv*/)
|
|||||||
bgfx::destroyTexture(textureCube);
|
bgfx::destroyTexture(textureCube);
|
||||||
bgfx::destroyIndexBuffer(ibh);
|
bgfx::destroyIndexBuffer(ibh);
|
||||||
bgfx::destroyVertexBuffer(vbh);
|
bgfx::destroyVertexBuffer(vbh);
|
||||||
bgfx::destroyProgram(program3d);
|
if (bgfx::isValid(program3d) )
|
||||||
|
{
|
||||||
|
bgfx::destroyProgram(program3d);
|
||||||
|
}
|
||||||
bgfx::destroyProgram(programCmp);
|
bgfx::destroyProgram(programCmp);
|
||||||
bgfx::destroyProgram(program);
|
bgfx::destroyProgram(program);
|
||||||
bgfx::destroyUniform(u_time);
|
bgfx::destroyUniform(u_time);
|
||||||
|
8
3rdparty/bgfx/examples/09-hdr/hdr.cpp
vendored
8
3rdparty/bgfx/examples/09-hdr/hdr.cpp
vendored
@ -174,7 +174,12 @@ int _main_(int /*_argc*/, char** /*_argv*/)
|
|||||||
bgfx::setViewName(8, "Blur vertical");
|
bgfx::setViewName(8, "Blur vertical");
|
||||||
bgfx::setViewName(9, "Blur horizontal + tonemap");
|
bgfx::setViewName(9, "Blur horizontal + tonemap");
|
||||||
|
|
||||||
bgfx::TextureHandle uffizi = loadTexture("uffizi.dds", BGFX_TEXTURE_U_CLAMP|BGFX_TEXTURE_V_CLAMP|BGFX_TEXTURE_W_CLAMP);
|
bgfx::TextureHandle uffizi = loadTexture("uffizi.dds"
|
||||||
|
, 0
|
||||||
|
| BGFX_TEXTURE_U_CLAMP
|
||||||
|
| BGFX_TEXTURE_V_CLAMP
|
||||||
|
| BGFX_TEXTURE_W_CLAMP
|
||||||
|
);
|
||||||
|
|
||||||
bgfx::ProgramHandle skyProgram = loadProgram("vs_hdr_skybox", "fs_hdr_skybox");
|
bgfx::ProgramHandle skyProgram = loadProgram("vs_hdr_skybox", "fs_hdr_skybox");
|
||||||
bgfx::ProgramHandle lumProgram = loadProgram("vs_hdr_lum", "fs_hdr_lum");
|
bgfx::ProgramHandle lumProgram = loadProgram("vs_hdr_lum", "fs_hdr_lum");
|
||||||
@ -371,6 +376,7 @@ int _main_(int /*_argc*/, char** /*_argv*/)
|
|||||||
|
|
||||||
// Render skybox into view 0.
|
// Render skybox into view 0.
|
||||||
bgfx::setTexture(0, u_texCube, uffizi);
|
bgfx::setTexture(0, u_texCube, uffizi);
|
||||||
|
|
||||||
bgfx::setProgram(skyProgram);
|
bgfx::setProgram(skyProgram);
|
||||||
bgfx::setState(BGFX_STATE_RGB_WRITE|BGFX_STATE_ALPHA_WRITE);
|
bgfx::setState(BGFX_STATE_RGB_WRITE|BGFX_STATE_ALPHA_WRITE);
|
||||||
screenSpaceQuad( (float)width, (float)height, true);
|
screenSpaceQuad( (float)width, (float)height, true);
|
||||||
|
14
3rdparty/bgfx/examples/12-lod/lod.cpp
vendored
14
3rdparty/bgfx/examples/12-lod/lod.cpp
vendored
@ -20,7 +20,7 @@ KnightPos knightTour[8*4] =
|
|||||||
{0,0}, {1,2}, {3,3}, {4,1}, {5,3}, {7,2}, {6,0}, {5,2},
|
{0,0}, {1,2}, {3,3}, {4,1}, {5,3}, {7,2}, {6,0}, {5,2},
|
||||||
{7,3}, {6,1}, {4,0}, {3,2}, {2,0}, {0,1}, {1,3}, {2,1},
|
{7,3}, {6,1}, {4,0}, {3,2}, {2,0}, {0,1}, {1,3}, {2,1},
|
||||||
{0,2}, {1,0}, {2,2}, {0,3}, {1,1}, {3,0}, {4,2}, {5,0},
|
{0,2}, {1,0}, {2,2}, {0,3}, {1,1}, {3,0}, {4,2}, {5,0},
|
||||||
{7,1}, {6,3}, {5,1}, {7,0}, {6,2}, {4,3}, {3,1}, {2,3}
|
{7,1}, {6,3}, {5,1}, {7,0}, {6,2}, {4,3}, {3,1}, {2,3},
|
||||||
};
|
};
|
||||||
|
|
||||||
int _main_(int /*_argc*/, char** /*_argv*/)
|
int _main_(int /*_argc*/, char** /*_argv*/)
|
||||||
@ -55,15 +55,19 @@ int _main_(int /*_argc*/, char** /*_argv*/)
|
|||||||
|
|
||||||
bgfx::TextureHandle textureStipple;
|
bgfx::TextureHandle textureStipple;
|
||||||
|
|
||||||
const bgfx::Memory* stipple = bgfx::alloc(8*4);
|
const bgfx::Memory* stippleTex = bgfx::alloc(8*4);
|
||||||
memset(stipple->data, 0, stipple->size);
|
memset(stippleTex->data, 0, stippleTex->size);
|
||||||
|
|
||||||
for (uint32_t ii = 0; ii < 32; ++ii)
|
for (uint32_t ii = 0; ii < 32; ++ii)
|
||||||
{
|
{
|
||||||
stipple->data[knightTour[ii].m_y * 8 + knightTour[ii].m_x] = ii*4;
|
stippleTex->data[knightTour[ii].m_y * 8 + knightTour[ii].m_x] = ii*4;
|
||||||
}
|
}
|
||||||
|
|
||||||
textureStipple = bgfx::createTexture2D(8, 4, 1, bgfx::TextureFormat::R8, BGFX_TEXTURE_MAG_POINT|BGFX_TEXTURE_MIN_POINT, stipple);
|
textureStipple = bgfx::createTexture2D(8, 4, 1
|
||||||
|
, bgfx::TextureFormat::R8
|
||||||
|
, BGFX_TEXTURE_MAG_POINT|BGFX_TEXTURE_MIN_POINT
|
||||||
|
, stippleTex
|
||||||
|
);
|
||||||
|
|
||||||
Mesh* meshTop[3] =
|
Mesh* meshTop[3] =
|
||||||
{
|
{
|
||||||
|
16
3rdparty/bgfx/examples/13-stencil/stencil.cpp
vendored
16
3rdparty/bgfx/examples/13-stencil/stencil.cpp
vendored
@ -1040,9 +1040,9 @@ int _main_(int /*_argc*/, char** /*_argv*/)
|
|||||||
const float radius = (scene == StencilReflectionScene) ? 15.0f : 25.0f;
|
const float radius = (scene == StencilReflectionScene) ? 15.0f : 25.0f;
|
||||||
for (uint8_t ii = 0; ii < numLights; ++ii)
|
for (uint8_t ii = 0; ii < numLights; ++ii)
|
||||||
{
|
{
|
||||||
lightPosRadius[ii][0] = sin( (lightTimeAccumulator*1.1f + ii*0.03f + ii*bx::piHalf*1.07f ) )*20.0f;
|
lightPosRadius[ii][0] = sinf( (lightTimeAccumulator*1.1f + ii*0.03f + ii*bx::piHalf*1.07f ) )*20.0f;
|
||||||
lightPosRadius[ii][1] = 8.0f + (1.0f - cos( (lightTimeAccumulator*1.5f + ii*0.29f + bx::piHalf*1.49f ) ))*4.0f;
|
lightPosRadius[ii][1] = 8.0f + (1.0f - cosf( (lightTimeAccumulator*1.5f + ii*0.29f + bx::piHalf*1.49f ) ))*4.0f;
|
||||||
lightPosRadius[ii][2] = cos( (lightTimeAccumulator*1.3f + ii*0.13f + ii*bx::piHalf*1.79f ) )*20.0f;
|
lightPosRadius[ii][2] = cosf( (lightTimeAccumulator*1.3f + ii*0.13f + ii*bx::piHalf*1.79f ) )*20.0f;
|
||||||
lightPosRadius[ii][3] = radius;
|
lightPosRadius[ii][3] = radius;
|
||||||
}
|
}
|
||||||
memcpy(s_uniforms.m_lightPosRadius, lightPosRadius, numLights * 4*sizeof(float));
|
memcpy(s_uniforms.m_lightPosRadius, lightPosRadius, numLights * 4*sizeof(float));
|
||||||
@ -1112,9 +1112,9 @@ int _main_(int /*_argc*/, char** /*_argv*/)
|
|||||||
, 0.0f
|
, 0.0f
|
||||||
, 0.0f
|
, 0.0f
|
||||||
, 0.0f
|
, 0.0f
|
||||||
, sin(ii * 2.0f + 13.0f - sceneTimeAccumulator) * 13.0f
|
, sinf(ii * 2.0f + 13.0f - sceneTimeAccumulator) * 13.0f
|
||||||
, 4.0f
|
, 4.0f
|
||||||
, cos(ii * 2.0f + 13.0f - sceneTimeAccumulator) * 13.0f
|
, cosf(ii * 2.0f + 13.0f - sceneTimeAccumulator) * 13.0f
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1188,7 +1188,6 @@ int _main_(int /*_argc*/, char** /*_argv*/)
|
|||||||
|
|
||||||
// Set lights back.
|
// Set lights back.
|
||||||
memcpy(s_uniforms.m_lightPosRadius, lightPosRadius, numLights * 4*sizeof(float));
|
memcpy(s_uniforms.m_lightPosRadius, lightPosRadius, numLights * 4*sizeof(float));
|
||||||
|
|
||||||
// Third pass - Blend plane.
|
// Third pass - Blend plane.
|
||||||
|
|
||||||
// Floor.
|
// Floor.
|
||||||
@ -1217,6 +1216,7 @@ int _main_(int /*_argc*/, char** /*_argv*/)
|
|||||||
, s_renderStates[RenderState::StencilReflection_DrawScene]
|
, s_renderStates[RenderState::StencilReflection_DrawScene]
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -1319,10 +1319,10 @@ int _main_(int /*_argc*/, char** /*_argv*/)
|
|||||||
);
|
);
|
||||||
|
|
||||||
// Cubes.
|
// Cubes.
|
||||||
for (uint8_t ii = 0; ii < numCubes; ++ii)
|
for (uint8_t jj = 0; jj < numCubes; ++jj)
|
||||||
{
|
{
|
||||||
cubeMesh.submit(viewId
|
cubeMesh.submit(viewId
|
||||||
, cubeMtx[ii]
|
, cubeMtx[jj]
|
||||||
, programTextureLightning
|
, programTextureLightning
|
||||||
, s_renderStates[RenderState::ProjectionShadows_DrawDiffuse]
|
, s_renderStates[RenderState::ProjectionShadows_DrawDiffuse]
|
||||||
, figureTex
|
, figureTex
|
||||||
|
@ -2276,9 +2276,9 @@ int _main_(int /*_argc*/, char** /*_argv*/)
|
|||||||
{
|
{
|
||||||
for (uint8_t ii = 0; ii < settings_numLights; ++ii)
|
for (uint8_t ii = 0; ii < settings_numLights; ++ii)
|
||||||
{
|
{
|
||||||
lightPosRadius[ii][0] = cos(2.0f*bx::pi/settings_numLights * float(ii) + lightTimeAccumulator * 1.1f + 3.0f) * 20.0f;
|
lightPosRadius[ii][0] = cosf(2.0f*bx::pi/settings_numLights * float(ii) + lightTimeAccumulator * 1.1f + 3.0f) * 20.0f;
|
||||||
lightPosRadius[ii][1] = 20.0f;
|
lightPosRadius[ii][1] = 20.0f;
|
||||||
lightPosRadius[ii][2] = sin(2.0f*bx::pi/settings_numLights * float(ii) + lightTimeAccumulator * 1.1f + 3.0f) * 20.0f;
|
lightPosRadius[ii][2] = sinf(2.0f*bx::pi/settings_numLights * float(ii) + lightTimeAccumulator * 1.1f + 3.0f) * 20.0f;
|
||||||
lightPosRadius[ii][3] = 20.0f;
|
lightPosRadius[ii][3] = 20.0f;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2286,9 +2286,9 @@ int _main_(int /*_argc*/, char** /*_argv*/)
|
|||||||
{
|
{
|
||||||
for (uint8_t ii = 0; ii < settings_numLights; ++ii)
|
for (uint8_t ii = 0; ii < settings_numLights; ++ii)
|
||||||
{
|
{
|
||||||
lightPosRadius[ii][0] = cos(float(ii) * 2.0f/settings_numLights + lightTimeAccumulator * 1.3f + bx::pi) * 40.0f;
|
lightPosRadius[ii][0] = cosf(float(ii) * 2.0f/settings_numLights + lightTimeAccumulator * 1.3f + bx::pi) * 40.0f;
|
||||||
lightPosRadius[ii][1] = 20.0f;
|
lightPosRadius[ii][1] = 20.0f;
|
||||||
lightPosRadius[ii][2] = sin(float(ii) * 2.0f/settings_numLights + lightTimeAccumulator * 1.3f + bx::pi) * 40.0f;
|
lightPosRadius[ii][2] = sinf(float(ii) * 2.0f/settings_numLights + lightTimeAccumulator * 1.3f + bx::pi) * 40.0f;
|
||||||
lightPosRadius[ii][3] = 20.0f;
|
lightPosRadius[ii][3] = 20.0f;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2362,9 +2362,9 @@ int _main_(int /*_argc*/, char** /*_argv*/)
|
|||||||
inst.m_rotation[0] = 0.0f;
|
inst.m_rotation[0] = 0.0f;
|
||||||
inst.m_rotation[1] = 0.0f;
|
inst.m_rotation[1] = 0.0f;
|
||||||
inst.m_rotation[2] = 0.0f;
|
inst.m_rotation[2] = 0.0f;
|
||||||
inst.m_pos[0] = sin(ii * 2.0f + 13.0f + sceneTimeAccumulator * 1.1f) * 13.0f;
|
inst.m_pos[0] = sinf(ii * 2.0f + 13.0f + sceneTimeAccumulator * 1.1f) * 13.0f;
|
||||||
inst.m_pos[1] = 6.0f;
|
inst.m_pos[1] = 6.0f;
|
||||||
inst.m_pos[2] = cos(ii * 2.0f + 13.0f + sceneTimeAccumulator * 1.1f) * 13.0f;
|
inst.m_pos[2] = cosf(ii * 2.0f + 13.0f + sceneTimeAccumulator * 1.1f) * 13.0f;
|
||||||
inst.m_model = &cubeModel;
|
inst.m_model = &cubeModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2379,9 +2379,9 @@ int _main_(int /*_argc*/, char** /*_argv*/)
|
|||||||
inst.m_rotation[0] = 0.0f;
|
inst.m_rotation[0] = 0.0f;
|
||||||
inst.m_rotation[1] = 0.0f;
|
inst.m_rotation[1] = 0.0f;
|
||||||
inst.m_rotation[2] = 0.0f;
|
inst.m_rotation[2] = 0.0f;
|
||||||
inst.m_pos[0] = sin(ii * 2.0f + 13.0f + sceneTimeAccumulator * 1.1f) * 13.0f;
|
inst.m_pos[0] = sinf(ii * 2.0f + 13.0f + sceneTimeAccumulator * 1.1f) * 13.0f;
|
||||||
inst.m_pos[1] = 22.0f;
|
inst.m_pos[1] = 22.0f;
|
||||||
inst.m_pos[2] = cos(ii * 2.0f + 13.0f + sceneTimeAccumulator * 1.1f) * 13.0f;
|
inst.m_pos[2] = cosf(ii * 2.0f + 13.0f + sceneTimeAccumulator * 1.1f) * 13.0f;
|
||||||
inst.m_model = &cubeModel;
|
inst.m_model = &cubeModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -221,9 +221,9 @@ int _main_(int /*_argc*/, char** /*_argv*/)
|
|||||||
|
|
||||||
// Setup lights.
|
// Setup lights.
|
||||||
float lightPos[4];
|
float lightPos[4];
|
||||||
lightPos[0] = -cos(timeAccumulatorLight);
|
lightPos[0] = -cosf(timeAccumulatorLight);
|
||||||
lightPos[1] = -1.0f;
|
lightPos[1] = -1.0f;
|
||||||
lightPos[2] = -sin(timeAccumulatorLight);
|
lightPos[2] = -sinf(timeAccumulatorLight);
|
||||||
lightPos[3] = 0.0f;
|
lightPos[3] = 0.0f;
|
||||||
|
|
||||||
bgfx::setUniform(u_lightPos, lightPos);
|
bgfx::setUniform(u_lightPos, lightPos);
|
||||||
|
@ -2165,16 +2165,16 @@ int _main_(int /*_argc*/, char** /*_argv*/)
|
|||||||
if (settings.m_updateScene) { timeAccumulatorScene += deltaTime; }
|
if (settings.m_updateScene) { timeAccumulatorScene += deltaTime; }
|
||||||
|
|
||||||
// Setup lights.
|
// Setup lights.
|
||||||
pointLight.m_position.m_x = cos(timeAccumulatorLight) * 20.0f;
|
pointLight.m_position.m_x = cosf(timeAccumulatorLight) * 20.0f;
|
||||||
pointLight.m_position.m_y = 26.0f;
|
pointLight.m_position.m_y = 26.0f;
|
||||||
pointLight.m_position.m_z = sin(timeAccumulatorLight) * 20.0f;
|
pointLight.m_position.m_z = sinf(timeAccumulatorLight) * 20.0f;
|
||||||
pointLight.m_spotDirectionInner.m_x = -pointLight.m_position.m_x;
|
pointLight.m_spotDirectionInner.m_x = -pointLight.m_position.m_x;
|
||||||
pointLight.m_spotDirectionInner.m_y = -pointLight.m_position.m_y;
|
pointLight.m_spotDirectionInner.m_y = -pointLight.m_position.m_y;
|
||||||
pointLight.m_spotDirectionInner.m_z = -pointLight.m_position.m_z;
|
pointLight.m_spotDirectionInner.m_z = -pointLight.m_position.m_z;
|
||||||
|
|
||||||
directionalLight.m_position.m_x = -cos(timeAccumulatorLight);
|
directionalLight.m_position.m_x = -cosf(timeAccumulatorLight);
|
||||||
directionalLight.m_position.m_y = -1.0f;
|
directionalLight.m_position.m_y = -1.0f;
|
||||||
directionalLight.m_position.m_z = -sin(timeAccumulatorLight);
|
directionalLight.m_position.m_z = -sinf(timeAccumulatorLight);
|
||||||
|
|
||||||
// Setup instance matrices.
|
// Setup instance matrices.
|
||||||
float mtxFloor[16];
|
float mtxFloor[16];
|
||||||
|
1
3rdparty/bgfx/examples/20-nanovg/blendish.h
vendored
1
3rdparty/bgfx/examples/20-nanovg/blendish.h
vendored
@ -1109,6 +1109,7 @@ BND_EXPORT NVGcolor bndNodeWireColor(const BNDnodeTheme *theme, BNDwidgetState s
|
|||||||
#pragma warning (disable: 4100) // Switch off unreferenced formal parameter warnings
|
#pragma warning (disable: 4100) // Switch off unreferenced formal parameter warnings
|
||||||
#pragma warning (disable: 4244)
|
#pragma warning (disable: 4244)
|
||||||
#pragma warning (disable: 4305)
|
#pragma warning (disable: 4305)
|
||||||
|
#pragma warning (disable: 4838) // warning C4838: conversion from 'double' to 'float' requires a narrowing conversion
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
#define BND_INLINE inline
|
#define BND_INLINE inline
|
||||||
#else
|
#else
|
||||||
|
26
3rdparty/bgfx/examples/20-nanovg/nanovg.cpp
vendored
26
3rdparty/bgfx/examples/20-nanovg/nanovg.cpp
vendored
@ -387,7 +387,7 @@ void drawEyes(struct NVGcontext* vg, float x, float y, float w, float h, float m
|
|||||||
float ry = y + ey;
|
float ry = y + ey;
|
||||||
float dx,dy,d;
|
float dx,dy,d;
|
||||||
float br = (ex < ey ? ex : ey) * 0.5f;
|
float br = (ex < ey ? ex : ey) * 0.5f;
|
||||||
float blink = 1 - pow(sinf(t*0.5f),200)*0.8f;
|
float blink = 1 - powf(sinf(t*0.5f),200)*0.8f;
|
||||||
|
|
||||||
bg = nvgLinearGradient(vg, x,y+h*0.5f,x+w*0.1f,y+h, nvgRGBA(0,0,0,32), nvgRGBA(0,0,0,16));
|
bg = nvgLinearGradient(vg, x,y+h*0.5f,x+w*0.1f,y+h, nvgRGBA(0,0,0,32), nvgRGBA(0,0,0,16));
|
||||||
nvgBeginPath(vg);
|
nvgBeginPath(vg);
|
||||||
@ -1042,10 +1042,10 @@ void drawParagraph(struct NVGcontext* vg, float x, float y, float width, float h
|
|||||||
for (j = 0; j < nglyphs; j++) {
|
for (j = 0; j < nglyphs; j++) {
|
||||||
float x0 = glyphs[j].x;
|
float x0 = glyphs[j].x;
|
||||||
float x1 = (j+1 < nglyphs) ? glyphs[j+1].x : x+row->width;
|
float x1 = (j+1 < nglyphs) ? glyphs[j+1].x : x+row->width;
|
||||||
float gx = x0 * 0.3f + x1 * 0.7f;
|
float tgx = x0 * 0.3f + x1 * 0.7f;
|
||||||
if (mx >= px && mx < gx)
|
if (mx >= px && mx < tgx)
|
||||||
caretx = glyphs[j].x;
|
caretx = glyphs[j].x;
|
||||||
px = gx;
|
px = tgx;
|
||||||
}
|
}
|
||||||
nvgBeginPath(vg);
|
nvgBeginPath(vg);
|
||||||
nvgFillColor(vg, nvgRGBA(255,192,0,255));
|
nvgFillColor(vg, nvgRGBA(255,192,0,255));
|
||||||
@ -1075,11 +1075,11 @@ void drawParagraph(struct NVGcontext* vg, float x, float y, float width, float h
|
|||||||
nvgBeginPath(vg);
|
nvgBeginPath(vg);
|
||||||
nvgFillColor(vg, nvgRGBA(255,192,0,255));
|
nvgFillColor(vg, nvgRGBA(255,192,0,255));
|
||||||
nvgRoundedRect(vg
|
nvgRoundedRect(vg
|
||||||
, round(bounds[0])-4.0f
|
, roundf(bounds[0])-4.0f
|
||||||
, round(bounds[1])-2.0f
|
, roundf(bounds[1])-2.0f
|
||||||
, round(bounds[2]-bounds[0])+8.0f
|
, roundf(bounds[2]-bounds[0])+8.0f
|
||||||
, round(bounds[3]-bounds[1])+4.0f
|
, roundf(bounds[3]-bounds[1])+4.0f
|
||||||
, (round(bounds[3]-bounds[1])+4.0f)/2.0f-1.0f
|
, (roundf(bounds[3]-bounds[1])+4.0f)/2.0f-1.0f
|
||||||
);
|
);
|
||||||
nvgFill(vg);
|
nvgFill(vg);
|
||||||
|
|
||||||
@ -1097,10 +1097,10 @@ void drawParagraph(struct NVGcontext* vg, float x, float y, float width, float h
|
|||||||
nvgBeginPath(vg);
|
nvgBeginPath(vg);
|
||||||
nvgFillColor(vg, nvgRGBA(220,220,220,255));
|
nvgFillColor(vg, nvgRGBA(220,220,220,255));
|
||||||
nvgRoundedRect(vg
|
nvgRoundedRect(vg
|
||||||
, round(bounds[0]-2.0f)
|
, roundf(bounds[0]-2.0f)
|
||||||
, round(bounds[1]-2.0f)
|
, roundf(bounds[1]-2.0f)
|
||||||
, round(bounds[2]-bounds[0])+4.0f
|
, roundf(bounds[2]-bounds[0])+4.0f
|
||||||
, round(bounds[3]-bounds[1])+4.0f
|
, roundf(bounds[3]-bounds[1])+4.0f
|
||||||
, 3.0f
|
, 3.0f
|
||||||
);
|
);
|
||||||
px = float( (int)((bounds[2]+bounds[0])/2) );
|
px = float( (int)((bounds[2]+bounds[0])/2) );
|
||||||
|
@ -529,10 +529,10 @@ int _main_(int /*_argc*/, char** /*_argv*/)
|
|||||||
{
|
{
|
||||||
Sphere lightPosRadius;
|
Sphere lightPosRadius;
|
||||||
|
|
||||||
float lightTime = time * lightAnimationSpeed * (sin(light/float(numLights) * bx::piHalf ) * 0.5f + 0.5f);
|
float lightTime = time * lightAnimationSpeed * (sinf(light/float(numLights) * bx::piHalf ) * 0.5f + 0.5f);
|
||||||
lightPosRadius.m_center[0] = sin( ( (lightTime + light*0.47f) + bx::piHalf*1.37f ) )*offset;
|
lightPosRadius.m_center[0] = sinf( ( (lightTime + light*0.47f) + bx::piHalf*1.37f ) )*offset;
|
||||||
lightPosRadius.m_center[1] = cos( ( (lightTime + light*0.69f) + bx::piHalf*1.49f ) )*offset;
|
lightPosRadius.m_center[1] = cosf( ( (lightTime + light*0.69f) + bx::piHalf*1.49f ) )*offset;
|
||||||
lightPosRadius.m_center[2] = sin( ( (lightTime + light*0.37f) + bx::piHalf*1.57f ) )*2.0f;
|
lightPosRadius.m_center[2] = sinf( ( (lightTime + light*0.37f) + bx::piHalf*1.57f ) )*2.0f;
|
||||||
lightPosRadius.m_radius = 2.0f;
|
lightPosRadius.m_radius = 2.0f;
|
||||||
|
|
||||||
Aabb aabb;
|
Aabb aabb;
|
||||||
|
@ -150,8 +150,8 @@ int _main_(int /*_argc*/, char** /*_argv*/)
|
|||||||
// draw moving shape
|
// draw moving shape
|
||||||
static float counter = 0.0f;
|
static float counter = 0.0f;
|
||||||
counter += 0.01f;
|
counter += 0.01f;
|
||||||
float posX = width / 2.0f + sin(counter * 3.18378f) * (width / 2.0f);
|
float posX = width / 2.0f + sinf(counter * 3.18378f) * (width / 2.0f);
|
||||||
float posY = height / 2.0f + cos(counter) * (height / 2.0f);
|
float posY = height / 2.0f + cosf(counter) * (height / 2.0f);
|
||||||
vd.drawCircle(posX, posY, 5.0f, 10.0f);
|
vd.drawCircle(posX, posY, 5.0f, 10.0f);
|
||||||
|
|
||||||
vd.endFrame();
|
vd.endFrame();
|
||||||
|
@ -361,10 +361,10 @@ void VectorDisplay::endDraw()
|
|||||||
line->y0 = m_pendingPoints[i - 1].y;
|
line->y0 = m_pendingPoints[i - 1].y;
|
||||||
line->x1 = m_pendingPoints[i].x;
|
line->x1 = m_pendingPoints[i].x;
|
||||||
line->y1 = m_pendingPoints[i].y;
|
line->y1 = m_pendingPoints[i].y;
|
||||||
line->a = atan2(line->y1 - line->y0, line->x1 - line->x0); // angle from positive x axis, increasing ccw, [-pi, pi]
|
line->a = atan2f(line->y1 - line->y0, line->x1 - line->x0); // angle from positive x axis, increasing ccw, [-pi, pi]
|
||||||
line->sin_a = sinf(line->a);
|
line->sin_a = sinf(line->a);
|
||||||
line->cos_a = cosf(line->a);
|
line->cos_a = cosf(line->a);
|
||||||
line->len = sqrt( (line->x1 - line->x0) * (line->x1 - line->x0) + (line->y1 - line->y0) * (line->y1 - line->y0) );
|
line->len = sqrtf( (line->x1 - line->x0) * (line->x1 - line->x0) + (line->y1 - line->y0) * (line->y1 - line->y0) );
|
||||||
|
|
||||||
// figure out what connections we have
|
// figure out what connections we have
|
||||||
line->has_prev = (!line->is_first
|
line->has_prev = (!line->is_first
|
||||||
|
395
3rdparty/bgfx/examples/24-nbody/nbody.cpp
vendored
395
3rdparty/bgfx/examples/24-nbody/nbody.cpp
vendored
@ -117,211 +117,238 @@ int _main_(int /*_argc*/, char** /*_argv*/)
|
|||||||
, 0
|
, 0
|
||||||
);
|
);
|
||||||
|
|
||||||
// Imgui.
|
const bgfx::Caps* caps = bgfx::getCaps();
|
||||||
imguiCreate();
|
const bool computeSupported = !!(caps->supported & BGFX_CAPS_COMPUTE);
|
||||||
|
|
||||||
bgfx::VertexDecl quadVertexDecl;
|
if (computeSupported)
|
||||||
quadVertexDecl.begin()
|
|
||||||
.add(bgfx::Attrib::Position, 2, bgfx::AttribType::Float)
|
|
||||||
.end();
|
|
||||||
|
|
||||||
// Create static vertex buffer.
|
|
||||||
bgfx::VertexBufferHandle vbh = bgfx::createVertexBuffer(
|
|
||||||
// Static data can be passed with bgfx::makeRef
|
|
||||||
bgfx::makeRef(s_quadVertices, sizeof(s_quadVertices) )
|
|
||||||
, quadVertexDecl
|
|
||||||
);
|
|
||||||
|
|
||||||
// Create static index buffer.
|
|
||||||
bgfx::IndexBufferHandle ibh = bgfx::createIndexBuffer(
|
|
||||||
// Static data can be passed with bgfx::makeRef
|
|
||||||
bgfx::makeRef(s_quadIndices, sizeof(s_quadIndices) )
|
|
||||||
);
|
|
||||||
|
|
||||||
// Create particle program from shaders.
|
|
||||||
bgfx::ProgramHandle particleProgram = loadProgram("vs_particle", "fs_particle");
|
|
||||||
|
|
||||||
// Setup compute buffers
|
|
||||||
bgfx::VertexDecl computeVertexDecl;
|
|
||||||
computeVertexDecl.begin()
|
|
||||||
.add(bgfx::Attrib::TexCoord0, 4, bgfx::AttribType::Float)
|
|
||||||
.end();
|
|
||||||
|
|
||||||
const uint32_t threadGroupUpdateSize = 512;
|
|
||||||
const uint32_t maxParticleCount = 32 * 1024;
|
|
||||||
|
|
||||||
bgfx::DynamicVertexBufferHandle currPositionBuffer0 = bgfx::createDynamicVertexBuffer(1 << 15, computeVertexDecl, BGFX_BUFFER_COMPUTE_READ_WRITE);
|
|
||||||
bgfx::DynamicVertexBufferHandle currPositionBuffer1 = bgfx::createDynamicVertexBuffer(1 << 15, computeVertexDecl, BGFX_BUFFER_COMPUTE_READ_WRITE);
|
|
||||||
bgfx::DynamicVertexBufferHandle prevPositionBuffer0 = bgfx::createDynamicVertexBuffer(1 << 15, computeVertexDecl, BGFX_BUFFER_COMPUTE_READ_WRITE);
|
|
||||||
bgfx::DynamicVertexBufferHandle prevPositionBuffer1 = bgfx::createDynamicVertexBuffer(1 << 15, computeVertexDecl, BGFX_BUFFER_COMPUTE_READ_WRITE);
|
|
||||||
|
|
||||||
bgfx::UniformHandle u_params = bgfx::createUniform("u_params", bgfx::UniformType::Uniform4fv, 3);
|
|
||||||
|
|
||||||
bgfx::ShaderHandle initInstancesShader = loadShader("cs_init_instances");
|
|
||||||
bgfx::ProgramHandle initInstancesProgram = bgfx::createProgram(initInstancesShader, true);
|
|
||||||
bgfx::ShaderHandle updateInstancesShader = loadShader("cs_update_instances");
|
|
||||||
bgfx::ProgramHandle updateInstancesProgram = bgfx::createProgram(updateInstancesShader, true);
|
|
||||||
|
|
||||||
u_paramsDataStruct u_paramsData;
|
|
||||||
InitializeParams(0, &u_paramsData);
|
|
||||||
|
|
||||||
bgfx::setUniform(u_params, &u_paramsData, 3);
|
|
||||||
bgfx::setBuffer(0, prevPositionBuffer0, bgfx::Access::Write);
|
|
||||||
bgfx::setBuffer(1, currPositionBuffer0, bgfx::Access::Write);
|
|
||||||
bgfx::dispatch(0, initInstancesProgram, maxParticleCount / threadGroupUpdateSize, 1, 1);
|
|
||||||
|
|
||||||
float view[16];
|
|
||||||
float initialPos[3] = { 0.0f, 0.0f, -45.0f };
|
|
||||||
cameraCreate();
|
|
||||||
cameraSetPosition(initialPos);
|
|
||||||
cameraSetVerticalAngle(0.0f);
|
|
||||||
cameraGetViewMtx(view);
|
|
||||||
|
|
||||||
int32_t scrollArea = 0;
|
|
||||||
|
|
||||||
entry::MouseState mouseState;
|
|
||||||
while (!entry::processEvents(width, height, debug, reset, &mouseState) )
|
|
||||||
{
|
{
|
||||||
int64_t now = bx::getHPCounter();
|
// Imgui.
|
||||||
static int64_t last = now;
|
imguiCreate();
|
||||||
const int64_t frameTime = now - last;
|
|
||||||
last = now;
|
|
||||||
const double freq = double(bx::getHPFrequency() );
|
|
||||||
const float deltaTime = float(frameTime/freq);
|
|
||||||
|
|
||||||
// Set view 0 default viewport.
|
bgfx::VertexDecl quadVertexDecl;
|
||||||
bgfx::setViewRect(0, 0, 0, width, height);
|
quadVertexDecl.begin()
|
||||||
|
.add(bgfx::Attrib::Position, 2, bgfx::AttribType::Float)
|
||||||
|
.end();
|
||||||
|
|
||||||
// Use debug font to print information about this example.
|
// Create static vertex buffer.
|
||||||
bgfx::dbgTextClear();
|
bgfx::VertexBufferHandle vbh = bgfx::createVertexBuffer(
|
||||||
bgfx::dbgTextPrintf(0, 1, 0x4f, "bgfx/examples/24-nbody");
|
// Static data can be passed with bgfx::makeRef
|
||||||
bgfx::dbgTextPrintf(0, 2, 0x6f, "Description: N-body simulation with compute shaders using buffers.");
|
bgfx::makeRef(s_quadVertices, sizeof(s_quadVertices) )
|
||||||
|
, quadVertexDecl
|
||||||
|
);
|
||||||
|
|
||||||
imguiBeginFrame(mouseState.m_mx
|
// Create static index buffer.
|
||||||
, mouseState.m_my
|
bgfx::IndexBufferHandle ibh = bgfx::createIndexBuffer(
|
||||||
, (mouseState.m_buttons[entry::MouseButton::Left ] ? IMGUI_MBUT_LEFT : 0)
|
// Static data can be passed with bgfx::makeRef
|
||||||
| (mouseState.m_buttons[entry::MouseButton::Right ] ? IMGUI_MBUT_RIGHT : 0)
|
bgfx::makeRef(s_quadIndices, sizeof(s_quadIndices) )
|
||||||
, 0
|
);
|
||||||
, width
|
|
||||||
, height
|
|
||||||
);
|
|
||||||
imguiBeginScrollArea("Settings", width - width / 4 - 10, 10, width / 4, 500, &scrollArea);
|
|
||||||
imguiSlider("Random seed", u_paramsData.baseSeed, 0, 100);
|
|
||||||
int32_t shape = imguiChoose(u_paramsData.initialShape, "Point", "Sphere", "Box", "Donut");
|
|
||||||
imguiSlider("Initial speed", u_paramsData.initialSpeed, 0.0f, 300.0f, 0.1f);
|
|
||||||
bool reset = imguiButton("Reset");
|
|
||||||
imguiSeparatorLine();
|
|
||||||
imguiSlider("Particle count (x512)", u_paramsData.dispatchSize, 1, 64);
|
|
||||||
imguiSlider("Gravity", u_paramsData.gravity, 0.0f, 0.3f, 0.001f);
|
|
||||||
imguiSlider("Damping", u_paramsData.damping, 0.0f, 1.0f, 0.01f);
|
|
||||||
imguiSlider("Max acceleration", u_paramsData.maxAccel, 0.0f, 100.0f, 0.01f);
|
|
||||||
imguiSlider("Time step", u_paramsData.timeStep, 0.0f, 0.02f, 0.0001f);
|
|
||||||
imguiSeparatorLine();
|
|
||||||
imguiSlider("Particle intensity", u_paramsData.particleIntensity, 0.0f, 1.0f, 0.001f);
|
|
||||||
imguiSlider("Particle size", u_paramsData.particleSize, 0.0f, 1.0f, 0.001f);
|
|
||||||
imguiSlider("Particle power", u_paramsData.particlePower, 0.001f, 16.0f, 0.01f);
|
|
||||||
imguiEndScrollArea();
|
|
||||||
imguiEndFrame();
|
|
||||||
|
|
||||||
// Modify parameters and reset if shape is changed
|
// Create particle program from shaders.
|
||||||
if (shape != u_paramsData.initialShape)
|
bgfx::ProgramHandle particleProgram = loadProgram("vs_particle", "fs_particle");
|
||||||
{
|
|
||||||
reset = true;
|
|
||||||
InitializeParams(shape, &u_paramsData);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (reset)
|
// Setup compute buffers
|
||||||
{
|
bgfx::VertexDecl computeVertexDecl;
|
||||||
bgfx::setBuffer(0, prevPositionBuffer0, bgfx::Access::Write);
|
computeVertexDecl.begin()
|
||||||
bgfx::setBuffer(1, currPositionBuffer0, bgfx::Access::Write);
|
.add(bgfx::Attrib::TexCoord0, 4, bgfx::AttribType::Float)
|
||||||
bgfx::setUniform(u_params, &u_paramsData, 3);
|
.end();
|
||||||
bgfx::dispatch(0, initInstancesProgram, maxParticleCount / threadGroupUpdateSize, 1, 1);
|
|
||||||
}
|
const uint32_t threadGroupUpdateSize = 512;
|
||||||
|
const uint32_t maxParticleCount = 32 * 1024;
|
||||||
|
|
||||||
|
bgfx::DynamicVertexBufferHandle currPositionBuffer0 = bgfx::createDynamicVertexBuffer(1 << 15, computeVertexDecl, BGFX_BUFFER_COMPUTE_READ_WRITE);
|
||||||
|
bgfx::DynamicVertexBufferHandle currPositionBuffer1 = bgfx::createDynamicVertexBuffer(1 << 15, computeVertexDecl, BGFX_BUFFER_COMPUTE_READ_WRITE);
|
||||||
|
bgfx::DynamicVertexBufferHandle prevPositionBuffer0 = bgfx::createDynamicVertexBuffer(1 << 15, computeVertexDecl, BGFX_BUFFER_COMPUTE_READ_WRITE);
|
||||||
|
bgfx::DynamicVertexBufferHandle prevPositionBuffer1 = bgfx::createDynamicVertexBuffer(1 << 15, computeVertexDecl, BGFX_BUFFER_COMPUTE_READ_WRITE);
|
||||||
|
|
||||||
|
bgfx::UniformHandle u_params = bgfx::createUniform("u_params", bgfx::UniformType::Uniform4fv, 3);
|
||||||
|
|
||||||
|
bgfx::ShaderHandle initInstancesShader = loadShader("cs_init_instances");
|
||||||
|
bgfx::ProgramHandle initInstancesProgram = bgfx::createProgram(initInstancesShader, true);
|
||||||
|
bgfx::ShaderHandle updateInstancesShader = loadShader("cs_update_instances");
|
||||||
|
bgfx::ProgramHandle updateInstancesProgram = bgfx::createProgram(updateInstancesShader, true);
|
||||||
|
|
||||||
|
u_paramsDataStruct u_paramsData;
|
||||||
|
InitializeParams(0, &u_paramsData);
|
||||||
|
|
||||||
bgfx::setBuffer(0, prevPositionBuffer0, bgfx::Access::Read);
|
|
||||||
bgfx::setBuffer(1, currPositionBuffer0, bgfx::Access::Read);
|
|
||||||
bgfx::setBuffer(2, prevPositionBuffer1, bgfx::Access::Write);
|
|
||||||
bgfx::setBuffer(3, currPositionBuffer1, bgfx::Access::Write);
|
|
||||||
bgfx::setUniform(u_params, &u_paramsData, 3);
|
bgfx::setUniform(u_params, &u_paramsData, 3);
|
||||||
bgfx::dispatch(0, updateInstancesProgram, u_paramsData.dispatchSize, 1, 1);
|
bgfx::setBuffer(0, prevPositionBuffer0, bgfx::Access::Write);
|
||||||
|
bgfx::setBuffer(1, currPositionBuffer0, bgfx::Access::Write);
|
||||||
bx::xchg(currPositionBuffer0, currPositionBuffer1);
|
bgfx::dispatch(0, initInstancesProgram, maxParticleCount / threadGroupUpdateSize, 1, 1);
|
||||||
bx::xchg(prevPositionBuffer0, prevPositionBuffer1);
|
|
||||||
|
|
||||||
float view[16];
|
float view[16];
|
||||||
|
float initialPos[3] = { 0.0f, 0.0f, -45.0f };
|
||||||
// Update camera.
|
cameraCreate();
|
||||||
cameraUpdate(deltaTime, mouseState);
|
cameraSetPosition(initialPos);
|
||||||
|
cameraSetVerticalAngle(0.0f);
|
||||||
cameraGetViewMtx(view);
|
cameraGetViewMtx(view);
|
||||||
|
|
||||||
// Set view and projection matrix for view 0.
|
int32_t scrollArea = 0;
|
||||||
const bgfx::HMD* hmd = bgfx::getHMD();
|
|
||||||
if (NULL != hmd)
|
entry::MouseState mouseState;
|
||||||
|
while (!entry::processEvents(width, height, debug, reset, &mouseState) )
|
||||||
{
|
{
|
||||||
float viewHead[16];
|
int64_t now = bx::getHPCounter();
|
||||||
float eye[3] = {};
|
static int64_t last = now;
|
||||||
bx::mtxQuatTranslationHMD(viewHead, hmd->eye[0].rotation, eye);
|
const int64_t frameTime = now - last;
|
||||||
|
last = now;
|
||||||
float tmp[16];
|
const double freq = double(bx::getHPFrequency() );
|
||||||
bx::mtxMul(tmp, view, viewHead);
|
const float deltaTime = float(frameTime/freq);
|
||||||
|
|
||||||
float proj[16];
|
|
||||||
bx::mtxProj(proj, hmd->eye[0].fov, 0.1f, 10000.0f);
|
|
||||||
|
|
||||||
bgfx::setViewTransform(0, tmp, proj);
|
|
||||||
|
|
||||||
// Set view 0 default viewport.
|
|
||||||
//
|
|
||||||
// Use HMD's width/height since HMD's internal frame buffer size
|
|
||||||
// might be much larger than window size.
|
|
||||||
bgfx::setViewRect(0, 0, 0, hmd->width, hmd->height);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
float proj[16];
|
|
||||||
bx::mtxProj(proj, 90.0f, float(width)/float(height), 0.1f, 10000.0f);
|
|
||||||
bgfx::setViewTransform(0, view, proj);
|
|
||||||
|
|
||||||
// Set view 0 default viewport.
|
// Set view 0 default viewport.
|
||||||
bgfx::setViewRect(0, 0, 0, width, height);
|
bgfx::setViewRect(0, 0, 0, width, height);
|
||||||
|
|
||||||
|
// Use debug font to print information about this example.
|
||||||
|
bgfx::dbgTextClear();
|
||||||
|
bgfx::dbgTextPrintf(0, 1, 0x4f, "bgfx/examples/24-nbody");
|
||||||
|
bgfx::dbgTextPrintf(0, 2, 0x6f, "Description: N-body simulation with compute shaders using buffers.");
|
||||||
|
|
||||||
|
imguiBeginFrame(mouseState.m_mx
|
||||||
|
, mouseState.m_my
|
||||||
|
, (mouseState.m_buttons[entry::MouseButton::Left ] ? IMGUI_MBUT_LEFT : 0)
|
||||||
|
| (mouseState.m_buttons[entry::MouseButton::Right ] ? IMGUI_MBUT_RIGHT : 0)
|
||||||
|
, 0
|
||||||
|
, width
|
||||||
|
, height
|
||||||
|
);
|
||||||
|
imguiBeginScrollArea("Settings", width - width / 4 - 10, 10, width / 4, 500, &scrollArea);
|
||||||
|
imguiSlider("Random seed", u_paramsData.baseSeed, 0, 100);
|
||||||
|
int32_t shape = imguiChoose(u_paramsData.initialShape, "Point", "Sphere", "Box", "Donut");
|
||||||
|
imguiSlider("Initial speed", u_paramsData.initialSpeed, 0.0f, 300.0f, 0.1f);
|
||||||
|
bool defaults = imguiButton("Reset");
|
||||||
|
imguiSeparatorLine();
|
||||||
|
imguiSlider("Particle count (x512)", u_paramsData.dispatchSize, 1, 64);
|
||||||
|
imguiSlider("Gravity", u_paramsData.gravity, 0.0f, 0.3f, 0.001f);
|
||||||
|
imguiSlider("Damping", u_paramsData.damping, 0.0f, 1.0f, 0.01f);
|
||||||
|
imguiSlider("Max acceleration", u_paramsData.maxAccel, 0.0f, 100.0f, 0.01f);
|
||||||
|
imguiSlider("Time step", u_paramsData.timeStep, 0.0f, 0.02f, 0.0001f);
|
||||||
|
imguiSeparatorLine();
|
||||||
|
imguiSlider("Particle intensity", u_paramsData.particleIntensity, 0.0f, 1.0f, 0.001f);
|
||||||
|
imguiSlider("Particle size", u_paramsData.particleSize, 0.0f, 1.0f, 0.001f);
|
||||||
|
imguiSlider("Particle power", u_paramsData.particlePower, 0.001f, 16.0f, 0.01f);
|
||||||
|
imguiEndScrollArea();
|
||||||
|
imguiEndFrame();
|
||||||
|
|
||||||
|
// Modify parameters and reset if shape is changed
|
||||||
|
if (shape != u_paramsData.initialShape)
|
||||||
|
{
|
||||||
|
defaults = true;
|
||||||
|
InitializeParams(shape, &u_paramsData);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (defaults)
|
||||||
|
{
|
||||||
|
bgfx::setBuffer(0, prevPositionBuffer0, bgfx::Access::Write);
|
||||||
|
bgfx::setBuffer(1, currPositionBuffer0, bgfx::Access::Write);
|
||||||
|
bgfx::setUniform(u_params, &u_paramsData, 3);
|
||||||
|
bgfx::dispatch(0, initInstancesProgram, maxParticleCount / threadGroupUpdateSize, 1, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
bgfx::setBuffer(0, prevPositionBuffer0, bgfx::Access::Read);
|
||||||
|
bgfx::setBuffer(1, currPositionBuffer0, bgfx::Access::Read);
|
||||||
|
bgfx::setBuffer(2, prevPositionBuffer1, bgfx::Access::Write);
|
||||||
|
bgfx::setBuffer(3, currPositionBuffer1, bgfx::Access::Write);
|
||||||
|
bgfx::setUniform(u_params, &u_paramsData, 3);
|
||||||
|
bgfx::dispatch(0, updateInstancesProgram, u_paramsData.dispatchSize, 1, 1);
|
||||||
|
|
||||||
|
bx::xchg(currPositionBuffer0, currPositionBuffer1);
|
||||||
|
bx::xchg(prevPositionBuffer0, prevPositionBuffer1);
|
||||||
|
|
||||||
|
// Update camera.
|
||||||
|
cameraUpdate(deltaTime, mouseState);
|
||||||
|
cameraGetViewMtx(view);
|
||||||
|
|
||||||
|
// Set view and projection matrix for view 0.
|
||||||
|
const bgfx::HMD* hmd = bgfx::getHMD();
|
||||||
|
if (NULL != hmd)
|
||||||
|
{
|
||||||
|
float viewHead[16];
|
||||||
|
float eye[3] = {};
|
||||||
|
bx::mtxQuatTranslationHMD(viewHead, hmd->eye[0].rotation, eye);
|
||||||
|
|
||||||
|
float tmp[16];
|
||||||
|
bx::mtxMul(tmp, view, viewHead);
|
||||||
|
|
||||||
|
float proj[16];
|
||||||
|
bx::mtxProj(proj, hmd->eye[0].fov, 0.1f, 10000.0f);
|
||||||
|
|
||||||
|
bgfx::setViewTransform(0, tmp, proj);
|
||||||
|
|
||||||
|
// Set view 0 default viewport.
|
||||||
|
//
|
||||||
|
// Use HMD's width/height since HMD's internal frame buffer size
|
||||||
|
// might be much larger than window size.
|
||||||
|
bgfx::setViewRect(0, 0, 0, hmd->width, hmd->height);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
float proj[16];
|
||||||
|
bx::mtxProj(proj, 90.0f, float(width)/float(height), 0.1f, 10000.0f);
|
||||||
|
bgfx::setViewTransform(0, view, proj);
|
||||||
|
|
||||||
|
// Set view 0 default viewport.
|
||||||
|
bgfx::setViewRect(0, 0, 0, width, height);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set vertex and fragment shaders.
|
||||||
|
bgfx::setProgram(particleProgram);
|
||||||
|
|
||||||
|
// Set vertex and index buffer.
|
||||||
|
bgfx::setVertexBuffer(vbh);
|
||||||
|
bgfx::setIndexBuffer(ibh);
|
||||||
|
bgfx::setInstanceDataBuffer(currPositionBuffer0, 0, u_paramsData.dispatchSize * threadGroupUpdateSize);
|
||||||
|
|
||||||
|
// Set render states.
|
||||||
|
bgfx::setState(0
|
||||||
|
| BGFX_STATE_RGB_WRITE
|
||||||
|
| BGFX_STATE_BLEND_ADD
|
||||||
|
| BGFX_STATE_DEPTH_TEST_ALWAYS
|
||||||
|
);
|
||||||
|
|
||||||
|
// Submit primitive for rendering to view 0.
|
||||||
|
bgfx::submit(0);
|
||||||
|
|
||||||
|
// Advance to next frame. Rendering thread will be kicked to
|
||||||
|
// process submitted rendering primitives.
|
||||||
|
bgfx::frame();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set vertex and fragment shaders.
|
// Cleanup.
|
||||||
bgfx::setProgram(particleProgram);
|
cameraDestroy();
|
||||||
|
imguiDestroy();
|
||||||
// Set vertex and index buffer.
|
bgfx::destroyUniform(u_params);
|
||||||
bgfx::setVertexBuffer(vbh);
|
bgfx::destroyDynamicVertexBuffer(currPositionBuffer0);
|
||||||
bgfx::setIndexBuffer(ibh);
|
bgfx::destroyDynamicVertexBuffer(currPositionBuffer1);
|
||||||
bgfx::setInstanceDataBuffer(currPositionBuffer0, 0, u_paramsData.dispatchSize * threadGroupUpdateSize);
|
bgfx::destroyDynamicVertexBuffer(prevPositionBuffer0);
|
||||||
|
bgfx::destroyDynamicVertexBuffer(prevPositionBuffer1);
|
||||||
// Set render states.
|
bgfx::destroyProgram(updateInstancesProgram);
|
||||||
bgfx::setState(0
|
bgfx::destroyProgram(initInstancesProgram);
|
||||||
| BGFX_STATE_RGB_WRITE
|
bgfx::destroyIndexBuffer(ibh);
|
||||||
| BGFX_STATE_BLEND_ADD
|
bgfx::destroyVertexBuffer(vbh);
|
||||||
| BGFX_STATE_DEPTH_TEST_ALWAYS
|
bgfx::destroyProgram(particleProgram);
|
||||||
);
|
|
||||||
|
|
||||||
// Submit primitive for rendering to view 0.
|
|
||||||
bgfx::submit(0);
|
|
||||||
|
|
||||||
// Advance to next frame. Rendering thread will be kicked to
|
|
||||||
// process submitted rendering primitives.
|
|
||||||
bgfx::frame();
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int64_t timeOffset = bx::getHPCounter();
|
||||||
|
|
||||||
// Cleanup.
|
entry::MouseState mouseState;
|
||||||
cameraDestroy();
|
while (!entry::processEvents(width, height, debug, reset, &mouseState) )
|
||||||
imguiDestroy();
|
{
|
||||||
bgfx::destroyUniform(u_params);
|
int64_t now = bx::getHPCounter();
|
||||||
bgfx::destroyDynamicVertexBuffer(currPositionBuffer0);
|
float time = (float)( (now - timeOffset)/double(bx::getHPFrequency() ) );
|
||||||
bgfx::destroyDynamicVertexBuffer(currPositionBuffer1);
|
|
||||||
bgfx::destroyDynamicVertexBuffer(prevPositionBuffer0);
|
bgfx::setViewRect(0, 0, 0, width, height);
|
||||||
bgfx::destroyDynamicVertexBuffer(prevPositionBuffer1);
|
|
||||||
bgfx::destroyProgram(updateInstancesProgram);
|
bgfx::dbgTextClear();
|
||||||
bgfx::destroyProgram(initInstancesProgram);
|
bgfx::dbgTextPrintf(0, 1, 0x4f, "bgfx/examples/24-nbody");
|
||||||
bgfx::destroyIndexBuffer(ibh);
|
bgfx::dbgTextPrintf(0, 2, 0x6f, "Description: N-body simulation with compute shaders using buffers.");
|
||||||
bgfx::destroyVertexBuffer(vbh);
|
|
||||||
bgfx::destroyProgram(particleProgram);
|
bool blink = uint32_t(time*3.0f)&1;
|
||||||
|
bgfx::dbgTextPrintf(0, 5, blink ? 0x1f : 0x01, " Compute is not supported by GPU. ");
|
||||||
|
|
||||||
|
bgfx::submit(0);
|
||||||
|
bgfx::frame();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Shutdown bgfx.
|
// Shutdown bgfx.
|
||||||
bgfx::shutdown();
|
bgfx::shutdown();
|
||||||
|
15
3rdparty/bgfx/examples/25-c99/helloworld.c
vendored
15
3rdparty/bgfx/examples/25-c99/helloworld.c
vendored
@ -15,14 +15,19 @@ uint16_t uint16_max(uint16_t _a, uint16_t _b)
|
|||||||
|
|
||||||
int _main_(int _argc, char** _argv)
|
int _main_(int _argc, char** _argv)
|
||||||
{
|
{
|
||||||
|
uint32_t width = 1280;
|
||||||
|
uint32_t height = 720;
|
||||||
|
uint32_t debug = BGFX_DEBUG_TEXT;
|
||||||
|
uint32_t reset = BGFX_RESET_VSYNC;
|
||||||
(void)_argc;
|
(void)_argc;
|
||||||
(void)_argv;
|
(void)_argv;
|
||||||
uint32_t width = 1280;
|
|
||||||
uint32_t height = 720;
|
|
||||||
uint32_t debug = BGFX_DEBUG_TEXT;
|
|
||||||
uint32_t reset = BGFX_RESET_VSYNC;
|
|
||||||
|
|
||||||
bgfx_init(BGFX_RENDERER_TYPE_COUNT, NULL, NULL);
|
bgfx_init(BGFX_RENDERER_TYPE_COUNT
|
||||||
|
, BGFX_PCI_ID_NONE
|
||||||
|
, 0
|
||||||
|
, NULL
|
||||||
|
, NULL
|
||||||
|
);
|
||||||
bgfx_reset(width, height, reset);
|
bgfx_reset(width, height, reset);
|
||||||
|
|
||||||
// Enable debug text.
|
// Enable debug text.
|
||||||
|
6
3rdparty/bgfx/examples/common/bounds.cpp
vendored
6
3rdparty/bgfx/examples/common/bounds.cpp
vendored
@ -264,9 +264,9 @@ void calcMinBoundingSphere(Sphere& _sphere, const void* _vertices, uint32_t _num
|
|||||||
{
|
{
|
||||||
position = (float*)&vertex[index*_stride];
|
position = (float*)&vertex[index*_stride];
|
||||||
|
|
||||||
float xx = position[0] - center[0];
|
xx = position[0] - center[0];
|
||||||
float yy = position[1] - center[1];
|
yy = position[1] - center[1];
|
||||||
float zz = position[2] - center[2];
|
zz = position[2] - center[2];
|
||||||
float distSq = xx*xx + yy*yy + zz*zz;
|
float distSq = xx*xx + yy*yy + zz*zz;
|
||||||
|
|
||||||
if (distSq > maxDistSq)
|
if (distSq > maxDistSq)
|
||||||
|
@ -29,8 +29,11 @@ namespace entry
|
|||||||
#if ENTRY_CONFIG_IMPLEMENT_DEFAULT_ALLOCATOR
|
#if ENTRY_CONFIG_IMPLEMENT_DEFAULT_ALLOCATOR
|
||||||
bx::ReallocatorI* getDefaultAllocator()
|
bx::ReallocatorI* getDefaultAllocator()
|
||||||
{
|
{
|
||||||
|
BX_PRAGMA_DIAGNOSTIC_PUSH_MSVC();
|
||||||
|
BX_PRAGMA_DIAGNOSTIC_IGNORED_MSVC(4459); // warning C4459: declaration of 's_allocator' hides global declaration
|
||||||
static bx::CrtAllocator s_allocator;
|
static bx::CrtAllocator s_allocator;
|
||||||
return &s_allocator;
|
return &s_allocator;
|
||||||
|
BX_PRAGMA_DIAGNOSTIC_POP_MSVC();
|
||||||
}
|
}
|
||||||
#endif // ENTRY_CONFIG_IMPLEMENT_DEFAULT_ALLOCATOR
|
#endif // ENTRY_CONFIG_IMPLEMENT_DEFAULT_ALLOCATOR
|
||||||
|
|
||||||
|
139
3rdparty/bgfx/examples/common/entry/entry_glfw.cpp
vendored
Normal file
139
3rdparty/bgfx/examples/common/entry/entry_glfw.cpp
vendored
Normal file
@ -0,0 +1,139 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2011-2015 Branimir Karadzic. All rights reserved.
|
||||||
|
* License: http://www.opensource.org/licenses/BSD-2-Clause
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "entry_p.h"
|
||||||
|
|
||||||
|
#if ENTRY_CONFIG_USE_GLFW
|
||||||
|
|
||||||
|
#define GLFW_DLL
|
||||||
|
#include <GLFW/glfw3.h>
|
||||||
|
#include <bgfxplatform.h>
|
||||||
|
#include "dbg.h"
|
||||||
|
|
||||||
|
// This is just trivial implementation of GLFW3 integration.
|
||||||
|
// It's here just for testing purpose.
|
||||||
|
|
||||||
|
namespace entry
|
||||||
|
{
|
||||||
|
static void errorCb(int _error, const char* _description)
|
||||||
|
{
|
||||||
|
DBG("GLFW error %d: %s", _error, _description);
|
||||||
|
}
|
||||||
|
|
||||||
|
struct Context
|
||||||
|
{
|
||||||
|
Context()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
int run(int _argc, char** _argv)
|
||||||
|
{
|
||||||
|
glfwSetErrorCallback(errorCb);
|
||||||
|
|
||||||
|
glfwInit();
|
||||||
|
m_window = glfwCreateWindow(1280, 720, "bgfx", NULL, NULL);
|
||||||
|
glfwMakeContextCurrent(m_window);
|
||||||
|
|
||||||
|
glfwSetKeyCallback(m_window, keyCb);
|
||||||
|
|
||||||
|
bgfx::glfwSetWindow(m_window);
|
||||||
|
int result = main(_argc, _argv);
|
||||||
|
|
||||||
|
glfwDestroyWindow(m_window);
|
||||||
|
glfwTerminate();
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void keyCb(GLFWwindow* _window, int _key, int _scancode, int _action, int _mods);
|
||||||
|
|
||||||
|
EventQueue m_eventQueue;
|
||||||
|
|
||||||
|
GLFWwindow* m_window;
|
||||||
|
};
|
||||||
|
|
||||||
|
Context s_ctx;
|
||||||
|
|
||||||
|
void Context::keyCb(GLFWwindow* _window, int _key, int _scancode, int _action, int _mods)
|
||||||
|
{
|
||||||
|
BX_UNUSED(_window, _scancode, _mods);
|
||||||
|
if (_key == GLFW_KEY_Q
|
||||||
|
&& _action == GLFW_PRESS
|
||||||
|
&& _mods == GLFW_MOD_CONTROL)
|
||||||
|
{
|
||||||
|
s_ctx.m_eventQueue.postExitEvent();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const Event* poll()
|
||||||
|
{
|
||||||
|
glfwPollEvents();
|
||||||
|
|
||||||
|
if (glfwWindowShouldClose(s_ctx.m_window) )
|
||||||
|
{
|
||||||
|
s_ctx.m_eventQueue.postExitEvent();
|
||||||
|
}
|
||||||
|
return s_ctx.m_eventQueue.poll();
|
||||||
|
}
|
||||||
|
|
||||||
|
const Event* poll(WindowHandle _handle)
|
||||||
|
{
|
||||||
|
return s_ctx.m_eventQueue.poll(_handle);
|
||||||
|
}
|
||||||
|
|
||||||
|
void release(const Event* _event)
|
||||||
|
{
|
||||||
|
s_ctx.m_eventQueue.release(_event);
|
||||||
|
}
|
||||||
|
|
||||||
|
WindowHandle createWindow(int32_t _x, int32_t _y, uint32_t _width, uint32_t _height, uint32_t _flags, const char* _title)
|
||||||
|
{
|
||||||
|
BX_UNUSED(_x, _y, _width, _height, _flags, _title);
|
||||||
|
WindowHandle handle = { UINT16_MAX };
|
||||||
|
return handle;
|
||||||
|
}
|
||||||
|
|
||||||
|
void destroyWindow(WindowHandle _handle)
|
||||||
|
{
|
||||||
|
BX_UNUSED(_handle);
|
||||||
|
}
|
||||||
|
|
||||||
|
void setWindowPos(WindowHandle _handle, int32_t _x, int32_t _y)
|
||||||
|
{
|
||||||
|
BX_UNUSED(_handle, _x, _y);
|
||||||
|
}
|
||||||
|
|
||||||
|
void setWindowSize(WindowHandle _handle, uint32_t _width, uint32_t _height)
|
||||||
|
{
|
||||||
|
BX_UNUSED(_handle, _width, _height);
|
||||||
|
}
|
||||||
|
|
||||||
|
void setWindowTitle(WindowHandle _handle, const char* _title)
|
||||||
|
{
|
||||||
|
BX_UNUSED(_handle, _title);
|
||||||
|
}
|
||||||
|
|
||||||
|
void toggleWindowFrame(WindowHandle _handle)
|
||||||
|
{
|
||||||
|
BX_UNUSED(_handle);
|
||||||
|
}
|
||||||
|
|
||||||
|
void toggleFullscreen(WindowHandle _handle)
|
||||||
|
{
|
||||||
|
BX_UNUSED(_handle);
|
||||||
|
}
|
||||||
|
|
||||||
|
void setMouseLock(WindowHandle _handle, bool _lock)
|
||||||
|
{
|
||||||
|
BX_UNUSED(_handle, _lock);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int _argc, char** _argv)
|
||||||
|
{
|
||||||
|
using namespace entry;
|
||||||
|
return s_ctx.run(_argc, _argv);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // ENTRY_CONFIG_USE_GLFW
|
16
3rdparty/bgfx/examples/common/entry/entry_osx.mm
vendored
16
3rdparty/bgfx/examples/common/entry/entry_osx.mm
vendored
@ -311,19 +311,9 @@ namespace entry
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
enum { ShiftMask = Modifier::LeftShift|Modifier::RightShift };
|
enum { ShiftMask = Modifier::LeftShift|Modifier::RightShift };
|
||||||
const bool nonShiftModifiers = (0 != (modifiers&(~ShiftMask) ) );
|
m_eventQueue.postCharEvent(s_defaultWindow, 1, pressedChar);
|
||||||
const bool isCharPressed = (Key::Key0 <= key && key <= Key::KeyZ) || (Key::Esc <= key && key <= Key::Minus);
|
m_eventQueue.postKeyEvent(s_defaultWindow, key, modifiers, true);
|
||||||
const bool isText = isCharPressed && !nonShiftModifiers;
|
return false;
|
||||||
if (isText)
|
|
||||||
{
|
|
||||||
m_eventQueue.postCharEvent(s_defaultWindow, 1, pressedChar);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
m_eventQueue.postKeyEvent(s_defaultWindow, key, modifiers, true);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
17
3rdparty/bgfx/examples/common/entry/entry_p.h
vendored
17
3rdparty/bgfx/examples/common/entry/entry_p.h
vendored
@ -17,8 +17,13 @@
|
|||||||
# define ENTRY_CONFIG_USE_SDL 0
|
# define ENTRY_CONFIG_USE_SDL 0
|
||||||
#endif // ENTRY_CONFIG_USE_SDL
|
#endif // ENTRY_CONFIG_USE_SDL
|
||||||
|
|
||||||
#if !ENTRY_CONFIG_USE_SDL && \
|
#ifndef ENTRY_CONFIG_USE_GLFW
|
||||||
!defined(ENTRY_CONFIG_USE_NATIVE)
|
# define ENTRY_CONFIG_USE_GLFW 0
|
||||||
|
#endif // ENTRY_CONFIG_USE_GLFW
|
||||||
|
|
||||||
|
#if !defined(ENTRY_CONFIG_USE_NATIVE) \
|
||||||
|
&& !ENTRY_CONFIG_USE_SDL \
|
||||||
|
&& !ENTRY_CONFIG_USE_GLFW
|
||||||
# define ENTRY_CONFIG_USE_NATIVE 1
|
# define ENTRY_CONFIG_USE_NATIVE 1
|
||||||
#else
|
#else
|
||||||
# define ENTRY_CONFIG_USE_NATIVE 0
|
# define ENTRY_CONFIG_USE_NATIVE 0
|
||||||
@ -156,6 +161,14 @@ namespace entry
|
|||||||
class EventQueue
|
class EventQueue
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
~EventQueue()
|
||||||
|
{
|
||||||
|
for (const Event* ev = poll(); NULL != ev; ev = poll() )
|
||||||
|
{
|
||||||
|
release(ev);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void postAxisEvent(WindowHandle _handle, GamepadHandle _gamepad, GamepadAxis::Enum _axis, int32_t _value)
|
void postAxisEvent(WindowHandle _handle, GamepadHandle _gamepad, GamepadAxis::Enum _axis, int32_t _value)
|
||||||
{
|
{
|
||||||
AxisEvent* ev = new AxisEvent(_handle);
|
AxisEvent* ev = new AxisEvent(_handle);
|
||||||
|
1
3rdparty/bgfx/examples/runtime/.gitignore
vendored
1
3rdparty/bgfx/examples/runtime/.gitignore
vendored
@ -1,3 +1,4 @@
|
|||||||
*.dll
|
*.dll
|
||||||
|
*.so
|
||||||
*.pdb
|
*.pdb
|
||||||
imgui*
|
imgui*
|
||||||
|
16
3rdparty/bgfx/include/bgfx.c99.h
vendored
16
3rdparty/bgfx/include/bgfx.c99.h
vendored
@ -272,6 +272,15 @@ typedef struct bgfx_texture_info
|
|||||||
|
|
||||||
} bgfx_texture_info_t;
|
} bgfx_texture_info_t;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*/
|
||||||
|
typedef struct bgfx_caps_gpu
|
||||||
|
{
|
||||||
|
uint16_t vendorId;
|
||||||
|
uint16_t deviceId;
|
||||||
|
|
||||||
|
} bgfx_caps_gpu_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Renderer capabilities.
|
* Renderer capabilities.
|
||||||
*/
|
*/
|
||||||
@ -293,6 +302,11 @@ typedef struct bgfx_caps
|
|||||||
uint16_t maxViews; /* < Maximum views. */
|
uint16_t maxViews; /* < Maximum views. */
|
||||||
uint16_t maxDrawCalls; /* < Maximum draw calls. */
|
uint16_t maxDrawCalls; /* < Maximum draw calls. */
|
||||||
uint8_t maxFBAttachments; /* < Maximum frame buffer attachments. */
|
uint8_t maxFBAttachments; /* < Maximum frame buffer attachments. */
|
||||||
|
uint8_t numGPUs; /* < */
|
||||||
|
|
||||||
|
uint16_t vendorId; /* < */
|
||||||
|
uint16_t deviceId; /* < */
|
||||||
|
bgfx_caps_gpu_t gpu[4]; /* < */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Supported texture formats.
|
* Supported texture formats.
|
||||||
@ -559,7 +573,7 @@ BGFX_C_API const char* bgfx_get_renderer_name(bgfx_renderer_type_t _type);
|
|||||||
* specified, library uses default CRT allocator. The library assumes
|
* specified, library uses default CRT allocator. The library assumes
|
||||||
* custom allocator is thread safe.
|
* custom allocator is thread safe.
|
||||||
*/
|
*/
|
||||||
BGFX_C_API void bgfx_init(bgfx_renderer_type_t _type, bgfx_callback_interface_t* _callback, bgfx_reallocator_interface_t* _allocator);
|
BGFX_C_API void bgfx_init(bgfx_renderer_type_t _type, uint16_t _vendorId, uint16_t _deviceId, bgfx_callback_interface_t* _callback, bgfx_reallocator_interface_t* _allocator);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Shutdown bgfx library.
|
* Shutdown bgfx library.
|
||||||
|
23
3rdparty/bgfx/include/bgfx.h
vendored
23
3rdparty/bgfx/include/bgfx.h
vendored
@ -315,6 +315,18 @@ namespace bgfx
|
|||||||
uint16_t maxViews; ///< Maximum views.
|
uint16_t maxViews; ///< Maximum views.
|
||||||
uint16_t maxDrawCalls; ///< Maximum draw calls.
|
uint16_t maxDrawCalls; ///< Maximum draw calls.
|
||||||
uint8_t maxFBAttachments; ///< Maximum frame buffer attachments.
|
uint8_t maxFBAttachments; ///< Maximum frame buffer attachments.
|
||||||
|
uint8_t numGPUs; ///<
|
||||||
|
|
||||||
|
uint16_t vendorId; ///<
|
||||||
|
uint16_t deviceId; ///<
|
||||||
|
|
||||||
|
struct GPU
|
||||||
|
{
|
||||||
|
uint16_t vendorId;
|
||||||
|
uint16_t deviceId;
|
||||||
|
};
|
||||||
|
|
||||||
|
GPU gpu[4]; ///<
|
||||||
|
|
||||||
/// Supported texture formats.
|
/// Supported texture formats.
|
||||||
/// - `BGFX_CAPS_FORMAT_TEXTURE_NONE` - not supported
|
/// - `BGFX_CAPS_FORMAT_TEXTURE_NONE` - not supported
|
||||||
@ -508,6 +520,15 @@ namespace bgfx
|
|||||||
/// default rendering backend will be selected.
|
/// default rendering backend will be selected.
|
||||||
/// See: `bgfx::RendererType`
|
/// See: `bgfx::RendererType`
|
||||||
///
|
///
|
||||||
|
/// @param _vendorId Vendor PCI id. If set to BGFX_PCI_ID_NONE it will select the first device.
|
||||||
|
/// - `BGFX_PCI_ID_NONE` - autoselect.
|
||||||
|
/// - `BGFX_PCI_ID_AMD` - AMD.
|
||||||
|
/// - `BGFX_PCI_ID_INTEL` - Intel.
|
||||||
|
/// - `BGFX_PCI_ID_NVIDIA` - nVidia.
|
||||||
|
///
|
||||||
|
/// @param _deviceId Device id. If set to 0 it will select first device, or device with
|
||||||
|
/// matching id.
|
||||||
|
///
|
||||||
/// @param _callback Provide application specific callback interface.
|
/// @param _callback Provide application specific callback interface.
|
||||||
/// See: `bgfx::CallbackI`
|
/// See: `bgfx::CallbackI`
|
||||||
///
|
///
|
||||||
@ -517,7 +538,7 @@ namespace bgfx
|
|||||||
///
|
///
|
||||||
/// @attention C99 equivalent is `bgfx_init`.
|
/// @attention C99 equivalent is `bgfx_init`.
|
||||||
///
|
///
|
||||||
void init(RendererType::Enum _type = RendererType::Count, CallbackI* _callback = NULL, bx::ReallocatorI* _reallocator = NULL);
|
void init(RendererType::Enum _type = RendererType::Count, uint16_t _vendorId = BGFX_PCI_ID_NONE, uint16_t _deviceId = 0, CallbackI* _callback = NULL, bx::ReallocatorI* _reallocator = NULL);
|
||||||
|
|
||||||
/// Shutdown bgfx library.
|
/// Shutdown bgfx library.
|
||||||
///
|
///
|
||||||
|
18
3rdparty/bgfx/include/bgfxdefines.h
vendored
18
3rdparty/bgfx/include/bgfxdefines.h
vendored
@ -81,16 +81,16 @@
|
|||||||
| BGFX_STATE_MSAA \
|
| BGFX_STATE_MSAA \
|
||||||
)
|
)
|
||||||
|
|
||||||
#define BGFX_STATE_ALPHA_REF(_ref) ( (uint64_t(_ref)<<BGFX_STATE_ALPHA_REF_SHIFT)&BGFX_STATE_ALPHA_REF_MASK)
|
#define BGFX_STATE_ALPHA_REF(_ref) ( ( (uint64_t)(_ref )<<BGFX_STATE_ALPHA_REF_SHIFT )&BGFX_STATE_ALPHA_REF_MASK)
|
||||||
#define BGFX_STATE_POINT_SIZE(_size) ( (uint64_t(_size)<<BGFX_STATE_POINT_SIZE_SHIFT)&BGFX_STATE_POINT_SIZE_MASK)
|
#define BGFX_STATE_POINT_SIZE(_size) ( ( (uint64_t)(_size)<<BGFX_STATE_POINT_SIZE_SHIFT)&BGFX_STATE_POINT_SIZE_MASK)
|
||||||
|
|
||||||
///
|
///
|
||||||
#define BGFX_STATE_BLEND_FUNC_SEPARATE(_srcRGB, _dstRGB, _srcA, _dstA) (0 \
|
#define BGFX_STATE_BLEND_FUNC_SEPARATE(_srcRGB, _dstRGB, _srcA, _dstA) (UINT64_C(0) \
|
||||||
| ( (uint64_t(_srcRGB)|(uint64_t(_dstRGB)<<4) ) ) \
|
| ( ( (uint64_t)(_srcRGB)|( (uint64_t)(_dstRGB)<<4) ) ) \
|
||||||
| ( (uint64_t(_srcA )|(uint64_t(_dstA )<<4) )<<8) \
|
| ( ( (uint64_t)(_srcA )|( (uint64_t)(_dstA )<<4) )<<8) \
|
||||||
)
|
)
|
||||||
|
|
||||||
#define BGFX_STATE_BLEND_EQUATION_SEPARATE(_rgb, _a) (uint64_t(_rgb)|(uint64_t(_a)<<3) )
|
#define BGFX_STATE_BLEND_EQUATION_SEPARATE(_rgb, _a) ( (uint64_t)(_rgb)|( (uint64_t)(_a)<<3) )
|
||||||
|
|
||||||
///
|
///
|
||||||
#define BGFX_STATE_BLEND_FUNC(_src, _dst) BGFX_STATE_BLEND_FUNC_SEPARATE(_src, _dst, _src, _dst)
|
#define BGFX_STATE_BLEND_FUNC(_src, _dst) BGFX_STATE_BLEND_FUNC_SEPARATE(_src, _dst, _src, _dst)
|
||||||
@ -333,4 +333,10 @@
|
|||||||
#define BGFX_SUBMIT_EYE_MASK UINT8_C(0x03)
|
#define BGFX_SUBMIT_EYE_MASK UINT8_C(0x03)
|
||||||
#define BGFX_SUBMIT_EYE_FIRST BGFX_SUBMIT_EYE_LEFT
|
#define BGFX_SUBMIT_EYE_FIRST BGFX_SUBMIT_EYE_LEFT
|
||||||
|
|
||||||
|
///
|
||||||
|
#define BGFX_PCI_ID_NONE UINT16_C(0x0000)
|
||||||
|
#define BGFX_PCI_ID_AMD UINT16_C(0x1002)
|
||||||
|
#define BGFX_PCI_ID_INTEL UINT16_C(0x8086)
|
||||||
|
#define BGFX_PCI_ID_NVIDIA UINT16_C(0x10de)
|
||||||
|
|
||||||
#endif // BGFX_DEFINES_H_HEADER_GUARD
|
#endif // BGFX_DEFINES_H_HEADER_GUARD
|
||||||
|
16
3rdparty/bgfx/include/bgfxplatform.h
vendored
16
3rdparty/bgfx/include/bgfxplatform.h
vendored
@ -55,7 +55,7 @@ namespace bgfx
|
|||||||
namespace bgfx
|
namespace bgfx
|
||||||
{
|
{
|
||||||
///
|
///
|
||||||
void x11SetDisplayWindow(void* _display, uint32_t _window);
|
void x11SetDisplayWindow(void* _display, uint32_t _window, void* _glx = NULL);
|
||||||
|
|
||||||
} // namespace bgfx
|
} // namespace bgfx
|
||||||
|
|
||||||
@ -76,7 +76,7 @@ namespace bgfx
|
|||||||
namespace bgfx
|
namespace bgfx
|
||||||
{
|
{
|
||||||
///
|
///
|
||||||
void osxSetNSWindow(void* _window);
|
void osxSetNSWindow(void* _window, void* _nsgl = NULL);
|
||||||
|
|
||||||
} // namespace bgfx
|
} // namespace bgfx
|
||||||
|
|
||||||
@ -155,15 +155,17 @@ namespace bgfx
|
|||||||
{
|
{
|
||||||
# if BX_PLATFORM_LINUX || BX_PLATFORM_FREEBSD
|
# if BX_PLATFORM_LINUX || BX_PLATFORM_FREEBSD
|
||||||
::Display* display = glfwGetX11Display();
|
::Display* display = glfwGetX11Display();
|
||||||
::Window window = glfwGetX11Window(_window);
|
::Window window = glfwGetX11Window(_window);
|
||||||
x11SetDisplayWindow(display, window);
|
void* glx = glfwGetGLXContext(_window);
|
||||||
|
x11SetDisplayWindow(display, window, glx);
|
||||||
# elif BX_PLATFORM_OSX
|
# elif BX_PLATFORM_OSX
|
||||||
void* id = glfwGetCocoaWindow(_window);
|
void* window = glfwGetCocoaWindow(_window);
|
||||||
osxSetNSWindow(id);
|
void* nsgl = glfwGetNSGLContext(_window);
|
||||||
|
osxSetNSWindow(window, nsgl);
|
||||||
# elif BX_PLATFORM_WINDOWS
|
# elif BX_PLATFORM_WINDOWS
|
||||||
HWND hwnd = glfwGetWin32Window(_window);
|
HWND hwnd = glfwGetWin32Window(_window);
|
||||||
winSetHwnd(hwnd);
|
winSetHwnd(hwnd);
|
||||||
# endif BX_PLATFORM_WINDOWS
|
# endif // BX_PLATFORM_WINDOWS
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace bgfx
|
} // namespace bgfx
|
||||||
|
15
3rdparty/bgfx/makefile
vendored
15
3rdparty/bgfx/makefile
vendored
@ -217,12 +217,14 @@ OS=darwin
|
|||||||
BUILD_PROJECT_DIR=gmake-osx
|
BUILD_PROJECT_DIR=gmake-osx
|
||||||
BUILD_OUTPUT_DIR=osx64_clang
|
BUILD_OUTPUT_DIR=osx64_clang
|
||||||
BUILD_TOOLS_CONFIG=release64
|
BUILD_TOOLS_CONFIG=release64
|
||||||
|
BUILD_TOOLS_SUFFIX=Release
|
||||||
EXE=
|
EXE=
|
||||||
else
|
else
|
||||||
OS=linux
|
OS=linux
|
||||||
BUILD_PROJECT_DIR=gmake-linux
|
BUILD_PROJECT_DIR=gmake-linux
|
||||||
BUILD_OUTPUT_DIR=linux64_gcc
|
BUILD_OUTPUT_DIR=linux64_gcc
|
||||||
BUILD_TOOLS_CONFIG=release64
|
BUILD_TOOLS_CONFIG=release64
|
||||||
|
BUILD_TOOLS_SUFFIX=Release
|
||||||
EXE=
|
EXE=
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
@ -230,19 +232,16 @@ OS=windows
|
|||||||
BUILD_PROJECT_DIR=gmake-mingw-gcc
|
BUILD_PROJECT_DIR=gmake-mingw-gcc
|
||||||
BUILD_OUTPUT_DIR=win32_mingw-gcc
|
BUILD_OUTPUT_DIR=win32_mingw-gcc
|
||||||
BUILD_TOOLS_CONFIG=release32
|
BUILD_TOOLS_CONFIG=release32
|
||||||
|
BUILD_TOOLS_SUFFIX=Release
|
||||||
EXE=.exe
|
EXE=.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.build/$(BUILD_OUTPUT_DIR)/bin/shadercRelease$(EXE): .build/projects/$(BUILD_PROJECT_DIR)
|
tools/bin/$(OS)/shaderc$(EXE): .build/projects/$(BUILD_PROJECT_DIR)
|
||||||
$(SILENT) make -C .build/projects/$(BUILD_PROJECT_DIR) -f shaderc.make config=$(BUILD_TOOLS_CONFIG)
|
$(SILENT) make -C .build/projects/$(BUILD_PROJECT_DIR) -f shaderc.make config=$(BUILD_TOOLS_CONFIG)
|
||||||
|
$(SILENT) cp .build/$(BUILD_OUTPUT_DIR)/bin/shaderc$(BUILD_TOOLS_SUFFIX)$(EXE) $(@)
|
||||||
|
|
||||||
tools/bin/$(OS)/shaderc$(EXE): .build/$(BUILD_OUTPUT_DIR)/bin/shadercRelease$(EXE)
|
tools/bin/$(OS)/geometryc$(EXE): .build/projects/$(BUILD_PROJECT_DIR)
|
||||||
$(SILENT) cp $(<) $(@)
|
|
||||||
|
|
||||||
.build/$(BUILD_OUTPUT_DIR)/bin/geometrycRelease$(EXE): .build/projects/$(BUILD_PROJECT_DIR)
|
|
||||||
$(SILENT) make -C .build/projects/$(BUILD_PROJECT_DIR) -f geometryc.make config=$(BUILD_TOOLS_CONFIG)
|
$(SILENT) make -C .build/projects/$(BUILD_PROJECT_DIR) -f geometryc.make config=$(BUILD_TOOLS_CONFIG)
|
||||||
|
$(SILENT) cp .build/$(BUILD_OUTPUT_DIR)/bin/geometryc$(BUILD_TOOLS_SUFFIX)$(EXE) $(@)
|
||||||
tools/bin/$(OS)/geometryc$(EXE): .build/$(BUILD_OUTPUT_DIR)/bin/geometrycRelease$(EXE)
|
|
||||||
$(SILENT) cp $(<) $(@)
|
|
||||||
|
|
||||||
tools: tools/bin/$(OS)/shaderc$(EXE) tools/bin/$(OS)/geometryc$(EXE)
|
tools: tools/bin/$(OS)/shaderc$(EXE) tools/bin/$(OS)/geometryc$(EXE)
|
||||||
|
32
3rdparty/bgfx/scripts/bgfx.lua
vendored
32
3rdparty/bgfx/scripts/bgfx.lua
vendored
@ -42,6 +42,12 @@ function bgfxProject(_name, _kind, _defines)
|
|||||||
_defines,
|
_defines,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if _OPTIONS["with-glfw"] then
|
||||||
|
defines {
|
||||||
|
"BGFX_CONFIG_MULTITHREADED=0",
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
if _OPTIONS["with-ovr"] then
|
if _OPTIONS["with-ovr"] then
|
||||||
defines {
|
defines {
|
||||||
"BGFX_CONFIG_USE_OVR=1",
|
"BGFX_CONFIG_USE_OVR=1",
|
||||||
@ -113,10 +119,34 @@ function bgfxProject(_name, _kind, _defines)
|
|||||||
path.join(BGFX_DIR, "src/**.h"),
|
path.join(BGFX_DIR, "src/**.h"),
|
||||||
}
|
}
|
||||||
|
|
||||||
excludes {
|
removefiles {
|
||||||
path.join(BGFX_DIR, "src/**.bin.h"),
|
path.join(BGFX_DIR, "src/**.bin.h"),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if _OPTIONS["with-amalgamated"] then
|
||||||
|
excludes {
|
||||||
|
path.join(BGFX_DIR, "src/bgfx.cpp"),
|
||||||
|
path.join(BGFX_DIR, "src/glcontext_egl.cpp"),
|
||||||
|
path.join(BGFX_DIR, "src/glcontext_glx.cpp"),
|
||||||
|
path.join(BGFX_DIR, "src/glcontext_ppapi.cpp"),
|
||||||
|
path.join(BGFX_DIR, "src/glcontext_wgl.cpp"),
|
||||||
|
path.join(BGFX_DIR, "src/image.cpp"),
|
||||||
|
path.join(BGFX_DIR, "src/ovr.cpp"),
|
||||||
|
path.join(BGFX_DIR, "src/renderdoc.cpp"),
|
||||||
|
path.join(BGFX_DIR, "src/renderer_d3d9.cpp"),
|
||||||
|
path.join(BGFX_DIR, "src/renderer_d3d11.cpp"),
|
||||||
|
path.join(BGFX_DIR, "src/renderer_d3d12.cpp"),
|
||||||
|
path.join(BGFX_DIR, "src/renderer_null.cpp"),
|
||||||
|
path.join(BGFX_DIR, "src/renderer_gl.cpp"),
|
||||||
|
path.join(BGFX_DIR, "src/renderer_vk.cpp"),
|
||||||
|
path.join(BGFX_DIR, "src/vertexdecl.cpp"),
|
||||||
|
}
|
||||||
|
else
|
||||||
|
excludes {
|
||||||
|
path.join(BGFX_DIR, "src/amalgamated.cpp"),
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
configuration {}
|
configuration {}
|
||||||
|
|
||||||
copyLib()
|
copyLib()
|
||||||
|
6
3rdparty/bgfx/scripts/example-common.lua
vendored
6
3rdparty/bgfx/scripts/example-common.lua
vendored
@ -31,6 +31,12 @@ project ("example-common")
|
|||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if _OPTIONS["with-glfw"] then
|
||||||
|
defines {
|
||||||
|
"ENTRY_CONFIG_USE_GLFW=1",
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
configuration { "mingw* or vs2008" }
|
configuration { "mingw* or vs2008" }
|
||||||
includedirs {
|
includedirs {
|
||||||
"$(DXSDK_DIR)/include",
|
"$(DXSDK_DIR)/include",
|
||||||
|
97
3rdparty/bgfx/scripts/genie.lua
vendored
97
3rdparty/bgfx/scripts/genie.lua
vendored
@ -4,13 +4,13 @@
|
|||||||
--
|
--
|
||||||
|
|
||||||
newoption {
|
newoption {
|
||||||
trigger = "with-tools",
|
trigger = "with-amalgamated",
|
||||||
description = "Enable building tools.",
|
description = "Enable amalgamated build.",
|
||||||
}
|
}
|
||||||
|
|
||||||
newoption {
|
newoption {
|
||||||
trigger = "with-shared-lib",
|
trigger = "with-ovr",
|
||||||
description = "Enable building shared library.",
|
description = "Enable OculusVR integration.",
|
||||||
}
|
}
|
||||||
|
|
||||||
newoption {
|
newoption {
|
||||||
@ -19,8 +19,18 @@ newoption {
|
|||||||
}
|
}
|
||||||
|
|
||||||
newoption {
|
newoption {
|
||||||
trigger = "with-ovr",
|
trigger = "with-glfw",
|
||||||
description = "Enable OculusVR integration.",
|
description = "Enable GLFW entry.",
|
||||||
|
}
|
||||||
|
|
||||||
|
newoption {
|
||||||
|
trigger = "with-shared-lib",
|
||||||
|
description = "Enable building shared library.",
|
||||||
|
}
|
||||||
|
|
||||||
|
newoption {
|
||||||
|
trigger = "with-tools",
|
||||||
|
description = "Enable building tools.",
|
||||||
}
|
}
|
||||||
|
|
||||||
solution "bgfx"
|
solution "bgfx"
|
||||||
@ -32,14 +42,14 @@ solution "bgfx"
|
|||||||
if _ACTION == "xcode4" then
|
if _ACTION == "xcode4" then
|
||||||
platforms {
|
platforms {
|
||||||
"Universal",
|
"Universal",
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
platforms {
|
platforms {
|
||||||
"x32",
|
"x32",
|
||||||
"x64",
|
"x64",
|
||||||
-- "Xbox360",
|
-- "Xbox360",
|
||||||
"Native", -- for targets where bitness is not specified
|
"Native", -- for targets where bitness is not specified
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
language "C++"
|
language "C++"
|
||||||
@ -96,6 +106,10 @@ function exampleProject(_name)
|
|||||||
path.join(BGFX_DIR, "examples", _name, "**.h"),
|
path.join(BGFX_DIR, "examples", _name, "**.h"),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
removefiles {
|
||||||
|
path.join(BGFX_DIR, "examples", _name, "**.bin.h"),
|
||||||
|
}
|
||||||
|
|
||||||
links {
|
links {
|
||||||
"bgfx",
|
"bgfx",
|
||||||
"example-common",
|
"example-common",
|
||||||
@ -114,29 +128,72 @@ function exampleProject(_name)
|
|||||||
configuration {}
|
configuration {}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if _OPTIONS["with-glfw"] then
|
||||||
|
defines { "ENTRY_CONFIG_USE_GLFW=1" }
|
||||||
|
links {
|
||||||
|
"glfw3"
|
||||||
|
}
|
||||||
|
|
||||||
|
configuration { "linux" }
|
||||||
|
links {
|
||||||
|
"Xrandr",
|
||||||
|
"Xinerama",
|
||||||
|
"Xi",
|
||||||
|
"Xxf86vm",
|
||||||
|
"Xcursor",
|
||||||
|
}
|
||||||
|
|
||||||
|
configuration { "osx" }
|
||||||
|
linkoptions {
|
||||||
|
"-framework CoreVideo",
|
||||||
|
"-framework IOKit",
|
||||||
|
}
|
||||||
|
|
||||||
|
configuration {}
|
||||||
|
end
|
||||||
|
|
||||||
if _OPTIONS["with-ovr"] then
|
if _OPTIONS["with-ovr"] then
|
||||||
links {
|
links {
|
||||||
"winmm",
|
"winmm",
|
||||||
"ws2_32",
|
"ws2_32",
|
||||||
}
|
}
|
||||||
|
|
||||||
configuration { "x32" }
|
-- Check for LibOVR 5.0+
|
||||||
libdirs { path.join("$(OVR_DIR)/LibOVR/Lib/Win32", _ACTION) }
|
if os.isdir(path.join(os.getenv("OVR_DIR"), "LibOVR/Lib/Windows/Win32/Debug/VS2012")) then
|
||||||
|
|
||||||
configuration { "x64" }
|
configuration { "x32", "Debug" }
|
||||||
libdirs { path.join("$(OVR_DIR)/LibOVR/Lib/x64", _ACTION) }
|
libdirs { path.join("$(OVR_DIR)/LibOVR/Lib/Windows/Win32/Debug", _ACTION) }
|
||||||
|
|
||||||
configuration { "x32", "Debug" }
|
configuration { "x32", "Release" }
|
||||||
links { "libovrd" }
|
libdirs { path.join("$(OVR_DIR)/LibOVR/Lib/Windows/Win32/Release", _ACTION) }
|
||||||
|
|
||||||
configuration { "x32", "Release" }
|
configuration { "x64", "Debug" }
|
||||||
links { "libovr" }
|
libdirs { path.join("$(OVR_DIR)/LibOVR/Lib/Windows/x64/Debug", _ACTION) }
|
||||||
|
|
||||||
configuration { "x64", "Debug" }
|
configuration { "x64", "Release" }
|
||||||
links { "libovr64d" }
|
libdirs { path.join("$(OVR_DIR)/LibOVR/Lib/Windows/x64/Release", _ACTION) }
|
||||||
|
|
||||||
configuration { "x64", "Release" }
|
configuration { "x32 or x64" }
|
||||||
links { "libovr64" }
|
links { "libovr" }
|
||||||
|
else
|
||||||
|
configuration { "x32" }
|
||||||
|
libdirs { path.join("$(OVR_DIR)/LibOVR/Lib/Win32", _ACTION) }
|
||||||
|
|
||||||
|
configuration { "x64" }
|
||||||
|
libdirs { path.join("$(OVR_DIR)/LibOVR/Lib/x64", _ACTION) }
|
||||||
|
|
||||||
|
configuration { "x32", "Debug" }
|
||||||
|
links { "libovrd" }
|
||||||
|
|
||||||
|
configuration { "x32", "Release" }
|
||||||
|
links { "libovr" }
|
||||||
|
|
||||||
|
configuration { "x64", "Debug" }
|
||||||
|
links { "libovr64d" }
|
||||||
|
|
||||||
|
configuration { "x64", "Release" }
|
||||||
|
links { "libovr64" }
|
||||||
|
end
|
||||||
|
|
||||||
configuration {}
|
configuration {}
|
||||||
end
|
end
|
||||||
|
20
3rdparty/bgfx/src/amalgamated.cpp
vendored
Normal file
20
3rdparty/bgfx/src/amalgamated.cpp
vendored
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2011-2015 Branimir Karadzic. All rights reserved.
|
||||||
|
* License: http://www.opensource.org/licenses/BSD-2-Clause
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "bgfx.cpp"
|
||||||
|
#include "glcontext_egl.cpp"
|
||||||
|
#include "glcontext_glx.cpp"
|
||||||
|
#include "glcontext_ppapi.cpp"
|
||||||
|
#include "glcontext_wgl.cpp"
|
||||||
|
#include "image.cpp"
|
||||||
|
#include "ovr.cpp"
|
||||||
|
#include "renderdoc.cpp"
|
||||||
|
#include "renderer_d3d9.cpp"
|
||||||
|
#include "renderer_d3d11.cpp"
|
||||||
|
#include "renderer_d3d12.cpp"
|
||||||
|
#include "renderer_null.cpp"
|
||||||
|
#include "renderer_gl.cpp"
|
||||||
|
#include "renderer_vk.cpp"
|
||||||
|
#include "vertexdecl.cpp"
|
84
3rdparty/bgfx/src/bgfx.cpp
vendored
84
3rdparty/bgfx/src/bgfx.cpp
vendored
@ -19,14 +19,6 @@ namespace bgfx
|
|||||||
# define BGFX_CHECK_RENDER_THREAD()
|
# define BGFX_CHECK_RENDER_THREAD()
|
||||||
#endif // BGFX_CONFIG_MULTITHREADED && !BX_PLATFORM_OSX && !BX_PLATFORM_IOS
|
#endif // BGFX_CONFIG_MULTITHREADED && !BX_PLATFORM_OSX && !BX_PLATFORM_IOS
|
||||||
|
|
||||||
#define BGFX_CHECK_HANDLE(_handle, _max) \
|
|
||||||
BX_CHECK(isValid(_handle) \
|
|
||||||
&& _handle.idx < _max \
|
|
||||||
, "Invalid handle. %d (< %d " #_max ")" \
|
|
||||||
, _handle.idx \
|
|
||||||
, _max \
|
|
||||||
);
|
|
||||||
|
|
||||||
#if BX_PLATFORM_ANDROID
|
#if BX_PLATFORM_ANDROID
|
||||||
::ANativeWindow* g_bgfxAndroidWindow = NULL;
|
::ANativeWindow* g_bgfxAndroidWindow = NULL;
|
||||||
|
|
||||||
@ -44,18 +36,22 @@ namespace bgfx
|
|||||||
#elif BX_PLATFORM_LINUX
|
#elif BX_PLATFORM_LINUX
|
||||||
void* g_bgfxX11Display;
|
void* g_bgfxX11Display;
|
||||||
uint32_t g_bgfxX11Window;
|
uint32_t g_bgfxX11Window;
|
||||||
|
void* g_bgfxGLX;
|
||||||
|
|
||||||
void x11SetDisplayWindow(void* _display, uint32_t _window)
|
void x11SetDisplayWindow(void* _display, uint32_t _window, void* _glx)
|
||||||
{
|
{
|
||||||
g_bgfxX11Display = _display;
|
g_bgfxX11Display = _display;
|
||||||
g_bgfxX11Window = _window;
|
g_bgfxX11Window = _window;
|
||||||
|
g_bgfxGLX = _glx;
|
||||||
}
|
}
|
||||||
#elif BX_PLATFORM_OSX
|
#elif BX_PLATFORM_OSX
|
||||||
void* g_bgfxNSWindow = NULL;
|
void* g_bgfxNSWindow = NULL;
|
||||||
|
void* g_bgfxNSGL = NULL;
|
||||||
|
|
||||||
void osxSetNSWindow(void* _window)
|
void osxSetNSWindow(void* _window, void* _nsgl)
|
||||||
{
|
{
|
||||||
g_bgfxNSWindow = _window;
|
g_bgfxNSWindow = _window;
|
||||||
|
g_bgfxNSGL = _nsgl;
|
||||||
}
|
}
|
||||||
#elif BX_PLATFORM_WINDOWS
|
#elif BX_PLATFORM_WINDOWS
|
||||||
::HWND g_bgfxHwnd = NULL;
|
::HWND g_bgfxHwnd = NULL;
|
||||||
@ -892,7 +888,11 @@ namespace bgfx
|
|||||||
|
|
||||||
static void dumpCaps()
|
static void dumpCaps()
|
||||||
{
|
{
|
||||||
BX_TRACE("Supported capabilities (%s):", s_ctx->m_renderCtx->getRendererName() );
|
BX_TRACE("Supported capabilities (renderer %s, vendor 0x%04x, device 0x%04x):"
|
||||||
|
, s_ctx->m_renderCtx->getRendererName()
|
||||||
|
, g_caps.vendorId
|
||||||
|
, g_caps.deviceId
|
||||||
|
);
|
||||||
for (uint32_t ii = 0; ii < BX_COUNTOF(s_capsFlags); ++ii)
|
for (uint32_t ii = 0; ii < BX_COUNTOF(s_capsFlags); ++ii)
|
||||||
{
|
{
|
||||||
if (0 != (g_caps.supported & s_capsFlags[ii].m_flag) )
|
if (0 != (g_caps.supported & s_capsFlags[ii].m_flag) )
|
||||||
@ -1332,23 +1332,21 @@ namespace bgfx
|
|||||||
typedef RendererContextI* (*RendererCreateFn)();
|
typedef RendererContextI* (*RendererCreateFn)();
|
||||||
typedef void (*RendererDestroyFn)();
|
typedef void (*RendererDestroyFn)();
|
||||||
|
|
||||||
extern RendererContextI* rendererCreateNULL();
|
#define BGFX_RENDERER_CONTEXT(_namespace) \
|
||||||
extern void rendererDestroyNULL();
|
namespace _namespace \
|
||||||
|
{ \
|
||||||
|
extern RendererContextI* rendererCreate(); \
|
||||||
|
extern void rendererDestroy(); \
|
||||||
|
}
|
||||||
|
|
||||||
extern RendererContextI* rendererCreateGL();
|
BGFX_RENDERER_CONTEXT(noop);
|
||||||
extern void rendererDestroyGL();
|
BGFX_RENDERER_CONTEXT(d3d9);
|
||||||
|
BGFX_RENDERER_CONTEXT(d3d11);
|
||||||
|
BGFX_RENDERER_CONTEXT(d3d12);
|
||||||
|
BGFX_RENDERER_CONTEXT(gl);
|
||||||
|
BGFX_RENDERER_CONTEXT(vk);
|
||||||
|
|
||||||
extern RendererContextI* rendererCreateD3D9();
|
#undef BGFX_RENDERER_CONTEXT
|
||||||
extern void rendererDestroyD3D9();
|
|
||||||
|
|
||||||
extern RendererContextI* rendererCreateD3D11();
|
|
||||||
extern void rendererDestroyD3D11();
|
|
||||||
|
|
||||||
extern RendererContextI* rendererCreateD3D12();
|
|
||||||
extern void rendererDestroyD3D12();
|
|
||||||
|
|
||||||
extern RendererContextI* rendererCreateVK();
|
|
||||||
extern void rendererDestroyVK();
|
|
||||||
|
|
||||||
struct RendererCreator
|
struct RendererCreator
|
||||||
{
|
{
|
||||||
@ -1360,13 +1358,13 @@ namespace bgfx
|
|||||||
|
|
||||||
static const RendererCreator s_rendererCreator[] =
|
static const RendererCreator s_rendererCreator[] =
|
||||||
{
|
{
|
||||||
{ rendererCreateNULL, rendererDestroyNULL, BGFX_RENDERER_NULL_NAME, !!BGFX_CONFIG_RENDERER_NULL }, // Null
|
{ noop::rendererCreate, noop::rendererDestroy, BGFX_RENDERER_NULL_NAME, !!BGFX_CONFIG_RENDERER_NULL }, // Null
|
||||||
{ rendererCreateD3D9, rendererDestroyD3D9, BGFX_RENDERER_DIRECT3D9_NAME, !!BGFX_CONFIG_RENDERER_DIRECT3D9 }, // Direct3D9
|
{ d3d9::rendererCreate, d3d9::rendererDestroy, BGFX_RENDERER_DIRECT3D9_NAME, !!BGFX_CONFIG_RENDERER_DIRECT3D9 }, // Direct3D9
|
||||||
{ rendererCreateD3D11, rendererDestroyD3D11, BGFX_RENDERER_DIRECT3D11_NAME, !!BGFX_CONFIG_RENDERER_DIRECT3D11 }, // Direct3D11
|
{ d3d11::rendererCreate, d3d11::rendererDestroy, BGFX_RENDERER_DIRECT3D11_NAME, !!BGFX_CONFIG_RENDERER_DIRECT3D11 }, // Direct3D11
|
||||||
{ rendererCreateD3D12, rendererDestroyD3D12, BGFX_RENDERER_DIRECT3D12_NAME, !!BGFX_CONFIG_RENDERER_DIRECT3D12 }, // Direct3D12
|
{ d3d12::rendererCreate, d3d12::rendererDestroy, BGFX_RENDERER_DIRECT3D12_NAME, !!BGFX_CONFIG_RENDERER_DIRECT3D12 }, // Direct3D12
|
||||||
{ rendererCreateGL, rendererDestroyGL, BGFX_RENDERER_OPENGL_NAME, !!BGFX_CONFIG_RENDERER_OPENGLES }, // OpenGLES
|
{ gl::rendererCreate, gl::rendererDestroy, BGFX_RENDERER_OPENGL_NAME, !!BGFX_CONFIG_RENDERER_OPENGLES }, // OpenGLES
|
||||||
{ rendererCreateGL, rendererDestroyGL, BGFX_RENDERER_OPENGL_NAME, !!BGFX_CONFIG_RENDERER_OPENGL }, // OpenGL
|
{ gl::rendererCreate, gl::rendererDestroy, BGFX_RENDERER_OPENGL_NAME, !!BGFX_CONFIG_RENDERER_OPENGL }, // OpenGL
|
||||||
{ rendererCreateVK, rendererDestroyVK, BGFX_RENDERER_VULKAN_NAME, !!BGFX_CONFIG_RENDERER_VULKAN }, // Vulkan
|
{ vk::rendererCreate, vk::rendererDestroy, BGFX_RENDERER_VULKAN_NAME, !!BGFX_CONFIG_RENDERER_VULKAN }, // Vulkan
|
||||||
};
|
};
|
||||||
BX_STATIC_ASSERT(BX_COUNTOF(s_rendererCreator) == RendererType::Count);
|
BX_STATIC_ASSERT(BX_COUNTOF(s_rendererCreator) == RendererType::Count);
|
||||||
|
|
||||||
@ -1983,7 +1981,7 @@ again:
|
|||||||
return s_rendererCreator[_type].name;
|
return s_rendererCreator[_type].name;
|
||||||
}
|
}
|
||||||
|
|
||||||
void init(RendererType::Enum _type, CallbackI* _callback, bx::ReallocatorI* _allocator)
|
void init(RendererType::Enum _type, uint16_t _vendorId, uint16_t _deviceId, CallbackI* _callback, bx::ReallocatorI* _allocator)
|
||||||
{
|
{
|
||||||
BX_CHECK(NULL == s_ctx, "bgfx is already initialized.");
|
BX_CHECK(NULL == s_ctx, "bgfx is already initialized.");
|
||||||
BX_TRACE("Init...");
|
BX_TRACE("Init...");
|
||||||
@ -1995,6 +1993,8 @@ again:
|
|||||||
g_caps.maxViews = BGFX_CONFIG_MAX_VIEWS;
|
g_caps.maxViews = BGFX_CONFIG_MAX_VIEWS;
|
||||||
g_caps.maxDrawCalls = BGFX_CONFIG_MAX_DRAW_CALLS;
|
g_caps.maxDrawCalls = BGFX_CONFIG_MAX_DRAW_CALLS;
|
||||||
g_caps.maxFBAttachments = 1;
|
g_caps.maxFBAttachments = 1;
|
||||||
|
g_caps.vendorId = _vendorId;
|
||||||
|
g_caps.deviceId = _deviceId;
|
||||||
|
|
||||||
if (NULL != _allocator)
|
if (NULL != _allocator)
|
||||||
{
|
{
|
||||||
@ -2770,21 +2770,18 @@ again:
|
|||||||
void setUniform(UniformHandle _handle, const void* _value, uint16_t _num)
|
void setUniform(UniformHandle _handle, const void* _value, uint16_t _num)
|
||||||
{
|
{
|
||||||
BGFX_CHECK_MAIN_THREAD();
|
BGFX_CHECK_MAIN_THREAD();
|
||||||
BGFX_CHECK_HANDLE(_handle, BGFX_CONFIG_MAX_UNIFORMS);
|
|
||||||
s_ctx->setUniform(_handle, _value, _num);
|
s_ctx->setUniform(_handle, _value, _num);
|
||||||
}
|
}
|
||||||
|
|
||||||
void setIndexBuffer(IndexBufferHandle _handle, uint32_t _firstIndex, uint32_t _numIndices)
|
void setIndexBuffer(IndexBufferHandle _handle, uint32_t _firstIndex, uint32_t _numIndices)
|
||||||
{
|
{
|
||||||
BGFX_CHECK_MAIN_THREAD();
|
BGFX_CHECK_MAIN_THREAD();
|
||||||
BGFX_CHECK_HANDLE(_handle, BGFX_CONFIG_MAX_INDEX_BUFFERS);
|
|
||||||
s_ctx->setIndexBuffer(_handle, _firstIndex, _numIndices);
|
s_ctx->setIndexBuffer(_handle, _firstIndex, _numIndices);
|
||||||
}
|
}
|
||||||
|
|
||||||
void setIndexBuffer(DynamicIndexBufferHandle _handle, uint32_t _firstIndex, uint32_t _numIndices)
|
void setIndexBuffer(DynamicIndexBufferHandle _handle, uint32_t _firstIndex, uint32_t _numIndices)
|
||||||
{
|
{
|
||||||
BGFX_CHECK_MAIN_THREAD();
|
BGFX_CHECK_MAIN_THREAD();
|
||||||
BGFX_CHECK_HANDLE(_handle, BGFX_CONFIG_MAX_DYNAMIC_INDEX_BUFFERS);
|
|
||||||
s_ctx->setIndexBuffer(_handle, _firstIndex, _numIndices);
|
s_ctx->setIndexBuffer(_handle, _firstIndex, _numIndices);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2809,14 +2806,12 @@ again:
|
|||||||
void setVertexBuffer(VertexBufferHandle _handle, uint32_t _startVertex, uint32_t _numVertices)
|
void setVertexBuffer(VertexBufferHandle _handle, uint32_t _startVertex, uint32_t _numVertices)
|
||||||
{
|
{
|
||||||
BGFX_CHECK_MAIN_THREAD();
|
BGFX_CHECK_MAIN_THREAD();
|
||||||
BGFX_CHECK_HANDLE(_handle, BGFX_CONFIG_MAX_VERTEX_BUFFERS);
|
|
||||||
s_ctx->setVertexBuffer(_handle, _startVertex, _numVertices);
|
s_ctx->setVertexBuffer(_handle, _startVertex, _numVertices);
|
||||||
}
|
}
|
||||||
|
|
||||||
void setVertexBuffer(DynamicVertexBufferHandle _handle, uint32_t _numVertices)
|
void setVertexBuffer(DynamicVertexBufferHandle _handle, uint32_t _numVertices)
|
||||||
{
|
{
|
||||||
BGFX_CHECK_MAIN_THREAD();
|
BGFX_CHECK_MAIN_THREAD();
|
||||||
BGFX_CHECK_HANDLE(_handle, BGFX_CONFIG_MAX_DYNAMIC_VERTEX_BUFFERS);
|
|
||||||
s_ctx->setVertexBuffer(_handle, _numVertices);
|
s_ctx->setVertexBuffer(_handle, _numVertices);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2842,21 +2837,18 @@ again:
|
|||||||
void setInstanceDataBuffer(VertexBufferHandle _handle, uint32_t _startVertex, uint32_t _num)
|
void setInstanceDataBuffer(VertexBufferHandle _handle, uint32_t _startVertex, uint32_t _num)
|
||||||
{
|
{
|
||||||
BGFX_CHECK_MAIN_THREAD();
|
BGFX_CHECK_MAIN_THREAD();
|
||||||
BGFX_CHECK_HANDLE(_handle, BGFX_CONFIG_MAX_VERTEX_BUFFERS);
|
|
||||||
s_ctx->setInstanceDataBuffer(_handle, _startVertex, _num);
|
s_ctx->setInstanceDataBuffer(_handle, _startVertex, _num);
|
||||||
}
|
}
|
||||||
|
|
||||||
void setInstanceDataBuffer(DynamicVertexBufferHandle _handle, uint32_t _startVertex, uint32_t _num)
|
void setInstanceDataBuffer(DynamicVertexBufferHandle _handle, uint32_t _startVertex, uint32_t _num)
|
||||||
{
|
{
|
||||||
BGFX_CHECK_MAIN_THREAD();
|
BGFX_CHECK_MAIN_THREAD();
|
||||||
BGFX_CHECK_HANDLE(_handle, BGFX_CONFIG_MAX_DYNAMIC_VERTEX_BUFFERS);
|
|
||||||
s_ctx->setInstanceDataBuffer(_handle, _startVertex, _num);
|
s_ctx->setInstanceDataBuffer(_handle, _startVertex, _num);
|
||||||
}
|
}
|
||||||
|
|
||||||
void setProgram(ProgramHandle _handle)
|
void setProgram(ProgramHandle _handle)
|
||||||
{
|
{
|
||||||
BGFX_CHECK_MAIN_THREAD();
|
BGFX_CHECK_MAIN_THREAD();
|
||||||
BGFX_CHECK_HANDLE(_handle, BGFX_CONFIG_MAX_PROGRAMS);
|
|
||||||
s_ctx->setProgram(_handle);
|
s_ctx->setProgram(_handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2881,28 +2873,24 @@ again:
|
|||||||
void setBuffer(uint8_t _stage, IndexBufferHandle _handle, Access::Enum _access)
|
void setBuffer(uint8_t _stage, IndexBufferHandle _handle, Access::Enum _access)
|
||||||
{
|
{
|
||||||
BGFX_CHECK_MAIN_THREAD();
|
BGFX_CHECK_MAIN_THREAD();
|
||||||
BGFX_CHECK_HANDLE(_handle, BGFX_CONFIG_MAX_INDEX_BUFFERS);
|
|
||||||
s_ctx->setBuffer(_stage, _handle, _access);
|
s_ctx->setBuffer(_stage, _handle, _access);
|
||||||
}
|
}
|
||||||
|
|
||||||
void setBuffer(uint8_t _stage, VertexBufferHandle _handle, Access::Enum _access)
|
void setBuffer(uint8_t _stage, VertexBufferHandle _handle, Access::Enum _access)
|
||||||
{
|
{
|
||||||
BGFX_CHECK_MAIN_THREAD();
|
BGFX_CHECK_MAIN_THREAD();
|
||||||
BGFX_CHECK_HANDLE(_handle, BGFX_CONFIG_MAX_VERTEX_BUFFERS);
|
|
||||||
s_ctx->setBuffer(_stage, _handle, _access);
|
s_ctx->setBuffer(_stage, _handle, _access);
|
||||||
}
|
}
|
||||||
|
|
||||||
void setBuffer(uint8_t _stage, DynamicIndexBufferHandle _handle, Access::Enum _access)
|
void setBuffer(uint8_t _stage, DynamicIndexBufferHandle _handle, Access::Enum _access)
|
||||||
{
|
{
|
||||||
BGFX_CHECK_MAIN_THREAD();
|
BGFX_CHECK_MAIN_THREAD();
|
||||||
BGFX_CHECK_HANDLE(_handle, BGFX_CONFIG_MAX_DYNAMIC_INDEX_BUFFERS);
|
|
||||||
s_ctx->setBuffer(_stage, _handle, _access);
|
s_ctx->setBuffer(_stage, _handle, _access);
|
||||||
}
|
}
|
||||||
|
|
||||||
void setBuffer(uint8_t _stage, DynamicVertexBufferHandle _handle, Access::Enum _access)
|
void setBuffer(uint8_t _stage, DynamicVertexBufferHandle _handle, Access::Enum _access)
|
||||||
{
|
{
|
||||||
BGFX_CHECK_MAIN_THREAD();
|
BGFX_CHECK_MAIN_THREAD();
|
||||||
BGFX_CHECK_HANDLE(_handle, BGFX_CONFIG_MAX_DYNAMIC_VERTEX_BUFFERS);
|
|
||||||
s_ctx->setBuffer(_stage, _handle, _access);
|
s_ctx->setBuffer(_stage, _handle, _access);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3030,9 +3018,11 @@ BGFX_C_API const char* bgfx_get_renderer_name(bgfx_renderer_type_t _type)
|
|||||||
return bgfx::getRendererName(bgfx::RendererType::Enum(_type) );
|
return bgfx::getRendererName(bgfx::RendererType::Enum(_type) );
|
||||||
}
|
}
|
||||||
|
|
||||||
BGFX_C_API void bgfx_init(bgfx_renderer_type_t _type, struct bgfx_callback_interface* _callback, struct bgfx_reallocator_interface* _allocator)
|
BGFX_C_API void bgfx_init(bgfx_renderer_type_t _type, uint16_t _vendorId, uint16_t _deviceId, bgfx_callback_interface_t* _callback, bgfx_reallocator_interface_t* _allocator)
|
||||||
{
|
{
|
||||||
return bgfx::init(bgfx::RendererType::Enum(_type)
|
return bgfx::init(bgfx::RendererType::Enum(_type)
|
||||||
|
, _vendorId
|
||||||
|
, _deviceId
|
||||||
, reinterpret_cast<bgfx::CallbackI*>(_callback)
|
, reinterpret_cast<bgfx::CallbackI*>(_callback)
|
||||||
, reinterpret_cast<bx::ReallocatorI*>(_allocator)
|
, reinterpret_cast<bx::ReallocatorI*>(_allocator)
|
||||||
);
|
);
|
||||||
|
67
3rdparty/bgfx/src/bgfx_p.h
vendored
67
3rdparty/bgfx/src/bgfx_p.h
vendored
@ -29,6 +29,26 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <alloca.h>
|
#include <alloca.h>
|
||||||
|
|
||||||
|
// Check handle, cannot be bgfx::invalidHandle and must be valid.
|
||||||
|
#define BGFX_CHECK_HANDLE(_desc, _handleAlloc, _handle) \
|
||||||
|
BX_CHECK(isValid(_handle) \
|
||||||
|
&& _handleAlloc.isValid(_handle.idx) \
|
||||||
|
, "Invalid handle. %s handle: %d (max %d)" \
|
||||||
|
, _desc \
|
||||||
|
, _handle.idx \
|
||||||
|
, _handleAlloc.getMaxHandles() \
|
||||||
|
)
|
||||||
|
|
||||||
|
// Check handle, it's ok to be bgfx::invalidHandle or must be valid.
|
||||||
|
#define BGFX_CHECK_HANDLE_INVALID_OK(_desc, _handleAlloc, _handle) \
|
||||||
|
BX_CHECK(!isValid(_handle) \
|
||||||
|
|| _handleAlloc.isValid(_handle.idx) \
|
||||||
|
, "Invalid handle. %s handle: %d (max %d)" \
|
||||||
|
, _desc \
|
||||||
|
, _handle.idx \
|
||||||
|
, _handleAlloc.getMaxHandles() \
|
||||||
|
)
|
||||||
|
|
||||||
namespace bgfx
|
namespace bgfx
|
||||||
{
|
{
|
||||||
#if BX_COMPILER_CLANG_ANALYZER
|
#if BX_COMPILER_CLANG_ANALYZER
|
||||||
@ -204,8 +224,10 @@ namespace bgfx
|
|||||||
#elif BX_PLATFORM_LINUX
|
#elif BX_PLATFORM_LINUX
|
||||||
extern void* g_bgfxX11Display;
|
extern void* g_bgfxX11Display;
|
||||||
extern uint32_t g_bgfxX11Window;
|
extern uint32_t g_bgfxX11Window;
|
||||||
|
extern void* g_bgfxGLX;
|
||||||
#elif BX_PLATFORM_OSX
|
#elif BX_PLATFORM_OSX
|
||||||
extern void* g_bgfxNSWindow;
|
extern void* g_bgfxNSWindow;
|
||||||
|
extern void* g_bgfxNSGL;
|
||||||
#elif BX_PLATFORM_WINDOWS
|
#elif BX_PLATFORM_WINDOWS
|
||||||
extern ::HWND g_bgfxHwnd;
|
extern ::HWND g_bgfxHwnd;
|
||||||
#elif BX_PLATFORM_WINRT
|
#elif BX_PLATFORM_WINRT
|
||||||
@ -1418,7 +1440,10 @@ namespace bgfx
|
|||||||
{
|
{
|
||||||
Binding& sampler = m_draw.m_bind[_stage];
|
Binding& sampler = m_draw.m_bind[_stage];
|
||||||
sampler.m_idx = _handle.idx;
|
sampler.m_idx = _handle.idx;
|
||||||
sampler.m_un.m_draw.m_flags = (_flags&BGFX_SAMPLER_DEFAULT_FLAGS) ? BGFX_SAMPLER_DEFAULT_FLAGS : _flags;
|
sampler.m_un.m_draw.m_flags = (_flags&BGFX_SAMPLER_DEFAULT_FLAGS)
|
||||||
|
? BGFX_SAMPLER_DEFAULT_FLAGS
|
||||||
|
: _flags
|
||||||
|
;
|
||||||
|
|
||||||
if (isValid(_sampler)
|
if (isValid(_sampler)
|
||||||
&& (BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGL) || BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGLES) ) )
|
&& (BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGL) || BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGLES) ) )
|
||||||
@ -1989,6 +2014,8 @@ namespace bgfx
|
|||||||
|
|
||||||
BGFX_API_FUNC(void destroyIndexBuffer(IndexBufferHandle _handle) )
|
BGFX_API_FUNC(void destroyIndexBuffer(IndexBufferHandle _handle) )
|
||||||
{
|
{
|
||||||
|
BGFX_CHECK_HANDLE("destroyIndexBuffer", m_indexBufferHandle, _handle);
|
||||||
|
|
||||||
CommandBuffer& cmdbuf = getCommandBuffer(CommandBuffer::DestroyIndexBuffer);
|
CommandBuffer& cmdbuf = getCommandBuffer(CommandBuffer::DestroyIndexBuffer);
|
||||||
cmdbuf.write(_handle);
|
cmdbuf.write(_handle);
|
||||||
m_submit->free(_handle);
|
m_submit->free(_handle);
|
||||||
@ -2034,6 +2061,8 @@ namespace bgfx
|
|||||||
|
|
||||||
BGFX_API_FUNC(void destroyVertexBuffer(VertexBufferHandle _handle) )
|
BGFX_API_FUNC(void destroyVertexBuffer(VertexBufferHandle _handle) )
|
||||||
{
|
{
|
||||||
|
BGFX_CHECK_HANDLE("destroyVertexBuffer", m_vertexBufferHandle, _handle);
|
||||||
|
|
||||||
CommandBuffer& cmdbuf = getCommandBuffer(CommandBuffer::DestroyVertexBuffer);
|
CommandBuffer& cmdbuf = getCommandBuffer(CommandBuffer::DestroyVertexBuffer);
|
||||||
cmdbuf.write(_handle);
|
cmdbuf.write(_handle);
|
||||||
m_submit->free(_handle);
|
m_submit->free(_handle);
|
||||||
@ -2135,6 +2164,8 @@ namespace bgfx
|
|||||||
|
|
||||||
BGFX_API_FUNC(void updateDynamicIndexBuffer(DynamicIndexBufferHandle _handle, const Memory* _mem) )
|
BGFX_API_FUNC(void updateDynamicIndexBuffer(DynamicIndexBufferHandle _handle, const Memory* _mem) )
|
||||||
{
|
{
|
||||||
|
BGFX_CHECK_HANDLE("updateDynamicIndexBuffer", m_dynamicIndexBufferHandle, _handle);
|
||||||
|
|
||||||
DynamicIndexBuffer& dib = m_dynamicIndexBuffers[_handle.idx];
|
DynamicIndexBuffer& dib = m_dynamicIndexBuffers[_handle.idx];
|
||||||
BX_CHECK(0 == (dib.m_flags & BGFX_BUFFER_COMPUTE_READ_WRITE), "Can't update GPU buffer from CPU.");
|
BX_CHECK(0 == (dib.m_flags & BGFX_BUFFER_COMPUTE_READ_WRITE), "Can't update GPU buffer from CPU.");
|
||||||
|
|
||||||
@ -2166,6 +2197,8 @@ namespace bgfx
|
|||||||
|
|
||||||
BGFX_API_FUNC(void destroyDynamicIndexBuffer(DynamicIndexBufferHandle _handle) )
|
BGFX_API_FUNC(void destroyDynamicIndexBuffer(DynamicIndexBufferHandle _handle) )
|
||||||
{
|
{
|
||||||
|
BGFX_CHECK_HANDLE("destroyDynamicIndexBuffer", m_dynamicIndexBufferHandle, _handle);
|
||||||
|
|
||||||
m_freeDynamicIndexBufferHandle[m_numFreeDynamicIndexBufferHandles++] = _handle;
|
m_freeDynamicIndexBufferHandle[m_numFreeDynamicIndexBufferHandles++] = _handle;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2279,6 +2312,8 @@ namespace bgfx
|
|||||||
|
|
||||||
BGFX_API_FUNC(void updateDynamicVertexBuffer(DynamicVertexBufferHandle _handle, const Memory* _mem) )
|
BGFX_API_FUNC(void updateDynamicVertexBuffer(DynamicVertexBufferHandle _handle, const Memory* _mem) )
|
||||||
{
|
{
|
||||||
|
BGFX_CHECK_HANDLE("updateDynamicVertexBuffer", m_dynamicVertexBufferHandle, _handle);
|
||||||
|
|
||||||
DynamicVertexBuffer& dvb = m_dynamicVertexBuffers[_handle.idx];
|
DynamicVertexBuffer& dvb = m_dynamicVertexBuffers[_handle.idx];
|
||||||
BX_CHECK(0 == (dvb.m_flags & BGFX_BUFFER_COMPUTE_READ_WRITE), "Can't update GPU buffer from CPU.");
|
BX_CHECK(0 == (dvb.m_flags & BGFX_BUFFER_COMPUTE_READ_WRITE), "Can't update GPU buffer from CPU.");
|
||||||
|
|
||||||
@ -2311,6 +2346,8 @@ namespace bgfx
|
|||||||
|
|
||||||
BGFX_API_FUNC(void destroyDynamicVertexBuffer(DynamicVertexBufferHandle _handle) )
|
BGFX_API_FUNC(void destroyDynamicVertexBuffer(DynamicVertexBufferHandle _handle) )
|
||||||
{
|
{
|
||||||
|
BGFX_CHECK_HANDLE("destroyDynamicVertexBuffer", m_dynamicVertexBufferHandle, _handle);
|
||||||
|
|
||||||
m_freeDynamicVertexBufferHandle[m_numFreeDynamicVertexBufferHandles++] = _handle;
|
m_freeDynamicVertexBufferHandle[m_numFreeDynamicVertexBufferHandles++] = _handle;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2593,6 +2630,8 @@ namespace bgfx
|
|||||||
|
|
||||||
BGFX_API_FUNC(void destroyShader(ShaderHandle _handle) )
|
BGFX_API_FUNC(void destroyShader(ShaderHandle _handle) )
|
||||||
{
|
{
|
||||||
|
BGFX_CHECK_HANDLE("destroyShader", m_shaderHandle, _handle);
|
||||||
|
|
||||||
if (!isValid(_handle) )
|
if (!isValid(_handle) )
|
||||||
{
|
{
|
||||||
BX_WARN(false, "Passing invalid shader handle to bgfx::destroyShader.");
|
BX_WARN(false, "Passing invalid shader handle to bgfx::destroyShader.");
|
||||||
@ -2704,6 +2743,8 @@ namespace bgfx
|
|||||||
|
|
||||||
BGFX_API_FUNC(void destroyProgram(ProgramHandle _handle) )
|
BGFX_API_FUNC(void destroyProgram(ProgramHandle _handle) )
|
||||||
{
|
{
|
||||||
|
BGFX_CHECK_HANDLE("destroyProgram", m_programHandle, _handle);
|
||||||
|
|
||||||
CommandBuffer& cmdbuf = getCommandBuffer(CommandBuffer::DestroyProgram);
|
CommandBuffer& cmdbuf = getCommandBuffer(CommandBuffer::DestroyProgram);
|
||||||
cmdbuf.write(_handle);
|
cmdbuf.write(_handle);
|
||||||
m_submit->free(_handle);
|
m_submit->free(_handle);
|
||||||
@ -2769,6 +2810,8 @@ namespace bgfx
|
|||||||
|
|
||||||
BGFX_API_FUNC(void destroyTexture(TextureHandle _handle) )
|
BGFX_API_FUNC(void destroyTexture(TextureHandle _handle) )
|
||||||
{
|
{
|
||||||
|
BGFX_CHECK_HANDLE("destroyTexture", m_textureHandle, _handle);
|
||||||
|
|
||||||
if (!isValid(_handle) )
|
if (!isValid(_handle) )
|
||||||
{
|
{
|
||||||
BX_WARN(false, "Passing invalid texture handle to bgfx::destroyTexture");
|
BX_WARN(false, "Passing invalid texture handle to bgfx::destroyTexture");
|
||||||
@ -2832,6 +2875,7 @@ namespace bgfx
|
|||||||
for (uint32_t ii = 0; ii < _num; ++ii)
|
for (uint32_t ii = 0; ii < _num; ++ii)
|
||||||
{
|
{
|
||||||
TextureHandle texHandle = _handles[ii];
|
TextureHandle texHandle = _handles[ii];
|
||||||
|
BGFX_CHECK_HANDLE("createFrameBuffer texture handle", m_textureHandle, texHandle);
|
||||||
|
|
||||||
cmdbuf.write(texHandle);
|
cmdbuf.write(texHandle);
|
||||||
|
|
||||||
@ -2868,6 +2912,8 @@ namespace bgfx
|
|||||||
|
|
||||||
BGFX_API_FUNC(void destroyFrameBuffer(FrameBufferHandle _handle) )
|
BGFX_API_FUNC(void destroyFrameBuffer(FrameBufferHandle _handle) )
|
||||||
{
|
{
|
||||||
|
BGFX_CHECK_HANDLE("destroyFrameBuffer", m_frameBufferHandle, _handle);
|
||||||
|
|
||||||
CommandBuffer& cmdbuf = getCommandBuffer(CommandBuffer::DestroyFrameBuffer);
|
CommandBuffer& cmdbuf = getCommandBuffer(CommandBuffer::DestroyFrameBuffer);
|
||||||
cmdbuf.write(_handle);
|
cmdbuf.write(_handle);
|
||||||
m_submit->free(_handle);
|
m_submit->free(_handle);
|
||||||
@ -2951,6 +2997,8 @@ namespace bgfx
|
|||||||
|
|
||||||
BGFX_API_FUNC(void destroyUniform(UniformHandle _handle) )
|
BGFX_API_FUNC(void destroyUniform(UniformHandle _handle) )
|
||||||
{
|
{
|
||||||
|
BGFX_CHECK_HANDLE("destroyUniform", m_uniformHandle, _handle);
|
||||||
|
|
||||||
UniformRef& uniform = m_uniformRef[_handle.idx];
|
UniformRef& uniform = m_uniformRef[_handle.idx];
|
||||||
BX_CHECK(uniform.m_refCount > 0, "Destroying already destroyed uniform %d.", _handle.idx);
|
BX_CHECK(uniform.m_refCount > 0, "Destroying already destroyed uniform %d.", _handle.idx);
|
||||||
int32_t refs = --uniform.m_refCount;
|
int32_t refs = --uniform.m_refCount;
|
||||||
@ -3054,6 +3102,7 @@ namespace bgfx
|
|||||||
|
|
||||||
BGFX_API_FUNC(void setViewFrameBuffer(uint8_t _id, FrameBufferHandle _handle) )
|
BGFX_API_FUNC(void setViewFrameBuffer(uint8_t _id, FrameBufferHandle _handle) )
|
||||||
{
|
{
|
||||||
|
BGFX_CHECK_HANDLE_INVALID_OK("setViewFrameBuffer", m_frameBufferHandle, _handle);
|
||||||
m_fb[_id] = _handle;
|
m_fb[_id] = _handle;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3091,7 +3140,7 @@ namespace bgfx
|
|||||||
|
|
||||||
BGFX_API_FUNC(void setViewRemap(uint8_t _id, uint8_t _num, const void* _remap) )
|
BGFX_API_FUNC(void setViewRemap(uint8_t _id, uint8_t _num, const void* _remap) )
|
||||||
{
|
{
|
||||||
const uint32_t num = bx::uint32_min( (BGFX_CONFIG_MAX_VIEWS - _id) + _num, BGFX_CONFIG_MAX_VIEWS) - _id;
|
const uint32_t num = bx::uint32_min(_id + _num, BGFX_CONFIG_MAX_VIEWS) - _id;
|
||||||
if (NULL == _remap)
|
if (NULL == _remap)
|
||||||
{
|
{
|
||||||
for (uint32_t ii = 0; ii < num; ++ii)
|
for (uint32_t ii = 0; ii < num; ++ii)
|
||||||
@ -3148,6 +3197,7 @@ namespace bgfx
|
|||||||
|
|
||||||
BGFX_API_FUNC(void setUniform(UniformHandle _handle, const void* _value, uint16_t _num) )
|
BGFX_API_FUNC(void setUniform(UniformHandle _handle, const void* _value, uint16_t _num) )
|
||||||
{
|
{
|
||||||
|
BGFX_CHECK_HANDLE("setUniform", m_uniformHandle, _handle);
|
||||||
UniformRef& uniform = m_uniformRef[_handle.idx];
|
UniformRef& uniform = m_uniformRef[_handle.idx];
|
||||||
BX_CHECK(uniform.m_num >= _num, "Truncated uniform update. %d (max: %d)", _num, uniform.m_num);
|
BX_CHECK(uniform.m_num >= _num, "Truncated uniform update. %d (max: %d)", _num, uniform.m_num);
|
||||||
m_submit->writeUniform(uniform.m_type, _handle, _value, bx::uint16_min(uniform.m_num, _num) );
|
m_submit->writeUniform(uniform.m_type, _handle, _value, bx::uint16_min(uniform.m_num, _num) );
|
||||||
@ -3155,11 +3205,13 @@ namespace bgfx
|
|||||||
|
|
||||||
BGFX_API_FUNC(void setIndexBuffer(IndexBufferHandle _handle, uint32_t _firstIndex, uint32_t _numIndices) )
|
BGFX_API_FUNC(void setIndexBuffer(IndexBufferHandle _handle, uint32_t _firstIndex, uint32_t _numIndices) )
|
||||||
{
|
{
|
||||||
|
BGFX_CHECK_HANDLE("setIndexBuffer", m_indexBufferHandle, _handle);
|
||||||
m_submit->setIndexBuffer(_handle, _firstIndex, _numIndices);
|
m_submit->setIndexBuffer(_handle, _firstIndex, _numIndices);
|
||||||
}
|
}
|
||||||
|
|
||||||
BGFX_API_FUNC(void setIndexBuffer(DynamicIndexBufferHandle _handle, uint32_t _firstIndex, uint32_t _numIndices) )
|
BGFX_API_FUNC(void setIndexBuffer(DynamicIndexBufferHandle _handle, uint32_t _firstIndex, uint32_t _numIndices) )
|
||||||
{
|
{
|
||||||
|
BGFX_CHECK_HANDLE("setIndexBuffer", m_dynamicIndexBufferHandle, _handle);
|
||||||
m_submit->setIndexBuffer(m_dynamicIndexBuffers[_handle.idx], _firstIndex, _numIndices);
|
m_submit->setIndexBuffer(m_dynamicIndexBuffers[_handle.idx], _firstIndex, _numIndices);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3170,11 +3222,13 @@ namespace bgfx
|
|||||||
|
|
||||||
BGFX_API_FUNC(void setVertexBuffer(VertexBufferHandle _handle, uint32_t _startVertex, uint32_t _numVertices) )
|
BGFX_API_FUNC(void setVertexBuffer(VertexBufferHandle _handle, uint32_t _startVertex, uint32_t _numVertices) )
|
||||||
{
|
{
|
||||||
|
BGFX_CHECK_HANDLE("setVertexBuffer", m_vertexBufferHandle, _handle);
|
||||||
m_submit->setVertexBuffer(_handle, _startVertex, _numVertices);
|
m_submit->setVertexBuffer(_handle, _startVertex, _numVertices);
|
||||||
}
|
}
|
||||||
|
|
||||||
BGFX_API_FUNC(void setVertexBuffer(DynamicVertexBufferHandle _handle, uint32_t _numVertices) )
|
BGFX_API_FUNC(void setVertexBuffer(DynamicVertexBufferHandle _handle, uint32_t _numVertices) )
|
||||||
{
|
{
|
||||||
|
BGFX_CHECK_HANDLE("setVertexBuffer", m_dynamicVertexBufferHandle, _handle);
|
||||||
m_submit->setVertexBuffer(m_dynamicVertexBuffers[_handle.idx], _numVertices);
|
m_submit->setVertexBuffer(m_dynamicVertexBuffers[_handle.idx], _numVertices);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3192,12 +3246,14 @@ namespace bgfx
|
|||||||
|
|
||||||
BGFX_API_FUNC(void setInstanceDataBuffer(VertexBufferHandle _handle, uint32_t _startVertex, uint32_t _num) )
|
BGFX_API_FUNC(void setInstanceDataBuffer(VertexBufferHandle _handle, uint32_t _startVertex, uint32_t _num) )
|
||||||
{
|
{
|
||||||
|
BGFX_CHECK_HANDLE("setInstanceDataBuffer", m_vertexBufferHandle, _handle);
|
||||||
const VertexBuffer& vb = m_vertexBuffers[_handle.idx];
|
const VertexBuffer& vb = m_vertexBuffers[_handle.idx];
|
||||||
m_submit->setInstanceDataBuffer(_handle, _startVertex, _num, vb.m_stride);
|
m_submit->setInstanceDataBuffer(_handle, _startVertex, _num, vb.m_stride);
|
||||||
}
|
}
|
||||||
|
|
||||||
BGFX_API_FUNC(void setInstanceDataBuffer(DynamicVertexBufferHandle _handle, uint32_t _startVertex, uint32_t _num) )
|
BGFX_API_FUNC(void setInstanceDataBuffer(DynamicVertexBufferHandle _handle, uint32_t _startVertex, uint32_t _num) )
|
||||||
{
|
{
|
||||||
|
BGFX_CHECK_HANDLE("setInstanceDataBuffer", m_dynamicVertexBufferHandle, _handle);
|
||||||
const DynamicVertexBuffer& dvb = m_dynamicVertexBuffers[_handle.idx];
|
const DynamicVertexBuffer& dvb = m_dynamicVertexBuffers[_handle.idx];
|
||||||
m_submit->setInstanceDataBuffer(dvb.m_handle
|
m_submit->setInstanceDataBuffer(dvb.m_handle
|
||||||
, dvb.m_startVertex + _startVertex
|
, dvb.m_startVertex + _startVertex
|
||||||
@ -3208,16 +3264,19 @@ namespace bgfx
|
|||||||
|
|
||||||
BGFX_API_FUNC(void setProgram(ProgramHandle _handle) )
|
BGFX_API_FUNC(void setProgram(ProgramHandle _handle) )
|
||||||
{
|
{
|
||||||
|
BGFX_CHECK_HANDLE("setProgram", m_programHandle, _handle);
|
||||||
m_submit->setProgram(_handle);
|
m_submit->setProgram(_handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
BGFX_API_FUNC(void setTexture(uint8_t _stage, UniformHandle _sampler, TextureHandle _handle, uint32_t _flags) )
|
BGFX_API_FUNC(void setTexture(uint8_t _stage, UniformHandle _sampler, TextureHandle _handle, uint32_t _flags) )
|
||||||
{
|
{
|
||||||
|
BGFX_CHECK_HANDLE_INVALID_OK("setTexture/TextureHandle", m_textureHandle, _handle);
|
||||||
m_submit->setTexture(_stage, _sampler, _handle, _flags);
|
m_submit->setTexture(_stage, _sampler, _handle, _flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
BGFX_API_FUNC(void setTexture(uint8_t _stage, UniformHandle _sampler, FrameBufferHandle _handle, uint8_t _attachment, uint32_t _flags) )
|
BGFX_API_FUNC(void setTexture(uint8_t _stage, UniformHandle _sampler, FrameBufferHandle _handle, uint8_t _attachment, uint32_t _flags) )
|
||||||
{
|
{
|
||||||
|
BGFX_CHECK_HANDLE_INVALID_OK("setTexture/FrameBufferHandle", m_frameBufferHandle, _handle);
|
||||||
BX_CHECK(_attachment < g_caps.maxFBAttachments, "Frame buffer attachment index %d is invalid.", _attachment);
|
BX_CHECK(_attachment < g_caps.maxFBAttachments, "Frame buffer attachment index %d is invalid.", _attachment);
|
||||||
TextureHandle textureHandle = BGFX_INVALID_HANDLE;
|
TextureHandle textureHandle = BGFX_INVALID_HANDLE;
|
||||||
if (isValid(_handle) )
|
if (isValid(_handle) )
|
||||||
@ -3238,22 +3297,26 @@ namespace bgfx
|
|||||||
|
|
||||||
BGFX_API_FUNC(void setBuffer(uint8_t _stage, IndexBufferHandle _handle, Access::Enum _access) )
|
BGFX_API_FUNC(void setBuffer(uint8_t _stage, IndexBufferHandle _handle, Access::Enum _access) )
|
||||||
{
|
{
|
||||||
|
BGFX_CHECK_HANDLE("setBuffer", m_indexBufferHandle, _handle);
|
||||||
m_submit->setBuffer(_stage, _handle, _access);
|
m_submit->setBuffer(_stage, _handle, _access);
|
||||||
}
|
}
|
||||||
|
|
||||||
BGFX_API_FUNC(void setBuffer(uint8_t _stage, VertexBufferHandle _handle, Access::Enum _access) )
|
BGFX_API_FUNC(void setBuffer(uint8_t _stage, VertexBufferHandle _handle, Access::Enum _access) )
|
||||||
{
|
{
|
||||||
|
BGFX_CHECK_HANDLE("setBuffer", m_vertexBufferHandle, _handle);
|
||||||
m_submit->setBuffer(_stage, _handle, _access);
|
m_submit->setBuffer(_stage, _handle, _access);
|
||||||
}
|
}
|
||||||
|
|
||||||
BGFX_API_FUNC(void setBuffer(uint8_t _stage, DynamicIndexBufferHandle _handle, Access::Enum _access) )
|
BGFX_API_FUNC(void setBuffer(uint8_t _stage, DynamicIndexBufferHandle _handle, Access::Enum _access) )
|
||||||
{
|
{
|
||||||
|
BGFX_CHECK_HANDLE("setBuffer", m_dynamicIndexBufferHandle, _handle);
|
||||||
const DynamicIndexBuffer& dib = m_dynamicIndexBuffers[_handle.idx];
|
const DynamicIndexBuffer& dib = m_dynamicIndexBuffers[_handle.idx];
|
||||||
m_submit->setBuffer(_stage, dib.m_handle, _access);
|
m_submit->setBuffer(_stage, dib.m_handle, _access);
|
||||||
}
|
}
|
||||||
|
|
||||||
BGFX_API_FUNC(void setBuffer(uint8_t _stage, DynamicVertexBufferHandle _handle, Access::Enum _access) )
|
BGFX_API_FUNC(void setBuffer(uint8_t _stage, DynamicVertexBufferHandle _handle, Access::Enum _access) )
|
||||||
{
|
{
|
||||||
|
BGFX_CHECK_HANDLE("setBuffer", m_dynamicVertexBufferHandle, _handle);
|
||||||
const DynamicVertexBuffer& dvb = m_dynamicVertexBuffers[_handle.idx];
|
const DynamicVertexBuffer& dvb = m_dynamicVertexBuffers[_handle.idx];
|
||||||
m_submit->setBuffer(_stage, dvb.m_handle, _access);
|
m_submit->setBuffer(_stage, dvb.m_handle, _access);
|
||||||
}
|
}
|
||||||
|
4
3rdparty/bgfx/src/glcontext_eagl.h
vendored
4
3rdparty/bgfx/src/glcontext_eagl.h
vendored
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
#if BX_PLATFORM_IOS
|
#if BX_PLATFORM_IOS
|
||||||
|
|
||||||
namespace bgfx
|
namespace bgfx { namespace gl
|
||||||
{
|
{
|
||||||
struct SwapChainGL;
|
struct SwapChainGL;
|
||||||
|
|
||||||
@ -48,7 +48,7 @@ namespace bgfx
|
|||||||
GLuint m_colorRbo;
|
GLuint m_colorRbo;
|
||||||
GLuint m_depthStencilRbo;
|
GLuint m_depthStencilRbo;
|
||||||
};
|
};
|
||||||
} // namespace bgfx
|
} /* namespace gl */ } // namespace bgfx
|
||||||
|
|
||||||
#endif // BX_PLATFORM_IOS
|
#endif // BX_PLATFORM_IOS
|
||||||
|
|
||||||
|
4
3rdparty/bgfx/src/glcontext_eagl.mm
vendored
4
3rdparty/bgfx/src/glcontext_eagl.mm
vendored
@ -10,7 +10,7 @@
|
|||||||
# include <QuartzCore/CAEAGLLayer.h>
|
# include <QuartzCore/CAEAGLLayer.h>
|
||||||
# include "renderer_gl.h"
|
# include "renderer_gl.h"
|
||||||
|
|
||||||
namespace bgfx
|
namespace bgfx { namespace gl
|
||||||
{
|
{
|
||||||
# define GL_IMPORT(_optional, _proto, _func, _import) _proto _func = NULL
|
# define GL_IMPORT(_optional, _proto, _func, _import) _proto _func = NULL
|
||||||
# include "glimports.h"
|
# include "glimports.h"
|
||||||
@ -123,6 +123,6 @@ namespace bgfx
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace bgfx
|
} /* namespace gl */ } // namespace bgfx
|
||||||
|
|
||||||
#endif // BX_PLATFORM_IOS && (BGFX_CONFIG_RENDERER_OPENGLES2|BGFX_CONFIG_RENDERER_OPENGLES3|BGFX_CONFIG_RENDERER_OPENGL)
|
#endif // BX_PLATFORM_IOS && (BGFX_CONFIG_RENDERER_OPENGLES2|BGFX_CONFIG_RENDERER_OPENGLES3|BGFX_CONFIG_RENDERER_OPENGL)
|
||||||
|
4
3rdparty/bgfx/src/glcontext_egl.cpp
vendored
4
3rdparty/bgfx/src/glcontext_egl.cpp
vendored
@ -22,7 +22,7 @@
|
|||||||
# define EGL_CONTEXT_MINOR_VERSION_KHR 0x30FB
|
# define EGL_CONTEXT_MINOR_VERSION_KHR 0x30FB
|
||||||
#endif // EGL_CONTEXT_MINOR_VERSION_KHR
|
#endif // EGL_CONTEXT_MINOR_VERSION_KHR
|
||||||
|
|
||||||
namespace bgfx
|
namespace bgfx { namespace gl
|
||||||
{
|
{
|
||||||
#if BGFX_USE_GL_DYNAMIC_LIB
|
#if BGFX_USE_GL_DYNAMIC_LIB
|
||||||
|
|
||||||
@ -369,7 +369,7 @@ EGL_IMPORT
|
|||||||
# include "glimports.h"
|
# include "glimports.h"
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace bgfx
|
} /* namespace gl */ } // namespace bgfx
|
||||||
|
|
||||||
# endif // BGFX_USE_EGL
|
# endif // BGFX_USE_EGL
|
||||||
#endif // (BGFX_CONFIG_RENDERER_OPENGLES || BGFX_CONFIG_RENDERER_OPENGL)
|
#endif // (BGFX_CONFIG_RENDERER_OPENGLES || BGFX_CONFIG_RENDERER_OPENGL)
|
||||||
|
4
3rdparty/bgfx/src/glcontext_egl.h
vendored
4
3rdparty/bgfx/src/glcontext_egl.h
vendored
@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
#include <EGL/egl.h>
|
#include <EGL/egl.h>
|
||||||
|
|
||||||
namespace bgfx
|
namespace bgfx { namespace gl
|
||||||
{
|
{
|
||||||
struct SwapChainGL;
|
struct SwapChainGL;
|
||||||
|
|
||||||
@ -48,7 +48,7 @@ namespace bgfx
|
|||||||
EGLDisplay m_display;
|
EGLDisplay m_display;
|
||||||
EGLSurface m_surface;
|
EGLSurface m_surface;
|
||||||
};
|
};
|
||||||
} // namespace bgfx
|
} /* namespace gl */ } // namespace bgfx
|
||||||
|
|
||||||
#endif // BGFX_USE_EGL
|
#endif // BGFX_USE_EGL
|
||||||
|
|
||||||
|
217
3rdparty/bgfx/src/glcontext_glx.cpp
vendored
217
3rdparty/bgfx/src/glcontext_glx.cpp
vendored
@ -12,7 +12,7 @@
|
|||||||
# define GLX_GLXEXT_PROTOTYPES
|
# define GLX_GLXEXT_PROTOTYPES
|
||||||
# include <glx/glxext.h>
|
# include <glx/glxext.h>
|
||||||
|
|
||||||
namespace bgfx
|
namespace bgfx { namespace gl
|
||||||
{
|
{
|
||||||
typedef int (*PFNGLXSWAPINTERVALMESAPROC)(uint32_t _interval);
|
typedef int (*PFNGLXSWAPINTERVALMESAPROC)(uint32_t _interval);
|
||||||
|
|
||||||
@ -55,122 +55,128 @@ namespace bgfx
|
|||||||
void GlContext::create(uint32_t _width, uint32_t _height)
|
void GlContext::create(uint32_t _width, uint32_t _height)
|
||||||
{
|
{
|
||||||
BX_UNUSED(_width, _height);
|
BX_UNUSED(_width, _height);
|
||||||
XLockDisplay( (::Display*)g_bgfxX11Display);
|
|
||||||
|
|
||||||
int major, minor;
|
m_context = (GLXContext)g_bgfxGLX;
|
||||||
bool version = glXQueryVersion( (::Display*)g_bgfxX11Display, &major, &minor);
|
|
||||||
BGFX_FATAL(version, Fatal::UnableToInitialize, "Failed to query GLX version");
|
|
||||||
BGFX_FATAL( (major == 1 && minor >= 2) || major > 1
|
|
||||||
, Fatal::UnableToInitialize
|
|
||||||
, "GLX version is not >=1.2 (%d.%d)."
|
|
||||||
, major
|
|
||||||
, minor
|
|
||||||
);
|
|
||||||
|
|
||||||
int32_t screen = DefaultScreen( (::Display*)g_bgfxX11Display);
|
if (NULL == g_bgfxGLX)
|
||||||
|
|
||||||
const char* extensions = glXQueryExtensionsString( (::Display*)g_bgfxX11Display, screen);
|
|
||||||
BX_TRACE("GLX extensions:");
|
|
||||||
dumpExtensions(extensions);
|
|
||||||
|
|
||||||
const int attrsGlx[] =
|
|
||||||
{
|
{
|
||||||
GLX_RENDER_TYPE, GLX_RGBA_BIT,
|
XLockDisplay( (::Display*)g_bgfxX11Display);
|
||||||
GLX_DRAWABLE_TYPE, GLX_WINDOW_BIT,
|
|
||||||
GLX_DOUBLEBUFFER, true,
|
|
||||||
GLX_RED_SIZE, 8,
|
|
||||||
GLX_BLUE_SIZE, 8,
|
|
||||||
GLX_GREEN_SIZE, 8,
|
|
||||||
// GLX_ALPHA_SIZE, 8,
|
|
||||||
GLX_DEPTH_SIZE, 24,
|
|
||||||
GLX_STENCIL_SIZE, 8,
|
|
||||||
0,
|
|
||||||
};
|
|
||||||
|
|
||||||
// Find suitable config
|
int major, minor;
|
||||||
GLXFBConfig bestConfig = NULL;
|
bool version = glXQueryVersion( (::Display*)g_bgfxX11Display, &major, &minor);
|
||||||
|
BGFX_FATAL(version, Fatal::UnableToInitialize, "Failed to query GLX version");
|
||||||
|
BGFX_FATAL( (major == 1 && minor >= 2) || major > 1
|
||||||
|
, Fatal::UnableToInitialize
|
||||||
|
, "GLX version is not >=1.2 (%d.%d)."
|
||||||
|
, major
|
||||||
|
, minor
|
||||||
|
);
|
||||||
|
|
||||||
int numConfigs;
|
int32_t screen = DefaultScreen( (::Display*)g_bgfxX11Display);
|
||||||
GLXFBConfig* configs = glXChooseFBConfig( (::Display*)g_bgfxX11Display, screen, attrsGlx, &numConfigs);
|
|
||||||
|
|
||||||
BX_TRACE("glX num configs %d", numConfigs);
|
const char* extensions = glXQueryExtensionsString( (::Display*)g_bgfxX11Display, screen);
|
||||||
|
BX_TRACE("GLX extensions:");
|
||||||
|
dumpExtensions(extensions);
|
||||||
|
|
||||||
for (int ii = 0; ii < numConfigs; ++ii)
|
const int attrsGlx[] =
|
||||||
{
|
|
||||||
m_visualInfo = glXGetVisualFromFBConfig( (::Display*)g_bgfxX11Display, configs[ii]);
|
|
||||||
if (NULL != m_visualInfo)
|
|
||||||
{
|
{
|
||||||
BX_TRACE("---");
|
GLX_RENDER_TYPE, GLX_RGBA_BIT,
|
||||||
bool valid = true;
|
GLX_DRAWABLE_TYPE, GLX_WINDOW_BIT,
|
||||||
for (uint32_t attr = 6; attr < BX_COUNTOF(attrsGlx)-1 && attrsGlx[attr] != None; attr += 2)
|
GLX_DOUBLEBUFFER, true,
|
||||||
{
|
GLX_RED_SIZE, 8,
|
||||||
int value;
|
GLX_BLUE_SIZE, 8,
|
||||||
glXGetFBConfigAttrib( (::Display*)g_bgfxX11Display, configs[ii], attrsGlx[attr], &value);
|
GLX_GREEN_SIZE, 8,
|
||||||
BX_TRACE("glX %d/%d %2d: %4x, %8x (%8x%s)"
|
// GLX_ALPHA_SIZE, 8,
|
||||||
, ii
|
GLX_DEPTH_SIZE, 24,
|
||||||
, numConfigs
|
GLX_STENCIL_SIZE, 8,
|
||||||
, attr/2
|
|
||||||
, attrsGlx[attr]
|
|
||||||
, value
|
|
||||||
, attrsGlx[attr + 1]
|
|
||||||
, value < attrsGlx[attr + 1] ? " *" : ""
|
|
||||||
);
|
|
||||||
|
|
||||||
if (value < attrsGlx[attr + 1])
|
|
||||||
{
|
|
||||||
valid = false;
|
|
||||||
#if !BGFX_CONFIG_DEBUG
|
|
||||||
break;
|
|
||||||
#endif // BGFX_CONFIG_DEBUG
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (valid)
|
|
||||||
{
|
|
||||||
bestConfig = configs[ii];
|
|
||||||
BX_TRACE("Best config %d.", ii);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
XFree(m_visualInfo);
|
|
||||||
m_visualInfo = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
XFree(configs);
|
|
||||||
BGFX_FATAL(m_visualInfo, Fatal::UnableToInitialize, "Failed to find a suitable X11 display configuration.");
|
|
||||||
|
|
||||||
BX_TRACE("Create GL 2.1 context.");
|
|
||||||
m_context = glXCreateContext( (::Display*)g_bgfxX11Display, m_visualInfo, 0, GL_TRUE);
|
|
||||||
BGFX_FATAL(NULL != m_context, Fatal::UnableToInitialize, "Failed to create GL 2.1 context.");
|
|
||||||
|
|
||||||
#if BGFX_CONFIG_RENDERER_OPENGL >= 31
|
|
||||||
glXCreateContextAttribsARB = (PFNGLXCREATECONTEXTATTRIBSARBPROC)glXGetProcAddress( (const GLubyte*)"glXCreateContextAttribsARB");
|
|
||||||
|
|
||||||
if (NULL != glXCreateContextAttribsARB)
|
|
||||||
{
|
|
||||||
BX_TRACE("Create GL 3.1 context.");
|
|
||||||
const int contextAttrs[] =
|
|
||||||
{
|
|
||||||
GLX_CONTEXT_MAJOR_VERSION_ARB, 3,
|
|
||||||
GLX_CONTEXT_MINOR_VERSION_ARB, 1,
|
|
||||||
GLX_CONTEXT_PROFILE_MASK_ARB, GLX_CONTEXT_CORE_PROFILE_BIT_ARB,
|
|
||||||
0,
|
0,
|
||||||
};
|
};
|
||||||
|
|
||||||
GLXContext context = glXCreateContextAttribsARB( (::Display*)g_bgfxX11Display, bestConfig, 0, true, contextAttrs);
|
// Find suitable config
|
||||||
|
GLXFBConfig bestConfig = NULL;
|
||||||
|
|
||||||
if (NULL != context)
|
int numConfigs;
|
||||||
|
GLXFBConfig* configs = glXChooseFBConfig( (::Display*)g_bgfxX11Display, screen, attrsGlx, &numConfigs);
|
||||||
|
|
||||||
|
BX_TRACE("glX num configs %d", numConfigs);
|
||||||
|
|
||||||
|
for (int ii = 0; ii < numConfigs; ++ii)
|
||||||
{
|
{
|
||||||
glXDestroyContext( (::Display*)g_bgfxX11Display, m_context);
|
m_visualInfo = glXGetVisualFromFBConfig( (::Display*)g_bgfxX11Display, configs[ii]);
|
||||||
m_context = context;
|
if (NULL != m_visualInfo)
|
||||||
|
{
|
||||||
|
BX_TRACE("---");
|
||||||
|
bool valid = true;
|
||||||
|
for (uint32_t attr = 6; attr < BX_COUNTOF(attrsGlx)-1 && attrsGlx[attr] != None; attr += 2)
|
||||||
|
{
|
||||||
|
int value;
|
||||||
|
glXGetFBConfigAttrib( (::Display*)g_bgfxX11Display, configs[ii], attrsGlx[attr], &value);
|
||||||
|
BX_TRACE("glX %d/%d %2d: %4x, %8x (%8x%s)"
|
||||||
|
, ii
|
||||||
|
, numConfigs
|
||||||
|
, attr/2
|
||||||
|
, attrsGlx[attr]
|
||||||
|
, value
|
||||||
|
, attrsGlx[attr + 1]
|
||||||
|
, value < attrsGlx[attr + 1] ? " *" : ""
|
||||||
|
);
|
||||||
|
|
||||||
|
if (value < attrsGlx[attr + 1])
|
||||||
|
{
|
||||||
|
valid = false;
|
||||||
|
#if !BGFX_CONFIG_DEBUG
|
||||||
|
break;
|
||||||
|
#endif // BGFX_CONFIG_DEBUG
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (valid)
|
||||||
|
{
|
||||||
|
bestConfig = configs[ii];
|
||||||
|
BX_TRACE("Best config %d.", ii);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
XFree(m_visualInfo);
|
||||||
|
m_visualInfo = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
XFree(configs);
|
||||||
|
BGFX_FATAL(m_visualInfo, Fatal::UnableToInitialize, "Failed to find a suitable X11 display configuration.");
|
||||||
|
|
||||||
|
BX_TRACE("Create GL 2.1 context.");
|
||||||
|
m_context = glXCreateContext( (::Display*)g_bgfxX11Display, m_visualInfo, 0, GL_TRUE);
|
||||||
|
BGFX_FATAL(NULL != m_context, Fatal::UnableToInitialize, "Failed to create GL 2.1 context.");
|
||||||
|
|
||||||
|
#if BGFX_CONFIG_RENDERER_OPENGL >= 31
|
||||||
|
glXCreateContextAttribsARB = (PFNGLXCREATECONTEXTATTRIBSARBPROC)glXGetProcAddress( (const GLubyte*)"glXCreateContextAttribsARB");
|
||||||
|
|
||||||
|
if (NULL != glXCreateContextAttribsARB)
|
||||||
|
{
|
||||||
|
BX_TRACE("Create GL 3.1 context.");
|
||||||
|
const int contextAttrs[] =
|
||||||
|
{
|
||||||
|
GLX_CONTEXT_MAJOR_VERSION_ARB, 3,
|
||||||
|
GLX_CONTEXT_MINOR_VERSION_ARB, 1,
|
||||||
|
GLX_CONTEXT_PROFILE_MASK_ARB, GLX_CONTEXT_CORE_PROFILE_BIT_ARB,
|
||||||
|
0,
|
||||||
|
};
|
||||||
|
|
||||||
|
GLXContext context = glXCreateContextAttribsARB( (::Display*)g_bgfxX11Display, bestConfig, 0, true, contextAttrs);
|
||||||
|
|
||||||
|
if (NULL != context)
|
||||||
|
{
|
||||||
|
glXDestroyContext( (::Display*)g_bgfxX11Display, m_context);
|
||||||
|
m_context = context;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
#else
|
#else
|
||||||
BX_UNUSED(bestConfig);
|
BX_UNUSED(bestConfig);
|
||||||
#endif // BGFX_CONFIG_RENDERER_OPENGL >= 31
|
#endif // BGFX_CONFIG_RENDERER_OPENGL >= 31
|
||||||
|
|
||||||
XUnlockDisplay( (::Display*)g_bgfxX11Display);
|
XUnlockDisplay( (::Display*)g_bgfxX11Display);
|
||||||
|
}
|
||||||
|
|
||||||
import();
|
import();
|
||||||
|
|
||||||
@ -210,8 +216,13 @@ namespace bgfx
|
|||||||
void GlContext::destroy()
|
void GlContext::destroy()
|
||||||
{
|
{
|
||||||
glXMakeCurrent( (::Display*)g_bgfxX11Display, 0, 0);
|
glXMakeCurrent( (::Display*)g_bgfxX11Display, 0, 0);
|
||||||
glXDestroyContext( (::Display*)g_bgfxX11Display, m_context);
|
if (NULL == g_bgfxGLX)
|
||||||
XFree(m_visualInfo);
|
{
|
||||||
|
glXDestroyContext( (::Display*)g_bgfxX11Display, m_context);
|
||||||
|
XFree(m_visualInfo);
|
||||||
|
}
|
||||||
|
m_context = NULL;
|
||||||
|
m_visualInfo = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void GlContext::resize(uint32_t /*_width*/, uint32_t /*_height*/, bool _vsync)
|
void GlContext::resize(uint32_t /*_width*/, uint32_t /*_height*/, bool _vsync)
|
||||||
@ -292,7 +303,7 @@ namespace bgfx
|
|||||||
# include "glimports.h"
|
# include "glimports.h"
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace bgfx
|
} /* namespace gl */ } // namespace bgfx
|
||||||
|
|
||||||
# endif // BGFX_USE_GLX
|
# endif // BGFX_USE_GLX
|
||||||
|
|
||||||
|
4
3rdparty/bgfx/src/glcontext_glx.h
vendored
4
3rdparty/bgfx/src/glcontext_glx.h
vendored
@ -11,7 +11,7 @@
|
|||||||
# include <X11/Xlib.h>
|
# include <X11/Xlib.h>
|
||||||
# include <GL/glx.h>
|
# include <GL/glx.h>
|
||||||
|
|
||||||
namespace bgfx
|
namespace bgfx { namespace gl
|
||||||
{
|
{
|
||||||
struct SwapChainGL;
|
struct SwapChainGL;
|
||||||
|
|
||||||
@ -45,7 +45,7 @@ namespace bgfx
|
|||||||
GLXContext m_context;
|
GLXContext m_context;
|
||||||
XVisualInfo* m_visualInfo;
|
XVisualInfo* m_visualInfo;
|
||||||
};
|
};
|
||||||
} // namespace bgfx
|
} /* namespace gl */ } // namespace bgfx
|
||||||
|
|
||||||
#endif // BGFX_USE_GLX
|
#endif // BGFX_USE_GLX
|
||||||
|
|
||||||
|
4
3rdparty/bgfx/src/glcontext_nsgl.h
vendored
4
3rdparty/bgfx/src/glcontext_nsgl.h
vendored
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
#if BX_PLATFORM_OSX
|
#if BX_PLATFORM_OSX
|
||||||
|
|
||||||
namespace bgfx
|
namespace bgfx { namespace gl
|
||||||
{
|
{
|
||||||
struct SwapChainGL;
|
struct SwapChainGL;
|
||||||
|
|
||||||
@ -39,7 +39,7 @@ namespace bgfx
|
|||||||
void* m_view;
|
void* m_view;
|
||||||
void* m_context;
|
void* m_context;
|
||||||
};
|
};
|
||||||
} // namespace bgfx
|
} /* namespace gl */ } // namespace bgfx
|
||||||
|
|
||||||
#endif // BX_PLATFORM_OSX
|
#endif // BX_PLATFORM_OSX
|
||||||
|
|
||||||
|
75
3rdparty/bgfx/src/glcontext_nsgl.mm
vendored
75
3rdparty/bgfx/src/glcontext_nsgl.mm
vendored
@ -10,7 +10,7 @@
|
|||||||
# include <Cocoa/Cocoa.h>
|
# include <Cocoa/Cocoa.h>
|
||||||
# include <bx/os.h>
|
# include <bx/os.h>
|
||||||
|
|
||||||
namespace bgfx
|
namespace bgfx { namespace gl
|
||||||
{
|
{
|
||||||
|
|
||||||
# define GL_IMPORT(_optional, _proto, _func, _import) _proto _func
|
# define GL_IMPORT(_optional, _proto, _func, _import) _proto _func
|
||||||
@ -46,56 +46,63 @@ namespace bgfx
|
|||||||
BX_CHECK(NULL != s_opengl, "OpenGL dynamic library is not found!");
|
BX_CHECK(NULL != s_opengl, "OpenGL dynamic library is not found!");
|
||||||
|
|
||||||
NSWindow* nsWindow = (NSWindow*)g_bgfxNSWindow;
|
NSWindow* nsWindow = (NSWindow*)g_bgfxNSWindow;
|
||||||
|
m_context = g_bgfxNSGL;
|
||||||
|
|
||||||
NSOpenGLPixelFormatAttribute profile =
|
if (NULL == g_bgfxNSGL)
|
||||||
|
{
|
||||||
|
NSOpenGLPixelFormatAttribute profile =
|
||||||
#if BGFX_CONFIG_RENDERER_OPENGL >= 31
|
#if BGFX_CONFIG_RENDERER_OPENGL >= 31
|
||||||
NSOpenGLProfileVersion3_2Core
|
NSOpenGLProfileVersion3_2Core
|
||||||
#else
|
#else
|
||||||
NSOpenGLProfileVersionLegacy
|
NSOpenGLProfileVersionLegacy
|
||||||
#endif // BGFX_CONFIG_RENDERER_OPENGL >= 31
|
#endif // BGFX_CONFIG_RENDERER_OPENGL >= 31
|
||||||
;
|
;
|
||||||
|
|
||||||
NSOpenGLPixelFormatAttribute pixelFormatAttributes[] = {
|
NSOpenGLPixelFormatAttribute pixelFormatAttributes[] = {
|
||||||
NSOpenGLPFAOpenGLProfile, profile,
|
NSOpenGLPFAOpenGLProfile, profile,
|
||||||
NSOpenGLPFAColorSize, 24,
|
NSOpenGLPFAColorSize, 24,
|
||||||
NSOpenGLPFAAlphaSize, 8,
|
NSOpenGLPFAAlphaSize, 8,
|
||||||
NSOpenGLPFADepthSize, 24,
|
NSOpenGLPFADepthSize, 24,
|
||||||
NSOpenGLPFAStencilSize, 8,
|
NSOpenGLPFAStencilSize, 8,
|
||||||
NSOpenGLPFADoubleBuffer, true,
|
NSOpenGLPFADoubleBuffer, true,
|
||||||
NSOpenGLPFAAccelerated, true,
|
NSOpenGLPFAAccelerated, true,
|
||||||
NSOpenGLPFANoRecovery, true,
|
NSOpenGLPFANoRecovery, true,
|
||||||
0, 0,
|
0, 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
NSOpenGLPixelFormat* pixelFormat = [[NSOpenGLPixelFormat alloc] initWithAttributes:pixelFormatAttributes];
|
NSOpenGLPixelFormat* pixelFormat = [[NSOpenGLPixelFormat alloc] initWithAttributes:pixelFormatAttributes];
|
||||||
BGFX_FATAL(NULL != pixelFormat, Fatal::UnableToInitialize, "Failed to initialize pixel format.");
|
BGFX_FATAL(NULL != pixelFormat, Fatal::UnableToInitialize, "Failed to initialize pixel format.");
|
||||||
|
|
||||||
NSRect glViewRect = [[nsWindow contentView] bounds];
|
NSRect glViewRect = [[nsWindow contentView] bounds];
|
||||||
NSOpenGLView* glView = [[NSOpenGLView alloc] initWithFrame:glViewRect pixelFormat:pixelFormat];
|
NSOpenGLView* glView = [[NSOpenGLView alloc] initWithFrame:glViewRect pixelFormat:pixelFormat];
|
||||||
|
|
||||||
[pixelFormat release];
|
[pixelFormat release];
|
||||||
[nsWindow setContentView:glView];
|
[nsWindow setContentView:glView];
|
||||||
|
|
||||||
NSOpenGLContext* glContext = [glView openGLContext];
|
NSOpenGLContext* glContext = [glView openGLContext];
|
||||||
BGFX_FATAL(NULL != glContext, Fatal::UnableToInitialize, "Failed to initialize GL context.");
|
BGFX_FATAL(NULL != glContext, Fatal::UnableToInitialize, "Failed to initialize GL context.");
|
||||||
|
|
||||||
[glContext makeCurrentContext];
|
[glContext makeCurrentContext];
|
||||||
GLint interval = 0;
|
GLint interval = 0;
|
||||||
[glContext setValues:&interval forParameter:NSOpenGLCPSwapInterval];
|
[glContext setValues:&interval forParameter:NSOpenGLCPSwapInterval];
|
||||||
|
|
||||||
m_view = glView;
|
m_view = glView;
|
||||||
m_context = glContext;
|
m_context = glContext;
|
||||||
|
}
|
||||||
|
|
||||||
import();
|
import();
|
||||||
}
|
}
|
||||||
|
|
||||||
void GlContext::destroy()
|
void GlContext::destroy()
|
||||||
{
|
{
|
||||||
NSOpenGLView* glView = (NSOpenGLView*)m_view;
|
if (NULL == g_bgfxNSGL)
|
||||||
m_view = 0;
|
{
|
||||||
m_context = 0;
|
NSOpenGLView* glView = (NSOpenGLView*)m_view;
|
||||||
[glView release];
|
[glView release];
|
||||||
|
}
|
||||||
|
|
||||||
|
m_view = 0;
|
||||||
|
m_context = 0;
|
||||||
bx::dlclose(s_opengl);
|
bx::dlclose(s_opengl);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -165,6 +172,6 @@ namespace bgfx
|
|||||||
# include "glimports.h"
|
# include "glimports.h"
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace bgfx
|
} /* namespace gl */ } // namespace bgfx
|
||||||
|
|
||||||
#endif // BX_PLATFORM_OSX && (BGFX_CONFIG_RENDERER_OPENGLES2|BGFX_CONFIG_RENDERER_OPENGLES3|BGFX_CONFIG_RENDERER_OPENGL)
|
#endif // BX_PLATFORM_OSX && (BGFX_CONFIG_RENDERER_OPENGLES2|BGFX_CONFIG_RENDERER_OPENGLES3|BGFX_CONFIG_RENDERER_OPENGL)
|
||||||
|
15
3rdparty/bgfx/src/glcontext_ppapi.cpp
vendored
15
3rdparty/bgfx/src/glcontext_ppapi.cpp
vendored
@ -9,7 +9,7 @@
|
|||||||
# include <bgfxplatform.h>
|
# include <bgfxplatform.h>
|
||||||
# include "renderer_gl.h"
|
# include "renderer_gl.h"
|
||||||
|
|
||||||
namespace bgfx
|
namespace bgfx { namespace gl
|
||||||
{
|
{
|
||||||
# define GL_IMPORT(_optional, _proto, _func, _import) _proto _func
|
# define GL_IMPORT(_optional, _proto, _func, _import) _proto _func
|
||||||
# include "glimports.h"
|
# include "glimports.h"
|
||||||
@ -95,11 +95,6 @@ namespace bgfx
|
|||||||
s_ppapi.m_instancedArrays->DrawElementsInstancedANGLE(s_ppapi.m_context, _mode, _count, _type, _indices, _primcount);
|
s_ppapi.m_instancedArrays->DrawElementsInstancedANGLE(s_ppapi.m_context, _mode, _count, _type, _indices, _primcount);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool naclSetInterfaces(PP_Instance _instance, const PPB_Instance* _instInterface, const PPB_Graphics3D* _graphicsInterface, PostSwapBuffersFn _postSwapBuffers)
|
|
||||||
{
|
|
||||||
return s_ppapi.setInterfaces( _instance, _instInterface, _graphicsInterface, _postSwapBuffers);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Ppapi::setInterfaces(PP_Instance _instance, const PPB_Instance* _instInterface, const PPB_Graphics3D* _graphicsInterface, PostSwapBuffersFn _postSwapBuffers)
|
bool Ppapi::setInterfaces(PP_Instance _instance, const PPB_Instance* _instInterface, const PPB_Graphics3D* _graphicsInterface, PostSwapBuffersFn _postSwapBuffers)
|
||||||
{
|
{
|
||||||
BX_TRACE("PPAPI Interfaces");
|
BX_TRACE("PPAPI Interfaces");
|
||||||
@ -192,6 +187,14 @@ namespace bgfx
|
|||||||
return s_ppapi.isValid();
|
return s_ppapi.isValid();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} /* namespace gl */ } // namespace bgfx
|
||||||
|
|
||||||
|
namespace bgfx
|
||||||
|
{
|
||||||
|
bool naclSetInterfaces(PP_Instance _instance, const PPB_Instance* _instInterface, const PPB_Graphics3D* _graphicsInterface, PostSwapBuffersFn _postSwapBuffers)
|
||||||
|
{
|
||||||
|
return gl::s_ppapi.setInterfaces( _instance, _instInterface, _graphicsInterface, _postSwapBuffers);
|
||||||
|
}
|
||||||
} // namespace bgfx
|
} // namespace bgfx
|
||||||
|
|
||||||
#endif // BX_PLATFORM_NACL && (BGFX_CONFIG_RENDERER_OPENGLES || BGFX_CONFIG_RENDERER_OPENGL)
|
#endif // BX_PLATFORM_NACL && (BGFX_CONFIG_RENDERER_OPENGLES || BGFX_CONFIG_RENDERER_OPENGL)
|
||||||
|
4
3rdparty/bgfx/src/glcontext_ppapi.h
vendored
4
3rdparty/bgfx/src/glcontext_ppapi.h
vendored
@ -13,7 +13,7 @@
|
|||||||
# include <ppapi/c/ppb_instance.h>
|
# include <ppapi/c/ppb_instance.h>
|
||||||
# include <ppapi/c/ppb_graphics_3d.h>
|
# include <ppapi/c/ppb_graphics_3d.h>
|
||||||
|
|
||||||
namespace bgfx
|
namespace bgfx { namespace gl
|
||||||
{
|
{
|
||||||
struct SwapChainGL;
|
struct SwapChainGL;
|
||||||
|
|
||||||
@ -36,7 +36,7 @@ namespace bgfx
|
|||||||
void import();
|
void import();
|
||||||
bool isValid() const;
|
bool isValid() const;
|
||||||
};
|
};
|
||||||
} // namespace bgfx
|
} /* namespace gl */ } // namespace bgfx
|
||||||
|
|
||||||
#endif // BX_PLATFORM_NACL
|
#endif // BX_PLATFORM_NACL
|
||||||
|
|
||||||
|
4
3rdparty/bgfx/src/glcontext_wgl.cpp
vendored
4
3rdparty/bgfx/src/glcontext_wgl.cpp
vendored
@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
# if BGFX_USE_WGL
|
# if BGFX_USE_WGL
|
||||||
|
|
||||||
namespace bgfx
|
namespace bgfx { namespace gl
|
||||||
{
|
{
|
||||||
PFNWGLGETPROCADDRESSPROC wglGetProcAddress;
|
PFNWGLGETPROCADDRESSPROC wglGetProcAddress;
|
||||||
PFNWGLMAKECURRENTPROC wglMakeCurrent;
|
PFNWGLMAKECURRENTPROC wglMakeCurrent;
|
||||||
@ -376,7 +376,7 @@ namespace bgfx
|
|||||||
# include "glimports.h"
|
# include "glimports.h"
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace bgfx
|
} } // namespace bgfx
|
||||||
|
|
||||||
# endif // BGFX_USE_WGL
|
# endif // BGFX_USE_WGL
|
||||||
#endif // (BGFX_CONFIG_RENDERER_OPENGLES|BGFX_CONFIG_RENDERER_OPENGL)
|
#endif // (BGFX_CONFIG_RENDERER_OPENGLES|BGFX_CONFIG_RENDERER_OPENGL)
|
||||||
|
4
3rdparty/bgfx/src/glcontext_wgl.h
vendored
4
3rdparty/bgfx/src/glcontext_wgl.h
vendored
@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
#include <wgl/wglext.h>
|
#include <wgl/wglext.h>
|
||||||
|
|
||||||
namespace bgfx
|
namespace bgfx { namespace gl
|
||||||
{
|
{
|
||||||
typedef PROC (APIENTRYP PFNWGLGETPROCADDRESSPROC) (LPCSTR lpszProc);
|
typedef PROC (APIENTRYP PFNWGLGETPROCADDRESSPROC) (LPCSTR lpszProc);
|
||||||
typedef BOOL (APIENTRYP PFNWGLMAKECURRENTPROC) (HDC hdc, HGLRC hglrc);
|
typedef BOOL (APIENTRYP PFNWGLMAKECURRENTPROC) (HDC hdc, HGLRC hglrc);
|
||||||
@ -93,7 +93,7 @@ typedef void (APIENTRYP PFNGLSTENCILOPPROC) (GLenum fail, GLenum zfail, GLenum z
|
|||||||
HGLRC m_context;
|
HGLRC m_context;
|
||||||
HDC m_hdc;
|
HDC m_hdc;
|
||||||
};
|
};
|
||||||
} // namespace bgfx
|
} /* namespace gl */ } // namespace bgfx
|
||||||
|
|
||||||
#endif // BGFX_USE_WGL
|
#endif // BGFX_USE_WGL
|
||||||
|
|
||||||
|
168
3rdparty/bgfx/src/image.cpp
vendored
168
3rdparty/bgfx/src/image.cpp
vendored
@ -1235,49 +1235,49 @@ namespace bgfx
|
|||||||
#define DDS_BC5U BX_MAKEFOURCC('B', 'C', '5', 'U')
|
#define DDS_BC5U BX_MAKEFOURCC('B', 'C', '5', 'U')
|
||||||
#define DDS_DX10 BX_MAKEFOURCC('D', 'X', '1', '0')
|
#define DDS_DX10 BX_MAKEFOURCC('D', 'X', '1', '0')
|
||||||
|
|
||||||
#define D3DFMT_A8R8G8B8 21
|
#define DDS_A8R8G8B8 21
|
||||||
#define D3DFMT_R5G6B5 23
|
#define DDS_R5G6B5 23
|
||||||
#define D3DFMT_A1R5G5B5 25
|
#define DDS_A1R5G5B5 25
|
||||||
#define D3DFMT_A4R4G4B4 26
|
#define DDS_A4R4G4B4 26
|
||||||
#define D3DFMT_A2B10G10R10 31
|
#define DDS_A2B10G10R10 31
|
||||||
#define D3DFMT_G16R16 34
|
#define DDS_G16R16 34
|
||||||
#define D3DFMT_A2R10G10B10 35
|
#define DDS_A2R10G10B10 35
|
||||||
#define D3DFMT_A16B16G16R16 36
|
#define DDS_A16B16G16R16 36
|
||||||
#define D3DFMT_A8L8 51
|
#define DDS_A8L8 51
|
||||||
#define D3DFMT_R16F 111
|
#define DDS_R16F 111
|
||||||
#define D3DFMT_G16R16F 112
|
#define DDS_G16R16F 112
|
||||||
#define D3DFMT_A16B16G16R16F 113
|
#define DDS_A16B16G16R16F 113
|
||||||
#define D3DFMT_R32F 114
|
#define DDS_R32F 114
|
||||||
#define D3DFMT_G32R32F 115
|
#define DDS_G32R32F 115
|
||||||
#define D3DFMT_A32B32G32R32F 116
|
#define DDS_A32B32G32R32F 116
|
||||||
|
|
||||||
#define DXGI_FORMAT_R32G32B32A32_FLOAT 2
|
#define DDS_FORMAT_R32G32B32A32_FLOAT 2
|
||||||
#define DXGI_FORMAT_R32G32B32A32_UINT 3
|
#define DDS_FORMAT_R32G32B32A32_UINT 3
|
||||||
#define DXGI_FORMAT_R16G16B16A16_FLOAT 10
|
#define DDS_FORMAT_R16G16B16A16_FLOAT 10
|
||||||
#define DXGI_FORMAT_R16G16B16A16_UNORM 11
|
#define DDS_FORMAT_R16G16B16A16_UNORM 11
|
||||||
#define DXGI_FORMAT_R16G16B16A16_UINT 12
|
#define DDS_FORMAT_R16G16B16A16_UINT 12
|
||||||
#define DXGI_FORMAT_R32G32_FLOAT 16
|
#define DDS_FORMAT_R32G32_FLOAT 16
|
||||||
#define DXGI_FORMAT_R32G32_UINT 17
|
#define DDS_FORMAT_R32G32_UINT 17
|
||||||
#define DXGI_FORMAT_R10G10B10A2_UNORM 24
|
#define DDS_FORMAT_R10G10B10A2_UNORM 24
|
||||||
#define DXGI_FORMAT_R16G16_FLOAT 34
|
#define DDS_FORMAT_R16G16_FLOAT 34
|
||||||
#define DXGI_FORMAT_R16G16_UNORM 35
|
#define DDS_FORMAT_R16G16_UNORM 35
|
||||||
#define DXGI_FORMAT_R32_FLOAT 41
|
#define DDS_FORMAT_R32_FLOAT 41
|
||||||
#define DXGI_FORMAT_R32_UINT 42
|
#define DDS_FORMAT_R32_UINT 42
|
||||||
#define DXGI_FORMAT_R8G8_UNORM 49
|
#define DDS_FORMAT_R8G8_UNORM 49
|
||||||
#define DXGI_FORMAT_R16_FLOAT 54
|
#define DDS_FORMAT_R16_FLOAT 54
|
||||||
#define DXGI_FORMAT_R16_UNORM 56
|
#define DDS_FORMAT_R16_UNORM 56
|
||||||
#define DXGI_FORMAT_R8_UNORM 61
|
#define DDS_FORMAT_R8_UNORM 61
|
||||||
#define DXGI_FORMAT_BC1_UNORM 71
|
#define DDS_FORMAT_BC1_UNORM 71
|
||||||
#define DXGI_FORMAT_BC2_UNORM 74
|
#define DDS_FORMAT_BC2_UNORM 74
|
||||||
#define DXGI_FORMAT_BC3_UNORM 77
|
#define DDS_FORMAT_BC3_UNORM 77
|
||||||
#define DXGI_FORMAT_BC4_UNORM 80
|
#define DDS_FORMAT_BC4_UNORM 80
|
||||||
#define DXGI_FORMAT_BC5_UNORM 83
|
#define DDS_FORMAT_BC5_UNORM 83
|
||||||
#define DXGI_FORMAT_B5G6R5_UNORM 85
|
#define DDS_FORMAT_B5G6R5_UNORM 85
|
||||||
#define DXGI_FORMAT_B5G5R5A1_UNORM 86
|
#define DDS_FORMAT_B5G5R5A1_UNORM 86
|
||||||
#define DXGI_FORMAT_B8G8R8A8_UNORM 87
|
#define DDS_FORMAT_B8G8R8A8_UNORM 87
|
||||||
#define DXGI_FORMAT_BC6H_SF16 96
|
#define DDS_FORMAT_BC6H_SF16 96
|
||||||
#define DXGI_FORMAT_BC7_UNORM 98
|
#define DDS_FORMAT_BC7_UNORM 98
|
||||||
#define DXGI_FORMAT_B4G4R4A4_UNORM 115
|
#define DDS_FORMAT_B4G4R4A4_UNORM 115
|
||||||
|
|
||||||
#define DDSD_CAPS 0x00000001
|
#define DDSD_CAPS 0x00000001
|
||||||
#define DDSD_HEIGHT 0x00000002
|
#define DDSD_HEIGHT 0x00000002
|
||||||
@ -1331,57 +1331,57 @@ namespace bgfx
|
|||||||
{ DDS_BC4U, TextureFormat::BC4 },
|
{ DDS_BC4U, TextureFormat::BC4 },
|
||||||
{ DDS_ATI2, TextureFormat::BC5 },
|
{ DDS_ATI2, TextureFormat::BC5 },
|
||||||
{ DDS_BC5U, TextureFormat::BC5 },
|
{ DDS_BC5U, TextureFormat::BC5 },
|
||||||
{ D3DFMT_A16B16G16R16, TextureFormat::RGBA16 },
|
{ DDS_A16B16G16R16, TextureFormat::RGBA16 },
|
||||||
{ D3DFMT_A16B16G16R16F, TextureFormat::RGBA16F },
|
{ DDS_A16B16G16R16F, TextureFormat::RGBA16F },
|
||||||
{ DDPF_RGB|DDPF_ALPHAPIXELS, TextureFormat::BGRA8 },
|
{ DDPF_RGB|DDPF_ALPHAPIXELS, TextureFormat::BGRA8 },
|
||||||
{ DDPF_INDEXED, TextureFormat::R8 },
|
{ DDPF_INDEXED, TextureFormat::R8 },
|
||||||
{ DDPF_LUMINANCE, TextureFormat::R8 },
|
{ DDPF_LUMINANCE, TextureFormat::R8 },
|
||||||
{ DDPF_ALPHA, TextureFormat::R8 },
|
{ DDPF_ALPHA, TextureFormat::R8 },
|
||||||
{ D3DFMT_R16F, TextureFormat::R16F },
|
{ DDS_R16F, TextureFormat::R16F },
|
||||||
{ D3DFMT_R32F, TextureFormat::R32F },
|
{ DDS_R32F, TextureFormat::R32F },
|
||||||
{ D3DFMT_A8L8, TextureFormat::RG8 },
|
{ DDS_A8L8, TextureFormat::RG8 },
|
||||||
{ D3DFMT_G16R16, TextureFormat::RG16 },
|
{ DDS_G16R16, TextureFormat::RG16 },
|
||||||
{ D3DFMT_G16R16F, TextureFormat::RG16F },
|
{ DDS_G16R16F, TextureFormat::RG16F },
|
||||||
{ D3DFMT_G32R32F, TextureFormat::RG32F },
|
{ DDS_G32R32F, TextureFormat::RG32F },
|
||||||
{ D3DFMT_A8R8G8B8, TextureFormat::BGRA8 },
|
{ DDS_A8R8G8B8, TextureFormat::BGRA8 },
|
||||||
{ D3DFMT_A16B16G16R16, TextureFormat::RGBA16 },
|
{ DDS_A16B16G16R16, TextureFormat::RGBA16 },
|
||||||
{ D3DFMT_A16B16G16R16F, TextureFormat::RGBA16F },
|
{ DDS_A16B16G16R16F, TextureFormat::RGBA16F },
|
||||||
{ D3DFMT_A32B32G32R32F, TextureFormat::RGBA32F },
|
{ DDS_A32B32G32R32F, TextureFormat::RGBA32F },
|
||||||
{ D3DFMT_R5G6B5, TextureFormat::R5G6B5 },
|
{ DDS_R5G6B5, TextureFormat::R5G6B5 },
|
||||||
{ D3DFMT_A4R4G4B4, TextureFormat::RGBA4 },
|
{ DDS_A4R4G4B4, TextureFormat::RGBA4 },
|
||||||
{ D3DFMT_A1R5G5B5, TextureFormat::RGB5A1 },
|
{ DDS_A1R5G5B5, TextureFormat::RGB5A1 },
|
||||||
{ D3DFMT_A2B10G10R10, TextureFormat::RGB10A2 },
|
{ DDS_A2B10G10R10, TextureFormat::RGB10A2 },
|
||||||
};
|
};
|
||||||
|
|
||||||
static TranslateDdsFormat s_translateDxgiFormat[] =
|
static TranslateDdsFormat s_translateDxgiFormat[] =
|
||||||
{
|
{
|
||||||
{ DXGI_FORMAT_BC1_UNORM, TextureFormat::BC1 },
|
{ DDS_FORMAT_BC1_UNORM, TextureFormat::BC1 },
|
||||||
{ DXGI_FORMAT_BC2_UNORM, TextureFormat::BC2 },
|
{ DDS_FORMAT_BC2_UNORM, TextureFormat::BC2 },
|
||||||
{ DXGI_FORMAT_BC3_UNORM, TextureFormat::BC3 },
|
{ DDS_FORMAT_BC3_UNORM, TextureFormat::BC3 },
|
||||||
{ DXGI_FORMAT_BC4_UNORM, TextureFormat::BC4 },
|
{ DDS_FORMAT_BC4_UNORM, TextureFormat::BC4 },
|
||||||
{ DXGI_FORMAT_BC5_UNORM, TextureFormat::BC5 },
|
{ DDS_FORMAT_BC5_UNORM, TextureFormat::BC5 },
|
||||||
{ DXGI_FORMAT_BC6H_SF16, TextureFormat::BC6H },
|
{ DDS_FORMAT_BC6H_SF16, TextureFormat::BC6H },
|
||||||
{ DXGI_FORMAT_BC7_UNORM, TextureFormat::BC7 },
|
{ DDS_FORMAT_BC7_UNORM, TextureFormat::BC7 },
|
||||||
|
|
||||||
{ DXGI_FORMAT_R8_UNORM, TextureFormat::R8 },
|
{ DDS_FORMAT_R8_UNORM, TextureFormat::R8 },
|
||||||
{ DXGI_FORMAT_R16_UNORM, TextureFormat::R16 },
|
{ DDS_FORMAT_R16_UNORM, TextureFormat::R16 },
|
||||||
{ DXGI_FORMAT_R16_FLOAT, TextureFormat::R16F },
|
{ DDS_FORMAT_R16_FLOAT, TextureFormat::R16F },
|
||||||
{ DXGI_FORMAT_R32_UINT, TextureFormat::R32 },
|
{ DDS_FORMAT_R32_UINT, TextureFormat::R32 },
|
||||||
{ DXGI_FORMAT_R32_FLOAT, TextureFormat::R32F },
|
{ DDS_FORMAT_R32_FLOAT, TextureFormat::R32F },
|
||||||
{ DXGI_FORMAT_R8G8_UNORM, TextureFormat::RG8 },
|
{ DDS_FORMAT_R8G8_UNORM, TextureFormat::RG8 },
|
||||||
{ DXGI_FORMAT_R16G16_UNORM, TextureFormat::RG16 },
|
{ DDS_FORMAT_R16G16_UNORM, TextureFormat::RG16 },
|
||||||
{ DXGI_FORMAT_R16G16_FLOAT, TextureFormat::RG16F },
|
{ DDS_FORMAT_R16G16_FLOAT, TextureFormat::RG16F },
|
||||||
{ DXGI_FORMAT_R32G32_UINT, TextureFormat::RG32 },
|
{ DDS_FORMAT_R32G32_UINT, TextureFormat::RG32 },
|
||||||
{ DXGI_FORMAT_R32G32_FLOAT, TextureFormat::RG32F },
|
{ DDS_FORMAT_R32G32_FLOAT, TextureFormat::RG32F },
|
||||||
{ DXGI_FORMAT_B8G8R8A8_UNORM, TextureFormat::BGRA8 },
|
{ DDS_FORMAT_B8G8R8A8_UNORM, TextureFormat::BGRA8 },
|
||||||
{ DXGI_FORMAT_R16G16B16A16_UNORM, TextureFormat::RGBA16 },
|
{ DDS_FORMAT_R16G16B16A16_UNORM, TextureFormat::RGBA16 },
|
||||||
{ DXGI_FORMAT_R16G16B16A16_FLOAT, TextureFormat::RGBA16F },
|
{ DDS_FORMAT_R16G16B16A16_FLOAT, TextureFormat::RGBA16F },
|
||||||
{ DXGI_FORMAT_R32G32B32A32_UINT, TextureFormat::RGBA32 },
|
{ DDS_FORMAT_R32G32B32A32_UINT, TextureFormat::RGBA32 },
|
||||||
{ DXGI_FORMAT_R32G32B32A32_FLOAT, TextureFormat::RGBA32F },
|
{ DDS_FORMAT_R32G32B32A32_FLOAT, TextureFormat::RGBA32F },
|
||||||
{ DXGI_FORMAT_B5G6R5_UNORM, TextureFormat::R5G6B5 },
|
{ DDS_FORMAT_B5G6R5_UNORM, TextureFormat::R5G6B5 },
|
||||||
{ DXGI_FORMAT_B4G4R4A4_UNORM, TextureFormat::RGBA4 },
|
{ DDS_FORMAT_B4G4R4A4_UNORM, TextureFormat::RGBA4 },
|
||||||
{ DXGI_FORMAT_B5G5R5A1_UNORM, TextureFormat::RGB5A1 },
|
{ DDS_FORMAT_B5G5R5A1_UNORM, TextureFormat::RGB5A1 },
|
||||||
{ DXGI_FORMAT_R10G10B10A2_UNORM, TextureFormat::RGB10A2 },
|
{ DDS_FORMAT_R10G10B10A2_UNORM, TextureFormat::RGB10A2 },
|
||||||
};
|
};
|
||||||
|
|
||||||
struct TranslateDdsPixelFormat
|
struct TranslateDdsPixelFormat
|
||||||
|
4
3rdparty/bgfx/src/ovr.cpp
vendored
4
3rdparty/bgfx/src/ovr.cpp
vendored
@ -123,7 +123,9 @@ namespace bgfx
|
|||||||
result = ovrHmd_ConfigureRendering(m_hmd
|
result = ovrHmd_ConfigureRendering(m_hmd
|
||||||
, _config
|
, _config
|
||||||
, 0
|
, 0
|
||||||
| ovrDistortionCap_Chromatic
|
#if OVR_VERSION < OVR_VERSION_050
|
||||||
|
| ovrDistortionCap_Chromatic // permanently enabled >= v5.0
|
||||||
|
#endif
|
||||||
| ovrDistortionCap_Vignette
|
| ovrDistortionCap_Vignette
|
||||||
| ovrDistortionCap_TimeWarp
|
| ovrDistortionCap_TimeWarp
|
||||||
| ovrDistortionCap_Overdrive
|
| ovrDistortionCap_Overdrive
|
||||||
|
32
3rdparty/bgfx/src/ovr.h
vendored
32
3rdparty/bgfx/src/ovr.h
vendored
@ -3,21 +3,35 @@
|
|||||||
* License: http://www.opensource.org/licenses/BSD-2-Clause
|
* License: http://www.opensource.org/licenses/BSD-2-Clause
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifndef BGFX_OVR_H_HEADER_GUARD
|
||||||
|
#define BGFX_OVR_H_HEADER_GUARD
|
||||||
|
|
||||||
#include "bgfx_p.h"
|
#include "bgfx_p.h"
|
||||||
|
|
||||||
#if BGFX_CONFIG_USE_OVR
|
#if BGFX_CONFIG_USE_OVR
|
||||||
|
|
||||||
# include <OVR.h>
|
# include <OVR_Version.h>
|
||||||
|
|
||||||
# define OVR_VERSION_(_a, _b, _c) (_a * 10000 + _b * 100 + _c)
|
# define OVR_VERSION_(_a, _b, _c) (_a * 10000 + _b * 100 + _c)
|
||||||
# define OVR_VERSION OVR_VERSION_(OVR_MAJOR_VERSION, OVR_MINOR_VERSION, OVR_BUILD_VERSION)
|
# define OVR_VERSION OVR_VERSION_(OVR_MAJOR_VERSION, OVR_MINOR_VERSION, OVR_BUILD_VERSION)
|
||||||
# define OVR_VERSION_042 OVR_VERSION_(0, 4, 2)
|
# define OVR_VERSION_042 OVR_VERSION_(0, 4, 2)
|
||||||
# define OVR_VERSION_043 OVR_VERSION_(0, 4, 3)
|
# define OVR_VERSION_043 OVR_VERSION_(0, 4, 3)
|
||||||
# define OVR_VERSION_044 OVR_VERSION_(0, 4, 4)
|
# define OVR_VERSION_044 OVR_VERSION_(0, 4, 4)
|
||||||
|
# define OVR_VERSION_050 OVR_VERSION_(0, 5, 0)
|
||||||
|
|
||||||
|
# if OVR_VERSION < OVR_VERSION_050
|
||||||
|
# include <OVR.h>
|
||||||
|
# else
|
||||||
|
# include <OVR_CAPI.h>
|
||||||
|
# endif // OVR_VERSION < OVR_VERSION_050
|
||||||
|
|
||||||
# if BGFX_CONFIG_RENDERER_DIRECT3D9
|
# if BGFX_CONFIG_RENDERER_DIRECT3D9
|
||||||
# define OVR_D3D_VERSION 9
|
# define OVR_D3D_VERSION 9
|
||||||
# include <OVR_D3D.h>
|
# if OVR_VERSION < OVR_VERSION_050
|
||||||
|
# include <OVR_D3D.h>
|
||||||
|
# else
|
||||||
|
# include <OVR_CAPI_D3D.h>
|
||||||
|
# endif
|
||||||
# endif // BGFX_CONFIG_RENDERER_DIRECT3D9
|
# endif // BGFX_CONFIG_RENDERER_DIRECT3D9
|
||||||
|
|
||||||
# if BGFX_CONFIG_RENDERER_DIRECT3D11
|
# if BGFX_CONFIG_RENDERER_DIRECT3D11
|
||||||
@ -26,11 +40,19 @@
|
|||||||
# undef OVR_D3D_VERSION
|
# undef OVR_D3D_VERSION
|
||||||
# endif // OVR_CAPI_D3D_h
|
# endif // OVR_CAPI_D3D_h
|
||||||
# define OVR_D3D_VERSION 11
|
# define OVR_D3D_VERSION 11
|
||||||
# include <OVR_D3D.h>
|
# if OVR_VERSION < OVR_VERSION_050
|
||||||
|
# include <OVR_D3D.h>
|
||||||
|
# else
|
||||||
|
# include <OVR_CAPI_D3D.h>
|
||||||
|
# endif
|
||||||
# endif // BGFX_CONFIG_RENDERER_DIRECT3D11
|
# endif // BGFX_CONFIG_RENDERER_DIRECT3D11
|
||||||
|
|
||||||
# if BGFX_CONFIG_RENDERER_OPENGL
|
# if BGFX_CONFIG_RENDERER_OPENGL
|
||||||
# include <OVR_GL.h>
|
# if OVR_VERSION < OVR_VERSION_050
|
||||||
|
# include <OVR_GL.h>
|
||||||
|
# else
|
||||||
|
# include <OVR_CAPI_GL.h>
|
||||||
|
# endif
|
||||||
# endif // BGFX_CONFIG_RENDERER_OPENGL
|
# endif // BGFX_CONFIG_RENDERER_OPENGL
|
||||||
|
|
||||||
namespace bgfx
|
namespace bgfx
|
||||||
@ -146,3 +168,5 @@ namespace bgfx
|
|||||||
} // namespace bgfx
|
} // namespace bgfx
|
||||||
|
|
||||||
#endif // BGFX_CONFIG_USE_OVR
|
#endif // BGFX_CONFIG_USE_OVR
|
||||||
|
|
||||||
|
#endif // BGFX_OVR_H_HEADER_GUARD
|
||||||
|
5
3rdparty/bgfx/src/renderdoc.h
vendored
5
3rdparty/bgfx/src/renderdoc.h
vendored
@ -3,9 +3,14 @@
|
|||||||
* License: http://www.opensource.org/licenses/BSD-2-Clause
|
* License: http://www.opensource.org/licenses/BSD-2-Clause
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifndef BGFX_RENDERDOC_H_HEADER_GUARD
|
||||||
|
#define BGFX_RENDERDOC_H_HEADER_GUARD
|
||||||
|
|
||||||
namespace bgfx
|
namespace bgfx
|
||||||
{
|
{
|
||||||
void* loadRenderDoc();
|
void* loadRenderDoc();
|
||||||
void unloadRenderDoc(void*);
|
void unloadRenderDoc(void*);
|
||||||
|
|
||||||
} // namespace bgfx
|
} // namespace bgfx
|
||||||
|
|
||||||
|
#endif // BGFX_RENDERDOC_H_HEADER_GUARD
|
||||||
|
5
3rdparty/bgfx/src/renderer.h
vendored
5
3rdparty/bgfx/src/renderer.h
vendored
@ -3,6 +3,9 @@
|
|||||||
* License: http://www.opensource.org/licenses/BSD-2-Clause
|
* License: http://www.opensource.org/licenses/BSD-2-Clause
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifndef BGFX_RENDERER_H_HEADER_GUARD
|
||||||
|
#define BGFX_RENDERER_H_HEADER_GUARD
|
||||||
|
|
||||||
#include "bgfx_p.h"
|
#include "bgfx_p.h"
|
||||||
|
|
||||||
namespace bgfx
|
namespace bgfx
|
||||||
@ -262,3 +265,5 @@ namespace bgfx
|
|||||||
};
|
};
|
||||||
|
|
||||||
} // namespace bgfx
|
} // namespace bgfx
|
||||||
|
|
||||||
|
#endif // BGFX_RENDERER_H_HEADER_GUARD
|
||||||
|
63
3rdparty/bgfx/src/renderer_d3d11.cpp
vendored
63
3rdparty/bgfx/src/renderer_d3d11.cpp
vendored
@ -8,7 +8,7 @@
|
|||||||
#if BGFX_CONFIG_RENDERER_DIRECT3D11
|
#if BGFX_CONFIG_RENDERER_DIRECT3D11
|
||||||
# include "renderer_d3d11.h"
|
# include "renderer_d3d11.h"
|
||||||
|
|
||||||
namespace bgfx
|
namespace bgfx { namespace d3d11
|
||||||
{
|
{
|
||||||
static wchar_t s_viewNameW[BGFX_CONFIG_MAX_VIEWS][BGFX_CONFIG_MAX_VIEW_NAME];
|
static wchar_t s_viewNameW[BGFX_CONFIG_MAX_VIEWS][BGFX_CONFIG_MAX_VIEW_NAME];
|
||||||
|
|
||||||
@ -513,7 +513,10 @@ namespace bgfx
|
|||||||
m_driverType = D3D_DRIVER_TYPE_HARDWARE;
|
m_driverType = D3D_DRIVER_TYPE_HARDWARE;
|
||||||
|
|
||||||
IDXGIAdapter* adapter;
|
IDXGIAdapter* adapter;
|
||||||
for (uint32_t ii = 0; DXGI_ERROR_NOT_FOUND != factory->EnumAdapters(ii, &adapter); ++ii)
|
for (uint32_t ii = 0
|
||||||
|
; DXGI_ERROR_NOT_FOUND != factory->EnumAdapters(ii, &adapter) && ii < BX_COUNTOF(g_caps.gpu)
|
||||||
|
; ++ii
|
||||||
|
)
|
||||||
{
|
{
|
||||||
DXGI_ADAPTER_DESC desc;
|
DXGI_ADAPTER_DESC desc;
|
||||||
hr = adapter->GetDesc(&desc);
|
hr = adapter->GetDesc(&desc);
|
||||||
@ -536,11 +539,27 @@ namespace bgfx
|
|||||||
, desc.SharedSystemMemory
|
, desc.SharedSystemMemory
|
||||||
);
|
);
|
||||||
|
|
||||||
if (BX_ENABLED(BGFX_CONFIG_DEBUG_PERFHUD)
|
g_caps.gpu[ii].vendorId = (uint16_t)desc.VendorId;
|
||||||
&& 0 != strstr(description, "PerfHUD") )
|
g_caps.gpu[ii].deviceId = (uint16_t)desc.DeviceId;
|
||||||
|
++g_caps.numGPUs;
|
||||||
|
|
||||||
|
if (NULL == m_adapter)
|
||||||
{
|
{
|
||||||
m_adapter = adapter;
|
if ( (BGFX_PCI_ID_NONE != g_caps.vendorId || 0 != g_caps.deviceId)
|
||||||
m_driverType = D3D_DRIVER_TYPE_REFERENCE;
|
&& (BGFX_PCI_ID_NONE == g_caps.vendorId || desc.VendorId == g_caps.vendorId)
|
||||||
|
&& ( 0 == g_caps.deviceId || desc.DeviceId == g_caps.deviceId) )
|
||||||
|
{
|
||||||
|
m_adapter = adapter;
|
||||||
|
m_adapter->AddRef();
|
||||||
|
m_driverType = D3D_DRIVER_TYPE_UNKNOWN;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (BX_ENABLED(BGFX_CONFIG_DEBUG_PERFHUD)
|
||||||
|
&& 0 != strstr(description, "PerfHUD") )
|
||||||
|
{
|
||||||
|
m_adapter = adapter;
|
||||||
|
m_driverType = D3D_DRIVER_TYPE_REFERENCE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -594,6 +613,11 @@ namespace bgfx
|
|||||||
}
|
}
|
||||||
BGFX_FATAL(SUCCEEDED(hr), Fatal::UnableToInitialize, "Unable to create Direct3D11 device.");
|
BGFX_FATAL(SUCCEEDED(hr), Fatal::UnableToInitialize, "Unable to create Direct3D11 device.");
|
||||||
|
|
||||||
|
if (NULL != m_adapter)
|
||||||
|
{
|
||||||
|
DX_RELEASE(m_adapter, 2);
|
||||||
|
}
|
||||||
|
|
||||||
IDXGIDevice* device = NULL;
|
IDXGIDevice* device = NULL;
|
||||||
hr = E_FAIL;
|
hr = E_FAIL;
|
||||||
for (uint32_t ii = 0; ii < BX_COUNTOF(s_deviceIIDs) && FAILED(hr); ++ii)
|
for (uint32_t ii = 0; ii < BX_COUNTOF(s_deviceIIDs) && FAILED(hr); ++ii)
|
||||||
@ -616,6 +640,8 @@ namespace bgfx
|
|||||||
|
|
||||||
hr = adapter->GetDesc(&m_adapterDesc);
|
hr = adapter->GetDesc(&m_adapterDesc);
|
||||||
BGFX_FATAL(SUCCEEDED(hr), Fatal::UnableToInitialize, "Unable to create Direct3D11 device.");
|
BGFX_FATAL(SUCCEEDED(hr), Fatal::UnableToInitialize, "Unable to create Direct3D11 device.");
|
||||||
|
g_caps.vendorId = (uint16_t)m_adapterDesc.VendorId;
|
||||||
|
g_caps.deviceId = (uint16_t)m_adapterDesc.DeviceId;
|
||||||
|
|
||||||
#if BX_PLATFORM_WINRT
|
#if BX_PLATFORM_WINRT
|
||||||
hr = adapter->GetParent(__uuidof(IDXGIFactory2), (void**)&m_factory);
|
hr = adapter->GetParent(__uuidof(IDXGIFactory2), (void**)&m_factory);
|
||||||
@ -673,6 +699,7 @@ namespace bgfx
|
|||||||
|
|
||||||
m_numWindows = 1;
|
m_numWindows = 1;
|
||||||
|
|
||||||
|
#if !defined(__MINGW32__)
|
||||||
if (BX_ENABLED(BGFX_CONFIG_DEBUG) )
|
if (BX_ENABLED(BGFX_CONFIG_DEBUG) )
|
||||||
{
|
{
|
||||||
ID3D11InfoQueue* infoQueue;
|
ID3D11InfoQueue* infoQueue;
|
||||||
@ -704,6 +731,7 @@ namespace bgfx
|
|||||||
setGraphicsDebuggerPresent(true);
|
setGraphicsDebuggerPresent(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif // __MINGW__
|
||||||
|
|
||||||
UniformHandle handle = BGFX_INVALID_HANDLE;
|
UniformHandle handle = BGFX_INVALID_HANDLE;
|
||||||
for (uint32_t ii = 0; ii < PredefinedUniform::Count; ++ii)
|
for (uint32_t ii = 0; ii < PredefinedUniform::Count; ++ii)
|
||||||
@ -734,7 +762,7 @@ namespace bgfx
|
|||||||
{
|
{
|
||||||
D3D11_FEATURE_DATA_FORMAT_SUPPORT data; // D3D11_FEATURE_DATA_FORMAT_SUPPORT2
|
D3D11_FEATURE_DATA_FORMAT_SUPPORT data; // D3D11_FEATURE_DATA_FORMAT_SUPPORT2
|
||||||
data.InFormat = s_textureFormat[ii].m_fmt;
|
data.InFormat = s_textureFormat[ii].m_fmt;
|
||||||
HRESULT hr = m_device->CheckFeatureSupport(D3D11_FEATURE_FORMAT_SUPPORT, &data, sizeof(data) );
|
hr = m_device->CheckFeatureSupport(D3D11_FEATURE_FORMAT_SUPPORT, &data, sizeof(data) );
|
||||||
if (SUCCEEDED(hr) )
|
if (SUCCEEDED(hr) )
|
||||||
{
|
{
|
||||||
support |= 0 != (data.OutFormatSupport & (0
|
support |= 0 != (data.OutFormatSupport & (0
|
||||||
@ -2299,14 +2327,14 @@ namespace bgfx
|
|||||||
|
|
||||||
static RendererContextD3D11* s_renderD3D11;
|
static RendererContextD3D11* s_renderD3D11;
|
||||||
|
|
||||||
RendererContextI* rendererCreateD3D11()
|
RendererContextI* rendererCreate()
|
||||||
{
|
{
|
||||||
s_renderD3D11 = BX_NEW(g_allocator, RendererContextD3D11);
|
s_renderD3D11 = BX_NEW(g_allocator, RendererContextD3D11);
|
||||||
s_renderD3D11->init();
|
s_renderD3D11->init();
|
||||||
return s_renderD3D11;
|
return s_renderD3D11;
|
||||||
}
|
}
|
||||||
|
|
||||||
void rendererDestroyD3D11()
|
void rendererDestroy()
|
||||||
{
|
{
|
||||||
s_renderD3D11->shutdown();
|
s_renderD3D11->shutdown();
|
||||||
BX_DELETE(g_allocator, s_renderD3D11);
|
BX_DELETE(g_allocator, s_renderD3D11);
|
||||||
@ -3123,6 +3151,7 @@ namespace bgfx
|
|||||||
uint32_t statsNumPrimsRendered[BX_COUNTOF(s_primInfo)] = {};
|
uint32_t statsNumPrimsRendered[BX_COUNTOF(s_primInfo)] = {};
|
||||||
uint32_t statsNumInstances[BX_COUNTOF(s_primInfo)] = {};
|
uint32_t statsNumInstances[BX_COUNTOF(s_primInfo)] = {};
|
||||||
uint32_t statsNumIndices = 0;
|
uint32_t statsNumIndices = 0;
|
||||||
|
uint32_t statsKeyType[2] = {};
|
||||||
|
|
||||||
if (0 == (_render->m_debug&BGFX_DEBUG_IFH) )
|
if (0 == (_render->m_debug&BGFX_DEBUG_IFH) )
|
||||||
{
|
{
|
||||||
@ -3135,6 +3164,8 @@ namespace bgfx
|
|||||||
for (int32_t item = 0, restartItem = numItems; item < numItems || restartItem < numItems;)
|
for (int32_t item = 0, restartItem = numItems; item < numItems || restartItem < numItems;)
|
||||||
{
|
{
|
||||||
const bool isCompute = key.decode(_render->m_sortKeys[item], _render->m_viewRemap);
|
const bool isCompute = key.decode(_render->m_sortKeys[item], _render->m_viewRemap);
|
||||||
|
statsKeyType[isCompute]++;
|
||||||
|
|
||||||
const bool viewChanged = 0
|
const bool viewChanged = 0
|
||||||
|| key.m_view != view
|
|| key.m_view != view
|
||||||
|| item == numItems
|
|| item == numItems
|
||||||
@ -3778,8 +3809,10 @@ namespace bgfx
|
|||||||
);
|
);
|
||||||
|
|
||||||
double elapsedCpuMs = double(elapsed)*toMs;
|
double elapsedCpuMs = double(elapsed)*toMs;
|
||||||
tvm.printf(10, pos++, 0x8e, " Draw calls: %4d / CPU %3.4f [ms]"
|
tvm.printf(10, pos++, 0x8e, " Submitted: %4d (draw %4d, compute %4d) / CPU %3.4f [ms]"
|
||||||
, _render->m_num
|
, _render->m_num
|
||||||
|
, statsKeyType[0]
|
||||||
|
, statsKeyType[1]
|
||||||
, elapsedCpuMs
|
, elapsedCpuMs
|
||||||
);
|
);
|
||||||
for (uint32_t ii = 0; ii < BX_COUNTOF(s_primName); ++ii)
|
for (uint32_t ii = 0; ii < BX_COUNTOF(s_primName); ++ii)
|
||||||
@ -3839,20 +3872,20 @@ namespace bgfx
|
|||||||
PIX_ENDEVENT();
|
PIX_ENDEVENT();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} // namespace bgfx
|
} /* namespace d3d11 */ } // namespace bgfx
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
namespace bgfx
|
namespace bgfx { namespace d3d11
|
||||||
{
|
{
|
||||||
RendererContextI* rendererCreateD3D11()
|
RendererContextI* rendererCreate()
|
||||||
{
|
{
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void rendererDestroyD3D11()
|
void rendererDestroy()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
} // namespace bgfx
|
} /* namespace d3d11 */ } // namespace bgfx
|
||||||
|
|
||||||
#endif // BGFX_CONFIG_RENDERER_DIRECT3D11
|
#endif // BGFX_CONFIG_RENDERER_DIRECT3D11
|
||||||
|
56
3rdparty/bgfx/src/renderer_d3d11.h
vendored
56
3rdparty/bgfx/src/renderer_d3d11.h
vendored
@ -49,28 +49,50 @@ BX_PRAGMA_DIAGNOSTIC_POP()
|
|||||||
# define D3D_FEATURE_LEVEL_11_1 D3D_FEATURE_LEVEL(0xb100)
|
# define D3D_FEATURE_LEVEL_11_1 D3D_FEATURE_LEVEL(0xb100)
|
||||||
#endif // D3D_FEATURE_LEVEL_11_1
|
#endif // D3D_FEATURE_LEVEL_11_1
|
||||||
|
|
||||||
|
#if defined(__MINGW32__)
|
||||||
// MinGW Linux/Wine missing defines...
|
// MinGW Linux/Wine missing defines...
|
||||||
#ifndef D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT
|
# ifndef D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT
|
||||||
# define D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT 8
|
# define D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT 8
|
||||||
#endif // D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT
|
# endif // D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT
|
||||||
|
|
||||||
#ifndef D3D11_PS_CS_UAV_REGISTER_COUNT
|
# ifndef D3D11_PS_CS_UAV_REGISTER_COUNT
|
||||||
# define D3D11_PS_CS_UAV_REGISTER_COUNT 8
|
# define D3D11_PS_CS_UAV_REGISTER_COUNT 8
|
||||||
#endif // D3D11_PS_CS_UAV_REGISTER_COUNT
|
# endif // D3D11_PS_CS_UAV_REGISTER_COUNT
|
||||||
|
|
||||||
#ifndef D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT
|
# ifndef D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT
|
||||||
# define D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT 8
|
# define D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT 8
|
||||||
#endif
|
# endif
|
||||||
|
|
||||||
#ifndef D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT
|
# ifndef D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT
|
||||||
# define D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT 8
|
# define D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT 8
|
||||||
#endif // D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT
|
# endif // D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT
|
||||||
|
|
||||||
#ifndef D3D11_APPEND_ALIGNED_ELEMENT
|
# ifndef D3D11_APPEND_ALIGNED_ELEMENT
|
||||||
# define D3D11_APPEND_ALIGNED_ELEMENT UINT32_MAX
|
# define D3D11_APPEND_ALIGNED_ELEMENT UINT32_MAX
|
||||||
#endif // D3D11_APPEND_ALIGNED_ELEMENT
|
# endif // D3D11_APPEND_ALIGNED_ELEMENT
|
||||||
|
|
||||||
namespace bgfx
|
# ifndef D3D11_REQ_MAXANISOTROPY
|
||||||
|
# define D3D11_REQ_MAXANISOTROPY 16
|
||||||
|
# endif // D3D11_REQ_MAXANISOTROPY
|
||||||
|
|
||||||
|
# ifndef D3D11_FEATURE_DATA_FORMAT_SUPPORT
|
||||||
|
typedef struct D3D11_FEATURE_DATA_FORMAT_SUPPORT
|
||||||
|
{
|
||||||
|
DXGI_FORMAT InFormat;
|
||||||
|
UINT OutFormatSupport;
|
||||||
|
} D3D11_FEATURE_DATA_FORMAT_SUPPORT;
|
||||||
|
# endif // D3D11_FEATURE_DATA_FORMAT_SUPPORT
|
||||||
|
|
||||||
|
# ifndef D3D11_FEATURE_DATA_FORMAT_SUPPORT2
|
||||||
|
typedef struct D3D11_FEATURE_DATA_FORMAT_SUPPORT2
|
||||||
|
{
|
||||||
|
DXGI_FORMAT InFormat;
|
||||||
|
UINT OutFormatSupport2;
|
||||||
|
} D3D11_FEATURE_DATA_FORMAT_SUPPORT2;
|
||||||
|
# endif // D3D11_FEATURE_DATA_FORMAT_SUPPORT2
|
||||||
|
#endif // __MINGW32__
|
||||||
|
|
||||||
|
namespace bgfx { namespace d3d11
|
||||||
{
|
{
|
||||||
struct BufferD3D11
|
struct BufferD3D11
|
||||||
{
|
{
|
||||||
@ -280,6 +302,6 @@ namespace bgfx
|
|||||||
uint8_t m_num;
|
uint8_t m_num;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace bgfx
|
} /* namespace d3d11 */ } // namespace bgfx
|
||||||
|
|
||||||
#endif // BGFX_RENDERER_D3D11_H_HEADER_GUARD
|
#endif // BGFX_RENDERER_D3D11_H_HEADER_GUARD
|
||||||
|
8
3rdparty/bgfx/src/renderer_d3d12.cpp
vendored
8
3rdparty/bgfx/src/renderer_d3d12.cpp
vendored
@ -9,16 +9,16 @@
|
|||||||
# include "../../d3d12/src/renderer_d3d12.cpp"
|
# include "../../d3d12/src/renderer_d3d12.cpp"
|
||||||
#else
|
#else
|
||||||
|
|
||||||
namespace bgfx
|
namespace bgfx { namespace d3d12
|
||||||
{
|
{
|
||||||
RendererContextI* rendererCreateD3D12()
|
RendererContextI* rendererCreate()
|
||||||
{
|
{
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void rendererDestroyD3D12()
|
void rendererDestroy()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
} // namespace bgfx
|
} /* namespace d3d12 */ } // namespace bgfx
|
||||||
|
|
||||||
#endif // BGFX_CONFIG_RENDERER_DIRECT3D12
|
#endif // BGFX_CONFIG_RENDERER_DIRECT3D12
|
||||||
|
89
3rdparty/bgfx/src/renderer_d3d9.cpp
vendored
89
3rdparty/bgfx/src/renderer_d3d9.cpp
vendored
@ -8,7 +8,7 @@
|
|||||||
#if BGFX_CONFIG_RENDERER_DIRECT3D9
|
#if BGFX_CONFIG_RENDERER_DIRECT3D9
|
||||||
# include "renderer_d3d9.h"
|
# include "renderer_d3d9.h"
|
||||||
|
|
||||||
namespace bgfx
|
namespace bgfx { namespace d3d9
|
||||||
{
|
{
|
||||||
static wchar_t s_viewNameW[BGFX_CONFIG_MAX_VIEWS][BGFX_CONFIG_MAX_VIEW_NAME];
|
static wchar_t s_viewNameW[BGFX_CONFIG_MAX_VIEWS][BGFX_CONFIG_MAX_VIEW_NAME];
|
||||||
|
|
||||||
@ -359,37 +359,51 @@ namespace bgfx
|
|||||||
m_adapter = D3DADAPTER_DEFAULT;
|
m_adapter = D3DADAPTER_DEFAULT;
|
||||||
m_deviceType = D3DDEVTYPE_HAL;
|
m_deviceType = D3DDEVTYPE_HAL;
|
||||||
|
|
||||||
uint32_t adapterCount = m_d3d9->GetAdapterCount();
|
uint8_t numGPUs = bx::uint32_min(BX_COUNTOF(g_caps.gpu), m_d3d9->GetAdapterCount() );
|
||||||
for (uint32_t ii = 0; ii < adapterCount; ++ii)
|
for (uint32_t ii = 0; ii < numGPUs; ++ii)
|
||||||
{
|
{
|
||||||
D3DADAPTER_IDENTIFIER9 identifier;
|
D3DADAPTER_IDENTIFIER9 desc;
|
||||||
HRESULT hr = m_d3d9->GetAdapterIdentifier(ii, 0, &identifier);
|
HRESULT hr = m_d3d9->GetAdapterIdentifier(ii, 0, &desc);
|
||||||
if (SUCCEEDED(hr) )
|
if (SUCCEEDED(hr) )
|
||||||
{
|
{
|
||||||
BX_TRACE("Adapter #%d", ii);
|
BX_TRACE("Adapter #%d", ii);
|
||||||
BX_TRACE("\tDriver: %s", identifier.Driver);
|
BX_TRACE("\tDriver: %s", desc.Driver);
|
||||||
BX_TRACE("\tDescription: %s", identifier.Description);
|
BX_TRACE("\tDescription: %s", desc.Description);
|
||||||
BX_TRACE("\tDeviceName: %s", identifier.DeviceName);
|
BX_TRACE("\tDeviceName: %s", desc.DeviceName);
|
||||||
BX_TRACE("\tVendorId: 0x%08x, DeviceId: 0x%08x, SubSysId: 0x%08x, Revision: 0x%08x"
|
BX_TRACE("\tVendorId: 0x%08x, DeviceId: 0x%08x, SubSysId: 0x%08x, Revision: 0x%08x"
|
||||||
, identifier.VendorId
|
, desc.VendorId
|
||||||
, identifier.DeviceId
|
, desc.DeviceId
|
||||||
, identifier.SubSysId
|
, desc.SubSysId
|
||||||
, identifier.Revision
|
, desc.Revision
|
||||||
);
|
);
|
||||||
|
|
||||||
#if BGFX_CONFIG_DEBUG_PERFHUD
|
g_caps.gpu[ii].vendorId = (uint16_t)desc.VendorId;
|
||||||
if (0 != strstr(identifier.Description, "PerfHUD") )
|
g_caps.gpu[ii].deviceId = (uint16_t)desc.DeviceId;
|
||||||
|
|
||||||
|
if (D3DADAPTER_DEFAULT == m_adapter)
|
||||||
{
|
{
|
||||||
m_adapter = ii;
|
if ( (BGFX_PCI_ID_NONE != g_caps.vendorId || 0 != g_caps.deviceId)
|
||||||
m_deviceType = D3DDEVTYPE_REF;
|
&& (BGFX_PCI_ID_NONE == g_caps.vendorId || desc.VendorId == g_caps.vendorId)
|
||||||
|
&& ( 0 == g_caps.deviceId || desc.DeviceId == g_caps.deviceId) )
|
||||||
|
{
|
||||||
|
m_adapter = ii;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (BX_ENABLED(BGFX_CONFIG_DEBUG_PERFHUD)
|
||||||
|
&& 0 != strstr(desc.Description, "PerfHUD"))
|
||||||
|
{
|
||||||
|
m_adapter = ii;
|
||||||
|
m_deviceType = D3DDEVTYPE_REF;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif // BGFX_CONFIG_DEBUG_PERFHUD
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DX_CHECK(m_d3d9->GetAdapterIdentifier(m_adapter, 0, &m_identifier) );
|
DX_CHECK(m_d3d9->GetAdapterIdentifier(m_adapter, 0, &m_identifier) );
|
||||||
m_amd = m_identifier.VendorId == 0x1002;
|
m_amd = m_identifier.VendorId == BGFX_PCI_ID_AMD;
|
||||||
m_nvidia = m_identifier.VendorId == 0x10de;
|
m_nvidia = m_identifier.VendorId == BGFX_PCI_ID_NVIDIA;
|
||||||
|
g_caps.vendorId = (uint16_t)m_identifier.VendorId;
|
||||||
|
g_caps.deviceId = (uint16_t)m_identifier.DeviceId;
|
||||||
|
|
||||||
uint32_t behaviorFlags[] =
|
uint32_t behaviorFlags[] =
|
||||||
{
|
{
|
||||||
@ -1731,14 +1745,14 @@ namespace bgfx
|
|||||||
|
|
||||||
static RendererContextD3D9* s_renderD3D9;
|
static RendererContextD3D9* s_renderD3D9;
|
||||||
|
|
||||||
RendererContextI* rendererCreateD3D9()
|
RendererContextI* rendererCreate()
|
||||||
{
|
{
|
||||||
s_renderD3D9 = BX_NEW(g_allocator, RendererContextD3D9);
|
s_renderD3D9 = BX_NEW(g_allocator, RendererContextD3D9);
|
||||||
s_renderD3D9->init();
|
s_renderD3D9->init();
|
||||||
return s_renderD3D9;
|
return s_renderD3D9;
|
||||||
}
|
}
|
||||||
|
|
||||||
void rendererDestroyD3D9()
|
void rendererDestroy()
|
||||||
{
|
{
|
||||||
s_renderD3D9->shutdown();
|
s_renderD3D9->shutdown();
|
||||||
BX_DELETE(g_allocator, s_renderD3D9);
|
BX_DELETE(g_allocator, s_renderD3D9);
|
||||||
@ -2215,10 +2229,10 @@ namespace bgfx
|
|||||||
if (NULL != _rect)
|
if (NULL != _rect)
|
||||||
{
|
{
|
||||||
RECT rect;
|
RECT rect;
|
||||||
rect.left = _rect->m_x;
|
rect.left = _rect->m_x;
|
||||||
rect.top = _rect->m_y;
|
rect.top = _rect->m_y;
|
||||||
rect.right = rect.left + _rect->m_width;
|
rect.right = rect.left + _rect->m_width;
|
||||||
rect.bottom = rect.top + _rect->m_height;
|
rect.bottom = rect.top + _rect->m_height;
|
||||||
DX_CHECK(m_texture2d->LockRect(_lod, &lockedRect, &rect, 0) );
|
DX_CHECK(m_texture2d->LockRect(_lod, &lockedRect, &rect, 0) );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -2494,7 +2508,7 @@ namespace bgfx
|
|||||||
|
|
||||||
if (convert)
|
if (convert)
|
||||||
{
|
{
|
||||||
uint8_t* temp = (uint8_t*)BX_ALLOC(g_allocator, rectpitch*_rect.m_height);
|
temp = (uint8_t*)BX_ALLOC(g_allocator, rectpitch*_rect.m_height);
|
||||||
imageDecodeToBgra8(temp, data, _rect.m_width, _rect.m_height, srcpitch, m_requestedFormat);
|
imageDecodeToBgra8(temp, data, _rect.m_width, _rect.m_height, srcpitch, m_requestedFormat);
|
||||||
data = temp;
|
data = temp;
|
||||||
}
|
}
|
||||||
@ -2864,8 +2878,11 @@ namespace bgfx
|
|||||||
FrameBufferHandle fbh = BGFX_INVALID_HANDLE;
|
FrameBufferHandle fbh = BGFX_INVALID_HANDLE;
|
||||||
uint32_t blendFactor = 0;
|
uint32_t blendFactor = 0;
|
||||||
|
|
||||||
const uint64_t pt = _render->m_debug&BGFX_DEBUG_WIREFRAME ? BGFX_STATE_PT_LINES : 0;
|
uint8_t primIndex;
|
||||||
uint8_t primIndex = uint8_t(pt>>BGFX_STATE_PT_SHIFT);
|
{
|
||||||
|
const uint64_t pt = _render->m_debug&BGFX_DEBUG_WIREFRAME ? BGFX_STATE_PT_LINES : 0;
|
||||||
|
primIndex = uint8_t(pt>>BGFX_STATE_PT_SHIFT);
|
||||||
|
}
|
||||||
PrimInfo prim = s_primInfo[primIndex];
|
PrimInfo prim = s_primInfo[primIndex];
|
||||||
|
|
||||||
bool viewHasScissor = false;
|
bool viewHasScissor = false;
|
||||||
@ -2876,6 +2893,7 @@ namespace bgfx
|
|||||||
uint32_t statsNumPrimsRendered[BX_COUNTOF(s_primInfo)] = {};
|
uint32_t statsNumPrimsRendered[BX_COUNTOF(s_primInfo)] = {};
|
||||||
uint32_t statsNumInstances[BX_COUNTOF(s_primInfo)] = {};
|
uint32_t statsNumInstances[BX_COUNTOF(s_primInfo)] = {};
|
||||||
uint32_t statsNumIndices = 0;
|
uint32_t statsNumIndices = 0;
|
||||||
|
uint32_t statsKeyType[2] = {};
|
||||||
|
|
||||||
invalidateSamplerState();
|
invalidateSamplerState();
|
||||||
|
|
||||||
@ -2884,6 +2902,7 @@ namespace bgfx
|
|||||||
for (uint32_t item = 0, numItems = _render->m_num; item < numItems; ++item)
|
for (uint32_t item = 0, numItems = _render->m_num; item < numItems; ++item)
|
||||||
{
|
{
|
||||||
const bool isCompute = key.decode(_render->m_sortKeys[item], _render->m_viewRemap);
|
const bool isCompute = key.decode(_render->m_sortKeys[item], _render->m_viewRemap);
|
||||||
|
statsKeyType[isCompute]++;
|
||||||
|
|
||||||
if (isCompute)
|
if (isCompute)
|
||||||
{
|
{
|
||||||
@ -3414,8 +3433,10 @@ namespace bgfx
|
|||||||
);
|
);
|
||||||
|
|
||||||
double elapsedCpuMs = double(elapsed)*toMs;
|
double elapsedCpuMs = double(elapsed)*toMs;
|
||||||
tvm.printf(10, pos++, 0x8e, " Draw calls: %4d / CPU %3.4f [ms]"
|
tvm.printf(10, pos++, 0x8e, " Submitted: %4d (draw %4d, compute %4d) / CPU %3.4f [ms]"
|
||||||
, _render->m_num
|
, _render->m_num
|
||||||
|
, statsKeyType[0]
|
||||||
|
, statsKeyType[1]
|
||||||
, elapsedCpuMs
|
, elapsedCpuMs
|
||||||
);
|
);
|
||||||
for (uint32_t ii = 0; ii < BX_COUNTOF(s_primName); ++ii)
|
for (uint32_t ii = 0; ii < BX_COUNTOF(s_primName); ++ii)
|
||||||
@ -3460,20 +3481,20 @@ namespace bgfx
|
|||||||
|
|
||||||
device->EndScene();
|
device->EndScene();
|
||||||
}
|
}
|
||||||
} // namespace bgfx
|
} /* namespace d3d9 */ } // namespace bgfx
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
namespace bgfx
|
namespace bgfx { namespace d3d9
|
||||||
{
|
{
|
||||||
RendererContextI* rendererCreateD3D9()
|
RendererContextI* rendererCreate()
|
||||||
{
|
{
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void rendererDestroyD3D9()
|
void rendererDestroy()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
} // namespace bgfx
|
} /* namespace d3d9 */ } // namespace bgfx
|
||||||
|
|
||||||
#endif // BGFX_CONFIG_RENDERER_DIRECT3D9
|
#endif // BGFX_CONFIG_RENDERER_DIRECT3D9
|
||||||
|
4
3rdparty/bgfx/src/renderer_d3d9.h
vendored
4
3rdparty/bgfx/src/renderer_d3d9.h
vendored
@ -41,7 +41,7 @@
|
|||||||
#include "renderer.h"
|
#include "renderer.h"
|
||||||
#include "renderer_d3d.h"
|
#include "renderer_d3d.h"
|
||||||
|
|
||||||
namespace bgfx
|
namespace bgfx { namespace d3d9
|
||||||
{
|
{
|
||||||
# if defined(D3D_DISABLE_9EX)
|
# if defined(D3D_DISABLE_9EX)
|
||||||
# define D3DFMT_S8_LOCKABLE D3DFORMAT( 85)
|
# define D3DFMT_S8_LOCKABLE D3DFORMAT( 85)
|
||||||
@ -386,6 +386,6 @@ namespace bgfx
|
|||||||
bool m_needResolve;
|
bool m_needResolve;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace bgfx
|
} /* namespace d3d9 */ } // namespace bgfx
|
||||||
|
|
||||||
#endif // BGFX_RENDERER_D3D9_H_HEADER_GUARD
|
#endif // BGFX_RENDERER_D3D9_H_HEADER_GUARD
|
||||||
|
259
3rdparty/bgfx/src/renderer_gl.cpp
vendored
259
3rdparty/bgfx/src/renderer_gl.cpp
vendored
@ -10,7 +10,7 @@
|
|||||||
# include <bx/timer.h>
|
# include <bx/timer.h>
|
||||||
# include <bx/uint32_t.h>
|
# include <bx/uint32_t.h>
|
||||||
|
|
||||||
namespace bgfx
|
namespace bgfx { namespace gl
|
||||||
{
|
{
|
||||||
static char s_viewName[BGFX_CONFIG_MAX_VIEWS][BGFX_CONFIG_MAX_VIEW_NAME];
|
static char s_viewName[BGFX_CONFIG_MAX_VIEWS][BGFX_CONFIG_MAX_VIEW_NAME];
|
||||||
|
|
||||||
@ -237,6 +237,8 @@ namespace bgfx
|
|||||||
};
|
};
|
||||||
BX_STATIC_ASSERT(TextureFormat::Count == BX_COUNTOF(s_textureFormat) );
|
BX_STATIC_ASSERT(TextureFormat::Count == BX_COUNTOF(s_textureFormat) );
|
||||||
|
|
||||||
|
static bool s_textureFilter[TextureFormat::Count+1];
|
||||||
|
|
||||||
static GLenum s_rboFormat[] =
|
static GLenum s_rboFormat[] =
|
||||||
{
|
{
|
||||||
GL_ZERO, // BC1
|
GL_ZERO, // BC1
|
||||||
@ -358,6 +360,7 @@ namespace bgfx
|
|||||||
ANGLE_texture_compression_dxt1,
|
ANGLE_texture_compression_dxt1,
|
||||||
ANGLE_texture_compression_dxt3,
|
ANGLE_texture_compression_dxt3,
|
||||||
ANGLE_texture_compression_dxt5,
|
ANGLE_texture_compression_dxt5,
|
||||||
|
ANGLE_timer_query,
|
||||||
ANGLE_translated_shader_source,
|
ANGLE_translated_shader_source,
|
||||||
|
|
||||||
APPLE_texture_format_BGRA8888,
|
APPLE_texture_format_BGRA8888,
|
||||||
@ -417,10 +420,13 @@ namespace bgfx
|
|||||||
EXT_blend_color,
|
EXT_blend_color,
|
||||||
EXT_blend_minmax,
|
EXT_blend_minmax,
|
||||||
EXT_blend_subtract,
|
EXT_blend_subtract,
|
||||||
|
EXT_color_buffer_half_float,
|
||||||
|
EXT_color_buffer_float,
|
||||||
EXT_compressed_ETC1_RGB8_sub_texture,
|
EXT_compressed_ETC1_RGB8_sub_texture,
|
||||||
EXT_debug_label,
|
EXT_debug_label,
|
||||||
EXT_debug_marker,
|
EXT_debug_marker,
|
||||||
EXT_discard_framebuffer,
|
EXT_discard_framebuffer,
|
||||||
|
EXT_disjoint_timer_query,
|
||||||
EXT_draw_buffers,
|
EXT_draw_buffers,
|
||||||
EXT_frag_depth,
|
EXT_frag_depth,
|
||||||
EXT_framebuffer_blit,
|
EXT_framebuffer_blit,
|
||||||
@ -491,10 +497,12 @@ namespace bgfx
|
|||||||
OES_vertex_half_float,
|
OES_vertex_half_float,
|
||||||
OES_vertex_type_10_10_10_2,
|
OES_vertex_type_10_10_10_2,
|
||||||
|
|
||||||
|
WEBGL_color_buffer_float,
|
||||||
WEBGL_compressed_texture_etc1,
|
WEBGL_compressed_texture_etc1,
|
||||||
WEBGL_compressed_texture_s3tc,
|
WEBGL_compressed_texture_s3tc,
|
||||||
WEBGL_compressed_texture_pvrtc,
|
WEBGL_compressed_texture_pvrtc,
|
||||||
WEBGL_depth_texture,
|
WEBGL_depth_texture,
|
||||||
|
WEBGL_draw_buffers,
|
||||||
|
|
||||||
WEBKIT_EXT_texture_filter_anisotropic,
|
WEBKIT_EXT_texture_filter_anisotropic,
|
||||||
WEBKIT_WEBGL_compressed_texture_s3tc,
|
WEBKIT_WEBGL_compressed_texture_s3tc,
|
||||||
@ -508,7 +516,27 @@ namespace bgfx
|
|||||||
bool m_initialize;
|
bool m_initialize;
|
||||||
};
|
};
|
||||||
|
|
||||||
static Extension s_extension[Extension::Count] =
|
// Extension registry
|
||||||
|
//
|
||||||
|
// ANGLE:
|
||||||
|
// https://github.com/google/angle/tree/master/extensions
|
||||||
|
//
|
||||||
|
// CHROMIUM:
|
||||||
|
// https://chromium.googlesource.com/chromium/src.git/+/refs/heads/git-svn/gpu/GLES2/extensions/CHROMIUM
|
||||||
|
//
|
||||||
|
// EGL:
|
||||||
|
// https://www.khronos.org/registry/egl/extensions/
|
||||||
|
//
|
||||||
|
// GL:
|
||||||
|
// https://www.opengl.org/registry/
|
||||||
|
//
|
||||||
|
// GLES:
|
||||||
|
// https://www.khronos.org/registry/gles/extensions/
|
||||||
|
//
|
||||||
|
// WEBGL:
|
||||||
|
// https://www.khronos.org/registry/webgl/extensions/
|
||||||
|
//
|
||||||
|
static Extension s_extension[] =
|
||||||
{
|
{
|
||||||
{ "AMD_conservative_depth", false, true },
|
{ "AMD_conservative_depth", false, true },
|
||||||
|
|
||||||
@ -519,6 +547,7 @@ namespace bgfx
|
|||||||
{ "ANGLE_texture_compression_dxt1", false, true },
|
{ "ANGLE_texture_compression_dxt1", false, true },
|
||||||
{ "ANGLE_texture_compression_dxt3", false, true },
|
{ "ANGLE_texture_compression_dxt3", false, true },
|
||||||
{ "ANGLE_texture_compression_dxt5", false, true },
|
{ "ANGLE_texture_compression_dxt5", false, true },
|
||||||
|
{ "ANGLE_timer_query", false, true },
|
||||||
{ "ANGLE_translated_shader_source", false, true },
|
{ "ANGLE_translated_shader_source", false, true },
|
||||||
|
|
||||||
{ "APPLE_texture_format_BGRA8888", false, true },
|
{ "APPLE_texture_format_BGRA8888", false, true },
|
||||||
@ -578,10 +607,13 @@ namespace bgfx
|
|||||||
{ "EXT_blend_color", BGFX_CONFIG_RENDERER_OPENGL >= 31, true },
|
{ "EXT_blend_color", BGFX_CONFIG_RENDERER_OPENGL >= 31, true },
|
||||||
{ "EXT_blend_minmax", BGFX_CONFIG_RENDERER_OPENGL >= 14, true },
|
{ "EXT_blend_minmax", BGFX_CONFIG_RENDERER_OPENGL >= 14, true },
|
||||||
{ "EXT_blend_subtract", BGFX_CONFIG_RENDERER_OPENGL >= 14, true },
|
{ "EXT_blend_subtract", BGFX_CONFIG_RENDERER_OPENGL >= 14, true },
|
||||||
|
{ "EXT_color_buffer_half_float", false, true }, // GLES2 extension.
|
||||||
|
{ "EXT_color_buffer_float", false, true }, // GLES2 extension.
|
||||||
{ "EXT_compressed_ETC1_RGB8_sub_texture", false, true }, // GLES2 extension.
|
{ "EXT_compressed_ETC1_RGB8_sub_texture", false, true }, // GLES2 extension.
|
||||||
{ "EXT_debug_label", false, true },
|
{ "EXT_debug_label", false, true },
|
||||||
{ "EXT_debug_marker", false, true },
|
{ "EXT_debug_marker", false, true },
|
||||||
{ "EXT_discard_framebuffer", false, true }, // GLES2 extension.
|
{ "EXT_discard_framebuffer", false, true }, // GLES2 extension.
|
||||||
|
{ "EXT_disjoint_timer_query", false, true }, // GLES2 extension.
|
||||||
{ "EXT_draw_buffers", false, true }, // GLES2 extension.
|
{ "EXT_draw_buffers", false, true }, // GLES2 extension.
|
||||||
{ "EXT_frag_depth", false, true }, // GLES2 extension.
|
{ "EXT_frag_depth", false, true }, // GLES2 extension.
|
||||||
{ "EXT_framebuffer_blit", BGFX_CONFIG_RENDERER_OPENGL >= 30, true },
|
{ "EXT_framebuffer_blit", BGFX_CONFIG_RENDERER_OPENGL >= 30, true },
|
||||||
@ -605,7 +637,7 @@ namespace bgfx
|
|||||||
{ "EXT_texture_storage", false, true },
|
{ "EXT_texture_storage", false, true },
|
||||||
{ "EXT_texture_swizzle", false, true },
|
{ "EXT_texture_swizzle", false, true },
|
||||||
{ "EXT_texture_type_2_10_10_10_REV", false, true },
|
{ "EXT_texture_type_2_10_10_10_REV", false, true },
|
||||||
{ "EXT_timer_query", false, true },
|
{ "EXT_timer_query", BGFX_CONFIG_RENDERER_OPENGL >= 33, true },
|
||||||
{ "EXT_unpack_subimage", false, true },
|
{ "EXT_unpack_subimage", false, true },
|
||||||
|
|
||||||
{ "GOOGLE_depth_texture", false, true },
|
{ "GOOGLE_depth_texture", false, true },
|
||||||
@ -652,15 +684,18 @@ namespace bgfx
|
|||||||
{ "OES_vertex_half_float", false, true },
|
{ "OES_vertex_half_float", false, true },
|
||||||
{ "OES_vertex_type_10_10_10_2", false, true },
|
{ "OES_vertex_type_10_10_10_2", false, true },
|
||||||
|
|
||||||
|
{ "WEBGL_color_buffer_float", false, true },
|
||||||
{ "WEBGL_compressed_texture_etc1", false, true },
|
{ "WEBGL_compressed_texture_etc1", false, true },
|
||||||
{ "WEBGL_compressed_texture_s3tc", false, true },
|
{ "WEBGL_compressed_texture_s3tc", false, true },
|
||||||
{ "WEBGL_compressed_texture_pvrtc", false, true },
|
{ "WEBGL_compressed_texture_pvrtc", false, true },
|
||||||
{ "WEBGL_depth_texture", false, true },
|
{ "WEBGL_depth_texture", false, true },
|
||||||
|
{ "WEBGL_draw_buffers", false, true },
|
||||||
|
|
||||||
{ "WEBKIT_EXT_texture_filter_anisotropic", false, true },
|
{ "WEBKIT_EXT_texture_filter_anisotropic", false, true },
|
||||||
{ "WEBKIT_WEBGL_compressed_texture_s3tc", false, true },
|
{ "WEBKIT_WEBGL_compressed_texture_s3tc", false, true },
|
||||||
{ "WEBKIT_WEBGL_depth_texture", false, true },
|
{ "WEBKIT_WEBGL_depth_texture", false, true },
|
||||||
};
|
};
|
||||||
|
BX_STATIC_ASSERT(Extension::Count == BX_COUNTOF(s_extension) );
|
||||||
|
|
||||||
static const char* s_ARB_shader_texture_lod[] =
|
static const char* s_ARB_shader_texture_lod[] =
|
||||||
{
|
{
|
||||||
@ -915,6 +950,15 @@ namespace bgfx
|
|||||||
return 0 == err;
|
return 0 == err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void getFilters(uint32_t _flags, bool _hasMips, GLenum& _magFilter, GLenum& _minFilter)
|
||||||
|
{
|
||||||
|
const uint32_t mag = (_flags&BGFX_TEXTURE_MAG_MASK)>>BGFX_TEXTURE_MAG_SHIFT;
|
||||||
|
const uint32_t min = (_flags&BGFX_TEXTURE_MIN_MASK)>>BGFX_TEXTURE_MIN_SHIFT;
|
||||||
|
const uint32_t mip = (_flags&BGFX_TEXTURE_MIP_MASK)>>BGFX_TEXTURE_MIP_SHIFT;
|
||||||
|
_magFilter = s_textureFilterMag[mag];
|
||||||
|
_minFilter = s_textureFilterMin[min][_hasMips ? mip+1 : 0];
|
||||||
|
}
|
||||||
|
|
||||||
struct RendererContextGL : public RendererContextI
|
struct RendererContextGL : public RendererContextI
|
||||||
{
|
{
|
||||||
RendererContextGL()
|
RendererContextGL()
|
||||||
@ -933,6 +977,7 @@ namespace bgfx
|
|||||||
, m_programBinarySupport(false)
|
, m_programBinarySupport(false)
|
||||||
, m_textureSwizzleSupport(false)
|
, m_textureSwizzleSupport(false)
|
||||||
, m_depthTextureSupport(false)
|
, m_depthTextureSupport(false)
|
||||||
|
, m_timerQuerySupport(false)
|
||||||
, m_flip(false)
|
, m_flip(false)
|
||||||
, m_hash( (BX_PLATFORM_WINDOWS<<1) | BX_ARCH_64BIT)
|
, m_hash( (BX_PLATFORM_WINDOWS<<1) | BX_ARCH_64BIT)
|
||||||
, m_backBufferFbo(0)
|
, m_backBufferFbo(0)
|
||||||
@ -1094,6 +1139,9 @@ namespace bgfx
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Allow all texture filters.
|
||||||
|
memset(s_textureFilter, true, BX_COUNTOF(s_textureFilter) );
|
||||||
|
|
||||||
bool bc123Supported = 0
|
bool bc123Supported = 0
|
||||||
|| s_extension[Extension::EXT_texture_compression_s3tc ].m_supported
|
|| s_extension[Extension::EXT_texture_compression_s3tc ].m_supported
|
||||||
|| s_extension[Extension::MOZ_WEBGL_compressed_texture_s3tc ].m_supported
|
|| s_extension[Extension::MOZ_WEBGL_compressed_texture_s3tc ].m_supported
|
||||||
@ -1186,6 +1234,23 @@ namespace bgfx
|
|||||||
{
|
{
|
||||||
setTextureFormat(TextureFormat::RGBA16F, GL_RGBA, GL_RGBA, GL_HALF_FLOAT);
|
setTextureFormat(TextureFormat::RGBA16F, GL_RGBA, GL_RGBA, GL_HALF_FLOAT);
|
||||||
|
|
||||||
|
if (s_extension[Extension::OES_texture_half_float].m_supported
|
||||||
|
|| s_extension[Extension::OES_texture_float ].m_supported)
|
||||||
|
{
|
||||||
|
// https://www.khronos.org/registry/gles/extensions/OES/OES_texture_float.txt
|
||||||
|
// When half/float is available via extensions texture will be marked as
|
||||||
|
// incomplete if it uses anything other than nearest filter.
|
||||||
|
const bool linear16F = s_extension[Extension::OES_texture_half_float_linear].m_supported;
|
||||||
|
const bool linear32F = s_extension[Extension::OES_texture_float_linear ].m_supported;
|
||||||
|
|
||||||
|
s_textureFilter[TextureFormat::R16F] = linear16F;
|
||||||
|
s_textureFilter[TextureFormat::RG16F] = linear16F;
|
||||||
|
s_textureFilter[TextureFormat::RGBA16F] = linear16F;
|
||||||
|
s_textureFilter[TextureFormat::R32F] = linear32F;
|
||||||
|
s_textureFilter[TextureFormat::RG32F] = linear32F;
|
||||||
|
s_textureFilter[TextureFormat::RGBA32F] = linear32F;
|
||||||
|
}
|
||||||
|
|
||||||
if (BX_ENABLED(BX_PLATFORM_IOS) )
|
if (BX_ENABLED(BX_PLATFORM_IOS) )
|
||||||
{
|
{
|
||||||
setTextureFormat(TextureFormat::D16, GL_DEPTH_COMPONENT, GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT);
|
setTextureFormat(TextureFormat::D16, GL_DEPTH_COMPONENT, GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT);
|
||||||
@ -1294,7 +1359,8 @@ namespace bgfx
|
|||||||
|
|
||||||
if (BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGL)
|
if (BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGL)
|
||||||
|| BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGLES >= 30)
|
|| BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGLES >= 30)
|
||||||
|| s_extension[Extension::EXT_draw_buffers].m_supported)
|
|| s_extension[Extension::EXT_draw_buffers ].m_supported
|
||||||
|
|| s_extension[Extension::WEBGL_draw_buffers].m_supported)
|
||||||
{
|
{
|
||||||
g_caps.maxFBAttachments = bx::uint32_min(glGet(GL_MAX_COLOR_ATTACHMENTS), BGFX_CONFIG_MAX_FRAME_BUFFER_ATTACHMENTS);
|
g_caps.maxFBAttachments = bx::uint32_min(glGet(GL_MAX_COLOR_ATTACHMENTS), BGFX_CONFIG_MAX_FRAME_BUFFER_ATTACHMENTS);
|
||||||
}
|
}
|
||||||
@ -1306,7 +1372,8 @@ namespace bgfx
|
|||||||
|
|
||||||
if (BX_ENABLED(BX_PLATFORM_NACL) )
|
if (BX_ENABLED(BX_PLATFORM_NACL) )
|
||||||
{
|
{
|
||||||
m_vaoSupport &= NULL != glGenVertexArrays
|
m_vaoSupport &= true
|
||||||
|
&& NULL != glGenVertexArrays
|
||||||
&& NULL != glDeleteVertexArrays
|
&& NULL != glDeleteVertexArrays
|
||||||
&& NULL != glBindVertexArray
|
&& NULL != glBindVertexArray
|
||||||
;
|
;
|
||||||
@ -1346,6 +1413,15 @@ namespace bgfx
|
|||||||
|| s_extension[Extension::WEBKIT_WEBGL_depth_texture].m_supported
|
|| s_extension[Extension::WEBKIT_WEBGL_depth_texture].m_supported
|
||||||
;
|
;
|
||||||
|
|
||||||
|
m_timerQuerySupport = 0
|
||||||
|
|| s_extension[Extension::ANGLE_timer_query ].m_supported
|
||||||
|
|| s_extension[Extension::ARB_timer_query ].m_supported
|
||||||
|
|| s_extension[Extension::EXT_disjoint_timer_query].m_supported
|
||||||
|
|| s_extension[Extension::EXT_timer_query ].m_supported
|
||||||
|
;
|
||||||
|
|
||||||
|
m_timerQuerySupport &= NULL != glGetQueryObjectui64v;
|
||||||
|
|
||||||
g_caps.supported |= m_depthTextureSupport
|
g_caps.supported |= m_depthTextureSupport
|
||||||
? BGFX_CAPS_TEXTURE_COMPARE_LEQUAL
|
? BGFX_CAPS_TEXTURE_COMPARE_LEQUAL
|
||||||
: 0
|
: 0
|
||||||
@ -1455,7 +1531,8 @@ namespace bgfx
|
|||||||
glInvalidateFramebuffer = stubInvalidateFramebuffer;
|
glInvalidateFramebuffer = stubInvalidateFramebuffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGL) )
|
if (BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGL)
|
||||||
|
&& m_timerQuerySupport)
|
||||||
{
|
{
|
||||||
m_queries.create();
|
m_queries.create();
|
||||||
}
|
}
|
||||||
@ -1485,7 +1562,8 @@ namespace bgfx
|
|||||||
|
|
||||||
invalidateCache();
|
invalidateCache();
|
||||||
|
|
||||||
if (BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGL) )
|
if (BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGL)
|
||||||
|
&& m_timerQuerySupport)
|
||||||
{
|
{
|
||||||
m_queries.destroy();
|
m_queries.destroy();
|
||||||
}
|
}
|
||||||
@ -2047,16 +2125,25 @@ namespace bgfx
|
|||||||
{
|
{
|
||||||
sampler = m_samplerStateCache.add(_flags);
|
sampler = m_samplerStateCache.add(_flags);
|
||||||
|
|
||||||
GL_CHECK(glSamplerParameteri(sampler, GL_TEXTURE_WRAP_S, s_textureAddress[(_flags&BGFX_TEXTURE_U_MASK)>>BGFX_TEXTURE_U_SHIFT]) );
|
GL_CHECK(glSamplerParameteri(sampler
|
||||||
GL_CHECK(glSamplerParameteri(sampler, GL_TEXTURE_WRAP_T, s_textureAddress[(_flags&BGFX_TEXTURE_V_MASK)>>BGFX_TEXTURE_V_SHIFT]) );
|
, GL_TEXTURE_WRAP_S
|
||||||
GL_CHECK(glSamplerParameteri(sampler, GL_TEXTURE_WRAP_R, s_textureAddress[(_flags&BGFX_TEXTURE_W_MASK)>>BGFX_TEXTURE_W_SHIFT]) );
|
, s_textureAddress[(_flags&BGFX_TEXTURE_U_MASK)>>BGFX_TEXTURE_U_SHIFT]
|
||||||
|
) );
|
||||||
|
GL_CHECK(glSamplerParameteri(sampler
|
||||||
|
, GL_TEXTURE_WRAP_T
|
||||||
|
, s_textureAddress[(_flags&BGFX_TEXTURE_V_MASK)>>BGFX_TEXTURE_V_SHIFT]
|
||||||
|
) );
|
||||||
|
GL_CHECK(glSamplerParameteri(sampler
|
||||||
|
, GL_TEXTURE_WRAP_R
|
||||||
|
, s_textureAddress[(_flags&BGFX_TEXTURE_W_MASK)>>BGFX_TEXTURE_W_SHIFT]
|
||||||
|
) );
|
||||||
|
|
||||||
const uint32_t mag = (_flags&BGFX_TEXTURE_MAG_MASK)>>BGFX_TEXTURE_MAG_SHIFT;
|
GLenum minFilter;
|
||||||
const uint32_t min = (_flags&BGFX_TEXTURE_MIN_MASK)>>BGFX_TEXTURE_MIN_SHIFT;
|
GLenum magFilter;
|
||||||
const uint32_t mip = (_flags&BGFX_TEXTURE_MIP_MASK)>>BGFX_TEXTURE_MIP_SHIFT;
|
getFilters(_flags, 1 < _numMips, magFilter, minFilter);
|
||||||
GLenum minFilter = s_textureFilterMin[min][1 < _numMips ? mip+1 : 0];
|
GL_CHECK(glSamplerParameteri(sampler, GL_TEXTURE_MAG_FILTER, magFilter) );
|
||||||
GL_CHECK(glSamplerParameteri(sampler, GL_TEXTURE_MAG_FILTER, s_textureFilterMag[mag]) );
|
|
||||||
GL_CHECK(glSamplerParameteri(sampler, GL_TEXTURE_MIN_FILTER, minFilter) );
|
GL_CHECK(glSamplerParameteri(sampler, GL_TEXTURE_MIN_FILTER, minFilter) );
|
||||||
|
|
||||||
if (0 != (_flags & (BGFX_TEXTURE_MIN_ANISOTROPIC|BGFX_TEXTURE_MAG_ANISOTROPIC) )
|
if (0 != (_flags & (BGFX_TEXTURE_MIN_ANISOTROPIC|BGFX_TEXTURE_MAG_ANISOTROPIC) )
|
||||||
&& 0.0f < m_maxAnisotropy)
|
&& 0.0f < m_maxAnisotropy)
|
||||||
{
|
{
|
||||||
@ -2557,6 +2644,7 @@ namespace bgfx
|
|||||||
bool m_programBinarySupport;
|
bool m_programBinarySupport;
|
||||||
bool m_textureSwizzleSupport;
|
bool m_textureSwizzleSupport;
|
||||||
bool m_depthTextureSupport;
|
bool m_depthTextureSupport;
|
||||||
|
bool m_timerQuerySupport;
|
||||||
bool m_flip;
|
bool m_flip;
|
||||||
|
|
||||||
uint64_t m_hash;
|
uint64_t m_hash;
|
||||||
@ -2579,14 +2667,14 @@ namespace bgfx
|
|||||||
|
|
||||||
RendererContextGL* s_renderGL;
|
RendererContextGL* s_renderGL;
|
||||||
|
|
||||||
RendererContextI* rendererCreateGL()
|
RendererContextI* rendererCreate()
|
||||||
{
|
{
|
||||||
s_renderGL = BX_NEW(g_allocator, RendererContextGL);
|
s_renderGL = BX_NEW(g_allocator, RendererContextGL);
|
||||||
s_renderGL->init();
|
s_renderGL->init();
|
||||||
return s_renderGL;
|
return s_renderGL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void rendererDestroyGL()
|
void rendererDestroy()
|
||||||
{
|
{
|
||||||
s_renderGL->shutdown();
|
s_renderGL->shutdown();
|
||||||
BX_DELETE(g_allocator, s_renderGL);
|
BX_DELETE(g_allocator, s_renderGL);
|
||||||
@ -2662,6 +2750,7 @@ namespace bgfx
|
|||||||
GLENUM(GL_RENDERBUFFER);
|
GLENUM(GL_RENDERBUFFER);
|
||||||
|
|
||||||
GLENUM(GL_INVALID_ENUM);
|
GLENUM(GL_INVALID_ENUM);
|
||||||
|
GLENUM(GL_INVALID_FRAMEBUFFER_OPERATION);
|
||||||
GLENUM(GL_INVALID_VALUE);
|
GLENUM(GL_INVALID_VALUE);
|
||||||
GLENUM(GL_INVALID_OPERATION);
|
GLENUM(GL_INVALID_OPERATION);
|
||||||
GLENUM(GL_OUT_OF_MEMORY);
|
GLENUM(GL_OUT_OF_MEMORY);
|
||||||
@ -2861,20 +2950,20 @@ namespace bgfx
|
|||||||
m_numPredefined = 0;
|
m_numPredefined = 0;
|
||||||
m_numSamplers = 0;
|
m_numSamplers = 0;
|
||||||
|
|
||||||
struct VariableInfo
|
|
||||||
{
|
|
||||||
GLenum type;
|
|
||||||
GLint loc;
|
|
||||||
GLint num;
|
|
||||||
};
|
|
||||||
VariableInfo vi;
|
|
||||||
GLenum props[] = { GL_TYPE, GL_LOCATION, GL_ARRAY_SIZE };
|
|
||||||
|
|
||||||
const bool piqSupported = s_extension[Extension::ARB_program_interface_query].m_supported;
|
const bool piqSupported = s_extension[Extension::ARB_program_interface_query].m_supported;
|
||||||
|
|
||||||
BX_TRACE("Uniforms (%d):", activeUniforms);
|
BX_TRACE("Uniforms (%d):", activeUniforms);
|
||||||
for (int32_t ii = 0; ii < activeUniforms; ++ii)
|
for (int32_t ii = 0; ii < activeUniforms; ++ii)
|
||||||
{
|
{
|
||||||
|
struct VariableInfo
|
||||||
|
{
|
||||||
|
GLenum type;
|
||||||
|
GLint loc;
|
||||||
|
GLint num;
|
||||||
|
};
|
||||||
|
VariableInfo vi;
|
||||||
|
GLenum props[] ={ GL_TYPE, GL_LOCATION, GL_ARRAY_SIZE };
|
||||||
|
|
||||||
GLenum gltype;
|
GLenum gltype;
|
||||||
GLint num;
|
GLint num;
|
||||||
GLint loc;
|
GLint loc;
|
||||||
@ -3202,10 +3291,8 @@ namespace bgfx
|
|||||||
BX_CHECK(0 != m_id, "Failed to generate texture id.");
|
BX_CHECK(0 != m_id, "Failed to generate texture id.");
|
||||||
GL_CHECK(glBindTexture(_target, m_id) );
|
GL_CHECK(glBindTexture(_target, m_id) );
|
||||||
|
|
||||||
setSamplerState(_flags);
|
|
||||||
|
|
||||||
const TextureFormatInfo& tfi = s_textureFormat[_format];
|
const TextureFormatInfo& tfi = s_textureFormat[_format];
|
||||||
m_fmt = tfi.m_fmt;
|
m_fmt = tfi.m_fmt;
|
||||||
m_type = tfi.m_type;
|
m_type = tfi.m_type;
|
||||||
|
|
||||||
const bool compressed = isCompressed(TextureFormat::Enum(_format) );
|
const bool compressed = isCompressed(TextureFormat::Enum(_format) );
|
||||||
@ -3214,11 +3301,13 @@ namespace bgfx
|
|||||||
if (decompress)
|
if (decompress)
|
||||||
{
|
{
|
||||||
m_textureFormat = (uint8_t)TextureFormat::BGRA8;
|
m_textureFormat = (uint8_t)TextureFormat::BGRA8;
|
||||||
const TextureFormatInfo& tfi = s_textureFormat[TextureFormat::BGRA8];
|
const TextureFormatInfo& tfiBgra8 = s_textureFormat[TextureFormat::BGRA8];
|
||||||
m_fmt = tfi.m_fmt;
|
m_fmt = tfiBgra8.m_fmt;
|
||||||
m_type = tfi.m_type;
|
m_type = tfiBgra8.m_type;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setSamplerState(_flags);
|
||||||
|
|
||||||
if (BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGL)
|
if (BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGL)
|
||||||
&& TextureFormat::BGRA8 == m_textureFormat
|
&& TextureFormat::BGRA8 == m_textureFormat
|
||||||
&& GL_RGBA == m_fmt
|
&& GL_RGBA == m_fmt
|
||||||
@ -3583,6 +3672,22 @@ namespace bgfx
|
|||||||
|
|
||||||
void TextureGL::setSamplerState(uint32_t _flags)
|
void TextureGL::setSamplerState(uint32_t _flags)
|
||||||
{
|
{
|
||||||
|
if (BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGLES < 30)
|
||||||
|
&& !s_textureFilter[m_textureFormat])
|
||||||
|
{
|
||||||
|
// Force point sampling when texture format doesn't support linear sampling.
|
||||||
|
_flags &= 0
|
||||||
|
| BGFX_TEXTURE_MIN_MASK
|
||||||
|
| BGFX_TEXTURE_MAG_MASK
|
||||||
|
| BGFX_TEXTURE_MIP_MASK
|
||||||
|
;
|
||||||
|
_flags |= 0
|
||||||
|
| BGFX_TEXTURE_MIN_POINT
|
||||||
|
| BGFX_TEXTURE_MAG_POINT
|
||||||
|
| BGFX_TEXTURE_MIP_POINT
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
const uint32_t flags = (0 != (BGFX_SAMPLER_DEFAULT_FLAGS & _flags) ? m_flags : _flags) & BGFX_TEXTURE_SAMPLER_BITS_MASK;
|
const uint32_t flags = (0 != (BGFX_SAMPLER_DEFAULT_FLAGS & _flags) ? m_flags : _flags) & BGFX_TEXTURE_SAMPLER_BITS_MASK;
|
||||||
if (flags != m_currentFlags)
|
if (flags != m_currentFlags)
|
||||||
{
|
{
|
||||||
@ -3603,11 +3708,10 @@ namespace bgfx
|
|||||||
GL_CHECK(glTexParameteri(target, GL_TEXTURE_WRAP_R, s_textureAddress[(flags&BGFX_TEXTURE_W_MASK)>>BGFX_TEXTURE_W_SHIFT]) );
|
GL_CHECK(glTexParameteri(target, GL_TEXTURE_WRAP_R, s_textureAddress[(flags&BGFX_TEXTURE_W_MASK)>>BGFX_TEXTURE_W_SHIFT]) );
|
||||||
}
|
}
|
||||||
|
|
||||||
const uint32_t mag = (flags&BGFX_TEXTURE_MAG_MASK)>>BGFX_TEXTURE_MAG_SHIFT;
|
GLenum magFilter;
|
||||||
const uint32_t min = (flags&BGFX_TEXTURE_MIN_MASK)>>BGFX_TEXTURE_MIN_SHIFT;
|
GLenum minFilter;
|
||||||
const uint32_t mip = (flags&BGFX_TEXTURE_MIP_MASK)>>BGFX_TEXTURE_MIP_SHIFT;
|
getFilters(flags, 1 < numMips, magFilter, minFilter);
|
||||||
const GLenum minFilter = s_textureFilterMin[min][1 < numMips ? mip+1 : 0];
|
GL_CHECK(glTexParameteri(target, GL_TEXTURE_MAG_FILTER, magFilter) );
|
||||||
GL_CHECK(glTexParameteri(target, GL_TEXTURE_MAG_FILTER, s_textureFilterMag[mag]) );
|
|
||||||
GL_CHECK(glTexParameteri(target, GL_TEXTURE_MIN_FILTER, minFilter) );
|
GL_CHECK(glTexParameteri(target, GL_TEXTURE_MIN_FILTER, minFilter) );
|
||||||
if (0 != (flags & (BGFX_TEXTURE_MIN_ANISOTROPIC|BGFX_TEXTURE_MAG_ANISOTROPIC) )
|
if (0 != (flags & (BGFX_TEXTURE_MIN_ANISOTROPIC|BGFX_TEXTURE_MAG_ANISOTROPIC) )
|
||||||
&& 0.0f < s_renderGL->m_maxAnisotropy)
|
&& 0.0f < s_renderGL->m_maxAnisotropy)
|
||||||
@ -3794,7 +3898,10 @@ namespace bgfx
|
|||||||
|
|
||||||
if (usesFragData)
|
if (usesFragData)
|
||||||
{
|
{
|
||||||
BX_WARN(s_extension[Extension::EXT_draw_buffers].m_supported, "EXT_draw_buffers is used but not supported by GLES2 driver.");
|
BX_WARN(s_extension[Extension::EXT_draw_buffers ].m_supported
|
||||||
|
|| s_extension[Extension::WEBGL_draw_buffers].m_supported
|
||||||
|
, "EXT_draw_buffers is used but not supported by GLES2 driver."
|
||||||
|
);
|
||||||
writeString(&writer
|
writeString(&writer
|
||||||
, "#extension GL_EXT_draw_buffers : enable\n"
|
, "#extension GL_EXT_draw_buffers : enable\n"
|
||||||
);
|
);
|
||||||
@ -3995,9 +4102,9 @@ namespace bgfx
|
|||||||
{
|
{
|
||||||
for (uint32_t ii = 0, num = g_caps.maxFBAttachments; ii < num; ++ii)
|
for (uint32_t ii = 0, num = g_caps.maxFBAttachments; ii < num; ++ii)
|
||||||
{
|
{
|
||||||
char temp[16];
|
char tmpFragData[16];
|
||||||
bx::snprintf(temp, BX_COUNTOF(temp), "gl_FragData[%d]", ii);
|
bx::snprintf(tmpFragData, BX_COUNTOF(tmpFragData), "gl_FragData[%d]", ii);
|
||||||
fragData = bx::uint32_max(fragData, NULL == strstr(code, temp) ? 0 : ii+1);
|
fragData = bx::uint32_max(fragData, NULL == strstr(code, tmpFragData) ? 0 : ii+1);
|
||||||
}
|
}
|
||||||
|
|
||||||
BGFX_FATAL(0 != fragData, Fatal::InvalidShader, "Unable to find and patch gl_FragData!");
|
BGFX_FATAL(0 != fragData, Fatal::InvalidShader, "Unable to find and patch gl_FragData!");
|
||||||
@ -4197,7 +4304,8 @@ namespace bgfx
|
|||||||
GL_CHECK(glGenFramebuffers(1, &m_fbo[1]) );
|
GL_CHECK(glGenFramebuffers(1, &m_fbo[1]) );
|
||||||
GL_CHECK(glBindFramebuffer(GL_FRAMEBUFFER, m_fbo[1]) );
|
GL_CHECK(glBindFramebuffer(GL_FRAMEBUFFER, m_fbo[1]) );
|
||||||
|
|
||||||
for (uint32_t ii = 0, colorIdx = 0; ii < _num; ++ii)
|
colorIdx = 0;
|
||||||
|
for (uint32_t ii = 0; ii < _num; ++ii)
|
||||||
{
|
{
|
||||||
TextureHandle handle = _handles[ii];
|
TextureHandle handle = _handles[ii];
|
||||||
if (isValid(handle) )
|
if (isValid(handle) )
|
||||||
@ -4345,7 +4453,8 @@ namespace bgfx
|
|||||||
int64_t captureElapsed = 0;
|
int64_t captureElapsed = 0;
|
||||||
|
|
||||||
if (BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGL)
|
if (BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGL)
|
||||||
&& (_render->m_debug & (BGFX_DEBUG_IFH|BGFX_DEBUG_STATS) ) )
|
&& (_render->m_debug & (BGFX_DEBUG_IFH|BGFX_DEBUG_STATS) )
|
||||||
|
&& m_timerQuerySupport)
|
||||||
{
|
{
|
||||||
m_queries.begin(0, GL_TIME_ELAPSED);
|
m_queries.begin(0, GL_TIME_ELAPSED);
|
||||||
}
|
}
|
||||||
@ -4390,8 +4499,11 @@ namespace bgfx
|
|||||||
;
|
;
|
||||||
uint32_t blendFactor = 0;
|
uint32_t blendFactor = 0;
|
||||||
|
|
||||||
const uint64_t pt = _render->m_debug&BGFX_DEBUG_WIREFRAME ? BGFX_STATE_PT_LINES : 0;
|
uint8_t primIndex;
|
||||||
uint8_t primIndex = uint8_t(pt>>BGFX_STATE_PT_SHIFT);
|
{
|
||||||
|
const uint64_t pt = _render->m_debug&BGFX_DEBUG_WIREFRAME ? BGFX_STATE_PT_LINES : 0;
|
||||||
|
primIndex = uint8_t(pt>>BGFX_STATE_PT_SHIFT);
|
||||||
|
}
|
||||||
PrimInfo prim = s_primInfo[primIndex];
|
PrimInfo prim = s_primInfo[primIndex];
|
||||||
|
|
||||||
uint32_t baseVertex = 0;
|
uint32_t baseVertex = 0;
|
||||||
@ -4410,6 +4522,7 @@ namespace bgfx
|
|||||||
uint32_t statsNumPrimsRendered[BX_COUNTOF(s_primInfo)] = {};
|
uint32_t statsNumPrimsRendered[BX_COUNTOF(s_primInfo)] = {};
|
||||||
uint32_t statsNumInstances[BX_COUNTOF(s_primInfo)] = {};
|
uint32_t statsNumInstances[BX_COUNTOF(s_primInfo)] = {};
|
||||||
uint32_t statsNumIndices = 0;
|
uint32_t statsNumIndices = 0;
|
||||||
|
uint32_t statsKeyType[2] = {};
|
||||||
|
|
||||||
if (0 == (_render->m_debug&BGFX_DEBUG_IFH) )
|
if (0 == (_render->m_debug&BGFX_DEBUG_IFH) )
|
||||||
{
|
{
|
||||||
@ -4424,6 +4537,8 @@ namespace bgfx
|
|||||||
for (int32_t item = 0, restartItem = numItems; item < numItems || restartItem < numItems;)
|
for (int32_t item = 0, restartItem = numItems; item < numItems || restartItem < numItems;)
|
||||||
{
|
{
|
||||||
const bool isCompute = key.decode(_render->m_sortKeys[item], _render->m_viewRemap);
|
const bool isCompute = key.decode(_render->m_sortKeys[item], _render->m_viewRemap);
|
||||||
|
statsKeyType[isCompute]++;
|
||||||
|
|
||||||
const bool viewChanged = 0
|
const bool viewChanged = 0
|
||||||
|| key.m_view != view
|
|| key.m_view != view
|
||||||
|| item == numItems
|
|| item == numItems
|
||||||
@ -4783,16 +4898,15 @@ namespace bgfx
|
|||||||
&& blendIndependentSupported
|
&& blendIndependentSupported
|
||||||
;
|
;
|
||||||
|
|
||||||
const uint32_t blend = uint32_t( (newFlags&BGFX_STATE_BLEND_MASK)>>BGFX_STATE_BLEND_SHIFT);
|
const uint32_t blend = uint32_t( (newFlags&BGFX_STATE_BLEND_MASK)>>BGFX_STATE_BLEND_SHIFT);
|
||||||
const uint32_t equation = uint32_t( (newFlags&BGFX_STATE_BLEND_EQUATION_MASK)>>BGFX_STATE_BLEND_EQUATION_SHIFT);
|
const uint32_t srcRGB = (blend )&0xf;
|
||||||
|
const uint32_t dstRGB = (blend>> 4)&0xf;
|
||||||
|
const uint32_t srcA = (blend>> 8)&0xf;
|
||||||
|
const uint32_t dstA = (blend>>12)&0xf;
|
||||||
|
|
||||||
const uint32_t srcRGB = (blend )&0xf;
|
const uint32_t equ = uint32_t((newFlags&BGFX_STATE_BLEND_EQUATION_MASK)>>BGFX_STATE_BLEND_EQUATION_SHIFT);
|
||||||
const uint32_t dstRGB = (blend>> 4)&0xf;
|
const uint32_t equRGB = (equ )&0x7;
|
||||||
const uint32_t srcA = (blend>> 8)&0xf;
|
const uint32_t equA = (equ>>3)&0x7;
|
||||||
const uint32_t dstA = (blend>>12)&0xf;
|
|
||||||
|
|
||||||
const uint32_t equRGB = (equation )&0x7;
|
|
||||||
const uint32_t equA = (equation>>3)&0x7;
|
|
||||||
|
|
||||||
const uint32_t numRt = getNumRt();
|
const uint32_t numRt = getNumRt();
|
||||||
|
|
||||||
@ -4974,7 +5088,6 @@ namespace bgfx
|
|||||||
currentVao = id;
|
currentVao = id;
|
||||||
GL_CHECK(glBindVertexArray(id) );
|
GL_CHECK(glBindVertexArray(id) );
|
||||||
|
|
||||||
ProgramGL& program = m_program[programIdx];
|
|
||||||
program.add(hash);
|
program.add(hash);
|
||||||
|
|
||||||
if (isValid(draw.m_vertexBuffer) )
|
if (isValid(draw.m_vertexBuffer) )
|
||||||
@ -5072,7 +5185,6 @@ namespace bgfx
|
|||||||
baseVertex = draw.m_startVertex;
|
baseVertex = draw.m_startVertex;
|
||||||
const VertexBufferGL& vb = m_vertexBuffers[draw.m_vertexBuffer.idx];
|
const VertexBufferGL& vb = m_vertexBuffers[draw.m_vertexBuffer.idx];
|
||||||
uint16_t decl = !isValid(vb.m_decl) ? draw.m_vertexDecl.idx : vb.m_decl.idx;
|
uint16_t decl = !isValid(vb.m_decl) ? draw.m_vertexDecl.idx : vb.m_decl.idx;
|
||||||
const ProgramGL& program = m_program[programIdx];
|
|
||||||
program.bindAttributes(m_vertexDecls[decl], draw.m_startVertex);
|
program.bindAttributes(m_vertexDecls[decl], draw.m_startVertex);
|
||||||
|
|
||||||
if (isValid(draw.m_instanceDataBuffer) )
|
if (isValid(draw.m_instanceDataBuffer) )
|
||||||
@ -5178,11 +5290,14 @@ namespace bgfx
|
|||||||
if (_render->m_debug & (BGFX_DEBUG_IFH|BGFX_DEBUG_STATS) )
|
if (_render->m_debug & (BGFX_DEBUG_IFH|BGFX_DEBUG_STATS) )
|
||||||
{
|
{
|
||||||
double elapsedGpuMs = 0.0;
|
double elapsedGpuMs = 0.0;
|
||||||
#if BGFX_CONFIG_RENDERER_OPENGL
|
uint64_t elapsedGl = 0;
|
||||||
m_queries.end(GL_TIME_ELAPSED);
|
if (BX_ENABLED(BGFX_CONFIG_RENDERER_OPENGL)
|
||||||
uint64_t elapsedGl = m_queries.getResult(0);
|
&& m_timerQuerySupport)
|
||||||
elapsedGpuMs = double(elapsedGl)/1e6;
|
{
|
||||||
#endif // BGFX_CONFIG_RENDERER_OPENGL
|
m_queries.end(GL_TIME_ELAPSED);
|
||||||
|
elapsedGl = m_queries.getResult(0);
|
||||||
|
elapsedGpuMs = double(elapsedGl)/1e6;
|
||||||
|
}
|
||||||
|
|
||||||
TextVideoMem& tvm = m_textVideoMem;
|
TextVideoMem& tvm = m_textVideoMem;
|
||||||
|
|
||||||
@ -5225,15 +5340,17 @@ namespace bgfx
|
|||||||
);
|
);
|
||||||
|
|
||||||
double elapsedCpuMs = double(elapsed)*toMs;
|
double elapsedCpuMs = double(elapsed)*toMs;
|
||||||
tvm.printf(10, pos++, 0x8e, " Draw calls: %4d / CPU %3.4f [ms] %c GPU %3.4f [ms]"
|
tvm.printf(10, pos++, 0x8e, " Submitted: %4d (draw %4d, compute %4d) / CPU %3.4f [ms] %c GPU %3.4f [ms]"
|
||||||
, _render->m_num
|
, _render->m_num
|
||||||
|
, statsKeyType[0]
|
||||||
|
, statsKeyType[1]
|
||||||
, elapsedCpuMs
|
, elapsedCpuMs
|
||||||
, elapsedCpuMs > elapsedGpuMs ? '>' : '<'
|
, elapsedCpuMs > elapsedGpuMs ? '>' : '<'
|
||||||
, elapsedGpuMs
|
, elapsedGpuMs
|
||||||
);
|
);
|
||||||
for (uint32_t ii = 0; ii < BX_COUNTOF(s_primInfo); ++ii)
|
for (uint32_t ii = 0; ii < BX_COUNTOF(s_primInfo); ++ii)
|
||||||
{
|
{
|
||||||
tvm.printf(10, pos++, 0x8e, " %8s: %7d (#inst: %5d), submitted: %7d"
|
tvm.printf(10, pos++, 0x8e, " %9s: %7d (#inst: %5d), submitted: %7d"
|
||||||
, s_primName[ii]
|
, s_primName[ii]
|
||||||
, statsNumPrimsRendered[ii]
|
, statsNumPrimsRendered[ii]
|
||||||
, statsNumInstances[ii]
|
, statsNumInstances[ii]
|
||||||
@ -5246,9 +5363,9 @@ namespace bgfx
|
|||||||
tvm.printf(tvm.m_width-27, 0, 0x1f, " [F11 - RenderDoc capture] ");
|
tvm.printf(tvm.m_width-27, 0, 0x1f, " [F11 - RenderDoc capture] ");
|
||||||
}
|
}
|
||||||
|
|
||||||
tvm.printf(10, pos++, 0x8e, " Indices: %7d", statsNumIndices);
|
tvm.printf(10, pos++, 0x8e, " Indices: %7d", statsNumIndices);
|
||||||
tvm.printf(10, pos++, 0x8e, " DVB size: %7d", _render->m_vboffset);
|
tvm.printf(10, pos++, 0x8e, " DVB size: %7d", _render->m_vboffset);
|
||||||
tvm.printf(10, pos++, 0x8e, " DIB size: %7d", _render->m_iboffset);
|
tvm.printf(10, pos++, 0x8e, " DIB size: %7d", _render->m_iboffset);
|
||||||
|
|
||||||
pos++;
|
pos++;
|
||||||
tvm.printf(10, pos++, 0x8e, " State cache: ");
|
tvm.printf(10, pos++, 0x8e, " State cache: ");
|
||||||
@ -5354,21 +5471,21 @@ namespace bgfx
|
|||||||
|
|
||||||
GL_CHECK(glFrameTerminatorGREMEDY() );
|
GL_CHECK(glFrameTerminatorGREMEDY() );
|
||||||
}
|
}
|
||||||
} // namespace bgfx
|
} } // namespace bgfx
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
namespace bgfx
|
namespace bgfx { namespace gl
|
||||||
{
|
{
|
||||||
RendererContextI* rendererCreateGL()
|
RendererContextI* rendererCreate()
|
||||||
{
|
{
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void rendererDestroyGL()
|
void rendererDestroy()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
} // namespace bgfx
|
} /* namespace gl */ } // namespace bgfx
|
||||||
|
|
||||||
#endif // (BGFX_CONFIG_RENDERER_OPENGLES || BGFX_CONFIG_RENDERER_OPENGL)
|
#endif // (BGFX_CONFIG_RENDERER_OPENGLES || BGFX_CONFIG_RENDERER_OPENGL)
|
||||||
|
|
||||||
|
12
3rdparty/bgfx/src/renderer_gl.h
vendored
12
3rdparty/bgfx/src/renderer_gl.h
vendored
@ -611,6 +611,10 @@ typedef uint64_t GLuint64;
|
|||||||
namespace bgfx
|
namespace bgfx
|
||||||
{
|
{
|
||||||
class ConstantBuffer;
|
class ConstantBuffer;
|
||||||
|
} // namespace bgfx
|
||||||
|
|
||||||
|
namespace bgfx { namespace gl
|
||||||
|
{
|
||||||
void dumpExtensions(const char* _extensions);
|
void dumpExtensions(const char* _extensions);
|
||||||
|
|
||||||
const char* glEnumName(GLenum _enum);
|
const char* glEnumName(GLenum _enum);
|
||||||
@ -619,9 +623,9 @@ namespace bgfx
|
|||||||
BX_MACRO_BLOCK_BEGIN \
|
BX_MACRO_BLOCK_BEGIN \
|
||||||
/*BX_TRACE(#_call);*/ \
|
/*BX_TRACE(#_call);*/ \
|
||||||
_call; \
|
_call; \
|
||||||
GLenum err = glGetError(); \
|
GLenum gl_err = glGetError(); \
|
||||||
_check(0 == err, #_call "; GL error 0x%x: %s", err, glEnumName(err) ); \
|
_check(0 == gl_err, #_call "; GL error 0x%x: %s", gl_err, glEnumName(gl_err) ); \
|
||||||
BX_UNUSED(err); \
|
BX_UNUSED(gl_err); \
|
||||||
BX_MACRO_BLOCK_END
|
BX_MACRO_BLOCK_END
|
||||||
|
|
||||||
#define IGNORE_GL_ERROR_CHECK(...) BX_NOOP()
|
#define IGNORE_GL_ERROR_CHECK(...) BX_NOOP()
|
||||||
@ -1001,6 +1005,6 @@ namespace bgfx
|
|||||||
GLuint m_queries[64];
|
GLuint m_queries[64];
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace bgfx
|
} /* namespace gl */ } // namespace bgfx
|
||||||
|
|
||||||
#endif // BGFX_RENDERER_GL_H_HEADER_GUARD
|
#endif // BGFX_RENDERER_GL_H_HEADER_GUARD
|
||||||
|
16
3rdparty/bgfx/src/renderer_null.cpp
vendored
16
3rdparty/bgfx/src/renderer_null.cpp
vendored
@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
#if BGFX_CONFIG_RENDERER_NULL
|
#if BGFX_CONFIG_RENDERER_NULL
|
||||||
|
|
||||||
namespace bgfx
|
namespace bgfx { namespace noop
|
||||||
{
|
{
|
||||||
struct RendererContextNULL : public RendererContextI
|
struct RendererContextNULL : public RendererContextI
|
||||||
{
|
{
|
||||||
@ -168,31 +168,31 @@ namespace bgfx
|
|||||||
|
|
||||||
static RendererContextNULL* s_renderNULL;
|
static RendererContextNULL* s_renderNULL;
|
||||||
|
|
||||||
RendererContextI* rendererCreateNULL()
|
RendererContextI* rendererCreate()
|
||||||
{
|
{
|
||||||
s_renderNULL = BX_NEW(g_allocator, RendererContextNULL);
|
s_renderNULL = BX_NEW(g_allocator, RendererContextNULL);
|
||||||
return s_renderNULL;
|
return s_renderNULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void rendererDestroyNULL()
|
void rendererDestroy()
|
||||||
{
|
{
|
||||||
BX_DELETE(g_allocator, s_renderNULL);
|
BX_DELETE(g_allocator, s_renderNULL);
|
||||||
s_renderNULL = NULL;
|
s_renderNULL = NULL;
|
||||||
}
|
}
|
||||||
} // namespace bgfx
|
} /* namespace noop */ } // namespace bgfx
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
namespace bgfx
|
namespace bgfx { namespace noop
|
||||||
{
|
{
|
||||||
RendererContextI* rendererCreateNULL()
|
RendererContextI* rendererCreate()
|
||||||
{
|
{
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void rendererDestroyNULL()
|
void rendererDestroy()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
} // namespace bgfx
|
} /* namespace noop */ } // namespace bgfx
|
||||||
|
|
||||||
#endif // BGFX_CONFIG_RENDERER_NULL
|
#endif // BGFX_CONFIG_RENDERER_NULL
|
||||||
|
8
3rdparty/bgfx/src/renderer_vk.cpp
vendored
8
3rdparty/bgfx/src/renderer_vk.cpp
vendored
@ -8,16 +8,16 @@
|
|||||||
# include "../../vk/src/renderer_vk.cpp"
|
# include "../../vk/src/renderer_vk.cpp"
|
||||||
#else
|
#else
|
||||||
|
|
||||||
namespace bgfx
|
namespace bgfx { namespace vk
|
||||||
{
|
{
|
||||||
RendererContextI* rendererCreateVK()
|
RendererContextI* rendererCreate()
|
||||||
{
|
{
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void rendererDestroyVK()
|
void rendererDestroy()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
} // namespace bgfx
|
} /* namespace vk */ } // namespace bgfx
|
||||||
|
|
||||||
#endif // BGFX_CONFIG_RENDERER_VULKAN
|
#endif // BGFX_CONFIG_RENDERER_VULKAN
|
||||||
|
20
3rdparty/bgfx/tools/geometryc/geometryc.cpp
vendored
20
3rdparty/bgfx/tools/geometryc/geometryc.cpp
vendored
@ -504,11 +504,14 @@ int main(int _argc, const char* _argv[])
|
|||||||
Triangle triangle;
|
Triangle triangle;
|
||||||
memset(&triangle, 0, sizeof(Triangle) );
|
memset(&triangle, 0, sizeof(Triangle) );
|
||||||
|
|
||||||
|
const int numNormals = (int)normals.size();
|
||||||
|
const int numTexcoords = (int)texcoords.size();
|
||||||
|
const int numPositions = (int)positions.size();
|
||||||
for (uint32_t edge = 0, numEdges = argc-1; edge < numEdges; ++edge)
|
for (uint32_t edge = 0, numEdges = argc-1; edge < numEdges; ++edge)
|
||||||
{
|
{
|
||||||
Index3 index;
|
Index3 index;
|
||||||
index.m_texcoord = -1;
|
index.m_texcoord = 0;
|
||||||
index.m_normal = -1;
|
index.m_normal = 0;
|
||||||
index.m_vertexIndex = -1;
|
index.m_vertexIndex = -1;
|
||||||
|
|
||||||
char* vertex = argv[edge+1];
|
char* vertex = argv[edge+1];
|
||||||
@ -521,13 +524,16 @@ int main(int _argc, const char* _argv[])
|
|||||||
if (NULL != normal)
|
if (NULL != normal)
|
||||||
{
|
{
|
||||||
*normal++ = '\0';
|
*normal++ = '\0';
|
||||||
index.m_normal = atoi(normal)-1;
|
const int nn = atoi(normal);
|
||||||
|
index.m_normal = (nn < 0) ? nn+numNormals : nn-1;
|
||||||
}
|
}
|
||||||
|
|
||||||
index.m_texcoord = atoi(texcoord)-1;
|
const int tex = atoi(texcoord);
|
||||||
|
index.m_texcoord = (tex < 0) ? tex+numTexcoords : tex-1;
|
||||||
}
|
}
|
||||||
|
|
||||||
index.m_position = atoi(vertex)-1;
|
const int pos = atoi(vertex);
|
||||||
|
index.m_position = (pos < 0) ? pos+numPositions : pos-1;
|
||||||
|
|
||||||
uint64_t hash0 = index.m_position;
|
uint64_t hash0 = index.m_position;
|
||||||
uint64_t hash1 = uint64_t(index.m_texcoord)<<20;
|
uint64_t hash1 = uint64_t(index.m_texcoord)<<20;
|
||||||
@ -710,8 +716,8 @@ int main(int _argc, const char* _argv[])
|
|||||||
bool hasTexcoord;
|
bool hasTexcoord;
|
||||||
{
|
{
|
||||||
Index3Map::const_iterator it = indexMap.begin();
|
Index3Map::const_iterator it = indexMap.begin();
|
||||||
hasNormal = -1 != it->second.m_normal;
|
hasNormal = 0 != it->second.m_normal;
|
||||||
hasTexcoord = -1 != it->second.m_texcoord;
|
hasTexcoord = 0 != it->second.m_texcoord;
|
||||||
|
|
||||||
if (!hasTexcoord
|
if (!hasTexcoord
|
||||||
&& texcoords.size() == positions.size() )
|
&& texcoords.size() == positions.size() )
|
||||||
|
20
3rdparty/bgfx/tools/shaderc/shaderc.cpp
vendored
20
3rdparty/bgfx/tools/shaderc/shaderc.cpp
vendored
@ -845,7 +845,7 @@ int main(int _argc, const char* _argv[])
|
|||||||
preprocessor.setDefaultDefine("BGFX_SHADER_TYPE_VERTEX");
|
preprocessor.setDefaultDefine("BGFX_SHADER_TYPE_VERTEX");
|
||||||
|
|
||||||
char glslDefine[128];
|
char glslDefine[128];
|
||||||
bx::snprintf(glslDefine, BX_COUNTOF(glslDefine), "BGFX_SHADER_LANGUAGE_GLSL=%d", glsl);
|
bx::snprintf(glslDefine, BX_COUNTOF(glslDefine), "BGFX_SHADER_LANGUAGE_GLSL=%d", essl ? 1 : glsl);
|
||||||
|
|
||||||
if (0 == bx::stricmp(platform, "android") )
|
if (0 == bx::stricmp(platform, "android") )
|
||||||
{
|
{
|
||||||
@ -972,9 +972,9 @@ int main(int _argc, const char* _argv[])
|
|||||||
|
|
||||||
const char* name = parse = bx::strws(bx::strword(parse) );
|
const char* name = parse = bx::strws(bx::strword(parse) );
|
||||||
const char* column = parse = bx::strws(bx::strword(parse) );
|
const char* column = parse = bx::strws(bx::strword(parse) );
|
||||||
const char* semantics = parse = bx::strws(bx::strnws (parse) );
|
const char* semantics = parse = bx::strws((*parse == ':' ? ++parse : parse));
|
||||||
const char* assign = parse = bx::strws(bx::strword(parse) );
|
const char* assign = parse = bx::strws(bx::strword(parse) );
|
||||||
const char* init = parse = bx::strws(bx::strnws (parse) );
|
const char* init = parse = bx::strws((*parse == '=' ? ++parse : parse));
|
||||||
|
|
||||||
if (type < eol
|
if (type < eol
|
||||||
&& name < eol
|
&& name < eol
|
||||||
@ -1155,7 +1155,8 @@ int main(int _argc, const char* _argv[])
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (0 != glsl)
|
if (0 != glsl
|
||||||
|
|| 0 != essl)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -1269,7 +1270,8 @@ int main(int _argc, const char* _argv[])
|
|||||||
bx::write(writer, BGFX_CHUNK_MAGIC_CSH);
|
bx::write(writer, BGFX_CHUNK_MAGIC_CSH);
|
||||||
bx::write(writer, outputHash);
|
bx::write(writer, outputHash);
|
||||||
|
|
||||||
if (0 != glsl)
|
if (0 != glsl
|
||||||
|
|| 0 != essl)
|
||||||
{
|
{
|
||||||
std::string code;
|
std::string code;
|
||||||
|
|
||||||
@ -1338,10 +1340,11 @@ int main(int _argc, const char* _argv[])
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (0 != glsl)
|
if (0 != glsl
|
||||||
|
|| 0 != essl)
|
||||||
{
|
{
|
||||||
if (120 == glsl
|
if (120 == glsl
|
||||||
|| essl)
|
|| 0 != essl)
|
||||||
{
|
{
|
||||||
preprocessor.writef(
|
preprocessor.writef(
|
||||||
"#define ivec2 vec2\n"
|
"#define ivec2 vec2\n"
|
||||||
@ -1700,7 +1703,8 @@ int main(int _argc, const char* _argv[])
|
|||||||
bx::write(writer, outputHash);
|
bx::write(writer, outputHash);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (0 != glsl)
|
if (0 != glsl
|
||||||
|
|| 0 != essl)
|
||||||
{
|
{
|
||||||
std::string code;
|
std::string code;
|
||||||
|
|
||||||
|
9
3rdparty/bgfx/tools/shaderc/shaderc_dx11.cpp
vendored
9
3rdparty/bgfx/tools/shaderc/shaderc_dx11.cpp
vendored
@ -8,6 +8,13 @@
|
|||||||
#if SHADERC_CONFIG_DIRECT3D11
|
#if SHADERC_CONFIG_DIRECT3D11
|
||||||
|
|
||||||
#include <d3dcompiler.h>
|
#include <d3dcompiler.h>
|
||||||
|
#include <d3d11shader.h>
|
||||||
|
|
||||||
|
#ifndef D3D_SVF_USED
|
||||||
|
# define D3D_SVF_USED 2
|
||||||
|
#endif // D3D_SVF_USED
|
||||||
|
|
||||||
|
static const GUID GUID_ID3D11ShaderReflection = { 0x0a233719, 0x3960, 0x4578, { 0x9d, 0x7c, 0x20, 0x3b, 0x8b, 0x1d, 0x9c, 0xc1 } };
|
||||||
|
|
||||||
struct RemapInputSemantic
|
struct RemapInputSemantic
|
||||||
{
|
{
|
||||||
@ -202,7 +209,7 @@ bool compileHLSLShaderDx11(bx::CommandLine& _cmdLine, const std::string& _code,
|
|||||||
ID3D11ShaderReflection* reflect = NULL;
|
ID3D11ShaderReflection* reflect = NULL;
|
||||||
hr = D3DReflect(code->GetBufferPointer()
|
hr = D3DReflect(code->GetBufferPointer()
|
||||||
, code->GetBufferSize()
|
, code->GetBufferSize()
|
||||||
, IID_ID3D11ShaderReflection
|
, GUID_ID3D11ShaderReflection
|
||||||
, (void**)&reflect
|
, (void**)&reflect
|
||||||
);
|
);
|
||||||
if (FAILED(hr) )
|
if (FAILED(hr) )
|
||||||
|
4
3rdparty/bx/include/bx/handlealloc.h
vendored
4
3rdparty/bx/include/bx/handlealloc.h
vendored
@ -71,7 +71,9 @@ namespace bx
|
|||||||
uint16_t* sparse = &m_handles[MaxHandlesT];
|
uint16_t* sparse = &m_handles[MaxHandlesT];
|
||||||
uint16_t index = sparse[_handle];
|
uint16_t index = sparse[_handle];
|
||||||
|
|
||||||
return (index < m_numHandles && m_handles[index] == _handle);
|
return index < m_numHandles
|
||||||
|
&& m_handles[index] == _handle
|
||||||
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
void free(uint16_t _handle)
|
void free(uint16_t _handle)
|
||||||
|
4
3rdparty/bx/include/bx/platform.h
vendored
4
3rdparty/bx/include/bx/platform.h
vendored
@ -218,7 +218,9 @@
|
|||||||
BX_STRINGIZE(__clang_minor__) "." \
|
BX_STRINGIZE(__clang_minor__) "." \
|
||||||
BX_STRINGIZE(__clang_patchlevel__)
|
BX_STRINGIZE(__clang_patchlevel__)
|
||||||
#elif BX_COMPILER_MSVC
|
#elif BX_COMPILER_MSVC
|
||||||
# if BX_COMPILER_MSVC >= 1800
|
# if BX_COMPILER_MSVC >= 1900
|
||||||
|
# define BX_COMPILER_NAME "MSVC 14.0"
|
||||||
|
# elif BX_COMPILER_MSVC >= 1800
|
||||||
# define BX_COMPILER_NAME "MSVC 12.0"
|
# define BX_COMPILER_NAME "MSVC 12.0"
|
||||||
# elif BX_COMPILER_MSVC >= 1700
|
# elif BX_COMPILER_MSVC >= 1700
|
||||||
# define BX_COMPILER_NAME "MSVC 11.0"
|
# define BX_COMPILER_NAME "MSVC 11.0"
|
||||||
|
32
3rdparty/bx/include/bx/radixsort.h
vendored
32
3rdparty/bx/include/bx/radixsort.h
vendored
@ -30,14 +30,16 @@ namespace bx
|
|||||||
memset(histogram, 0, sizeof(uint16_t)*BX_RADIXSORT_HISTOGRAM_SIZE);
|
memset(histogram, 0, sizeof(uint16_t)*BX_RADIXSORT_HISTOGRAM_SIZE);
|
||||||
|
|
||||||
bool sorted = true;
|
bool sorted = true;
|
||||||
uint32_t key = keys[0];
|
|
||||||
uint32_t prevKey = key;
|
|
||||||
for (uint32_t ii = 0; ii < _size; ++ii, prevKey = key)
|
|
||||||
{
|
{
|
||||||
key = keys[ii];
|
uint32_t key = keys[0];
|
||||||
uint16_t index = (key>>shift)&BX_RADIXSORT_BIT_MASK;
|
uint32_t prevKey = key;
|
||||||
++histogram[index];
|
for (uint32_t ii = 0; ii < _size; ++ii, prevKey = key)
|
||||||
sorted &= prevKey <= key;
|
{
|
||||||
|
key = keys[ii];
|
||||||
|
uint16_t index = (key>>shift)&BX_RADIXSORT_BIT_MASK;
|
||||||
|
++histogram[index];
|
||||||
|
sorted &= prevKey <= key;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sorted)
|
if (sorted)
|
||||||
@ -101,14 +103,16 @@ done:
|
|||||||
memset(histogram, 0, sizeof(uint16_t)*BX_RADIXSORT_HISTOGRAM_SIZE);
|
memset(histogram, 0, sizeof(uint16_t)*BX_RADIXSORT_HISTOGRAM_SIZE);
|
||||||
|
|
||||||
bool sorted = true;
|
bool sorted = true;
|
||||||
uint64_t key = keys[0];
|
|
||||||
uint64_t prevKey = key;
|
|
||||||
for (uint32_t ii = 0; ii < _size; ++ii, prevKey = key)
|
|
||||||
{
|
{
|
||||||
key = keys[ii];
|
uint64_t key = keys[0];
|
||||||
uint16_t index = (key>>shift)&BX_RADIXSORT_BIT_MASK;
|
uint64_t prevKey = key;
|
||||||
++histogram[index];
|
for (uint32_t ii = 0; ii < _size; ++ii, prevKey = key)
|
||||||
sorted &= prevKey <= key;
|
{
|
||||||
|
key = keys[ii];
|
||||||
|
uint16_t index = (key>>shift)&BX_RADIXSORT_BIT_MASK;
|
||||||
|
++histogram[index];
|
||||||
|
sorted &= prevKey <= key;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sorted)
|
if (sorted)
|
||||||
|
120
3rdparty/bx/scripts/toolchain.lua
vendored
120
3rdparty/bx/scripts/toolchain.lua
vendored
@ -19,6 +19,7 @@ function toolchain(_buildDir, _libDir)
|
|||||||
{ "asmjs", "Emscripten/asm.js" },
|
{ "asmjs", "Emscripten/asm.js" },
|
||||||
{ "freebsd", "FreeBSD" },
|
{ "freebsd", "FreeBSD" },
|
||||||
{ "linux-gcc", "Linux (GCC compiler)" },
|
{ "linux-gcc", "Linux (GCC compiler)" },
|
||||||
|
{ "linux-gcc-5", "Linux (GCC-5 compiler)" },
|
||||||
{ "linux-clang", "Linux (Clang compiler)" },
|
{ "linux-clang", "Linux (Clang compiler)" },
|
||||||
{ "ios-arm", "iOS - ARM" },
|
{ "ios-arm", "iOS - ARM" },
|
||||||
{ "ios-simulator", "iOS - Simulator" },
|
{ "ios-simulator", "iOS - Simulator" },
|
||||||
@ -40,8 +41,9 @@ function toolchain(_buildDir, _libDir)
|
|||||||
allowed = {
|
allowed = {
|
||||||
{ "vs2012-clang", "Clang 3.6" },
|
{ "vs2012-clang", "Clang 3.6" },
|
||||||
{ "vs2013-clang", "Clang 3.6" },
|
{ "vs2013-clang", "Clang 3.6" },
|
||||||
{ "vs2012-xp", "Visual Studio 2012 targeting XP" },
|
{ "vs2012-xp", "Visual Studio 2012 targeting XP" },
|
||||||
{ "vs2013-xp", "Visual Studio 2013 targeting XP" },
|
{ "vs2013-xp", "Visual Studio 2013 targeting XP" },
|
||||||
|
{ "vs2015-xp", "Visual Studio 2015 targeting XP" },
|
||||||
{ "winphone8", "Windows Phone 8.0" },
|
{ "winphone8", "Windows Phone 8.0" },
|
||||||
{ "winphone81", "Windows Phone 8.1" },
|
{ "winphone81", "Windows Phone 8.1" },
|
||||||
},
|
},
|
||||||
@ -110,9 +112,8 @@ function toolchain(_buildDir, _libDir)
|
|||||||
premake.gcc.cxx = "$(ANDROID_NDK_ARM)/bin/arm-linux-androideabi-g++"
|
premake.gcc.cxx = "$(ANDROID_NDK_ARM)/bin/arm-linux-androideabi-g++"
|
||||||
premake.gcc.ar = "$(ANDROID_NDK_ARM)/bin/arm-linux-androideabi-ar"
|
premake.gcc.ar = "$(ANDROID_NDK_ARM)/bin/arm-linux-androideabi-ar"
|
||||||
location (path.join(_buildDir, "projects", _ACTION .. "-android-arm"))
|
location (path.join(_buildDir, "projects", _ACTION .. "-android-arm"))
|
||||||
end
|
|
||||||
|
|
||||||
if "android-mips" == _OPTIONS["gcc"] then
|
elseif "android-mips" == _OPTIONS["gcc"] then
|
||||||
|
|
||||||
if not os.getenv("ANDROID_NDK_MIPS") or not os.getenv("ANDROID_NDK_ROOT") then
|
if not os.getenv("ANDROID_NDK_MIPS") or not os.getenv("ANDROID_NDK_ROOT") then
|
||||||
print("Set ANDROID_NDK_MIPS and ANDROID_NDK_ROOT envrionment variables.")
|
print("Set ANDROID_NDK_MIPS and ANDROID_NDK_ROOT envrionment variables.")
|
||||||
@ -122,9 +123,8 @@ function toolchain(_buildDir, _libDir)
|
|||||||
premake.gcc.cxx = "$(ANDROID_NDK_MIPS)/bin/mipsel-linux-android-g++"
|
premake.gcc.cxx = "$(ANDROID_NDK_MIPS)/bin/mipsel-linux-android-g++"
|
||||||
premake.gcc.ar = "$(ANDROID_NDK_MIPS)/bin/mipsel-linux-android-ar"
|
premake.gcc.ar = "$(ANDROID_NDK_MIPS)/bin/mipsel-linux-android-ar"
|
||||||
location (path.join(_buildDir, "projects", _ACTION .. "-android-mips"))
|
location (path.join(_buildDir, "projects", _ACTION .. "-android-mips"))
|
||||||
end
|
|
||||||
|
|
||||||
if "android-x86" == _OPTIONS["gcc"] then
|
elseif "android-x86" == _OPTIONS["gcc"] then
|
||||||
|
|
||||||
if not os.getenv("ANDROID_NDK_X86") or not os.getenv("ANDROID_NDK_ROOT") then
|
if not os.getenv("ANDROID_NDK_X86") or not os.getenv("ANDROID_NDK_ROOT") then
|
||||||
print("Set ANDROID_NDK_X86 and ANDROID_NDK_ROOT envrionment variables.")
|
print("Set ANDROID_NDK_X86 and ANDROID_NDK_ROOT envrionment variables.")
|
||||||
@ -134,9 +134,8 @@ function toolchain(_buildDir, _libDir)
|
|||||||
premake.gcc.cxx = "$(ANDROID_NDK_X86)/bin/i686-linux-android-g++"
|
premake.gcc.cxx = "$(ANDROID_NDK_X86)/bin/i686-linux-android-g++"
|
||||||
premake.gcc.ar = "$(ANDROID_NDK_X86)/bin/i686-linux-android-ar"
|
premake.gcc.ar = "$(ANDROID_NDK_X86)/bin/i686-linux-android-ar"
|
||||||
location (path.join(_buildDir, "projects", _ACTION .. "-android-x86"))
|
location (path.join(_buildDir, "projects", _ACTION .. "-android-x86"))
|
||||||
end
|
|
||||||
|
|
||||||
if "asmjs" == _OPTIONS["gcc"] then
|
elseif "asmjs" == _OPTIONS["gcc"] then
|
||||||
|
|
||||||
if not os.getenv("EMSCRIPTEN") then
|
if not os.getenv("EMSCRIPTEN") then
|
||||||
print("Set EMSCRIPTEN enviroment variables.")
|
print("Set EMSCRIPTEN enviroment variables.")
|
||||||
@ -147,54 +146,52 @@ function toolchain(_buildDir, _libDir)
|
|||||||
premake.gcc.ar = "$(EMSCRIPTEN)/emar"
|
premake.gcc.ar = "$(EMSCRIPTEN)/emar"
|
||||||
premake.gcc.llvm = true
|
premake.gcc.llvm = true
|
||||||
location (path.join(_buildDir, "projects", _ACTION .. "-asmjs"))
|
location (path.join(_buildDir, "projects", _ACTION .. "-asmjs"))
|
||||||
end
|
|
||||||
|
|
||||||
if "freebsd" == _OPTIONS["gcc"] then
|
elseif "freebsd" == _OPTIONS["gcc"] then
|
||||||
location (path.join(_buildDir, "projects", _ACTION .. "-freebsd"))
|
location (path.join(_buildDir, "projects", _ACTION .. "-freebsd"))
|
||||||
end
|
|
||||||
|
|
||||||
if "ios-arm" == _OPTIONS["gcc"] then
|
elseif "ios-arm" == _OPTIONS["gcc"] then
|
||||||
premake.gcc.cc = "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang"
|
premake.gcc.cc = "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang"
|
||||||
premake.gcc.cxx = "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++"
|
premake.gcc.cxx = "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++"
|
||||||
premake.gcc.ar = "ar"
|
premake.gcc.ar = "ar"
|
||||||
location (path.join(_buildDir, "projects", _ACTION .. "-ios-arm"))
|
location (path.join(_buildDir, "projects", _ACTION .. "-ios-arm"))
|
||||||
end
|
|
||||||
|
|
||||||
if "ios-simulator" == _OPTIONS["gcc"] then
|
elseif "ios-simulator" == _OPTIONS["gcc"] then
|
||||||
premake.gcc.cc = "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang"
|
premake.gcc.cc = "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang"
|
||||||
premake.gcc.cxx = "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++"
|
premake.gcc.cxx = "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++"
|
||||||
premake.gcc.ar = "ar"
|
premake.gcc.ar = "ar"
|
||||||
location (path.join(_buildDir, "projects", _ACTION .. "-ios-simulator"))
|
location (path.join(_buildDir, "projects", _ACTION .. "-ios-simulator"))
|
||||||
end
|
|
||||||
|
|
||||||
if "linux-gcc" == _OPTIONS["gcc"] then
|
elseif "linux-gcc" == _OPTIONS["gcc"] then
|
||||||
location (path.join(_buildDir, "projects", _ACTION .. "-linux"))
|
location (path.join(_buildDir, "projects", _ACTION .. "-linux"))
|
||||||
end
|
|
||||||
|
|
||||||
if "linux-clang" == _OPTIONS["gcc"] then
|
elseif "linux-gcc-5" == _OPTIONS["gcc"] then
|
||||||
|
premake.gcc.cc = "gcc-5"
|
||||||
|
premake.gcc.cxx = "g++-5"
|
||||||
|
premake.gcc.ar = "ar"
|
||||||
|
location (path.join(_buildDir, "projects", _ACTION .. "-linux"))
|
||||||
|
|
||||||
|
elseif "linux-clang" == _OPTIONS["gcc"] then
|
||||||
premake.gcc.cc = "clang"
|
premake.gcc.cc = "clang"
|
||||||
premake.gcc.cxx = "clang++"
|
premake.gcc.cxx = "clang++"
|
||||||
premake.gcc.ar = "ar"
|
premake.gcc.ar = "ar"
|
||||||
location (path.join(_buildDir, "projects", _ACTION .. "-linux-clang"))
|
location (path.join(_buildDir, "projects", _ACTION .. "-linux-clang"))
|
||||||
end
|
|
||||||
|
|
||||||
if "mingw-gcc" == _OPTIONS["gcc"] then
|
elseif "mingw-gcc" == _OPTIONS["gcc"] then
|
||||||
premake.gcc.cc = "$(MINGW)/bin/x86_64-w64-mingw32-gcc"
|
premake.gcc.cc = "$(MINGW)/bin/x86_64-w64-mingw32-gcc"
|
||||||
premake.gcc.cxx = "$(MINGW)/bin/x86_64-w64-mingw32-g++"
|
premake.gcc.cxx = "$(MINGW)/bin/x86_64-w64-mingw32-g++"
|
||||||
premake.gcc.ar = "$(MINGW)/bin/ar"
|
premake.gcc.ar = "$(MINGW)/bin/ar"
|
||||||
location (path.join(_buildDir, "projects", _ACTION .. "-mingw-gcc"))
|
location (path.join(_buildDir, "projects", _ACTION .. "-mingw-gcc"))
|
||||||
end
|
|
||||||
|
|
||||||
if "mingw-clang" == _OPTIONS["gcc"] then
|
elseif "mingw-clang" == _OPTIONS["gcc"] then
|
||||||
premake.gcc.cc = "$(CLANG)/bin/clang"
|
premake.gcc.cc = "$(CLANG)/bin/clang"
|
||||||
premake.gcc.cxx = "$(CLANG)/bin/clang++"
|
premake.gcc.cxx = "$(CLANG)/bin/clang++"
|
||||||
premake.gcc.ar = "$(MINGW)/bin/ar"
|
premake.gcc.ar = "$(MINGW)/bin/ar"
|
||||||
-- premake.gcc.ar = "$(CLANG)/bin/llvm-ar"
|
-- premake.gcc.ar = "$(CLANG)/bin/llvm-ar"
|
||||||
-- premake.gcc.llvm = true
|
-- premake.gcc.llvm = true
|
||||||
location (path.join(_buildDir, "projects", _ACTION .. "-mingw-clang"))
|
location (path.join(_buildDir, "projects", _ACTION .. "-mingw-clang"))
|
||||||
end
|
|
||||||
|
|
||||||
if "nacl" == _OPTIONS["gcc"] then
|
elseif "nacl" == _OPTIONS["gcc"] then
|
||||||
|
|
||||||
if not os.getenv("NACL_SDK_ROOT") then
|
if not os.getenv("NACL_SDK_ROOT") then
|
||||||
print("Set NACL_SDK_ROOT enviroment variables.")
|
print("Set NACL_SDK_ROOT enviroment variables.")
|
||||||
@ -211,9 +208,8 @@ function toolchain(_buildDir, _libDir)
|
|||||||
premake.gcc.cxx = naclToolchain .. "g++"
|
premake.gcc.cxx = naclToolchain .. "g++"
|
||||||
premake.gcc.ar = naclToolchain .. "ar"
|
premake.gcc.ar = naclToolchain .. "ar"
|
||||||
location (path.join(_buildDir, "projects", _ACTION .. "-nacl"))
|
location (path.join(_buildDir, "projects", _ACTION .. "-nacl"))
|
||||||
end
|
|
||||||
|
|
||||||
if "nacl-arm" == _OPTIONS["gcc"] then
|
elseif "nacl-arm" == _OPTIONS["gcc"] then
|
||||||
|
|
||||||
if not os.getenv("NACL_SDK_ROOT") then
|
if not os.getenv("NACL_SDK_ROOT") then
|
||||||
print("Set NACL_SDK_ROOT enviroment variables.")
|
print("Set NACL_SDK_ROOT enviroment variables.")
|
||||||
@ -230,9 +226,9 @@ function toolchain(_buildDir, _libDir)
|
|||||||
premake.gcc.cxx = naclToolchain .. "g++"
|
premake.gcc.cxx = naclToolchain .. "g++"
|
||||||
premake.gcc.ar = naclToolchain .. "ar"
|
premake.gcc.ar = naclToolchain .. "ar"
|
||||||
location (path.join(_buildDir, "projects", _ACTION .. "-nacl-arm"))
|
location (path.join(_buildDir, "projects", _ACTION .. "-nacl-arm"))
|
||||||
end
|
|
||||||
|
|
||||||
if "osx" == _OPTIONS["gcc"] then
|
elseif "osx" == _OPTIONS["gcc"] then
|
||||||
|
|
||||||
if os.is("linux") then
|
if os.is("linux") then
|
||||||
local osxToolchain = "x86_64-apple-darwin13-"
|
local osxToolchain = "x86_64-apple-darwin13-"
|
||||||
premake.gcc.cc = osxToolchain .. "clang"
|
premake.gcc.cc = osxToolchain .. "clang"
|
||||||
@ -240,9 +236,8 @@ function toolchain(_buildDir, _libDir)
|
|||||||
premake.gcc.ar = osxToolchain .. "ar"
|
premake.gcc.ar = osxToolchain .. "ar"
|
||||||
end
|
end
|
||||||
location (path.join(_buildDir, "projects", _ACTION .. "-osx"))
|
location (path.join(_buildDir, "projects", _ACTION .. "-osx"))
|
||||||
end
|
|
||||||
|
|
||||||
if "pnacl" == _OPTIONS["gcc"] then
|
elseif "pnacl" == _OPTIONS["gcc"] then
|
||||||
|
|
||||||
if not os.getenv("NACL_SDK_ROOT") then
|
if not os.getenv("NACL_SDK_ROOT") then
|
||||||
print("Set NACL_SDK_ROOT enviroment variables.")
|
print("Set NACL_SDK_ROOT enviroment variables.")
|
||||||
@ -259,9 +254,8 @@ function toolchain(_buildDir, _libDir)
|
|||||||
premake.gcc.cxx = naclToolchain .. "clang++"
|
premake.gcc.cxx = naclToolchain .. "clang++"
|
||||||
premake.gcc.ar = naclToolchain .. "ar"
|
premake.gcc.ar = naclToolchain .. "ar"
|
||||||
location (path.join(_buildDir, "projects", _ACTION .. "-pnacl"))
|
location (path.join(_buildDir, "projects", _ACTION .. "-pnacl"))
|
||||||
end
|
|
||||||
|
|
||||||
if "qnx-arm" == _OPTIONS["gcc"] then
|
elseif "qnx-arm" == _OPTIONS["gcc"] then
|
||||||
|
|
||||||
if not os.getenv("QNX_HOST") then
|
if not os.getenv("QNX_HOST") then
|
||||||
print("Set QNX_HOST enviroment variables.")
|
print("Set QNX_HOST enviroment variables.")
|
||||||
@ -271,9 +265,8 @@ function toolchain(_buildDir, _libDir)
|
|||||||
premake.gcc.cxx = "$(QNX_HOST)/usr/bin/arm-unknown-nto-qnx8.0.0eabi-g++"
|
premake.gcc.cxx = "$(QNX_HOST)/usr/bin/arm-unknown-nto-qnx8.0.0eabi-g++"
|
||||||
premake.gcc.ar = "$(QNX_HOST)/usr/bin/arm-unknown-nto-qnx8.0.0eabi-ar"
|
premake.gcc.ar = "$(QNX_HOST)/usr/bin/arm-unknown-nto-qnx8.0.0eabi-ar"
|
||||||
location (path.join(_buildDir, "projects", _ACTION .. "-qnx-arm"))
|
location (path.join(_buildDir, "projects", _ACTION .. "-qnx-arm"))
|
||||||
end
|
|
||||||
|
|
||||||
if "rpi" == _OPTIONS["gcc"] then
|
elseif "rpi" == _OPTIONS["gcc"] then
|
||||||
location (path.join(_buildDir, "projects", _ACTION .. "-rpi"))
|
location (path.join(_buildDir, "projects", _ACTION .. "-rpi"))
|
||||||
end
|
end
|
||||||
elseif _ACTION == "vs2012" or _ACTION == "vs2013" or _ACTION == "vs2015" then
|
elseif _ACTION == "vs2012" or _ACTION == "vs2013" or _ACTION == "vs2015" then
|
||||||
@ -281,27 +274,27 @@ function toolchain(_buildDir, _libDir)
|
|||||||
if (_ACTION .. "-clang") == _OPTIONS["vs"] then
|
if (_ACTION .. "-clang") == _OPTIONS["vs"] then
|
||||||
premake.vstudio.toolset = ("LLVM-" .. _ACTION)
|
premake.vstudio.toolset = ("LLVM-" .. _ACTION)
|
||||||
location (path.join(_buildDir, "projects", _ACTION .. "-clang"))
|
location (path.join(_buildDir, "projects", _ACTION .. "-clang"))
|
||||||
end
|
|
||||||
|
|
||||||
if "winphone8" == _OPTIONS["vs"] then
|
elseif "winphone8" == _OPTIONS["vs"] then
|
||||||
premake.vstudio.toolset = "v110_wp80"
|
premake.vstudio.toolset = "v110_wp80"
|
||||||
location (path.join(_buildDir, "projects", _ACTION .. "-winphone8"))
|
location (path.join(_buildDir, "projects", _ACTION .. "-winphone8"))
|
||||||
end
|
|
||||||
|
|
||||||
if "winphone81" == _OPTIONS["vs"] then
|
elseif "winphone81" == _OPTIONS["vs"] then
|
||||||
premake.vstudio.toolset = "v120_wp81"
|
premake.vstudio.toolset = "v120_wp81"
|
||||||
platforms { "ARM" }
|
platforms { "ARM" }
|
||||||
location (path.join(_buildDir, "projects", _ACTION .. "-winphone81"))
|
location (path.join(_buildDir, "projects", _ACTION .. "-winphone81"))
|
||||||
end
|
|
||||||
|
|
||||||
if ("vs2012-xp") == _OPTIONS["vs"] then
|
elseif ("vs2012-xp") == _OPTIONS["vs"] then
|
||||||
premake.vstudio.toolset = ("v110_xp")
|
premake.vstudio.toolset = ("v110_xp")
|
||||||
location (path.join(_buildDir, "projects", _ACTION .. "-xp"))
|
location (path.join(_buildDir, "projects", _ACTION .. "-xp"))
|
||||||
end
|
|
||||||
|
|
||||||
if ("vs2013-xp") == _OPTIONS["vs"] then
|
elseif ("vs2013-xp") == _OPTIONS["vs"] then
|
||||||
premake.vstudio.toolset = ("v120_xp")
|
premake.vstudio.toolset = ("v120_xp")
|
||||||
location (path.join(_buildDir, "projects", _ACTION .. "-xp"))
|
location (path.join(_buildDir, "projects", _ACTION .. "-xp"))
|
||||||
|
|
||||||
|
elseif ("vs2015-xp") == _OPTIONS["vs"] then
|
||||||
|
premake.vstudio.toolset = ("v140_xp")
|
||||||
|
location (path.join(_buildDir, "projects", _ACTION .. "-xp"))
|
||||||
end
|
end
|
||||||
|
|
||||||
elseif _ACTION == "xcode4" then
|
elseif _ACTION == "xcode4" then
|
||||||
@ -309,8 +302,8 @@ function toolchain(_buildDir, _libDir)
|
|||||||
if "osx" == _OPTIONS["xcode"] then
|
if "osx" == _OPTIONS["xcode"] then
|
||||||
premake.xcode.toolset = "macosx"
|
premake.xcode.toolset = "macosx"
|
||||||
location (path.join(_buildDir, "projects", _ACTION .. "-osx"))
|
location (path.join(_buildDir, "projects", _ACTION .. "-osx"))
|
||||||
end
|
|
||||||
if "ios" == _OPTIONS["xcode"] then
|
elseif "ios" == _OPTIONS["xcode"] then
|
||||||
premake.xcode.toolset = "iphoneos"
|
premake.xcode.toolset = "iphoneos"
|
||||||
location (path.join(_buildDir, "projects", _ACTION .. "-ios"))
|
location (path.join(_buildDir, "projects", _ACTION .. "-ios"))
|
||||||
end
|
end
|
||||||
@ -479,13 +472,26 @@ function toolchain(_buildDir, _libDir)
|
|||||||
}
|
}
|
||||||
buildoptions { "-m64" }
|
buildoptions { "-m64" }
|
||||||
|
|
||||||
configuration { "linux-gcc and not linux-clang" }
|
configuration { "linux-clang" }
|
||||||
|
|
||||||
|
configuration { "linux-gcc-5" }
|
||||||
|
buildoptions {
|
||||||
|
-- "-fno-omit-frame-pointer",
|
||||||
|
-- "-fsanitize=address",
|
||||||
|
-- "-fsanitize=undefined",
|
||||||
|
-- "-fsanitize=float-divide-by-zero",
|
||||||
|
-- "-fsanitize=float-cast-overflow",
|
||||||
|
}
|
||||||
|
links {
|
||||||
|
-- "asan",
|
||||||
|
-- "ubsan",
|
||||||
|
}
|
||||||
|
|
||||||
|
configuration { "linux-g*" }
|
||||||
buildoptions {
|
buildoptions {
|
||||||
"-mfpmath=sse", -- force SSE to get 32-bit and 64-bit builds deterministic.
|
"-mfpmath=sse", -- force SSE to get 32-bit and 64-bit builds deterministic.
|
||||||
}
|
}
|
||||||
|
|
||||||
configuration { "linux-clang" }
|
|
||||||
|
|
||||||
configuration { "linux-*" }
|
configuration { "linux-*" }
|
||||||
buildoptions {
|
buildoptions {
|
||||||
"-msse2",
|
"-msse2",
|
||||||
@ -503,7 +509,7 @@ function toolchain(_buildDir, _libDir)
|
|||||||
"-Wl,--gc-sections",
|
"-Wl,--gc-sections",
|
||||||
}
|
}
|
||||||
|
|
||||||
configuration { "linux-gcc", "x32" }
|
configuration { "linux-g*", "x32" }
|
||||||
targetdir (path.join(_buildDir, "linux32_gcc/bin"))
|
targetdir (path.join(_buildDir, "linux32_gcc/bin"))
|
||||||
objdir (path.join(_buildDir, "linux32_gcc/obj"))
|
objdir (path.join(_buildDir, "linux32_gcc/obj"))
|
||||||
libdirs { path.join(_libDir, "lib/linux32_gcc") }
|
libdirs { path.join(_libDir, "lib/linux32_gcc") }
|
||||||
@ -511,7 +517,7 @@ function toolchain(_buildDir, _libDir)
|
|||||||
"-m32",
|
"-m32",
|
||||||
}
|
}
|
||||||
|
|
||||||
configuration { "linux-gcc", "x64" }
|
configuration { "linux-g*", "x64" }
|
||||||
targetdir (path.join(_buildDir, "linux64_gcc/bin"))
|
targetdir (path.join(_buildDir, "linux64_gcc/bin"))
|
||||||
objdir (path.join(_buildDir, "linux64_gcc/obj"))
|
objdir (path.join(_buildDir, "linux64_gcc/obj"))
|
||||||
libdirs { path.join(_libDir, "lib/linux64_gcc") }
|
libdirs { path.join(_libDir, "lib/linux64_gcc") }
|
||||||
@ -558,7 +564,6 @@ function toolchain(_buildDir, _libDir)
|
|||||||
}
|
}
|
||||||
buildoptions {
|
buildoptions {
|
||||||
"-fPIC",
|
"-fPIC",
|
||||||
"-std=c++0x",
|
|
||||||
"-no-canonical-prefixes",
|
"-no-canonical-prefixes",
|
||||||
"-Wa,--noexecstack",
|
"-Wa,--noexecstack",
|
||||||
"-fstack-protector",
|
"-fstack-protector",
|
||||||
@ -567,6 +572,9 @@ function toolchain(_buildDir, _libDir)
|
|||||||
"-Wunused-value",
|
"-Wunused-value",
|
||||||
"-Wundef",
|
"-Wundef",
|
||||||
}
|
}
|
||||||
|
buildoptions_cpp {
|
||||||
|
"-std=c++0x",
|
||||||
|
}
|
||||||
linkoptions {
|
linkoptions {
|
||||||
"-no-canonical-prefixes",
|
"-no-canonical-prefixes",
|
||||||
"-Wl,--no-undefined",
|
"-Wl,--no-undefined",
|
||||||
@ -670,7 +678,6 @@ function toolchain(_buildDir, _libDir)
|
|||||||
|
|
||||||
configuration { "nacl or nacl-arm or pnacl" }
|
configuration { "nacl or nacl-arm or pnacl" }
|
||||||
buildoptions {
|
buildoptions {
|
||||||
"-std=c++0x",
|
|
||||||
"-U__STRICT_ANSI__", -- strcasecmp, setenv, unsetenv,...
|
"-U__STRICT_ANSI__", -- strcasecmp, setenv, unsetenv,...
|
||||||
"-fno-stack-protector",
|
"-fno-stack-protector",
|
||||||
"-fdiagnostics-show-option",
|
"-fdiagnostics-show-option",
|
||||||
@ -679,6 +686,9 @@ function toolchain(_buildDir, _libDir)
|
|||||||
"-Wunused-value",
|
"-Wunused-value",
|
||||||
"-Wundef",
|
"-Wundef",
|
||||||
}
|
}
|
||||||
|
buildoptions_cpp {
|
||||||
|
"-std=c++0x",
|
||||||
|
}
|
||||||
includedirs {
|
includedirs {
|
||||||
"$(NACL_SDK_ROOT)/include",
|
"$(NACL_SDK_ROOT)/include",
|
||||||
path.join(bxDir, "include/compat/nacl"),
|
path.join(bxDir, "include/compat/nacl"),
|
||||||
@ -756,7 +766,7 @@ function toolchain(_buildDir, _libDir)
|
|||||||
configuration { "osx", "x32" }
|
configuration { "osx", "x32" }
|
||||||
targetdir (path.join(_buildDir, "osx32_clang/bin"))
|
targetdir (path.join(_buildDir, "osx32_clang/bin"))
|
||||||
objdir (path.join(_buildDir, "osx32_clang/obj"))
|
objdir (path.join(_buildDir, "osx32_clang/obj"))
|
||||||
libdirs { path.join(_libDir, "lib/osx32_clang") }
|
--libdirs { path.join(_libDir, "lib/osx32_clang") }
|
||||||
buildoptions {
|
buildoptions {
|
||||||
"-m32",
|
"-m32",
|
||||||
}
|
}
|
||||||
@ -764,7 +774,7 @@ function toolchain(_buildDir, _libDir)
|
|||||||
configuration { "osx", "x64" }
|
configuration { "osx", "x64" }
|
||||||
targetdir (path.join(_buildDir, "osx64_clang/bin"))
|
targetdir (path.join(_buildDir, "osx64_clang/bin"))
|
||||||
objdir (path.join(_buildDir, "osx64_clang/obj"))
|
objdir (path.join(_buildDir, "osx64_clang/obj"))
|
||||||
libdirs { path.join(_libDir, "lib/osx64_clang") }
|
--libdirs { path.join(_libDir, "lib/osx64_clang") }
|
||||||
buildoptions {
|
buildoptions {
|
||||||
"-m64",
|
"-m64",
|
||||||
}
|
}
|
||||||
@ -831,11 +841,13 @@ function toolchain(_buildDir, _libDir)
|
|||||||
libdirs { path.join(_libDir, "lib/qnx-arm") }
|
libdirs { path.join(_libDir, "lib/qnx-arm") }
|
||||||
-- includedirs { path.join(bxDir, "include/compat/qnx") }
|
-- includedirs { path.join(bxDir, "include/compat/qnx") }
|
||||||
buildoptions {
|
buildoptions {
|
||||||
"-std=c++0x",
|
|
||||||
"-Wno-psabi", -- note: the mangling of 'va_list' has changed in GCC 4.4.0
|
"-Wno-psabi", -- note: the mangling of 'va_list' has changed in GCC 4.4.0
|
||||||
"-Wunused-value",
|
"-Wunused-value",
|
||||||
"-Wundef",
|
"-Wundef",
|
||||||
}
|
}
|
||||||
|
buildoptions_cpp {
|
||||||
|
"-std=c++0x",
|
||||||
|
}
|
||||||
|
|
||||||
configuration { "rpi" }
|
configuration { "rpi" }
|
||||||
targetdir (path.join(_buildDir, "rpi/bin"))
|
targetdir (path.join(_buildDir, "rpi/bin"))
|
||||||
|
3
3rdparty/bx/tests/unordered_map_nonpod.cpp
vendored
3
3rdparty/bx/tests/unordered_map_nonpod.cpp
vendored
@ -29,8 +29,9 @@
|
|||||||
#include <tinystl/allocator.h>
|
#include <tinystl/allocator.h>
|
||||||
#include <tinystl/unordered_map.h>
|
#include <tinystl/unordered_map.h>
|
||||||
|
|
||||||
|
struct Foo { int bar; };
|
||||||
|
|
||||||
TEST(uomap_nonpod_compiles) {
|
TEST(uomap_nonpod_compiles) {
|
||||||
struct Foo { int bar; };
|
|
||||||
|
|
||||||
// verify this compiles
|
// verify this compiles
|
||||||
typedef tinystl::unordered_map<int, Foo> map;
|
typedef tinystl::unordered_map<int, Foo> map;
|
||||||
|
BIN
3rdparty/bx/tools/bin/darwin/genie
vendored
BIN
3rdparty/bx/tools/bin/darwin/genie
vendored
Binary file not shown.
BIN
3rdparty/bx/tools/bin/linux/genie
vendored
BIN
3rdparty/bx/tools/bin/linux/genie
vendored
Binary file not shown.
BIN
3rdparty/bx/tools/bin/windows/genie.exe
vendored
BIN
3rdparty/bx/tools/bin/windows/genie.exe
vendored
Binary file not shown.
8
3rdparty/genie/.gitignore
vendored
8
3rdparty/genie/.gitignore
vendored
@ -1,10 +1,2 @@
|
|||||||
bin
|
bin
|
||||||
build/*/obj
|
build/*/obj
|
||||||
scripts/obj
|
|
||||||
*.sln
|
|
||||||
*.suo
|
|
||||||
*.vcxproj
|
|
||||||
*.vcxproj.filters
|
|
||||||
*.vcxproj.user
|
|
||||||
*.opensdf
|
|
||||||
*.sdf
|
|
11
3rdparty/genie/README.md
vendored
11
3rdparty/genie/README.md
vendored
@ -14,7 +14,7 @@ Supported project generators:
|
|||||||
Download (stable)
|
Download (stable)
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
version 225 (commit 2321131cbf61d5a13df44c255b8d18d73121149d)
|
version 257 (commit 77931cf939ad4ec1bacb1fe92045012fd1e25eba)
|
||||||
|
|
||||||
Linux:
|
Linux:
|
||||||
https://github.com/bkaradzic/bx/raw/master/tools/bin/linux/genie
|
https://github.com/bkaradzic/bx/raw/master/tools/bin/linux/genie
|
||||||
@ -50,7 +50,7 @@ intention to keep it compatible with it.
|
|||||||
- Added search for default script. Default script name is changed to genie.lua
|
- Added search for default script. Default script name is changed to genie.lua
|
||||||
(solution.lua and premake4.lua are also allowed), and it can be located in
|
(solution.lua and premake4.lua are also allowed), and it can be located in
|
||||||
`scripts` directory.
|
`scripts` directory.
|
||||||
- Updated Lua from 5.1.4 to 5.2.3.
|
- Updated Lua from 5.1.4 to 5.3.0.
|
||||||
- Disabled `SmallerTypeCheck` VS option when `ExtraWarnings` is set (need to
|
- Disabled `SmallerTypeCheck` VS option when `ExtraWarnings` is set (need to
|
||||||
move it into separate option).
|
move it into separate option).
|
||||||
- New versioning scheme based on revision number from git.
|
- New versioning scheme based on revision number from git.
|
||||||
@ -73,6 +73,11 @@ intention to keep it compatible with it.
|
|||||||
- Added `msgcompile`, `msgresource`, `msglinking` and `msgarchiving` as
|
- Added `msgcompile`, `msgresource`, `msglinking` and `msgarchiving` as
|
||||||
overrides for make messages.
|
overrides for make messages.
|
||||||
- Added `messageskip` list to disable some of compiler messages.
|
- Added `messageskip` list to disable some of compiler messages.
|
||||||
|
- Added `buildoptions_c`, `buildoptions_cpp`, `buildoptions_objc` for
|
||||||
|
configuring language specific build options.
|
||||||
|
- Split functionality of `excludes` in `removefiles` and `excludes`. With VS
|
||||||
|
`excludes` will exclude files from build but files will be added to project
|
||||||
|
file. `removefiles` removes files completely from project.
|
||||||
|
|
||||||
## Why fork?
|
## Why fork?
|
||||||
|
|
||||||
@ -112,7 +117,7 @@ state of Premake, it's just acknowledging the problem, and dealing with it.
|
|||||||
|
|
||||||
GENie
|
GENie
|
||||||
Copyright (c) 2014 Branimir Karadžić, Neil Richardson, Mike Popoloski,
|
Copyright (c) 2014 Branimir Karadžić, Neil Richardson, Mike Popoloski,
|
||||||
Drew Solomon, Ted de Munnik, Miodrag Milanović.
|
Drew Solomon, Ted de Munnik, Miodrag Milanović, Brett Vickers.
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without modification,
|
Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
546
3rdparty/genie/build/gmake.darwin/genie.make
vendored
546
3rdparty/genie/build/gmake.darwin/genie.make
vendored
@ -42,7 +42,7 @@ ifeq ($(config),release)
|
|||||||
TARGETDIR = ../../bin/darwin
|
TARGETDIR = ../../bin/darwin
|
||||||
override TARGET = $(TARGETDIR)/genie
|
override TARGET = $(TARGETDIR)/genie
|
||||||
DEFINES += -DNDEBUG -DLUA_COMPAT_MODULE -DLUA_USE_MACOSX
|
DEFINES += -DNDEBUG -DLUA_COMPAT_MODULE -DLUA_USE_MACOSX
|
||||||
INCLUDES += -I../../src/host/lua-5.2.3/src
|
INCLUDES += -I../../src/host/lua-5.3.0/src
|
||||||
ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP $(DEFINES) $(INCLUDES)
|
ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP $(DEFINES) $(INCLUDES)
|
||||||
ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -Os -mmacosx-version-min=10.4
|
ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -Os -mmacosx-version-min=10.4
|
||||||
ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -Os -mmacosx-version-min=10.4
|
ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -Os -mmacosx-version-min=10.4
|
||||||
@ -53,57 +53,59 @@ ifeq ($(config),release)
|
|||||||
LIBS += $(LDDEPS) -framework CoreServices
|
LIBS += $(LDDEPS) -framework CoreServices
|
||||||
LINKCMD = $(CC) -o $(TARGET) $(OBJECTS) $(RESOURCES) $(ARCH) $(ALL_LDFLAGS) $(LIBS)
|
LINKCMD = $(CC) -o $(TARGET) $(OBJECTS) $(RESOURCES) $(ARCH) $(ALL_LDFLAGS) $(LIBS)
|
||||||
OBJECTS := \
|
OBJECTS := \
|
||||||
$(OBJDIR)/src/host/os_getcwd.o \
|
$(OBJDIR)/src/host/os_mkdir.o \
|
||||||
$(OBJDIR)/src/host/os_stat.o \
|
$(OBJDIR)/src/host/os_stat.o \
|
||||||
$(OBJDIR)/src/host/os_chdir.o \
|
$(OBJDIR)/src/host/os_isdir.o \
|
||||||
$(OBJDIR)/src/host/premake_main.o \
|
$(OBJDIR)/src/host/os_rmdir.o \
|
||||||
$(OBJDIR)/src/host/os_uuid.o \
|
$(OBJDIR)/src/host/os_uuid.o \
|
||||||
|
$(OBJDIR)/src/host/string_endswith.o \
|
||||||
|
$(OBJDIR)/src/host/os_chdir.o \
|
||||||
|
$(OBJDIR)/src/host/os_getversion.o \
|
||||||
|
$(OBJDIR)/src/host/path_isabsolute.o \
|
||||||
|
$(OBJDIR)/src/host/scripts.o \
|
||||||
|
$(OBJDIR)/src/host/premake.o \
|
||||||
|
$(OBJDIR)/src/host/os_getcwd.o \
|
||||||
|
$(OBJDIR)/src/host/premake_main.o \
|
||||||
|
$(OBJDIR)/src/host/os_ticks.o \
|
||||||
|
$(OBJDIR)/src/host/string_hash.o \
|
||||||
|
$(OBJDIR)/src/host/os_is64bit.o \
|
||||||
|
$(OBJDIR)/src/host/os_match.o \
|
||||||
$(OBJDIR)/src/host/os_isfile.o \
|
$(OBJDIR)/src/host/os_isfile.o \
|
||||||
$(OBJDIR)/src/host/os_copyfile.o \
|
$(OBJDIR)/src/host/os_copyfile.o \
|
||||||
$(OBJDIR)/src/host/scripts.o \
|
|
||||||
$(OBJDIR)/src/host/string_endswith.o \
|
|
||||||
$(OBJDIR)/src/host/os_getversion.o \
|
|
||||||
$(OBJDIR)/src/host/string_hash.o \
|
|
||||||
$(OBJDIR)/src/host/os_pathsearch.o \
|
$(OBJDIR)/src/host/os_pathsearch.o \
|
||||||
$(OBJDIR)/src/host/os_rmdir.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lobject.o \
|
||||||
$(OBJDIR)/src/host/os_match.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lparser.o \
|
||||||
$(OBJDIR)/src/host/premake.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lundump.o \
|
||||||
$(OBJDIR)/src/host/os_isdir.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lfunc.o \
|
||||||
$(OBJDIR)/src/host/os_mkdir.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lcorolib.o \
|
||||||
$(OBJDIR)/src/host/path_isabsolute.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/liolib.o \
|
||||||
$(OBJDIR)/src/host/os_is64bit.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ltablib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ldump.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ldblib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lvm.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ldebug.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ltable.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lmathlib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lstrlib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lctype.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/liolib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lutf8lib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lcode.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lauxlib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lparser.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lstate.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/loadlib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lgc.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lbitlib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ltable.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lzio.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lbitlib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ldblib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lapi.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lmathlib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lmem.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lfunc.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lvm.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lmem.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lcode.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lgc.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lzio.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lstring.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lstrlib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/linit.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lbaselib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ltm.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/linit.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lapi.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ldo.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lctype.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lstring.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lstate.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ldump.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lbaselib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/llex.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ltablib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lopcodes.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lauxlib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/loslib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lcorolib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/loadlib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/llex.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ltm.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ldo.o \
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lundump.o \
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lopcodes.o \
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/loslib.o \
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lobject.o \
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ldebug.o \
|
|
||||||
|
|
||||||
define PREBUILDCMDS
|
define PREBUILDCMDS
|
||||||
endef
|
endef
|
||||||
@ -118,7 +120,7 @@ ifeq ($(config),debug)
|
|||||||
TARGETDIR = ../../bin/darwin
|
TARGETDIR = ../../bin/darwin
|
||||||
override TARGET = $(TARGETDIR)/genie
|
override TARGET = $(TARGETDIR)/genie
|
||||||
DEFINES += -D_DEBUG -DLUA_COMPAT_MODULE -DLUA_USE_MACOSX
|
DEFINES += -D_DEBUG -DLUA_COMPAT_MODULE -DLUA_USE_MACOSX
|
||||||
INCLUDES += -I../../src/host/lua-5.2.3/src
|
INCLUDES += -I../../src/host/lua-5.3.0/src
|
||||||
ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP $(DEFINES) $(INCLUDES)
|
ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP $(DEFINES) $(INCLUDES)
|
||||||
ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -g -mmacosx-version-min=10.4
|
ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -g -mmacosx-version-min=10.4
|
||||||
ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -g -mmacosx-version-min=10.4
|
ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -g -mmacosx-version-min=10.4
|
||||||
@ -129,57 +131,59 @@ ifeq ($(config),debug)
|
|||||||
LIBS += $(LDDEPS) -framework CoreServices
|
LIBS += $(LDDEPS) -framework CoreServices
|
||||||
LINKCMD = $(CC) -o $(TARGET) $(OBJECTS) $(RESOURCES) $(ARCH) $(ALL_LDFLAGS) $(LIBS)
|
LINKCMD = $(CC) -o $(TARGET) $(OBJECTS) $(RESOURCES) $(ARCH) $(ALL_LDFLAGS) $(LIBS)
|
||||||
OBJECTS := \
|
OBJECTS := \
|
||||||
$(OBJDIR)/src/host/os_getcwd.o \
|
$(OBJDIR)/src/host/os_mkdir.o \
|
||||||
$(OBJDIR)/src/host/os_stat.o \
|
$(OBJDIR)/src/host/os_stat.o \
|
||||||
$(OBJDIR)/src/host/os_chdir.o \
|
$(OBJDIR)/src/host/os_isdir.o \
|
||||||
$(OBJDIR)/src/host/premake_main.o \
|
$(OBJDIR)/src/host/os_rmdir.o \
|
||||||
$(OBJDIR)/src/host/os_uuid.o \
|
$(OBJDIR)/src/host/os_uuid.o \
|
||||||
|
$(OBJDIR)/src/host/string_endswith.o \
|
||||||
|
$(OBJDIR)/src/host/os_chdir.o \
|
||||||
|
$(OBJDIR)/src/host/os_getversion.o \
|
||||||
|
$(OBJDIR)/src/host/path_isabsolute.o \
|
||||||
|
$(OBJDIR)/src/host/scripts.o \
|
||||||
|
$(OBJDIR)/src/host/premake.o \
|
||||||
|
$(OBJDIR)/src/host/os_getcwd.o \
|
||||||
|
$(OBJDIR)/src/host/premake_main.o \
|
||||||
|
$(OBJDIR)/src/host/os_ticks.o \
|
||||||
|
$(OBJDIR)/src/host/string_hash.o \
|
||||||
|
$(OBJDIR)/src/host/os_is64bit.o \
|
||||||
|
$(OBJDIR)/src/host/os_match.o \
|
||||||
$(OBJDIR)/src/host/os_isfile.o \
|
$(OBJDIR)/src/host/os_isfile.o \
|
||||||
$(OBJDIR)/src/host/os_copyfile.o \
|
$(OBJDIR)/src/host/os_copyfile.o \
|
||||||
$(OBJDIR)/src/host/scripts.o \
|
|
||||||
$(OBJDIR)/src/host/string_endswith.o \
|
|
||||||
$(OBJDIR)/src/host/os_getversion.o \
|
|
||||||
$(OBJDIR)/src/host/string_hash.o \
|
|
||||||
$(OBJDIR)/src/host/os_pathsearch.o \
|
$(OBJDIR)/src/host/os_pathsearch.o \
|
||||||
$(OBJDIR)/src/host/os_rmdir.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lobject.o \
|
||||||
$(OBJDIR)/src/host/os_match.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lparser.o \
|
||||||
$(OBJDIR)/src/host/premake.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lundump.o \
|
||||||
$(OBJDIR)/src/host/os_isdir.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lfunc.o \
|
||||||
$(OBJDIR)/src/host/os_mkdir.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lcorolib.o \
|
||||||
$(OBJDIR)/src/host/path_isabsolute.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/liolib.o \
|
||||||
$(OBJDIR)/src/host/os_is64bit.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ltablib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ldump.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ldblib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lvm.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ldebug.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ltable.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lmathlib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lstrlib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lctype.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/liolib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lutf8lib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lcode.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lauxlib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lparser.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lstate.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/loadlib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lgc.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lbitlib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ltable.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lzio.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lbitlib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ldblib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lapi.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lmathlib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lmem.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lfunc.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lvm.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lmem.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lcode.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lgc.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lzio.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lstring.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lstrlib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/linit.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lbaselib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ltm.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/linit.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lapi.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ldo.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lctype.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lstring.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lstate.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ldump.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lbaselib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/llex.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ltablib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lopcodes.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lauxlib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/loslib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lcorolib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/loadlib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/llex.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ltm.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ldo.o \
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lundump.o \
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lopcodes.o \
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/loslib.o \
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lobject.o \
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ldebug.o \
|
|
||||||
|
|
||||||
define PREBUILDCMDS
|
define PREBUILDCMDS
|
||||||
endef
|
endef
|
||||||
@ -194,7 +198,7 @@ ifeq ($(config),releaseuniv32)
|
|||||||
TARGETDIR = ../../bin/darwin
|
TARGETDIR = ../../bin/darwin
|
||||||
override TARGET = $(TARGETDIR)/genie
|
override TARGET = $(TARGETDIR)/genie
|
||||||
DEFINES += -DNDEBUG -DLUA_COMPAT_MODULE -DLUA_USE_MACOSX
|
DEFINES += -DNDEBUG -DLUA_COMPAT_MODULE -DLUA_USE_MACOSX
|
||||||
INCLUDES += -I../../src/host/lua-5.2.3/src
|
INCLUDES += -I../../src/host/lua-5.3.0/src
|
||||||
ALL_CPPFLAGS += $(CPPFLAGS) $(DEFINES) $(INCLUDES)
|
ALL_CPPFLAGS += $(CPPFLAGS) $(DEFINES) $(INCLUDES)
|
||||||
ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -Os -arch i386 -arch ppc -mmacosx-version-min=10.4
|
ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -Os -arch i386 -arch ppc -mmacosx-version-min=10.4
|
||||||
ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -Os -arch i386 -arch ppc -mmacosx-version-min=10.4
|
ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -Os -arch i386 -arch ppc -mmacosx-version-min=10.4
|
||||||
@ -205,57 +209,59 @@ ifeq ($(config),releaseuniv32)
|
|||||||
LIBS += $(LDDEPS) -framework CoreServices
|
LIBS += $(LDDEPS) -framework CoreServices
|
||||||
LINKCMD = $(CC) -o $(TARGET) $(OBJECTS) $(RESOURCES) $(ARCH) $(ALL_LDFLAGS) $(LIBS)
|
LINKCMD = $(CC) -o $(TARGET) $(OBJECTS) $(RESOURCES) $(ARCH) $(ALL_LDFLAGS) $(LIBS)
|
||||||
OBJECTS := \
|
OBJECTS := \
|
||||||
$(OBJDIR)/src/host/os_getcwd.o \
|
$(OBJDIR)/src/host/os_mkdir.o \
|
||||||
$(OBJDIR)/src/host/os_stat.o \
|
$(OBJDIR)/src/host/os_stat.o \
|
||||||
$(OBJDIR)/src/host/os_chdir.o \
|
$(OBJDIR)/src/host/os_isdir.o \
|
||||||
$(OBJDIR)/src/host/premake_main.o \
|
$(OBJDIR)/src/host/os_rmdir.o \
|
||||||
$(OBJDIR)/src/host/os_uuid.o \
|
$(OBJDIR)/src/host/os_uuid.o \
|
||||||
|
$(OBJDIR)/src/host/string_endswith.o \
|
||||||
|
$(OBJDIR)/src/host/os_chdir.o \
|
||||||
|
$(OBJDIR)/src/host/os_getversion.o \
|
||||||
|
$(OBJDIR)/src/host/path_isabsolute.o \
|
||||||
|
$(OBJDIR)/src/host/scripts.o \
|
||||||
|
$(OBJDIR)/src/host/premake.o \
|
||||||
|
$(OBJDIR)/src/host/os_getcwd.o \
|
||||||
|
$(OBJDIR)/src/host/premake_main.o \
|
||||||
|
$(OBJDIR)/src/host/os_ticks.o \
|
||||||
|
$(OBJDIR)/src/host/string_hash.o \
|
||||||
|
$(OBJDIR)/src/host/os_is64bit.o \
|
||||||
|
$(OBJDIR)/src/host/os_match.o \
|
||||||
$(OBJDIR)/src/host/os_isfile.o \
|
$(OBJDIR)/src/host/os_isfile.o \
|
||||||
$(OBJDIR)/src/host/os_copyfile.o \
|
$(OBJDIR)/src/host/os_copyfile.o \
|
||||||
$(OBJDIR)/src/host/scripts.o \
|
|
||||||
$(OBJDIR)/src/host/string_endswith.o \
|
|
||||||
$(OBJDIR)/src/host/os_getversion.o \
|
|
||||||
$(OBJDIR)/src/host/string_hash.o \
|
|
||||||
$(OBJDIR)/src/host/os_pathsearch.o \
|
$(OBJDIR)/src/host/os_pathsearch.o \
|
||||||
$(OBJDIR)/src/host/os_rmdir.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lobject.o \
|
||||||
$(OBJDIR)/src/host/os_match.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lparser.o \
|
||||||
$(OBJDIR)/src/host/premake.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lundump.o \
|
||||||
$(OBJDIR)/src/host/os_isdir.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lfunc.o \
|
||||||
$(OBJDIR)/src/host/os_mkdir.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lcorolib.o \
|
||||||
$(OBJDIR)/src/host/path_isabsolute.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/liolib.o \
|
||||||
$(OBJDIR)/src/host/os_is64bit.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ltablib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ldump.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ldblib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lvm.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ldebug.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ltable.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lmathlib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lstrlib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lctype.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/liolib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lutf8lib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lcode.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lauxlib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lparser.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lstate.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/loadlib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lgc.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lbitlib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ltable.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lzio.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lbitlib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ldblib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lapi.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lmathlib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lmem.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lfunc.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lvm.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lmem.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lcode.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lgc.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lzio.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lstring.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lstrlib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/linit.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lbaselib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ltm.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/linit.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lapi.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ldo.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lctype.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lstring.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lstate.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ldump.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lbaselib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/llex.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ltablib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lopcodes.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lauxlib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/loslib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lcorolib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/loadlib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/llex.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ltm.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ldo.o \
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lundump.o \
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lopcodes.o \
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/loslib.o \
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lobject.o \
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ldebug.o \
|
|
||||||
|
|
||||||
define PREBUILDCMDS
|
define PREBUILDCMDS
|
||||||
endef
|
endef
|
||||||
@ -270,7 +276,7 @@ ifeq ($(config),debuguniv32)
|
|||||||
TARGETDIR = ../../bin/darwin
|
TARGETDIR = ../../bin/darwin
|
||||||
override TARGET = $(TARGETDIR)/genie
|
override TARGET = $(TARGETDIR)/genie
|
||||||
DEFINES += -D_DEBUG -DLUA_COMPAT_MODULE -DLUA_USE_MACOSX
|
DEFINES += -D_DEBUG -DLUA_COMPAT_MODULE -DLUA_USE_MACOSX
|
||||||
INCLUDES += -I../../src/host/lua-5.2.3/src
|
INCLUDES += -I../../src/host/lua-5.3.0/src
|
||||||
ALL_CPPFLAGS += $(CPPFLAGS) $(DEFINES) $(INCLUDES)
|
ALL_CPPFLAGS += $(CPPFLAGS) $(DEFINES) $(INCLUDES)
|
||||||
ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -g -arch i386 -arch ppc -mmacosx-version-min=10.4
|
ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -g -arch i386 -arch ppc -mmacosx-version-min=10.4
|
||||||
ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -g -arch i386 -arch ppc -mmacosx-version-min=10.4
|
ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -g -arch i386 -arch ppc -mmacosx-version-min=10.4
|
||||||
@ -281,57 +287,59 @@ ifeq ($(config),debuguniv32)
|
|||||||
LIBS += $(LDDEPS) -framework CoreServices
|
LIBS += $(LDDEPS) -framework CoreServices
|
||||||
LINKCMD = $(CC) -o $(TARGET) $(OBJECTS) $(RESOURCES) $(ARCH) $(ALL_LDFLAGS) $(LIBS)
|
LINKCMD = $(CC) -o $(TARGET) $(OBJECTS) $(RESOURCES) $(ARCH) $(ALL_LDFLAGS) $(LIBS)
|
||||||
OBJECTS := \
|
OBJECTS := \
|
||||||
$(OBJDIR)/src/host/os_getcwd.o \
|
$(OBJDIR)/src/host/os_mkdir.o \
|
||||||
$(OBJDIR)/src/host/os_stat.o \
|
$(OBJDIR)/src/host/os_stat.o \
|
||||||
$(OBJDIR)/src/host/os_chdir.o \
|
$(OBJDIR)/src/host/os_isdir.o \
|
||||||
$(OBJDIR)/src/host/premake_main.o \
|
$(OBJDIR)/src/host/os_rmdir.o \
|
||||||
$(OBJDIR)/src/host/os_uuid.o \
|
$(OBJDIR)/src/host/os_uuid.o \
|
||||||
|
$(OBJDIR)/src/host/string_endswith.o \
|
||||||
|
$(OBJDIR)/src/host/os_chdir.o \
|
||||||
|
$(OBJDIR)/src/host/os_getversion.o \
|
||||||
|
$(OBJDIR)/src/host/path_isabsolute.o \
|
||||||
|
$(OBJDIR)/src/host/scripts.o \
|
||||||
|
$(OBJDIR)/src/host/premake.o \
|
||||||
|
$(OBJDIR)/src/host/os_getcwd.o \
|
||||||
|
$(OBJDIR)/src/host/premake_main.o \
|
||||||
|
$(OBJDIR)/src/host/os_ticks.o \
|
||||||
|
$(OBJDIR)/src/host/string_hash.o \
|
||||||
|
$(OBJDIR)/src/host/os_is64bit.o \
|
||||||
|
$(OBJDIR)/src/host/os_match.o \
|
||||||
$(OBJDIR)/src/host/os_isfile.o \
|
$(OBJDIR)/src/host/os_isfile.o \
|
||||||
$(OBJDIR)/src/host/os_copyfile.o \
|
$(OBJDIR)/src/host/os_copyfile.o \
|
||||||
$(OBJDIR)/src/host/scripts.o \
|
|
||||||
$(OBJDIR)/src/host/string_endswith.o \
|
|
||||||
$(OBJDIR)/src/host/os_getversion.o \
|
|
||||||
$(OBJDIR)/src/host/string_hash.o \
|
|
||||||
$(OBJDIR)/src/host/os_pathsearch.o \
|
$(OBJDIR)/src/host/os_pathsearch.o \
|
||||||
$(OBJDIR)/src/host/os_rmdir.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lobject.o \
|
||||||
$(OBJDIR)/src/host/os_match.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lparser.o \
|
||||||
$(OBJDIR)/src/host/premake.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lundump.o \
|
||||||
$(OBJDIR)/src/host/os_isdir.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lfunc.o \
|
||||||
$(OBJDIR)/src/host/os_mkdir.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lcorolib.o \
|
||||||
$(OBJDIR)/src/host/path_isabsolute.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/liolib.o \
|
||||||
$(OBJDIR)/src/host/os_is64bit.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ltablib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ldump.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ldblib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lvm.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ldebug.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ltable.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lmathlib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lstrlib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lctype.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/liolib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lutf8lib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lcode.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lauxlib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lparser.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lstate.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/loadlib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lgc.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lbitlib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ltable.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lzio.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lbitlib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ldblib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lapi.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lmathlib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lmem.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lfunc.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lvm.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lmem.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lcode.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lgc.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lzio.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lstring.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lstrlib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/linit.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lbaselib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ltm.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/linit.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lapi.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ldo.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lctype.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lstring.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lstate.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ldump.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lbaselib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/llex.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ltablib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lopcodes.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lauxlib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/loslib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lcorolib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/loadlib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/llex.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ltm.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ldo.o \
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lundump.o \
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lopcodes.o \
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/loslib.o \
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lobject.o \
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ldebug.o \
|
|
||||||
|
|
||||||
define PREBUILDCMDS
|
define PREBUILDCMDS
|
||||||
endef
|
endef
|
||||||
@ -344,7 +352,7 @@ endif
|
|||||||
OBJDIRS := \
|
OBJDIRS := \
|
||||||
$(OBJDIR) \
|
$(OBJDIR) \
|
||||||
$(OBJDIR)/src/host \
|
$(OBJDIR)/src/host \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src \
|
$(OBJDIR)/src/host/lua-5.3.0/src \
|
||||||
|
|
||||||
RESOURCES := \
|
RESOURCES := \
|
||||||
|
|
||||||
@ -363,7 +371,7 @@ $(TARGETDIR):
|
|||||||
-$(call MKDIR,$(TARGETDIR))
|
-$(call MKDIR,$(TARGETDIR))
|
||||||
|
|
||||||
$(OBJDIRS):
|
$(OBJDIRS):
|
||||||
@echo Creating $(OBJDIR)
|
@echo Creating $(@)
|
||||||
-$(call MKDIR,$@)
|
-$(call MKDIR,$@)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
@ -388,7 +396,7 @@ $(GCH): $(PCH)
|
|||||||
$(SILENT) $(CC) -x c-header $(ALL_CFLAGS) -MMD -MP $(DEFINES) $(INCLUDES) -o "$@" -MF "$(@:%.gch=%.d)" -c "$<"
|
$(SILENT) $(CC) -x c-header $(ALL_CFLAGS) -MMD -MP $(DEFINES) $(INCLUDES) -o "$@" -MF "$(@:%.gch=%.d)" -c "$<"
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$(OBJDIR)/src/host/os_getcwd.o: ../../src/host/os_getcwd.c
|
$(OBJDIR)/src/host/os_mkdir.o: ../../src/host/os_mkdir.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
@ -396,15 +404,63 @@ $(OBJDIR)/src/host/os_stat.o: ../../src/host/os_stat.c
|
|||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
|
$(OBJDIR)/src/host/os_isdir.o: ../../src/host/os_isdir.c
|
||||||
|
@echo $(notdir $<)
|
||||||
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
|
$(OBJDIR)/src/host/os_rmdir.o: ../../src/host/os_rmdir.c
|
||||||
|
@echo $(notdir $<)
|
||||||
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
|
$(OBJDIR)/src/host/os_uuid.o: ../../src/host/os_uuid.c
|
||||||
|
@echo $(notdir $<)
|
||||||
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
|
$(OBJDIR)/src/host/string_endswith.o: ../../src/host/string_endswith.c
|
||||||
|
@echo $(notdir $<)
|
||||||
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/os_chdir.o: ../../src/host/os_chdir.c
|
$(OBJDIR)/src/host/os_chdir.o: ../../src/host/os_chdir.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
|
$(OBJDIR)/src/host/os_getversion.o: ../../src/host/os_getversion.c
|
||||||
|
@echo $(notdir $<)
|
||||||
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
|
$(OBJDIR)/src/host/path_isabsolute.o: ../../src/host/path_isabsolute.c
|
||||||
|
@echo $(notdir $<)
|
||||||
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
|
$(OBJDIR)/src/host/scripts.o: ../../src/host/scripts.c
|
||||||
|
@echo $(notdir $<)
|
||||||
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
|
$(OBJDIR)/src/host/premake.o: ../../src/host/premake.c
|
||||||
|
@echo $(notdir $<)
|
||||||
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
|
$(OBJDIR)/src/host/os_getcwd.o: ../../src/host/os_getcwd.c
|
||||||
|
@echo $(notdir $<)
|
||||||
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/premake_main.o: ../../src/host/premake_main.c
|
$(OBJDIR)/src/host/premake_main.o: ../../src/host/premake_main.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/os_uuid.o: ../../src/host/os_uuid.c
|
$(OBJDIR)/src/host/os_ticks.o: ../../src/host/os_ticks.c
|
||||||
|
@echo $(notdir $<)
|
||||||
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
|
$(OBJDIR)/src/host/string_hash.o: ../../src/host/string_hash.c
|
||||||
|
@echo $(notdir $<)
|
||||||
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
|
$(OBJDIR)/src/host/os_is64bit.o: ../../src/host/os_is64bit.c
|
||||||
|
@echo $(notdir $<)
|
||||||
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
|
$(OBJDIR)/src/host/os_match.o: ../../src/host/os_match.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
@ -416,179 +472,139 @@ $(OBJDIR)/src/host/os_copyfile.o: ../../src/host/os_copyfile.c
|
|||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/scripts.o: ../../src/host/scripts.c
|
|
||||||
@echo $(notdir $<)
|
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
|
||||||
|
|
||||||
$(OBJDIR)/src/host/string_endswith.o: ../../src/host/string_endswith.c
|
|
||||||
@echo $(notdir $<)
|
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
|
||||||
|
|
||||||
$(OBJDIR)/src/host/os_getversion.o: ../../src/host/os_getversion.c
|
|
||||||
@echo $(notdir $<)
|
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
|
||||||
|
|
||||||
$(OBJDIR)/src/host/string_hash.o: ../../src/host/string_hash.c
|
|
||||||
@echo $(notdir $<)
|
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
|
||||||
|
|
||||||
$(OBJDIR)/src/host/os_pathsearch.o: ../../src/host/os_pathsearch.c
|
$(OBJDIR)/src/host/os_pathsearch.o: ../../src/host/os_pathsearch.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/os_rmdir.o: ../../src/host/os_rmdir.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lobject.o: ../../src/host/lua-5.3.0/src/lobject.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/os_match.o: ../../src/host/os_match.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lparser.o: ../../src/host/lua-5.3.0/src/lparser.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/premake.o: ../../src/host/premake.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lundump.o: ../../src/host/lua-5.3.0/src/lundump.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/os_isdir.o: ../../src/host/os_isdir.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lfunc.o: ../../src/host/lua-5.3.0/src/lfunc.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/os_mkdir.o: ../../src/host/os_mkdir.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lcorolib.o: ../../src/host/lua-5.3.0/src/lcorolib.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/path_isabsolute.o: ../../src/host/path_isabsolute.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/liolib.o: ../../src/host/lua-5.3.0/src/liolib.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/os_is64bit.o: ../../src/host/os_is64bit.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/ltablib.o: ../../src/host/lua-5.3.0/src/ltablib.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ldump.o: ../../src/host/lua-5.2.3/src/ldump.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/ldblib.o: ../../src/host/lua-5.3.0/src/ldblib.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lvm.o: ../../src/host/lua-5.2.3/src/lvm.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/ldebug.o: ../../src/host/lua-5.3.0/src/ldebug.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ltable.o: ../../src/host/lua-5.2.3/src/ltable.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lmathlib.o: ../../src/host/lua-5.3.0/src/lmathlib.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lstrlib.o: ../../src/host/lua-5.2.3/src/lstrlib.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lctype.o: ../../src/host/lua-5.3.0/src/lctype.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/liolib.o: ../../src/host/lua-5.2.3/src/liolib.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lutf8lib.o: ../../src/host/lua-5.3.0/src/lutf8lib.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lcode.o: ../../src/host/lua-5.2.3/src/lcode.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lauxlib.o: ../../src/host/lua-5.3.0/src/lauxlib.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lparser.o: ../../src/host/lua-5.2.3/src/lparser.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lstate.o: ../../src/host/lua-5.3.0/src/lstate.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/loadlib.o: ../../src/host/lua-5.2.3/src/loadlib.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lgc.o: ../../src/host/lua-5.3.0/src/lgc.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lbitlib.o: ../../src/host/lua-5.2.3/src/lbitlib.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/ltable.o: ../../src/host/lua-5.3.0/src/ltable.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lzio.o: ../../src/host/lua-5.2.3/src/lzio.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lbitlib.o: ../../src/host/lua-5.3.0/src/lbitlib.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ldblib.o: ../../src/host/lua-5.2.3/src/ldblib.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lapi.o: ../../src/host/lua-5.3.0/src/lapi.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lmathlib.o: ../../src/host/lua-5.2.3/src/lmathlib.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lmem.o: ../../src/host/lua-5.3.0/src/lmem.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lfunc.o: ../../src/host/lua-5.2.3/src/lfunc.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lvm.o: ../../src/host/lua-5.3.0/src/lvm.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lmem.o: ../../src/host/lua-5.2.3/src/lmem.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lcode.o: ../../src/host/lua-5.3.0/src/lcode.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lgc.o: ../../src/host/lua-5.2.3/src/lgc.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lzio.o: ../../src/host/lua-5.3.0/src/lzio.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lstring.o: ../../src/host/lua-5.2.3/src/lstring.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lstrlib.o: ../../src/host/lua-5.3.0/src/lstrlib.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/linit.o: ../../src/host/lua-5.2.3/src/linit.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lbaselib.o: ../../src/host/lua-5.3.0/src/lbaselib.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ltm.o: ../../src/host/lua-5.2.3/src/ltm.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/linit.o: ../../src/host/lua-5.3.0/src/linit.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lapi.o: ../../src/host/lua-5.2.3/src/lapi.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/ldo.o: ../../src/host/lua-5.3.0/src/ldo.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lctype.o: ../../src/host/lua-5.2.3/src/lctype.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lstring.o: ../../src/host/lua-5.3.0/src/lstring.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lstate.o: ../../src/host/lua-5.2.3/src/lstate.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/ldump.o: ../../src/host/lua-5.3.0/src/ldump.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lbaselib.o: ../../src/host/lua-5.2.3/src/lbaselib.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/llex.o: ../../src/host/lua-5.3.0/src/llex.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ltablib.o: ../../src/host/lua-5.2.3/src/ltablib.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lopcodes.o: ../../src/host/lua-5.3.0/src/lopcodes.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lauxlib.o: ../../src/host/lua-5.2.3/src/lauxlib.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/loslib.o: ../../src/host/lua-5.3.0/src/loslib.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lcorolib.o: ../../src/host/lua-5.2.3/src/lcorolib.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/loadlib.o: ../../src/host/lua-5.3.0/src/loadlib.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/llex.o: ../../src/host/lua-5.2.3/src/llex.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/ltm.o: ../../src/host/lua-5.3.0/src/ltm.c
|
||||||
@echo $(notdir $<)
|
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ldo.o: ../../src/host/lua-5.2.3/src/ldo.c
|
|
||||||
@echo $(notdir $<)
|
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lundump.o: ../../src/host/lua-5.2.3/src/lundump.c
|
|
||||||
@echo $(notdir $<)
|
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lopcodes.o: ../../src/host/lua-5.2.3/src/lopcodes.c
|
|
||||||
@echo $(notdir $<)
|
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/loslib.o: ../../src/host/lua-5.2.3/src/loslib.c
|
|
||||||
@echo $(notdir $<)
|
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lobject.o: ../../src/host/lua-5.2.3/src/lobject.c
|
|
||||||
@echo $(notdir $<)
|
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ldebug.o: ../../src/host/lua-5.2.3/src/ldebug.c
|
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
|
354
3rdparty/genie/build/gmake.linux/genie.make
vendored
354
3rdparty/genie/build/gmake.linux/genie.make
vendored
@ -42,7 +42,7 @@ ifeq ($(config),release)
|
|||||||
TARGETDIR = ../../bin/linux
|
TARGETDIR = ../../bin/linux
|
||||||
override TARGET = $(TARGETDIR)/genie
|
override TARGET = $(TARGETDIR)/genie
|
||||||
DEFINES += -DNDEBUG -DLUA_COMPAT_MODULE -DLUA_USE_POSIX -DLUA_USE_DLOPEN
|
DEFINES += -DNDEBUG -DLUA_COMPAT_MODULE -DLUA_USE_POSIX -DLUA_USE_DLOPEN
|
||||||
INCLUDES += -I../../src/host/lua-5.2.3/src
|
INCLUDES += -I../../src/host/lua-5.3.0/src
|
||||||
ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP $(DEFINES) $(INCLUDES)
|
ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP $(DEFINES) $(INCLUDES)
|
||||||
ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -Os
|
ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -Os
|
||||||
ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -Os
|
ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -Os
|
||||||
@ -53,57 +53,59 @@ ifeq ($(config),release)
|
|||||||
LIBS += $(LDDEPS) -ldl -lm
|
LIBS += $(LDDEPS) -ldl -lm
|
||||||
LINKCMD = $(CC) -o $(TARGET) $(OBJECTS) $(RESOURCES) $(ARCH) $(ALL_LDFLAGS) $(LIBS)
|
LINKCMD = $(CC) -o $(TARGET) $(OBJECTS) $(RESOURCES) $(ARCH) $(ALL_LDFLAGS) $(LIBS)
|
||||||
OBJECTS := \
|
OBJECTS := \
|
||||||
$(OBJDIR)/src/host/os_getcwd.o \
|
$(OBJDIR)/src/host/os_mkdir.o \
|
||||||
$(OBJDIR)/src/host/os_stat.o \
|
$(OBJDIR)/src/host/os_stat.o \
|
||||||
$(OBJDIR)/src/host/os_chdir.o \
|
$(OBJDIR)/src/host/os_isdir.o \
|
||||||
$(OBJDIR)/src/host/premake_main.o \
|
$(OBJDIR)/src/host/os_rmdir.o \
|
||||||
$(OBJDIR)/src/host/os_uuid.o \
|
$(OBJDIR)/src/host/os_uuid.o \
|
||||||
|
$(OBJDIR)/src/host/string_endswith.o \
|
||||||
|
$(OBJDIR)/src/host/os_chdir.o \
|
||||||
|
$(OBJDIR)/src/host/os_getversion.o \
|
||||||
|
$(OBJDIR)/src/host/path_isabsolute.o \
|
||||||
|
$(OBJDIR)/src/host/scripts.o \
|
||||||
|
$(OBJDIR)/src/host/premake.o \
|
||||||
|
$(OBJDIR)/src/host/os_getcwd.o \
|
||||||
|
$(OBJDIR)/src/host/premake_main.o \
|
||||||
|
$(OBJDIR)/src/host/os_ticks.o \
|
||||||
|
$(OBJDIR)/src/host/string_hash.o \
|
||||||
|
$(OBJDIR)/src/host/os_is64bit.o \
|
||||||
|
$(OBJDIR)/src/host/os_match.o \
|
||||||
$(OBJDIR)/src/host/os_isfile.o \
|
$(OBJDIR)/src/host/os_isfile.o \
|
||||||
$(OBJDIR)/src/host/os_copyfile.o \
|
$(OBJDIR)/src/host/os_copyfile.o \
|
||||||
$(OBJDIR)/src/host/scripts.o \
|
|
||||||
$(OBJDIR)/src/host/string_endswith.o \
|
|
||||||
$(OBJDIR)/src/host/os_getversion.o \
|
|
||||||
$(OBJDIR)/src/host/string_hash.o \
|
|
||||||
$(OBJDIR)/src/host/os_pathsearch.o \
|
$(OBJDIR)/src/host/os_pathsearch.o \
|
||||||
$(OBJDIR)/src/host/os_rmdir.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lobject.o \
|
||||||
$(OBJDIR)/src/host/os_match.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lparser.o \
|
||||||
$(OBJDIR)/src/host/premake.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lundump.o \
|
||||||
$(OBJDIR)/src/host/os_isdir.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lfunc.o \
|
||||||
$(OBJDIR)/src/host/os_mkdir.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lcorolib.o \
|
||||||
$(OBJDIR)/src/host/path_isabsolute.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/liolib.o \
|
||||||
$(OBJDIR)/src/host/os_is64bit.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ltablib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ldump.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ldblib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lvm.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ldebug.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ltable.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lmathlib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lstrlib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lctype.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/liolib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lutf8lib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lcode.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lauxlib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lparser.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lstate.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/loadlib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lgc.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lbitlib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ltable.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lzio.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lbitlib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ldblib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lapi.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lmathlib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lmem.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lfunc.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lvm.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lmem.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lcode.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lgc.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lzio.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lstring.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lstrlib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/linit.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lbaselib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ltm.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/linit.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lapi.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ldo.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lctype.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lstring.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lstate.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ldump.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lbaselib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/llex.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ltablib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lopcodes.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lauxlib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/loslib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lcorolib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/loadlib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/llex.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ltm.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ldo.o \
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lundump.o \
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lopcodes.o \
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/loslib.o \
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lobject.o \
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ldebug.o \
|
|
||||||
|
|
||||||
define PREBUILDCMDS
|
define PREBUILDCMDS
|
||||||
endef
|
endef
|
||||||
@ -118,7 +120,7 @@ ifeq ($(config),debug)
|
|||||||
TARGETDIR = ../../bin/linux
|
TARGETDIR = ../../bin/linux
|
||||||
override TARGET = $(TARGETDIR)/genie
|
override TARGET = $(TARGETDIR)/genie
|
||||||
DEFINES += -D_DEBUG -DLUA_COMPAT_MODULE -DLUA_USE_POSIX -DLUA_USE_DLOPEN
|
DEFINES += -D_DEBUG -DLUA_COMPAT_MODULE -DLUA_USE_POSIX -DLUA_USE_DLOPEN
|
||||||
INCLUDES += -I../../src/host/lua-5.2.3/src
|
INCLUDES += -I../../src/host/lua-5.3.0/src
|
||||||
ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP $(DEFINES) $(INCLUDES)
|
ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP $(DEFINES) $(INCLUDES)
|
||||||
ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -g
|
ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -g
|
||||||
ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -g
|
ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -g
|
||||||
@ -129,57 +131,59 @@ ifeq ($(config),debug)
|
|||||||
LIBS += $(LDDEPS) -ldl -lm
|
LIBS += $(LDDEPS) -ldl -lm
|
||||||
LINKCMD = $(CC) -o $(TARGET) $(OBJECTS) $(RESOURCES) $(ARCH) $(ALL_LDFLAGS) $(LIBS)
|
LINKCMD = $(CC) -o $(TARGET) $(OBJECTS) $(RESOURCES) $(ARCH) $(ALL_LDFLAGS) $(LIBS)
|
||||||
OBJECTS := \
|
OBJECTS := \
|
||||||
$(OBJDIR)/src/host/os_getcwd.o \
|
$(OBJDIR)/src/host/os_mkdir.o \
|
||||||
$(OBJDIR)/src/host/os_stat.o \
|
$(OBJDIR)/src/host/os_stat.o \
|
||||||
$(OBJDIR)/src/host/os_chdir.o \
|
$(OBJDIR)/src/host/os_isdir.o \
|
||||||
$(OBJDIR)/src/host/premake_main.o \
|
$(OBJDIR)/src/host/os_rmdir.o \
|
||||||
$(OBJDIR)/src/host/os_uuid.o \
|
$(OBJDIR)/src/host/os_uuid.o \
|
||||||
|
$(OBJDIR)/src/host/string_endswith.o \
|
||||||
|
$(OBJDIR)/src/host/os_chdir.o \
|
||||||
|
$(OBJDIR)/src/host/os_getversion.o \
|
||||||
|
$(OBJDIR)/src/host/path_isabsolute.o \
|
||||||
|
$(OBJDIR)/src/host/scripts.o \
|
||||||
|
$(OBJDIR)/src/host/premake.o \
|
||||||
|
$(OBJDIR)/src/host/os_getcwd.o \
|
||||||
|
$(OBJDIR)/src/host/premake_main.o \
|
||||||
|
$(OBJDIR)/src/host/os_ticks.o \
|
||||||
|
$(OBJDIR)/src/host/string_hash.o \
|
||||||
|
$(OBJDIR)/src/host/os_is64bit.o \
|
||||||
|
$(OBJDIR)/src/host/os_match.o \
|
||||||
$(OBJDIR)/src/host/os_isfile.o \
|
$(OBJDIR)/src/host/os_isfile.o \
|
||||||
$(OBJDIR)/src/host/os_copyfile.o \
|
$(OBJDIR)/src/host/os_copyfile.o \
|
||||||
$(OBJDIR)/src/host/scripts.o \
|
|
||||||
$(OBJDIR)/src/host/string_endswith.o \
|
|
||||||
$(OBJDIR)/src/host/os_getversion.o \
|
|
||||||
$(OBJDIR)/src/host/string_hash.o \
|
|
||||||
$(OBJDIR)/src/host/os_pathsearch.o \
|
$(OBJDIR)/src/host/os_pathsearch.o \
|
||||||
$(OBJDIR)/src/host/os_rmdir.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lobject.o \
|
||||||
$(OBJDIR)/src/host/os_match.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lparser.o \
|
||||||
$(OBJDIR)/src/host/premake.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lundump.o \
|
||||||
$(OBJDIR)/src/host/os_isdir.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lfunc.o \
|
||||||
$(OBJDIR)/src/host/os_mkdir.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lcorolib.o \
|
||||||
$(OBJDIR)/src/host/path_isabsolute.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/liolib.o \
|
||||||
$(OBJDIR)/src/host/os_is64bit.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ltablib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ldump.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ldblib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lvm.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ldebug.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ltable.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lmathlib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lstrlib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lctype.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/liolib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lutf8lib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lcode.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lauxlib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lparser.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lstate.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/loadlib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lgc.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lbitlib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ltable.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lzio.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lbitlib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ldblib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lapi.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lmathlib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lmem.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lfunc.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lvm.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lmem.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lcode.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lgc.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lzio.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lstring.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lstrlib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/linit.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lbaselib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ltm.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/linit.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lapi.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ldo.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lctype.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lstring.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lstate.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ldump.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lbaselib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/llex.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ltablib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lopcodes.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lauxlib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/loslib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lcorolib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/loadlib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/llex.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ltm.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ldo.o \
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lundump.o \
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lopcodes.o \
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/loslib.o \
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lobject.o \
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ldebug.o \
|
|
||||||
|
|
||||||
define PREBUILDCMDS
|
define PREBUILDCMDS
|
||||||
endef
|
endef
|
||||||
@ -191,8 +195,8 @@ endif
|
|||||||
|
|
||||||
OBJDIRS := \
|
OBJDIRS := \
|
||||||
$(OBJDIR) \
|
$(OBJDIR) \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src \
|
|
||||||
$(OBJDIR)/src/host \
|
$(OBJDIR)/src/host \
|
||||||
|
$(OBJDIR)/src/host/lua-5.3.0/src \
|
||||||
|
|
||||||
RESOURCES := \
|
RESOURCES := \
|
||||||
|
|
||||||
@ -211,7 +215,7 @@ $(TARGETDIR):
|
|||||||
-$(call MKDIR,$(TARGETDIR))
|
-$(call MKDIR,$(TARGETDIR))
|
||||||
|
|
||||||
$(OBJDIRS):
|
$(OBJDIRS):
|
||||||
@echo Creating $(OBJDIR)
|
@echo Creating $(@)
|
||||||
-$(call MKDIR,$@)
|
-$(call MKDIR,$@)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
@ -236,7 +240,7 @@ $(GCH): $(PCH)
|
|||||||
$(SILENT) $(CC) -x c-header $(ALL_CFLAGS) -MMD -MP $(DEFINES) $(INCLUDES) -o "$@" -MF "$(@:%.gch=%.d)" -c "$<"
|
$(SILENT) $(CC) -x c-header $(ALL_CFLAGS) -MMD -MP $(DEFINES) $(INCLUDES) -o "$@" -MF "$(@:%.gch=%.d)" -c "$<"
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$(OBJDIR)/src/host/os_getcwd.o: ../../src/host/os_getcwd.c
|
$(OBJDIR)/src/host/os_mkdir.o: ../../src/host/os_mkdir.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
@ -244,15 +248,63 @@ $(OBJDIR)/src/host/os_stat.o: ../../src/host/os_stat.c
|
|||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
|
$(OBJDIR)/src/host/os_isdir.o: ../../src/host/os_isdir.c
|
||||||
|
@echo $(notdir $<)
|
||||||
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
|
$(OBJDIR)/src/host/os_rmdir.o: ../../src/host/os_rmdir.c
|
||||||
|
@echo $(notdir $<)
|
||||||
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
|
$(OBJDIR)/src/host/os_uuid.o: ../../src/host/os_uuid.c
|
||||||
|
@echo $(notdir $<)
|
||||||
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
|
$(OBJDIR)/src/host/string_endswith.o: ../../src/host/string_endswith.c
|
||||||
|
@echo $(notdir $<)
|
||||||
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/os_chdir.o: ../../src/host/os_chdir.c
|
$(OBJDIR)/src/host/os_chdir.o: ../../src/host/os_chdir.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
|
$(OBJDIR)/src/host/os_getversion.o: ../../src/host/os_getversion.c
|
||||||
|
@echo $(notdir $<)
|
||||||
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
|
$(OBJDIR)/src/host/path_isabsolute.o: ../../src/host/path_isabsolute.c
|
||||||
|
@echo $(notdir $<)
|
||||||
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
|
$(OBJDIR)/src/host/scripts.o: ../../src/host/scripts.c
|
||||||
|
@echo $(notdir $<)
|
||||||
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
|
$(OBJDIR)/src/host/premake.o: ../../src/host/premake.c
|
||||||
|
@echo $(notdir $<)
|
||||||
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
|
$(OBJDIR)/src/host/os_getcwd.o: ../../src/host/os_getcwd.c
|
||||||
|
@echo $(notdir $<)
|
||||||
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/premake_main.o: ../../src/host/premake_main.c
|
$(OBJDIR)/src/host/premake_main.o: ../../src/host/premake_main.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/os_uuid.o: ../../src/host/os_uuid.c
|
$(OBJDIR)/src/host/os_ticks.o: ../../src/host/os_ticks.c
|
||||||
|
@echo $(notdir $<)
|
||||||
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
|
$(OBJDIR)/src/host/string_hash.o: ../../src/host/string_hash.c
|
||||||
|
@echo $(notdir $<)
|
||||||
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
|
$(OBJDIR)/src/host/os_is64bit.o: ../../src/host/os_is64bit.c
|
||||||
|
@echo $(notdir $<)
|
||||||
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
|
$(OBJDIR)/src/host/os_match.o: ../../src/host/os_match.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
@ -264,179 +316,139 @@ $(OBJDIR)/src/host/os_copyfile.o: ../../src/host/os_copyfile.c
|
|||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/scripts.o: ../../src/host/scripts.c
|
|
||||||
@echo $(notdir $<)
|
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
|
||||||
|
|
||||||
$(OBJDIR)/src/host/string_endswith.o: ../../src/host/string_endswith.c
|
|
||||||
@echo $(notdir $<)
|
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
|
||||||
|
|
||||||
$(OBJDIR)/src/host/os_getversion.o: ../../src/host/os_getversion.c
|
|
||||||
@echo $(notdir $<)
|
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
|
||||||
|
|
||||||
$(OBJDIR)/src/host/string_hash.o: ../../src/host/string_hash.c
|
|
||||||
@echo $(notdir $<)
|
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
|
||||||
|
|
||||||
$(OBJDIR)/src/host/os_pathsearch.o: ../../src/host/os_pathsearch.c
|
$(OBJDIR)/src/host/os_pathsearch.o: ../../src/host/os_pathsearch.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/os_rmdir.o: ../../src/host/os_rmdir.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lobject.o: ../../src/host/lua-5.3.0/src/lobject.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/os_match.o: ../../src/host/os_match.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lparser.o: ../../src/host/lua-5.3.0/src/lparser.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/premake.o: ../../src/host/premake.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lundump.o: ../../src/host/lua-5.3.0/src/lundump.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/os_isdir.o: ../../src/host/os_isdir.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lfunc.o: ../../src/host/lua-5.3.0/src/lfunc.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/os_mkdir.o: ../../src/host/os_mkdir.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lcorolib.o: ../../src/host/lua-5.3.0/src/lcorolib.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/path_isabsolute.o: ../../src/host/path_isabsolute.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/liolib.o: ../../src/host/lua-5.3.0/src/liolib.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/os_is64bit.o: ../../src/host/os_is64bit.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/ltablib.o: ../../src/host/lua-5.3.0/src/ltablib.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ldump.o: ../../src/host/lua-5.2.3/src/ldump.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/ldblib.o: ../../src/host/lua-5.3.0/src/ldblib.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lvm.o: ../../src/host/lua-5.2.3/src/lvm.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/ldebug.o: ../../src/host/lua-5.3.0/src/ldebug.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ltable.o: ../../src/host/lua-5.2.3/src/ltable.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lmathlib.o: ../../src/host/lua-5.3.0/src/lmathlib.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lstrlib.o: ../../src/host/lua-5.2.3/src/lstrlib.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lctype.o: ../../src/host/lua-5.3.0/src/lctype.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/liolib.o: ../../src/host/lua-5.2.3/src/liolib.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lutf8lib.o: ../../src/host/lua-5.3.0/src/lutf8lib.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lcode.o: ../../src/host/lua-5.2.3/src/lcode.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lauxlib.o: ../../src/host/lua-5.3.0/src/lauxlib.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lparser.o: ../../src/host/lua-5.2.3/src/lparser.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lstate.o: ../../src/host/lua-5.3.0/src/lstate.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/loadlib.o: ../../src/host/lua-5.2.3/src/loadlib.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lgc.o: ../../src/host/lua-5.3.0/src/lgc.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lbitlib.o: ../../src/host/lua-5.2.3/src/lbitlib.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/ltable.o: ../../src/host/lua-5.3.0/src/ltable.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lzio.o: ../../src/host/lua-5.2.3/src/lzio.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lbitlib.o: ../../src/host/lua-5.3.0/src/lbitlib.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ldblib.o: ../../src/host/lua-5.2.3/src/ldblib.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lapi.o: ../../src/host/lua-5.3.0/src/lapi.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lmathlib.o: ../../src/host/lua-5.2.3/src/lmathlib.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lmem.o: ../../src/host/lua-5.3.0/src/lmem.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lfunc.o: ../../src/host/lua-5.2.3/src/lfunc.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lvm.o: ../../src/host/lua-5.3.0/src/lvm.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lmem.o: ../../src/host/lua-5.2.3/src/lmem.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lcode.o: ../../src/host/lua-5.3.0/src/lcode.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lgc.o: ../../src/host/lua-5.2.3/src/lgc.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lzio.o: ../../src/host/lua-5.3.0/src/lzio.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lstring.o: ../../src/host/lua-5.2.3/src/lstring.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lstrlib.o: ../../src/host/lua-5.3.0/src/lstrlib.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/linit.o: ../../src/host/lua-5.2.3/src/linit.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lbaselib.o: ../../src/host/lua-5.3.0/src/lbaselib.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ltm.o: ../../src/host/lua-5.2.3/src/ltm.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/linit.o: ../../src/host/lua-5.3.0/src/linit.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lapi.o: ../../src/host/lua-5.2.3/src/lapi.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/ldo.o: ../../src/host/lua-5.3.0/src/ldo.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lctype.o: ../../src/host/lua-5.2.3/src/lctype.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lstring.o: ../../src/host/lua-5.3.0/src/lstring.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lstate.o: ../../src/host/lua-5.2.3/src/lstate.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/ldump.o: ../../src/host/lua-5.3.0/src/ldump.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lbaselib.o: ../../src/host/lua-5.2.3/src/lbaselib.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/llex.o: ../../src/host/lua-5.3.0/src/llex.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ltablib.o: ../../src/host/lua-5.2.3/src/ltablib.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lopcodes.o: ../../src/host/lua-5.3.0/src/lopcodes.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lauxlib.o: ../../src/host/lua-5.2.3/src/lauxlib.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/loslib.o: ../../src/host/lua-5.3.0/src/loslib.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lcorolib.o: ../../src/host/lua-5.2.3/src/lcorolib.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/loadlib.o: ../../src/host/lua-5.3.0/src/loadlib.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/llex.o: ../../src/host/lua-5.2.3/src/llex.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/ltm.o: ../../src/host/lua-5.3.0/src/ltm.c
|
||||||
@echo $(notdir $<)
|
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ldo.o: ../../src/host/lua-5.2.3/src/ldo.c
|
|
||||||
@echo $(notdir $<)
|
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lundump.o: ../../src/host/lua-5.2.3/src/lundump.c
|
|
||||||
@echo $(notdir $<)
|
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lopcodes.o: ../../src/host/lua-5.2.3/src/lopcodes.c
|
|
||||||
@echo $(notdir $<)
|
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/loslib.o: ../../src/host/lua-5.2.3/src/loslib.c
|
|
||||||
@echo $(notdir $<)
|
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lobject.o: ../../src/host/lua-5.2.3/src/lobject.c
|
|
||||||
@echo $(notdir $<)
|
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ldebug.o: ../../src/host/lua-5.2.3/src/ldebug.c
|
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
|
354
3rdparty/genie/build/gmake.windows/genie.make
vendored
354
3rdparty/genie/build/gmake.windows/genie.make
vendored
@ -42,7 +42,7 @@ ifeq ($(config),release)
|
|||||||
TARGETDIR = ../../bin/windows
|
TARGETDIR = ../../bin/windows
|
||||||
override TARGET = $(TARGETDIR)/genie.exe
|
override TARGET = $(TARGETDIR)/genie.exe
|
||||||
DEFINES += -DNDEBUG -DLUA_COMPAT_MODULE
|
DEFINES += -DNDEBUG -DLUA_COMPAT_MODULE
|
||||||
INCLUDES += -I../../src/host/lua-5.2.3/src
|
INCLUDES += -I../../src/host/lua-5.3.0/src
|
||||||
ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP $(DEFINES) $(INCLUDES)
|
ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP $(DEFINES) $(INCLUDES)
|
||||||
ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -Os
|
ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -Os
|
||||||
ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -Os
|
ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -Os
|
||||||
@ -53,57 +53,59 @@ ifeq ($(config),release)
|
|||||||
LIBS += $(LDDEPS) -lole32
|
LIBS += $(LDDEPS) -lole32
|
||||||
LINKCMD = $(CC) -o $(TARGET) $(OBJECTS) $(RESOURCES) $(ARCH) $(ALL_LDFLAGS) $(LIBS)
|
LINKCMD = $(CC) -o $(TARGET) $(OBJECTS) $(RESOURCES) $(ARCH) $(ALL_LDFLAGS) $(LIBS)
|
||||||
OBJECTS := \
|
OBJECTS := \
|
||||||
$(OBJDIR)/src/host/os_getcwd.o \
|
$(OBJDIR)/src/host/os_mkdir.o \
|
||||||
$(OBJDIR)/src/host/os_stat.o \
|
$(OBJDIR)/src/host/os_stat.o \
|
||||||
$(OBJDIR)/src/host/os_chdir.o \
|
$(OBJDIR)/src/host/os_isdir.o \
|
||||||
$(OBJDIR)/src/host/premake_main.o \
|
$(OBJDIR)/src/host/os_rmdir.o \
|
||||||
$(OBJDIR)/src/host/os_uuid.o \
|
$(OBJDIR)/src/host/os_uuid.o \
|
||||||
|
$(OBJDIR)/src/host/string_endswith.o \
|
||||||
|
$(OBJDIR)/src/host/os_chdir.o \
|
||||||
|
$(OBJDIR)/src/host/os_getversion.o \
|
||||||
|
$(OBJDIR)/src/host/path_isabsolute.o \
|
||||||
|
$(OBJDIR)/src/host/scripts.o \
|
||||||
|
$(OBJDIR)/src/host/premake.o \
|
||||||
|
$(OBJDIR)/src/host/os_getcwd.o \
|
||||||
|
$(OBJDIR)/src/host/premake_main.o \
|
||||||
|
$(OBJDIR)/src/host/os_ticks.o \
|
||||||
|
$(OBJDIR)/src/host/string_hash.o \
|
||||||
|
$(OBJDIR)/src/host/os_is64bit.o \
|
||||||
|
$(OBJDIR)/src/host/os_match.o \
|
||||||
$(OBJDIR)/src/host/os_isfile.o \
|
$(OBJDIR)/src/host/os_isfile.o \
|
||||||
$(OBJDIR)/src/host/os_copyfile.o \
|
$(OBJDIR)/src/host/os_copyfile.o \
|
||||||
$(OBJDIR)/src/host/scripts.o \
|
|
||||||
$(OBJDIR)/src/host/string_endswith.o \
|
|
||||||
$(OBJDIR)/src/host/os_getversion.o \
|
|
||||||
$(OBJDIR)/src/host/string_hash.o \
|
|
||||||
$(OBJDIR)/src/host/os_pathsearch.o \
|
$(OBJDIR)/src/host/os_pathsearch.o \
|
||||||
$(OBJDIR)/src/host/os_rmdir.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lobject.o \
|
||||||
$(OBJDIR)/src/host/os_match.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lparser.o \
|
||||||
$(OBJDIR)/src/host/premake.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lundump.o \
|
||||||
$(OBJDIR)/src/host/os_isdir.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lfunc.o \
|
||||||
$(OBJDIR)/src/host/os_mkdir.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lcorolib.o \
|
||||||
$(OBJDIR)/src/host/path_isabsolute.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/liolib.o \
|
||||||
$(OBJDIR)/src/host/os_is64bit.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ltablib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ldump.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ldblib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lvm.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ldebug.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ltable.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lmathlib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lstrlib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lctype.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/liolib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lutf8lib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lcode.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lauxlib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lparser.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lstate.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/loadlib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lgc.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lbitlib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ltable.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lzio.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lbitlib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ldblib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lapi.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lmathlib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lmem.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lfunc.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lvm.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lmem.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lcode.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lgc.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lzio.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lstring.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lstrlib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/linit.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lbaselib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ltm.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/linit.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lapi.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ldo.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lctype.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lstring.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lstate.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ldump.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lbaselib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/llex.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ltablib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lopcodes.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lauxlib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/loslib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lcorolib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/loadlib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/llex.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ltm.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ldo.o \
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lundump.o \
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lopcodes.o \
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/loslib.o \
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lobject.o \
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ldebug.o \
|
|
||||||
|
|
||||||
define PREBUILDCMDS
|
define PREBUILDCMDS
|
||||||
endef
|
endef
|
||||||
@ -118,7 +120,7 @@ ifeq ($(config),debug)
|
|||||||
TARGETDIR = ../../bin/windows
|
TARGETDIR = ../../bin/windows
|
||||||
override TARGET = $(TARGETDIR)/genie.exe
|
override TARGET = $(TARGETDIR)/genie.exe
|
||||||
DEFINES += -D_DEBUG -DLUA_COMPAT_MODULE
|
DEFINES += -D_DEBUG -DLUA_COMPAT_MODULE
|
||||||
INCLUDES += -I../../src/host/lua-5.2.3/src
|
INCLUDES += -I../../src/host/lua-5.3.0/src
|
||||||
ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP $(DEFINES) $(INCLUDES)
|
ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP $(DEFINES) $(INCLUDES)
|
||||||
ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -g
|
ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -g
|
||||||
ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -g
|
ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -g
|
||||||
@ -129,57 +131,59 @@ ifeq ($(config),debug)
|
|||||||
LIBS += $(LDDEPS) -lole32
|
LIBS += $(LDDEPS) -lole32
|
||||||
LINKCMD = $(CC) -o $(TARGET) $(OBJECTS) $(RESOURCES) $(ARCH) $(ALL_LDFLAGS) $(LIBS)
|
LINKCMD = $(CC) -o $(TARGET) $(OBJECTS) $(RESOURCES) $(ARCH) $(ALL_LDFLAGS) $(LIBS)
|
||||||
OBJECTS := \
|
OBJECTS := \
|
||||||
$(OBJDIR)/src/host/os_getcwd.o \
|
$(OBJDIR)/src/host/os_mkdir.o \
|
||||||
$(OBJDIR)/src/host/os_stat.o \
|
$(OBJDIR)/src/host/os_stat.o \
|
||||||
$(OBJDIR)/src/host/os_chdir.o \
|
$(OBJDIR)/src/host/os_isdir.o \
|
||||||
$(OBJDIR)/src/host/premake_main.o \
|
$(OBJDIR)/src/host/os_rmdir.o \
|
||||||
$(OBJDIR)/src/host/os_uuid.o \
|
$(OBJDIR)/src/host/os_uuid.o \
|
||||||
|
$(OBJDIR)/src/host/string_endswith.o \
|
||||||
|
$(OBJDIR)/src/host/os_chdir.o \
|
||||||
|
$(OBJDIR)/src/host/os_getversion.o \
|
||||||
|
$(OBJDIR)/src/host/path_isabsolute.o \
|
||||||
|
$(OBJDIR)/src/host/scripts.o \
|
||||||
|
$(OBJDIR)/src/host/premake.o \
|
||||||
|
$(OBJDIR)/src/host/os_getcwd.o \
|
||||||
|
$(OBJDIR)/src/host/premake_main.o \
|
||||||
|
$(OBJDIR)/src/host/os_ticks.o \
|
||||||
|
$(OBJDIR)/src/host/string_hash.o \
|
||||||
|
$(OBJDIR)/src/host/os_is64bit.o \
|
||||||
|
$(OBJDIR)/src/host/os_match.o \
|
||||||
$(OBJDIR)/src/host/os_isfile.o \
|
$(OBJDIR)/src/host/os_isfile.o \
|
||||||
$(OBJDIR)/src/host/os_copyfile.o \
|
$(OBJDIR)/src/host/os_copyfile.o \
|
||||||
$(OBJDIR)/src/host/scripts.o \
|
|
||||||
$(OBJDIR)/src/host/string_endswith.o \
|
|
||||||
$(OBJDIR)/src/host/os_getversion.o \
|
|
||||||
$(OBJDIR)/src/host/string_hash.o \
|
|
||||||
$(OBJDIR)/src/host/os_pathsearch.o \
|
$(OBJDIR)/src/host/os_pathsearch.o \
|
||||||
$(OBJDIR)/src/host/os_rmdir.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lobject.o \
|
||||||
$(OBJDIR)/src/host/os_match.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lparser.o \
|
||||||
$(OBJDIR)/src/host/premake.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lundump.o \
|
||||||
$(OBJDIR)/src/host/os_isdir.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lfunc.o \
|
||||||
$(OBJDIR)/src/host/os_mkdir.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lcorolib.o \
|
||||||
$(OBJDIR)/src/host/path_isabsolute.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/liolib.o \
|
||||||
$(OBJDIR)/src/host/os_is64bit.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ltablib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ldump.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ldblib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lvm.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ldebug.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ltable.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lmathlib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lstrlib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lctype.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/liolib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lutf8lib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lcode.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lauxlib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lparser.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lstate.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/loadlib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lgc.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lbitlib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ltable.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lzio.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lbitlib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ldblib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lapi.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lmathlib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lmem.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lfunc.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lvm.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lmem.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lcode.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lgc.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lzio.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lstring.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lstrlib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/linit.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lbaselib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ltm.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/linit.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lapi.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ldo.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lctype.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lstring.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lstate.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ldump.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lbaselib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/llex.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ltablib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/lopcodes.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lauxlib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/loslib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lcorolib.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/loadlib.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/llex.o \
|
$(OBJDIR)/src/host/lua-5.3.0/src/ltm.o \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ldo.o \
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lundump.o \
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lopcodes.o \
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/loslib.o \
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lobject.o \
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ldebug.o \
|
|
||||||
|
|
||||||
define PREBUILDCMDS
|
define PREBUILDCMDS
|
||||||
endef
|
endef
|
||||||
@ -191,8 +195,8 @@ endif
|
|||||||
|
|
||||||
OBJDIRS := \
|
OBJDIRS := \
|
||||||
$(OBJDIR) \
|
$(OBJDIR) \
|
||||||
|
$(OBJDIR)/src/host/lua-5.3.0/src \
|
||||||
$(OBJDIR)/src/host \
|
$(OBJDIR)/src/host \
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src \
|
|
||||||
|
|
||||||
RESOURCES := \
|
RESOURCES := \
|
||||||
|
|
||||||
@ -211,7 +215,7 @@ $(TARGETDIR):
|
|||||||
-$(call MKDIR,$(TARGETDIR))
|
-$(call MKDIR,$(TARGETDIR))
|
||||||
|
|
||||||
$(OBJDIRS):
|
$(OBJDIRS):
|
||||||
@echo Creating $(OBJDIR)
|
@echo Creating $(@)
|
||||||
-$(call MKDIR,$@)
|
-$(call MKDIR,$@)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
@ -236,7 +240,7 @@ $(GCH): $(PCH)
|
|||||||
$(SILENT) $(CC) -x c-header $(ALL_CFLAGS) -MMD -MP $(DEFINES) $(INCLUDES) -o "$@" -MF "$(@:%.gch=%.d)" -c "$<"
|
$(SILENT) $(CC) -x c-header $(ALL_CFLAGS) -MMD -MP $(DEFINES) $(INCLUDES) -o "$@" -MF "$(@:%.gch=%.d)" -c "$<"
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$(OBJDIR)/src/host/os_getcwd.o: ../../src/host/os_getcwd.c
|
$(OBJDIR)/src/host/os_mkdir.o: ../../src/host/os_mkdir.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
@ -244,15 +248,63 @@ $(OBJDIR)/src/host/os_stat.o: ../../src/host/os_stat.c
|
|||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
|
$(OBJDIR)/src/host/os_isdir.o: ../../src/host/os_isdir.c
|
||||||
|
@echo $(notdir $<)
|
||||||
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
|
$(OBJDIR)/src/host/os_rmdir.o: ../../src/host/os_rmdir.c
|
||||||
|
@echo $(notdir $<)
|
||||||
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
|
$(OBJDIR)/src/host/os_uuid.o: ../../src/host/os_uuid.c
|
||||||
|
@echo $(notdir $<)
|
||||||
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
|
$(OBJDIR)/src/host/string_endswith.o: ../../src/host/string_endswith.c
|
||||||
|
@echo $(notdir $<)
|
||||||
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/os_chdir.o: ../../src/host/os_chdir.c
|
$(OBJDIR)/src/host/os_chdir.o: ../../src/host/os_chdir.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
|
$(OBJDIR)/src/host/os_getversion.o: ../../src/host/os_getversion.c
|
||||||
|
@echo $(notdir $<)
|
||||||
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
|
$(OBJDIR)/src/host/path_isabsolute.o: ../../src/host/path_isabsolute.c
|
||||||
|
@echo $(notdir $<)
|
||||||
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
|
$(OBJDIR)/src/host/scripts.o: ../../src/host/scripts.c
|
||||||
|
@echo $(notdir $<)
|
||||||
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
|
$(OBJDIR)/src/host/premake.o: ../../src/host/premake.c
|
||||||
|
@echo $(notdir $<)
|
||||||
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
|
$(OBJDIR)/src/host/os_getcwd.o: ../../src/host/os_getcwd.c
|
||||||
|
@echo $(notdir $<)
|
||||||
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/premake_main.o: ../../src/host/premake_main.c
|
$(OBJDIR)/src/host/premake_main.o: ../../src/host/premake_main.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/os_uuid.o: ../../src/host/os_uuid.c
|
$(OBJDIR)/src/host/os_ticks.o: ../../src/host/os_ticks.c
|
||||||
|
@echo $(notdir $<)
|
||||||
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
|
$(OBJDIR)/src/host/string_hash.o: ../../src/host/string_hash.c
|
||||||
|
@echo $(notdir $<)
|
||||||
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
|
$(OBJDIR)/src/host/os_is64bit.o: ../../src/host/os_is64bit.c
|
||||||
|
@echo $(notdir $<)
|
||||||
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
|
$(OBJDIR)/src/host/os_match.o: ../../src/host/os_match.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
@ -264,179 +316,139 @@ $(OBJDIR)/src/host/os_copyfile.o: ../../src/host/os_copyfile.c
|
|||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/scripts.o: ../../src/host/scripts.c
|
|
||||||
@echo $(notdir $<)
|
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
|
||||||
|
|
||||||
$(OBJDIR)/src/host/string_endswith.o: ../../src/host/string_endswith.c
|
|
||||||
@echo $(notdir $<)
|
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
|
||||||
|
|
||||||
$(OBJDIR)/src/host/os_getversion.o: ../../src/host/os_getversion.c
|
|
||||||
@echo $(notdir $<)
|
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
|
||||||
|
|
||||||
$(OBJDIR)/src/host/string_hash.o: ../../src/host/string_hash.c
|
|
||||||
@echo $(notdir $<)
|
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
|
||||||
|
|
||||||
$(OBJDIR)/src/host/os_pathsearch.o: ../../src/host/os_pathsearch.c
|
$(OBJDIR)/src/host/os_pathsearch.o: ../../src/host/os_pathsearch.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/os_rmdir.o: ../../src/host/os_rmdir.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lobject.o: ../../src/host/lua-5.3.0/src/lobject.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/os_match.o: ../../src/host/os_match.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lparser.o: ../../src/host/lua-5.3.0/src/lparser.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/premake.o: ../../src/host/premake.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lundump.o: ../../src/host/lua-5.3.0/src/lundump.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/os_isdir.o: ../../src/host/os_isdir.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lfunc.o: ../../src/host/lua-5.3.0/src/lfunc.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/os_mkdir.o: ../../src/host/os_mkdir.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lcorolib.o: ../../src/host/lua-5.3.0/src/lcorolib.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/path_isabsolute.o: ../../src/host/path_isabsolute.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/liolib.o: ../../src/host/lua-5.3.0/src/liolib.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/os_is64bit.o: ../../src/host/os_is64bit.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/ltablib.o: ../../src/host/lua-5.3.0/src/ltablib.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ldump.o: ../../src/host/lua-5.2.3/src/ldump.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/ldblib.o: ../../src/host/lua-5.3.0/src/ldblib.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lvm.o: ../../src/host/lua-5.2.3/src/lvm.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/ldebug.o: ../../src/host/lua-5.3.0/src/ldebug.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ltable.o: ../../src/host/lua-5.2.3/src/ltable.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lmathlib.o: ../../src/host/lua-5.3.0/src/lmathlib.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lstrlib.o: ../../src/host/lua-5.2.3/src/lstrlib.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lctype.o: ../../src/host/lua-5.3.0/src/lctype.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/liolib.o: ../../src/host/lua-5.2.3/src/liolib.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lutf8lib.o: ../../src/host/lua-5.3.0/src/lutf8lib.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lcode.o: ../../src/host/lua-5.2.3/src/lcode.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lauxlib.o: ../../src/host/lua-5.3.0/src/lauxlib.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lparser.o: ../../src/host/lua-5.2.3/src/lparser.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lstate.o: ../../src/host/lua-5.3.0/src/lstate.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/loadlib.o: ../../src/host/lua-5.2.3/src/loadlib.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lgc.o: ../../src/host/lua-5.3.0/src/lgc.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lbitlib.o: ../../src/host/lua-5.2.3/src/lbitlib.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/ltable.o: ../../src/host/lua-5.3.0/src/ltable.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lzio.o: ../../src/host/lua-5.2.3/src/lzio.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lbitlib.o: ../../src/host/lua-5.3.0/src/lbitlib.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ldblib.o: ../../src/host/lua-5.2.3/src/ldblib.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lapi.o: ../../src/host/lua-5.3.0/src/lapi.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lmathlib.o: ../../src/host/lua-5.2.3/src/lmathlib.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lmem.o: ../../src/host/lua-5.3.0/src/lmem.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lfunc.o: ../../src/host/lua-5.2.3/src/lfunc.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lvm.o: ../../src/host/lua-5.3.0/src/lvm.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lmem.o: ../../src/host/lua-5.2.3/src/lmem.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lcode.o: ../../src/host/lua-5.3.0/src/lcode.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lgc.o: ../../src/host/lua-5.2.3/src/lgc.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lzio.o: ../../src/host/lua-5.3.0/src/lzio.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lstring.o: ../../src/host/lua-5.2.3/src/lstring.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lstrlib.o: ../../src/host/lua-5.3.0/src/lstrlib.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/linit.o: ../../src/host/lua-5.2.3/src/linit.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lbaselib.o: ../../src/host/lua-5.3.0/src/lbaselib.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ltm.o: ../../src/host/lua-5.2.3/src/ltm.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/linit.o: ../../src/host/lua-5.3.0/src/linit.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lapi.o: ../../src/host/lua-5.2.3/src/lapi.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/ldo.o: ../../src/host/lua-5.3.0/src/ldo.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lctype.o: ../../src/host/lua-5.2.3/src/lctype.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lstring.o: ../../src/host/lua-5.3.0/src/lstring.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lstate.o: ../../src/host/lua-5.2.3/src/lstate.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/ldump.o: ../../src/host/lua-5.3.0/src/ldump.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lbaselib.o: ../../src/host/lua-5.2.3/src/lbaselib.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/llex.o: ../../src/host/lua-5.3.0/src/llex.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ltablib.o: ../../src/host/lua-5.2.3/src/ltablib.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/lopcodes.o: ../../src/host/lua-5.3.0/src/lopcodes.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lauxlib.o: ../../src/host/lua-5.2.3/src/lauxlib.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/loslib.o: ../../src/host/lua-5.3.0/src/loslib.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lcorolib.o: ../../src/host/lua-5.2.3/src/lcorolib.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/loadlib.o: ../../src/host/lua-5.3.0/src/loadlib.c
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/llex.o: ../../src/host/lua-5.2.3/src/llex.c
|
$(OBJDIR)/src/host/lua-5.3.0/src/ltm.o: ../../src/host/lua-5.3.0/src/ltm.c
|
||||||
@echo $(notdir $<)
|
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ldo.o: ../../src/host/lua-5.2.3/src/ldo.c
|
|
||||||
@echo $(notdir $<)
|
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lundump.o: ../../src/host/lua-5.2.3/src/lundump.c
|
|
||||||
@echo $(notdir $<)
|
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lopcodes.o: ../../src/host/lua-5.2.3/src/lopcodes.c
|
|
||||||
@echo $(notdir $<)
|
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/loslib.o: ../../src/host/lua-5.2.3/src/loslib.c
|
|
||||||
@echo $(notdir $<)
|
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/lobject.o: ../../src/host/lua-5.2.3/src/lobject.c
|
|
||||||
@echo $(notdir $<)
|
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
|
||||||
|
|
||||||
$(OBJDIR)/src/host/lua-5.2.3/src/ldebug.o: ../../src/host/lua-5.2.3/src/ldebug.c
|
|
||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
$(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -MF $(@:%.o=%.d) -c "$<"
|
||||||
|
|
||||||
|
12
3rdparty/genie/scripts/genie.lua
vendored
12
3rdparty/genie/scripts/genie.lua
vendored
@ -26,7 +26,7 @@
|
|||||||
"StaticRuntime"
|
"StaticRuntime"
|
||||||
}
|
}
|
||||||
includedirs {
|
includedirs {
|
||||||
"../src/host/lua-5.2.3/src"
|
"../src/host/lua-5.3.0/src"
|
||||||
}
|
}
|
||||||
|
|
||||||
files {
|
files {
|
||||||
@ -36,12 +36,12 @@
|
|||||||
"../src/host/scripts.c",
|
"../src/host/scripts.c",
|
||||||
}
|
}
|
||||||
|
|
||||||
removefiles {
|
excludes {
|
||||||
"../src/premake.lua",
|
"../src/premake.lua",
|
||||||
"../src/host/lua-5.2.3/src/lua.c",
|
"../src/host/lua-5.3.0/src/lua.c",
|
||||||
"../src/host/lua-5.2.3/src/luac.c",
|
"../src/host/lua-5.3.0/src/luac.c",
|
||||||
"../src/host/lua-5.2.3/**.lua",
|
"../src/host/lua-5.3.0/**.lua",
|
||||||
"../src/host/lua-5.2.3/etc/*.c",
|
"../src/host/lua-5.3.0/etc/*.c",
|
||||||
}
|
}
|
||||||
|
|
||||||
configuration "Debug"
|
configuration "Debug"
|
||||||
|
12
3rdparty/genie/src/actions/make/make_cpp.lua
vendored
12
3rdparty/genie/src/actions/make/make_cpp.lua
vendored
@ -111,7 +111,7 @@
|
|||||||
|
|
||||||
_p('$(OBJDIRS):')
|
_p('$(OBJDIRS):')
|
||||||
if (not prj.solution.messageskip) or (not table.contains(prj.solution.messageskip, "SkipCreatingMessage")) then
|
if (not prj.solution.messageskip) or (not table.contains(prj.solution.messageskip, "SkipCreatingMessage")) then
|
||||||
_p('\t@echo Creating $(OBJDIR)')
|
_p('\t@echo Creating $(@)')
|
||||||
end
|
end
|
||||||
_p('\t-$(call MKDIR,$@)')
|
_p('\t-$(call MKDIR,$@)')
|
||||||
_p('')
|
_p('')
|
||||||
@ -246,14 +246,8 @@
|
|||||||
for _, file in ipairs(prj.files) do
|
for _, file in ipairs(prj.files) do
|
||||||
if path.iscppfile(file) then
|
if path.iscppfile(file) then
|
||||||
-- check if file is excluded.
|
-- check if file is excluded.
|
||||||
local excluded = false
|
if not table.icontains(cfg.excludes, file) then
|
||||||
for _, exclude in ipairs(cfg.excludes) do
|
-- if not excluded, add it.
|
||||||
excluded = (exclude == file)
|
|
||||||
if (excluded) then break end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- if not excluded, add it.
|
|
||||||
if excluded == false then
|
|
||||||
_p('\t$(OBJDIR)/%s.o \\'
|
_p('\t$(OBJDIR)/%s.o \\'
|
||||||
, _MAKE.esc(path.trimdots(path.removeext(file)))
|
, _MAKE.esc(path.trimdots(path.removeext(file)))
|
||||||
)
|
)
|
||||||
|
@ -477,22 +477,10 @@
|
|||||||
vc2010.link(cfg)
|
vc2010.link(cfg)
|
||||||
event_hooks(cfg)
|
event_hooks(cfg)
|
||||||
_p(1,'</ItemDefinitionGroup>')
|
_p(1,'</ItemDefinitionGroup>')
|
||||||
|
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function exists(table, fine)
|
|
||||||
for _, value in ipairs(table) do
|
|
||||||
if value == find then return true end
|
|
||||||
end
|
|
||||||
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Retrieve a list of files for a particular build group, one of
|
-- Retrieve a list of files for a particular build group, one of
|
||||||
-- "ClInclude", "ClCompile", "ResourceCompile", and "None".
|
-- "ClInclude", "ClCompile", "ResourceCompile", and "None".
|
||||||
@ -506,7 +494,7 @@
|
|||||||
ClInclude = {},
|
ClInclude = {},
|
||||||
None = {},
|
None = {},
|
||||||
ResourceCompile = {},
|
ResourceCompile = {},
|
||||||
AppxManifest = {}
|
AppxManifest = {}
|
||||||
}
|
}
|
||||||
|
|
||||||
local foundAppxManifest = false
|
local foundAppxManifest = false
|
||||||
@ -514,19 +502,19 @@
|
|||||||
if path.iscppfile(file.name) then
|
if path.iscppfile(file.name) then
|
||||||
table.insert(sortedfiles.ClCompile, file)
|
table.insert(sortedfiles.ClCompile, file)
|
||||||
elseif path.iscppheader(file.name) then
|
elseif path.iscppheader(file.name) then
|
||||||
if not exists(prj.removefiles, file) then
|
if not table.icontains(prj.removefiles, file) then
|
||||||
table.insert(sortedfiles.ClInclude, file)
|
table.insert(sortedfiles.ClInclude, file)
|
||||||
end
|
end
|
||||||
elseif path.isresourcefile(file.name) then
|
elseif path.isresourcefile(file.name) then
|
||||||
table.insert(sortedfiles.ResourceCompile, file)
|
table.insert(sortedfiles.ResourceCompile, file)
|
||||||
else
|
else
|
||||||
local ext = path.getextension(file.name):lower()
|
local ext = path.getextension(file.name):lower()
|
||||||
if ext == ".appxmanifest" then
|
if ext == ".appxmanifest" then
|
||||||
foundAppxManifest = true
|
foundAppxManifest = true
|
||||||
table.insert(sortedfiles.AppxManifest, file)
|
table.insert(sortedfiles.AppxManifest, file)
|
||||||
else
|
else
|
||||||
table.insert(sortedfiles.None, file)
|
table.insert(sortedfiles.None, file)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -557,7 +545,7 @@
|
|||||||
vc2010.compilerfilesgroup(prj)
|
vc2010.compilerfilesgroup(prj)
|
||||||
vc2010.simplefilesgroup(prj, "None")
|
vc2010.simplefilesgroup(prj, "None")
|
||||||
vc2010.simplefilesgroup(prj, "ResourceCompile")
|
vc2010.simplefilesgroup(prj, "ResourceCompile")
|
||||||
vc2010.simplefilesgroup(prj, "AppxManifest")
|
vc2010.simplefilesgroup(prj, "AppxManifest")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
@ -566,13 +554,13 @@
|
|||||||
if #files > 0 then
|
if #files > 0 then
|
||||||
_p(1,'<ItemGroup>')
|
_p(1,'<ItemGroup>')
|
||||||
for _, file in ipairs(files) do
|
for _, file in ipairs(files) do
|
||||||
if subtype then
|
if subtype then
|
||||||
_p(2,'<%s Include=\"%s\">', section, path.translate(file.name, "\\"))
|
_p(2,'<%s Include=\"%s\">', section, path.translate(file.name, "\\"))
|
||||||
_p(3,'<SubType>%s</SubType>', subtype)
|
_p(3,'<SubType>%s</SubType>', subtype)
|
||||||
_p(2,'</%s>', section)
|
_p(2,'</%s>', section)
|
||||||
else
|
else
|
||||||
_p(2,'<%s Include=\"%s\" />', section, path.translate(file.name, "\\"))
|
_p(2,'<%s Include=\"%s\" />', section, path.translate(file.name, "\\"))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
_p(1,'</ItemGroup>')
|
_p(1,'</ItemGroup>')
|
||||||
end
|
end
|
||||||
@ -605,37 +593,15 @@
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Global exclude
|
local excluded = table.icontains(prj.excludes, file.name)
|
||||||
local excluded = false
|
for _, vsconfig in ipairs(configs) do
|
||||||
for _, exclude in ipairs(prj.excludes) do
|
local cfg = premake.getconfig(prj, vsconfig.src_buildcfg, vsconfig.src_platform)
|
||||||
if exclude == file.name then
|
if excluded or table.icontains(cfg.excludes, file.name) then
|
||||||
for _, vsconfig in ipairs(configs) do
|
_p(3, '<ExcludedFromBuild '
|
||||||
local cfg = premake.getconfig(prj, vsconfig.src_buildcfg, vsconfig.src_platform)
|
.. if_config_and_platform()
|
||||||
_p(3, '<ExcludedFromBuild '
|
.. '>true</ExcludedFromBuild>'
|
||||||
.. if_config_and_platform()
|
, premake.esc(vsconfig.name)
|
||||||
.. '>true</ExcludedFromBuild>'
|
)
|
||||||
, premake.esc(vsconfig.name)
|
|
||||||
)
|
|
||||||
end
|
|
||||||
excluded = true
|
|
||||||
break
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if not excluded then
|
|
||||||
-- Per configuration excludes
|
|
||||||
for _, vsconfig in ipairs(configs) do
|
|
||||||
local cfg = premake.getconfig(prj, vsconfig.src_buildcfg, vsconfig.src_platform)
|
|
||||||
for _, exclude in ipairs(cfg.excludes) do
|
|
||||||
|
|
||||||
if exclude == file.name then
|
|
||||||
_p(3, '<ExcludedFromBuild '
|
|
||||||
.. if_config_and_platform()
|
|
||||||
.. '>true</ExcludedFromBuild>'
|
|
||||||
, premake.esc(vsconfig.name)
|
|
||||||
)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
15
3rdparty/genie/src/base/api.lua
vendored
15
3rdparty/genie/src/base/api.lua
vendored
@ -810,13 +810,16 @@
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- list value types get a remove() call too
|
-- list value types get a remove() call too
|
||||||
if info.kind == "list" or
|
if info.kind == "list"
|
||||||
info.kind == "dirlist" or
|
or info.kind == "dirlist"
|
||||||
info.kind == "filelist" or
|
or info.kind == "filelist"
|
||||||
info.kind == "absolutefilelist"
|
or info.kind == "absolutefilelist"
|
||||||
then
|
then
|
||||||
_G["remove"..name] = function(value)
|
if name ~= "removefiles"
|
||||||
premake.remove(name, value)
|
and name ~= "files" then
|
||||||
|
_G["remove"..name] = function(value)
|
||||||
|
premake.remove(name, value)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
31
3rdparty/genie/src/base/bake.lua
vendored
31
3rdparty/genie/src/base/bake.lua
vendored
@ -253,6 +253,7 @@
|
|||||||
-- build the configuration base by merging the solution and project level settings
|
-- build the configuration base by merging the solution and project level settings
|
||||||
local cfg = {}
|
local cfg = {}
|
||||||
mergeobject(cfg, basis[key])
|
mergeobject(cfg, basis[key])
|
||||||
|
|
||||||
adjustpaths(obj.location, cfg)
|
adjustpaths(obj.location, cfg)
|
||||||
mergeobject(cfg, obj)
|
mergeobject(cfg, obj)
|
||||||
|
|
||||||
@ -376,7 +377,7 @@
|
|||||||
|
|
||||||
local dir
|
local dir
|
||||||
local start = iif(cfg.name, 2, 1)
|
local start = iif(cfg.name, 2, 1)
|
||||||
for v = start, iif(cfg.flags.SingleOutputDir,num_variations-1,num_variations) do
|
for v = start, iif(cfg.flags.SingleOutputDir==true,num_variations-1,num_variations) do
|
||||||
dir = cfg_dirs[cfg][v]
|
dir = cfg_dirs[cfg][v]
|
||||||
if hit_counts[dir] == 1 then break end
|
if hit_counts[dir] == 1 then break end
|
||||||
end
|
end
|
||||||
@ -701,15 +702,13 @@
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- remove excluded files from the file list
|
-- remove excluded files from the file list
|
||||||
local files = { }
|
local removefiles = cfg.removefiles
|
||||||
|
if _ACTION == 'gmake' then
|
||||||
|
removefiles = table.join(removefiles, cfg.excludes)
|
||||||
|
end
|
||||||
|
local files = {}
|
||||||
for _, fname in ipairs(cfg.files) do
|
for _, fname in ipairs(cfg.files) do
|
||||||
local removed = false
|
if not table.icontains(removefiles, fname) then
|
||||||
for _, removefname in ipairs(cfg.removefiles) do
|
|
||||||
removed = (fname == removefname)
|
|
||||||
if (removed) then break end
|
|
||||||
end
|
|
||||||
|
|
||||||
if (not removed) then
|
|
||||||
table.insert(files, fname)
|
table.insert(files, fname)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -725,21 +724,9 @@
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- build configuration objects for all files
|
-- build configuration objects for all files
|
||||||
-- TODO: can I build this as a tree instead, and avoid the extra
|
|
||||||
-- step of building it later?
|
|
||||||
cfg.__fileconfigs = { }
|
cfg.__fileconfigs = { }
|
||||||
for _, fname in ipairs(cfg.files) do
|
for _, fname in ipairs(cfg.files) do
|
||||||
cfg.terms.required = fname:lower()
|
local fcfg = { }
|
||||||
local fcfg = {}
|
|
||||||
for _, blk in ipairs(cfg.project.blocks) do
|
|
||||||
if (premake.iskeywordsmatch(blk.keywords, cfg.terms)) then
|
|
||||||
mergeobject(fcfg, blk)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- add indexed by name and integer
|
|
||||||
-- TODO: when everything is converted to trees I won't need
|
|
||||||
-- to index by name any longer
|
|
||||||
fcfg.name = fname
|
fcfg.name = fname
|
||||||
cfg.__fileconfigs[fname] = fcfg
|
cfg.__fileconfigs[fname] = fcfg
|
||||||
table.insert(cfg.__fileconfigs, fcfg)
|
table.insert(cfg.__fileconfigs, fcfg)
|
||||||
|
8
3rdparty/genie/src/base/inspect.lua
vendored
8
3rdparty/genie/src/base/inspect.lua
vendored
@ -283,7 +283,9 @@ function inspect(rootObject, options)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function printtable(name, table)
|
function printtable(name, table)
|
||||||
print("--- " .. name)
|
print("table: ", name, inspect(table), "\n")
|
||||||
print(inspect(table))
|
end
|
||||||
print("---")
|
|
||||||
|
function printstack()
|
||||||
|
print(debug.traceback(), "\n")
|
||||||
end
|
end
|
||||||
|
13
3rdparty/genie/src/base/table.lua
vendored
13
3rdparty/genie/src/base/table.lua
vendored
@ -10,10 +10,15 @@
|
|||||||
--
|
--
|
||||||
|
|
||||||
function table.contains(t, value)
|
function table.contains(t, value)
|
||||||
for _,v in pairs(t) do
|
for _, v in pairs(t) do
|
||||||
if (v == value) then
|
if v == value then return true end
|
||||||
return true
|
end
|
||||||
end
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
function table.icontains(t, value)
|
||||||
|
for _, v in ipairs(t) do
|
||||||
|
if v == value then return true end
|
||||||
end
|
end
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
187
3rdparty/genie/src/host/lua-5.2.3/src/Makefile
vendored
187
3rdparty/genie/src/host/lua-5.2.3/src/Makefile
vendored
@ -1,187 +0,0 @@
|
|||||||
# Makefile for building Lua
|
|
||||||
# See ../doc/readme.html for installation and customization instructions.
|
|
||||||
|
|
||||||
# == CHANGE THE SETTINGS BELOW TO SUIT YOUR ENVIRONMENT =======================
|
|
||||||
|
|
||||||
# Your platform. See PLATS for possible values.
|
|
||||||
PLAT= none
|
|
||||||
|
|
||||||
CC= gcc
|
|
||||||
CFLAGS= -O2 -Wall -DLUA_COMPAT_ALL $(SYSCFLAGS) $(MYCFLAGS)
|
|
||||||
LDFLAGS= $(SYSLDFLAGS) $(MYLDFLAGS)
|
|
||||||
LIBS= -lm $(SYSLIBS) $(MYLIBS)
|
|
||||||
|
|
||||||
AR= ar rcu
|
|
||||||
RANLIB= ranlib
|
|
||||||
RM= rm -f
|
|
||||||
|
|
||||||
SYSCFLAGS=
|
|
||||||
SYSLDFLAGS=
|
|
||||||
SYSLIBS=
|
|
||||||
|
|
||||||
MYCFLAGS=
|
|
||||||
MYLDFLAGS=
|
|
||||||
MYLIBS=
|
|
||||||
MYOBJS=
|
|
||||||
|
|
||||||
# == END OF USER SETTINGS -- NO NEED TO CHANGE ANYTHING BELOW THIS LINE =======
|
|
||||||
|
|
||||||
PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris
|
|
||||||
|
|
||||||
LUA_A= liblua.a
|
|
||||||
CORE_O= lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o \
|
|
||||||
lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o \
|
|
||||||
ltm.o lundump.o lvm.o lzio.o
|
|
||||||
LIB_O= lauxlib.o lbaselib.o lbitlib.o lcorolib.o ldblib.o liolib.o \
|
|
||||||
lmathlib.o loslib.o lstrlib.o ltablib.o loadlib.o linit.o
|
|
||||||
BASE_O= $(CORE_O) $(LIB_O) $(MYOBJS)
|
|
||||||
|
|
||||||
LUA_T= lua
|
|
||||||
LUA_O= lua.o
|
|
||||||
|
|
||||||
LUAC_T= luac
|
|
||||||
LUAC_O= luac.o
|
|
||||||
|
|
||||||
ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O)
|
|
||||||
ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T)
|
|
||||||
ALL_A= $(LUA_A)
|
|
||||||
|
|
||||||
# Targets start here.
|
|
||||||
default: $(PLAT)
|
|
||||||
|
|
||||||
all: $(ALL_T)
|
|
||||||
|
|
||||||
o: $(ALL_O)
|
|
||||||
|
|
||||||
a: $(ALL_A)
|
|
||||||
|
|
||||||
$(LUA_A): $(BASE_O)
|
|
||||||
$(AR) $@ $(BASE_O)
|
|
||||||
$(RANLIB) $@
|
|
||||||
|
|
||||||
$(LUA_T): $(LUA_O) $(LUA_A)
|
|
||||||
$(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS)
|
|
||||||
|
|
||||||
$(LUAC_T): $(LUAC_O) $(LUA_A)
|
|
||||||
$(CC) -o $@ $(LDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS)
|
|
||||||
|
|
||||||
clean:
|
|
||||||
$(RM) $(ALL_T) $(ALL_O)
|
|
||||||
|
|
||||||
depend:
|
|
||||||
@$(CC) $(CFLAGS) -MM l*.c
|
|
||||||
|
|
||||||
echo:
|
|
||||||
@echo "PLAT= $(PLAT)"
|
|
||||||
@echo "CC= $(CC)"
|
|
||||||
@echo "CFLAGS= $(CFLAGS)"
|
|
||||||
@echo "LDFLAGS= $(SYSLDFLAGS)"
|
|
||||||
@echo "LIBS= $(LIBS)"
|
|
||||||
@echo "AR= $(AR)"
|
|
||||||
@echo "RANLIB= $(RANLIB)"
|
|
||||||
@echo "RM= $(RM)"
|
|
||||||
|
|
||||||
# Convenience targets for popular platforms
|
|
||||||
ALL= all
|
|
||||||
|
|
||||||
none:
|
|
||||||
@echo "Please do 'make PLATFORM' where PLATFORM is one of these:"
|
|
||||||
@echo " $(PLATS)"
|
|
||||||
|
|
||||||
aix:
|
|
||||||
$(MAKE) $(ALL) CC="xlc" CFLAGS="-O2 -DLUA_USE_POSIX -DLUA_USE_DLOPEN" SYSLIBS="-ldl" SYSLDFLAGS="-brtl -bexpall"
|
|
||||||
|
|
||||||
ansi:
|
|
||||||
$(MAKE) $(ALL) SYSCFLAGS="-DLUA_ANSI"
|
|
||||||
|
|
||||||
bsd:
|
|
||||||
$(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_POSIX -DLUA_USE_DLOPEN" SYSLIBS="-Wl,-E"
|
|
||||||
|
|
||||||
freebsd:
|
|
||||||
$(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -lreadline"
|
|
||||||
|
|
||||||
generic: $(ALL)
|
|
||||||
|
|
||||||
linux:
|
|
||||||
$(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl -lreadline"
|
|
||||||
|
|
||||||
macosx:
|
|
||||||
$(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_MACOSX" SYSLIBS="-lreadline" CC=cc
|
|
||||||
|
|
||||||
mingw:
|
|
||||||
$(MAKE) "LUA_A=lua52.dll" "LUA_T=lua.exe" \
|
|
||||||
"AR=$(CC) -shared -o" "RANLIB=strip --strip-unneeded" \
|
|
||||||
"SYSCFLAGS=-DLUA_BUILD_AS_DLL" "SYSLIBS=" "SYSLDFLAGS=-s" lua.exe
|
|
||||||
$(MAKE) "LUAC_T=luac.exe" luac.exe
|
|
||||||
|
|
||||||
posix:
|
|
||||||
$(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_POSIX"
|
|
||||||
|
|
||||||
solaris:
|
|
||||||
$(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_POSIX -DLUA_USE_DLOPEN" SYSLIBS="-ldl"
|
|
||||||
|
|
||||||
# list targets that do not create files (but not all makes understand .PHONY)
|
|
||||||
.PHONY: all $(PLATS) default o a clean depend echo none
|
|
||||||
|
|
||||||
# DO NOT DELETE
|
|
||||||
|
|
||||||
lapi.o: lapi.c lua.h luaconf.h lapi.h llimits.h lstate.h lobject.h ltm.h \
|
|
||||||
lzio.h lmem.h ldebug.h ldo.h lfunc.h lgc.h lstring.h ltable.h lundump.h \
|
|
||||||
lvm.h
|
|
||||||
lauxlib.o: lauxlib.c lua.h luaconf.h lauxlib.h
|
|
||||||
lbaselib.o: lbaselib.c lua.h luaconf.h lauxlib.h lualib.h
|
|
||||||
lbitlib.o: lbitlib.c lua.h luaconf.h lauxlib.h lualib.h
|
|
||||||
lcode.o: lcode.c lua.h luaconf.h lcode.h llex.h lobject.h llimits.h \
|
|
||||||
lzio.h lmem.h lopcodes.h lparser.h ldebug.h lstate.h ltm.h ldo.h lgc.h \
|
|
||||||
lstring.h ltable.h lvm.h
|
|
||||||
lcorolib.o: lcorolib.c lua.h luaconf.h lauxlib.h lualib.h
|
|
||||||
lctype.o: lctype.c lctype.h lua.h luaconf.h llimits.h
|
|
||||||
ldblib.o: ldblib.c lua.h luaconf.h lauxlib.h lualib.h
|
|
||||||
ldebug.o: ldebug.c lua.h luaconf.h lapi.h llimits.h lstate.h lobject.h \
|
|
||||||
ltm.h lzio.h lmem.h lcode.h llex.h lopcodes.h lparser.h ldebug.h ldo.h \
|
|
||||||
lfunc.h lstring.h lgc.h ltable.h lvm.h
|
|
||||||
ldo.o: ldo.c lua.h luaconf.h lapi.h llimits.h lstate.h lobject.h ltm.h \
|
|
||||||
lzio.h lmem.h ldebug.h ldo.h lfunc.h lgc.h lopcodes.h lparser.h \
|
|
||||||
lstring.h ltable.h lundump.h lvm.h
|
|
||||||
ldump.o: ldump.c lua.h luaconf.h lobject.h llimits.h lstate.h ltm.h \
|
|
||||||
lzio.h lmem.h lundump.h
|
|
||||||
lfunc.o: lfunc.c lua.h luaconf.h lfunc.h lobject.h llimits.h lgc.h \
|
|
||||||
lstate.h ltm.h lzio.h lmem.h
|
|
||||||
lgc.o: lgc.c lua.h luaconf.h ldebug.h lstate.h lobject.h llimits.h ltm.h \
|
|
||||||
lzio.h lmem.h ldo.h lfunc.h lgc.h lstring.h ltable.h
|
|
||||||
linit.o: linit.c lua.h luaconf.h lualib.h lauxlib.h
|
|
||||||
liolib.o: liolib.c lua.h luaconf.h lauxlib.h lualib.h
|
|
||||||
llex.o: llex.c lua.h luaconf.h lctype.h llimits.h ldo.h lobject.h \
|
|
||||||
lstate.h ltm.h lzio.h lmem.h llex.h lparser.h lstring.h lgc.h ltable.h
|
|
||||||
lmathlib.o: lmathlib.c lua.h luaconf.h lauxlib.h lualib.h
|
|
||||||
lmem.o: lmem.c lua.h luaconf.h ldebug.h lstate.h lobject.h llimits.h \
|
|
||||||
ltm.h lzio.h lmem.h ldo.h lgc.h
|
|
||||||
loadlib.o: loadlib.c lua.h luaconf.h lauxlib.h lualib.h
|
|
||||||
lobject.o: lobject.c lua.h luaconf.h lctype.h llimits.h ldebug.h lstate.h \
|
|
||||||
lobject.h ltm.h lzio.h lmem.h ldo.h lstring.h lgc.h lvm.h
|
|
||||||
lopcodes.o: lopcodes.c lopcodes.h llimits.h lua.h luaconf.h
|
|
||||||
loslib.o: loslib.c lua.h luaconf.h lauxlib.h lualib.h
|
|
||||||
lparser.o: lparser.c lua.h luaconf.h lcode.h llex.h lobject.h llimits.h \
|
|
||||||
lzio.h lmem.h lopcodes.h lparser.h ldebug.h lstate.h ltm.h ldo.h lfunc.h \
|
|
||||||
lstring.h lgc.h ltable.h
|
|
||||||
lstate.o: lstate.c lua.h luaconf.h lapi.h llimits.h lstate.h lobject.h \
|
|
||||||
ltm.h lzio.h lmem.h ldebug.h ldo.h lfunc.h lgc.h llex.h lstring.h \
|
|
||||||
ltable.h
|
|
||||||
lstring.o: lstring.c lua.h luaconf.h lmem.h llimits.h lobject.h lstate.h \
|
|
||||||
ltm.h lzio.h lstring.h lgc.h
|
|
||||||
lstrlib.o: lstrlib.c lua.h luaconf.h lauxlib.h lualib.h
|
|
||||||
ltable.o: ltable.c lua.h luaconf.h ldebug.h lstate.h lobject.h llimits.h \
|
|
||||||
ltm.h lzio.h lmem.h ldo.h lgc.h lstring.h ltable.h lvm.h
|
|
||||||
ltablib.o: ltablib.c lua.h luaconf.h lauxlib.h lualib.h
|
|
||||||
ltm.o: ltm.c lua.h luaconf.h lobject.h llimits.h lstate.h ltm.h lzio.h \
|
|
||||||
lmem.h lstring.h lgc.h ltable.h
|
|
||||||
lua.o: lua.c lua.h luaconf.h lauxlib.h lualib.h
|
|
||||||
luac.o: luac.c lua.h luaconf.h lauxlib.h lobject.h llimits.h lstate.h \
|
|
||||||
ltm.h lzio.h lmem.h lundump.h ldebug.h lopcodes.h
|
|
||||||
lundump.o: lundump.c lua.h luaconf.h ldebug.h lstate.h lobject.h \
|
|
||||||
llimits.h ltm.h lzio.h lmem.h ldo.h lfunc.h lstring.h lgc.h lundump.h
|
|
||||||
lvm.o: lvm.c lua.h luaconf.h ldebug.h lstate.h lobject.h llimits.h ltm.h \
|
|
||||||
lzio.h lmem.h ldo.h lfunc.h lgc.h lopcodes.h lstring.h ltable.h lvm.h
|
|
||||||
lzio.o: lzio.c lua.h luaconf.h llimits.h lmem.h lstate.h lobject.h ltm.h \
|
|
||||||
lzio.h
|
|
||||||
|
|
173
3rdparty/genie/src/host/lua-5.2.3/src/ldump.c
vendored
173
3rdparty/genie/src/host/lua-5.2.3/src/ldump.c
vendored
@ -1,173 +0,0 @@
|
|||||||
/*
|
|
||||||
** $Id: ldump.c,v 2.17.1.1 2013/04/12 18:48:47 roberto Exp $
|
|
||||||
** save precompiled Lua chunks
|
|
||||||
** See Copyright Notice in lua.h
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <stddef.h>
|
|
||||||
|
|
||||||
#define ldump_c
|
|
||||||
#define LUA_CORE
|
|
||||||
|
|
||||||
#include "lua.h"
|
|
||||||
|
|
||||||
#include "lobject.h"
|
|
||||||
#include "lstate.h"
|
|
||||||
#include "lundump.h"
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
lua_State* L;
|
|
||||||
lua_Writer writer;
|
|
||||||
void* data;
|
|
||||||
int strip;
|
|
||||||
int status;
|
|
||||||
} DumpState;
|
|
||||||
|
|
||||||
#define DumpMem(b,n,size,D) DumpBlock(b,(n)*(size),D)
|
|
||||||
#define DumpVar(x,D) DumpMem(&x,1,sizeof(x),D)
|
|
||||||
|
|
||||||
static void DumpBlock(const void* b, size_t size, DumpState* D)
|
|
||||||
{
|
|
||||||
if (D->status==0)
|
|
||||||
{
|
|
||||||
lua_unlock(D->L);
|
|
||||||
D->status=(*D->writer)(D->L,b,size,D->data);
|
|
||||||
lua_lock(D->L);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void DumpChar(int y, DumpState* D)
|
|
||||||
{
|
|
||||||
char x=(char)y;
|
|
||||||
DumpVar(x,D);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void DumpInt(int x, DumpState* D)
|
|
||||||
{
|
|
||||||
DumpVar(x,D);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void DumpNumber(lua_Number x, DumpState* D)
|
|
||||||
{
|
|
||||||
DumpVar(x,D);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void DumpVector(const void* b, int n, size_t size, DumpState* D)
|
|
||||||
{
|
|
||||||
DumpInt(n,D);
|
|
||||||
DumpMem(b,n,size,D);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void DumpString(const TString* s, DumpState* D)
|
|
||||||
{
|
|
||||||
if (s==NULL)
|
|
||||||
{
|
|
||||||
size_t size=0;
|
|
||||||
DumpVar(size,D);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
size_t size=s->tsv.len+1; /* include trailing '\0' */
|
|
||||||
DumpVar(size,D);
|
|
||||||
DumpBlock(getstr(s),size*sizeof(char),D);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#define DumpCode(f,D) DumpVector(f->code,f->sizecode,sizeof(Instruction),D)
|
|
||||||
|
|
||||||
static void DumpFunction(const Proto* f, DumpState* D);
|
|
||||||
|
|
||||||
static void DumpConstants(const Proto* f, DumpState* D)
|
|
||||||
{
|
|
||||||
int i,n=f->sizek;
|
|
||||||
DumpInt(n,D);
|
|
||||||
for (i=0; i<n; i++)
|
|
||||||
{
|
|
||||||
const TValue* o=&f->k[i];
|
|
||||||
DumpChar(ttypenv(o),D);
|
|
||||||
switch (ttypenv(o))
|
|
||||||
{
|
|
||||||
case LUA_TNIL:
|
|
||||||
break;
|
|
||||||
case LUA_TBOOLEAN:
|
|
||||||
DumpChar(bvalue(o),D);
|
|
||||||
break;
|
|
||||||
case LUA_TNUMBER:
|
|
||||||
DumpNumber(nvalue(o),D);
|
|
||||||
break;
|
|
||||||
case LUA_TSTRING:
|
|
||||||
DumpString(rawtsvalue(o),D);
|
|
||||||
break;
|
|
||||||
default: lua_assert(0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
n=f->sizep;
|
|
||||||
DumpInt(n,D);
|
|
||||||
for (i=0; i<n; i++) DumpFunction(f->p[i],D);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void DumpUpvalues(const Proto* f, DumpState* D)
|
|
||||||
{
|
|
||||||
int i,n=f->sizeupvalues;
|
|
||||||
DumpInt(n,D);
|
|
||||||
for (i=0; i<n; i++)
|
|
||||||
{
|
|
||||||
DumpChar(f->upvalues[i].instack,D);
|
|
||||||
DumpChar(f->upvalues[i].idx,D);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void DumpDebug(const Proto* f, DumpState* D)
|
|
||||||
{
|
|
||||||
int i,n;
|
|
||||||
DumpString((D->strip) ? NULL : f->source,D);
|
|
||||||
n= (D->strip) ? 0 : f->sizelineinfo;
|
|
||||||
DumpVector(f->lineinfo,n,sizeof(int),D);
|
|
||||||
n= (D->strip) ? 0 : f->sizelocvars;
|
|
||||||
DumpInt(n,D);
|
|
||||||
for (i=0; i<n; i++)
|
|
||||||
{
|
|
||||||
DumpString(f->locvars[i].varname,D);
|
|
||||||
DumpInt(f->locvars[i].startpc,D);
|
|
||||||
DumpInt(f->locvars[i].endpc,D);
|
|
||||||
}
|
|
||||||
n= (D->strip) ? 0 : f->sizeupvalues;
|
|
||||||
DumpInt(n,D);
|
|
||||||
for (i=0; i<n; i++) DumpString(f->upvalues[i].name,D);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void DumpFunction(const Proto* f, DumpState* D)
|
|
||||||
{
|
|
||||||
DumpInt(f->linedefined,D);
|
|
||||||
DumpInt(f->lastlinedefined,D);
|
|
||||||
DumpChar(f->numparams,D);
|
|
||||||
DumpChar(f->is_vararg,D);
|
|
||||||
DumpChar(f->maxstacksize,D);
|
|
||||||
DumpCode(f,D);
|
|
||||||
DumpConstants(f,D);
|
|
||||||
DumpUpvalues(f,D);
|
|
||||||
DumpDebug(f,D);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void DumpHeader(DumpState* D)
|
|
||||||
{
|
|
||||||
lu_byte h[LUAC_HEADERSIZE];
|
|
||||||
luaU_header(h);
|
|
||||||
DumpBlock(h,LUAC_HEADERSIZE,D);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
** dump Lua function as precompiled chunk
|
|
||||||
*/
|
|
||||||
int luaU_dump (lua_State* L, const Proto* f, lua_Writer w, void* data, int strip)
|
|
||||||
{
|
|
||||||
DumpState D;
|
|
||||||
D.L=L;
|
|
||||||
D.writer=w;
|
|
||||||
D.data=data;
|
|
||||||
D.strip=strip;
|
|
||||||
D.status=0;
|
|
||||||
DumpHeader(&D);
|
|
||||||
DumpFunction(f,&D);
|
|
||||||
return D.status;
|
|
||||||
}
|
|
161
3rdparty/genie/src/host/lua-5.2.3/src/lfunc.c
vendored
161
3rdparty/genie/src/host/lua-5.2.3/src/lfunc.c
vendored
@ -1,161 +0,0 @@
|
|||||||
/*
|
|
||||||
** $Id: lfunc.c,v 2.30.1.1 2013/04/12 18:48:47 roberto Exp $
|
|
||||||
** Auxiliary functions to manipulate prototypes and closures
|
|
||||||
** See Copyright Notice in lua.h
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include <stddef.h>
|
|
||||||
|
|
||||||
#define lfunc_c
|
|
||||||
#define LUA_CORE
|
|
||||||
|
|
||||||
#include "lua.h"
|
|
||||||
|
|
||||||
#include "lfunc.h"
|
|
||||||
#include "lgc.h"
|
|
||||||
#include "lmem.h"
|
|
||||||
#include "lobject.h"
|
|
||||||
#include "lstate.h"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Closure *luaF_newCclosure (lua_State *L, int n) {
|
|
||||||
Closure *c = &luaC_newobj(L, LUA_TCCL, sizeCclosure(n), NULL, 0)->cl;
|
|
||||||
c->c.nupvalues = cast_byte(n);
|
|
||||||
return c;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
Closure *luaF_newLclosure (lua_State *L, int n) {
|
|
||||||
Closure *c = &luaC_newobj(L, LUA_TLCL, sizeLclosure(n), NULL, 0)->cl;
|
|
||||||
c->l.p = NULL;
|
|
||||||
c->l.nupvalues = cast_byte(n);
|
|
||||||
while (n--) c->l.upvals[n] = NULL;
|
|
||||||
return c;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
UpVal *luaF_newupval (lua_State *L) {
|
|
||||||
UpVal *uv = &luaC_newobj(L, LUA_TUPVAL, sizeof(UpVal), NULL, 0)->uv;
|
|
||||||
uv->v = &uv->u.value;
|
|
||||||
setnilvalue(uv->v);
|
|
||||||
return uv;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
UpVal *luaF_findupval (lua_State *L, StkId level) {
|
|
||||||
global_State *g = G(L);
|
|
||||||
GCObject **pp = &L->openupval;
|
|
||||||
UpVal *p;
|
|
||||||
UpVal *uv;
|
|
||||||
while (*pp != NULL && (p = gco2uv(*pp))->v >= level) {
|
|
||||||
GCObject *o = obj2gco(p);
|
|
||||||
lua_assert(p->v != &p->u.value);
|
|
||||||
lua_assert(!isold(o) || isold(obj2gco(L)));
|
|
||||||
if (p->v == level) { /* found a corresponding upvalue? */
|
|
||||||
if (isdead(g, o)) /* is it dead? */
|
|
||||||
changewhite(o); /* resurrect it */
|
|
||||||
return p;
|
|
||||||
}
|
|
||||||
pp = &p->next;
|
|
||||||
}
|
|
||||||
/* not found: create a new one */
|
|
||||||
uv = &luaC_newobj(L, LUA_TUPVAL, sizeof(UpVal), pp, 0)->uv;
|
|
||||||
uv->v = level; /* current value lives in the stack */
|
|
||||||
uv->u.l.prev = &g->uvhead; /* double link it in `uvhead' list */
|
|
||||||
uv->u.l.next = g->uvhead.u.l.next;
|
|
||||||
uv->u.l.next->u.l.prev = uv;
|
|
||||||
g->uvhead.u.l.next = uv;
|
|
||||||
lua_assert(uv->u.l.next->u.l.prev == uv && uv->u.l.prev->u.l.next == uv);
|
|
||||||
return uv;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void unlinkupval (UpVal *uv) {
|
|
||||||
lua_assert(uv->u.l.next->u.l.prev == uv && uv->u.l.prev->u.l.next == uv);
|
|
||||||
uv->u.l.next->u.l.prev = uv->u.l.prev; /* remove from `uvhead' list */
|
|
||||||
uv->u.l.prev->u.l.next = uv->u.l.next;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void luaF_freeupval (lua_State *L, UpVal *uv) {
|
|
||||||
if (uv->v != &uv->u.value) /* is it open? */
|
|
||||||
unlinkupval(uv); /* remove from open list */
|
|
||||||
luaM_free(L, uv); /* free upvalue */
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void luaF_close (lua_State *L, StkId level) {
|
|
||||||
UpVal *uv;
|
|
||||||
global_State *g = G(L);
|
|
||||||
while (L->openupval != NULL && (uv = gco2uv(L->openupval))->v >= level) {
|
|
||||||
GCObject *o = obj2gco(uv);
|
|
||||||
lua_assert(!isblack(o) && uv->v != &uv->u.value);
|
|
||||||
L->openupval = uv->next; /* remove from `open' list */
|
|
||||||
if (isdead(g, o))
|
|
||||||
luaF_freeupval(L, uv); /* free upvalue */
|
|
||||||
else {
|
|
||||||
unlinkupval(uv); /* remove upvalue from 'uvhead' list */
|
|
||||||
setobj(L, &uv->u.value, uv->v); /* move value to upvalue slot */
|
|
||||||
uv->v = &uv->u.value; /* now current value lives here */
|
|
||||||
gch(o)->next = g->allgc; /* link upvalue into 'allgc' list */
|
|
||||||
g->allgc = o;
|
|
||||||
luaC_checkupvalcolor(g, uv);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
Proto *luaF_newproto (lua_State *L) {
|
|
||||||
Proto *f = &luaC_newobj(L, LUA_TPROTO, sizeof(Proto), NULL, 0)->p;
|
|
||||||
f->k = NULL;
|
|
||||||
f->sizek = 0;
|
|
||||||
f->p = NULL;
|
|
||||||
f->sizep = 0;
|
|
||||||
f->code = NULL;
|
|
||||||
f->cache = NULL;
|
|
||||||
f->sizecode = 0;
|
|
||||||
f->lineinfo = NULL;
|
|
||||||
f->sizelineinfo = 0;
|
|
||||||
f->upvalues = NULL;
|
|
||||||
f->sizeupvalues = 0;
|
|
||||||
f->numparams = 0;
|
|
||||||
f->is_vararg = 0;
|
|
||||||
f->maxstacksize = 0;
|
|
||||||
f->locvars = NULL;
|
|
||||||
f->sizelocvars = 0;
|
|
||||||
f->linedefined = 0;
|
|
||||||
f->lastlinedefined = 0;
|
|
||||||
f->source = NULL;
|
|
||||||
return f;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void luaF_freeproto (lua_State *L, Proto *f) {
|
|
||||||
luaM_freearray(L, f->code, f->sizecode);
|
|
||||||
luaM_freearray(L, f->p, f->sizep);
|
|
||||||
luaM_freearray(L, f->k, f->sizek);
|
|
||||||
luaM_freearray(L, f->lineinfo, f->sizelineinfo);
|
|
||||||
luaM_freearray(L, f->locvars, f->sizelocvars);
|
|
||||||
luaM_freearray(L, f->upvalues, f->sizeupvalues);
|
|
||||||
luaM_free(L, f);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
** Look for n-th local variable at line `line' in function `func'.
|
|
||||||
** Returns NULL if not found.
|
|
||||||
*/
|
|
||||||
const char *luaF_getlocalname (const Proto *f, int local_number, int pc) {
|
|
||||||
int i;
|
|
||||||
for (i = 0; i<f->sizelocvars && f->locvars[i].startpc <= pc; i++) {
|
|
||||||
if (pc < f->locvars[i].endpc) { /* is variable active? */
|
|
||||||
local_number--;
|
|
||||||
if (local_number == 0)
|
|
||||||
return getstr(f->locvars[i].varname);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return NULL; /* not found */
|
|
||||||
}
|
|
||||||
|
|
309
3rdparty/genie/src/host/lua-5.2.3/src/llimits.h
vendored
309
3rdparty/genie/src/host/lua-5.2.3/src/llimits.h
vendored
@ -1,309 +0,0 @@
|
|||||||
/*
|
|
||||||
** $Id: llimits.h,v 1.103.1.1 2013/04/12 18:48:47 roberto Exp $
|
|
||||||
** Limits, basic types, and some other `installation-dependent' definitions
|
|
||||||
** See Copyright Notice in lua.h
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef llimits_h
|
|
||||||
#define llimits_h
|
|
||||||
|
|
||||||
|
|
||||||
#include <limits.h>
|
|
||||||
#include <stddef.h>
|
|
||||||
|
|
||||||
|
|
||||||
#include "lua.h"
|
|
||||||
|
|
||||||
|
|
||||||
typedef unsigned LUA_INT32 lu_int32;
|
|
||||||
|
|
||||||
typedef LUAI_UMEM lu_mem;
|
|
||||||
|
|
||||||
typedef LUAI_MEM l_mem;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* chars used as small naturals (so that `char' is reserved for characters) */
|
|
||||||
typedef unsigned char lu_byte;
|
|
||||||
|
|
||||||
|
|
||||||
#define MAX_SIZET ((size_t)(~(size_t)0)-2)
|
|
||||||
|
|
||||||
#define MAX_LUMEM ((lu_mem)(~(lu_mem)0)-2)
|
|
||||||
|
|
||||||
#define MAX_LMEM ((l_mem) ((MAX_LUMEM >> 1) - 2))
|
|
||||||
|
|
||||||
|
|
||||||
#define MAX_INT (INT_MAX-2) /* maximum value of an int (-2 for safety) */
|
|
||||||
|
|
||||||
/*
|
|
||||||
** conversion of pointer to integer
|
|
||||||
** this is for hashing only; there is no problem if the integer
|
|
||||||
** cannot hold the whole pointer value
|
|
||||||
*/
|
|
||||||
#define IntPoint(p) ((unsigned int)(lu_mem)(p))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* type to ensure maximum alignment */
|
|
||||||
#if !defined(LUAI_USER_ALIGNMENT_T)
|
|
||||||
#define LUAI_USER_ALIGNMENT_T union { double u; void *s; long l; }
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef LUAI_USER_ALIGNMENT_T L_Umaxalign;
|
|
||||||
|
|
||||||
|
|
||||||
/* result of a `usual argument conversion' over lua_Number */
|
|
||||||
typedef LUAI_UACNUMBER l_uacNumber;
|
|
||||||
|
|
||||||
|
|
||||||
/* internal assertions for in-house debugging */
|
|
||||||
#if defined(lua_assert)
|
|
||||||
#define check_exp(c,e) (lua_assert(c), (e))
|
|
||||||
/* to avoid problems with conditions too long */
|
|
||||||
#define lua_longassert(c) { if (!(c)) lua_assert(0); }
|
|
||||||
#else
|
|
||||||
#define lua_assert(c) ((void)0)
|
|
||||||
#define check_exp(c,e) (e)
|
|
||||||
#define lua_longassert(c) ((void)0)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
** assertion for checking API calls
|
|
||||||
*/
|
|
||||||
#if !defined(luai_apicheck)
|
|
||||||
|
|
||||||
#if defined(LUA_USE_APICHECK)
|
|
||||||
#include <assert.h>
|
|
||||||
#define luai_apicheck(L,e) assert(e)
|
|
||||||
#else
|
|
||||||
#define luai_apicheck(L,e) lua_assert(e)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define api_check(l,e,msg) luai_apicheck(l,(e) && msg)
|
|
||||||
|
|
||||||
|
|
||||||
#if !defined(UNUSED)
|
|
||||||
#define UNUSED(x) ((void)(x)) /* to avoid warnings */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#define cast(t, exp) ((t)(exp))
|
|
||||||
|
|
||||||
#define cast_byte(i) cast(lu_byte, (i))
|
|
||||||
#define cast_num(i) cast(lua_Number, (i))
|
|
||||||
#define cast_int(i) cast(int, (i))
|
|
||||||
#define cast_uchar(i) cast(unsigned char, (i))
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
** non-return type
|
|
||||||
*/
|
|
||||||
#if defined(__GNUC__)
|
|
||||||
#define l_noret void __attribute__((noreturn))
|
|
||||||
#elif defined(_MSC_VER)
|
|
||||||
#define l_noret void __declspec(noreturn)
|
|
||||||
#else
|
|
||||||
#define l_noret void
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
** maximum depth for nested C calls and syntactical nested non-terminals
|
|
||||||
** in a program. (Value must fit in an unsigned short int.)
|
|
||||||
*/
|
|
||||||
#if !defined(LUAI_MAXCCALLS)
|
|
||||||
#define LUAI_MAXCCALLS 200
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
** maximum number of upvalues in a closure (both C and Lua). (Value
|
|
||||||
** must fit in an unsigned char.)
|
|
||||||
*/
|
|
||||||
#define MAXUPVAL UCHAR_MAX
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
** type for virtual-machine instructions
|
|
||||||
** must be an unsigned with (at least) 4 bytes (see details in lopcodes.h)
|
|
||||||
*/
|
|
||||||
typedef lu_int32 Instruction;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* maximum stack for a Lua function */
|
|
||||||
#define MAXSTACK 250
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* minimum size for the string table (must be power of 2) */
|
|
||||||
#if !defined(MINSTRTABSIZE)
|
|
||||||
#define MINSTRTABSIZE 32
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* minimum size for string buffer */
|
|
||||||
#if !defined(LUA_MINBUFFER)
|
|
||||||
#define LUA_MINBUFFER 32
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#if !defined(lua_lock)
|
|
||||||
#define lua_lock(L) ((void) 0)
|
|
||||||
#define lua_unlock(L) ((void) 0)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !defined(luai_threadyield)
|
|
||||||
#define luai_threadyield(L) {lua_unlock(L); lua_lock(L);}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
** these macros allow user-specific actions on threads when you defined
|
|
||||||
** LUAI_EXTRASPACE and need to do something extra when a thread is
|
|
||||||
** created/deleted/resumed/yielded.
|
|
||||||
*/
|
|
||||||
#if !defined(luai_userstateopen)
|
|
||||||
#define luai_userstateopen(L) ((void)L)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !defined(luai_userstateclose)
|
|
||||||
#define luai_userstateclose(L) ((void)L)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !defined(luai_userstatethread)
|
|
||||||
#define luai_userstatethread(L,L1) ((void)L)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !defined(luai_userstatefree)
|
|
||||||
#define luai_userstatefree(L,L1) ((void)L)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !defined(luai_userstateresume)
|
|
||||||
#define luai_userstateresume(L,n) ((void)L)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !defined(luai_userstateyield)
|
|
||||||
#define luai_userstateyield(L,n) ((void)L)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
** lua_number2int is a macro to convert lua_Number to int.
|
|
||||||
** lua_number2integer is a macro to convert lua_Number to lua_Integer.
|
|
||||||
** lua_number2unsigned is a macro to convert a lua_Number to a lua_Unsigned.
|
|
||||||
** lua_unsigned2number is a macro to convert a lua_Unsigned to a lua_Number.
|
|
||||||
** luai_hashnum is a macro to hash a lua_Number value into an integer.
|
|
||||||
** The hash must be deterministic and give reasonable values for
|
|
||||||
** both small and large values (outside the range of integers).
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if defined(MS_ASMTRICK) || defined(LUA_MSASMTRICK) /* { */
|
|
||||||
/* trick with Microsoft assembler for X86 */
|
|
||||||
|
|
||||||
#define lua_number2int(i,n) __asm {__asm fld n __asm fistp i}
|
|
||||||
#define lua_number2integer(i,n) lua_number2int(i, n)
|
|
||||||
#define lua_number2unsigned(i,n) \
|
|
||||||
{__int64 l; __asm {__asm fld n __asm fistp l} i = (unsigned int)l;}
|
|
||||||
|
|
||||||
|
|
||||||
#elif defined(LUA_IEEE754TRICK) /* }{ */
|
|
||||||
/* the next trick should work on any machine using IEEE754 with
|
|
||||||
a 32-bit int type */
|
|
||||||
|
|
||||||
union luai_Cast { double l_d; LUA_INT32 l_p[2]; };
|
|
||||||
|
|
||||||
#if !defined(LUA_IEEEENDIAN) /* { */
|
|
||||||
#define LUAI_EXTRAIEEE \
|
|
||||||
static const union luai_Cast ieeeendian = {-(33.0 + 6755399441055744.0)};
|
|
||||||
#define LUA_IEEEENDIANLOC (ieeeendian.l_p[1] == 33)
|
|
||||||
#else
|
|
||||||
#define LUA_IEEEENDIANLOC LUA_IEEEENDIAN
|
|
||||||
#define LUAI_EXTRAIEEE /* empty */
|
|
||||||
#endif /* } */
|
|
||||||
|
|
||||||
#define lua_number2int32(i,n,t) \
|
|
||||||
{ LUAI_EXTRAIEEE \
|
|
||||||
volatile union luai_Cast u; u.l_d = (n) + 6755399441055744.0; \
|
|
||||||
(i) = (t)u.l_p[LUA_IEEEENDIANLOC]; }
|
|
||||||
|
|
||||||
#define luai_hashnum(i,n) \
|
|
||||||
{ volatile union luai_Cast u; u.l_d = (n) + 1.0; /* avoid -0 */ \
|
|
||||||
(i) = u.l_p[0]; (i) += u.l_p[1]; } /* add double bits for his hash */
|
|
||||||
|
|
||||||
#define lua_number2int(i,n) lua_number2int32(i, n, int)
|
|
||||||
#define lua_number2unsigned(i,n) lua_number2int32(i, n, lua_Unsigned)
|
|
||||||
|
|
||||||
/* the trick can be expanded to lua_Integer when it is a 32-bit value */
|
|
||||||
#if defined(LUA_IEEELL)
|
|
||||||
#define lua_number2integer(i,n) lua_number2int32(i, n, lua_Integer)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* } */
|
|
||||||
|
|
||||||
|
|
||||||
/* the following definitions always work, but may be slow */
|
|
||||||
|
|
||||||
#if !defined(lua_number2int)
|
|
||||||
#define lua_number2int(i,n) ((i)=(int)(n))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !defined(lua_number2integer)
|
|
||||||
#define lua_number2integer(i,n) ((i)=(lua_Integer)(n))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !defined(lua_number2unsigned) /* { */
|
|
||||||
/* the following definition assures proper modulo behavior */
|
|
||||||
#if defined(LUA_NUMBER_DOUBLE) || defined(LUA_NUMBER_FLOAT)
|
|
||||||
#include <math.h>
|
|
||||||
#define SUPUNSIGNED ((lua_Number)(~(lua_Unsigned)0) + 1)
|
|
||||||
#define lua_number2unsigned(i,n) \
|
|
||||||
((i)=(lua_Unsigned)((n) - floor((n)/SUPUNSIGNED)*SUPUNSIGNED))
|
|
||||||
#else
|
|
||||||
#define lua_number2unsigned(i,n) ((i)=(lua_Unsigned)(n))
|
|
||||||
#endif
|
|
||||||
#endif /* } */
|
|
||||||
|
|
||||||
|
|
||||||
#if !defined(lua_unsigned2number)
|
|
||||||
/* on several machines, coercion from unsigned to double is slow,
|
|
||||||
so it may be worth to avoid */
|
|
||||||
#define lua_unsigned2number(u) \
|
|
||||||
(((u) <= (lua_Unsigned)INT_MAX) ? (lua_Number)(int)(u) : (lua_Number)(u))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#if defined(ltable_c) && !defined(luai_hashnum)
|
|
||||||
|
|
||||||
#include <float.h>
|
|
||||||
#include <math.h>
|
|
||||||
|
|
||||||
#define luai_hashnum(i,n) { int e; \
|
|
||||||
n = l_mathop(frexp)(n, &e) * (lua_Number)(INT_MAX - DBL_MAX_EXP); \
|
|
||||||
lua_number2int(i, n); i += e; }
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
** macro to control inclusion of some hard tests on stack reallocation
|
|
||||||
*/
|
|
||||||
#if !defined(HARDSTACKTESTS)
|
|
||||||
#define condmovestack(L) ((void)0)
|
|
||||||
#else
|
|
||||||
/* realloc stack keeping its size */
|
|
||||||
#define condmovestack(L) luaD_reallocstack((L), (L)->stacksize)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !defined(HARDMEMTESTS)
|
|
||||||
#define condchangemem(L) condmovestack(L)
|
|
||||||
#else
|
|
||||||
#define condchangemem(L) \
|
|
||||||
((void)(!(G(L)->gcrunning) || (luaC_fullgc(L, 0), 1)))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
279
3rdparty/genie/src/host/lua-5.2.3/src/lmathlib.c
vendored
279
3rdparty/genie/src/host/lua-5.2.3/src/lmathlib.c
vendored
@ -1,279 +0,0 @@
|
|||||||
/*
|
|
||||||
** $Id: lmathlib.c,v 1.83.1.1 2013/04/12 18:48:47 roberto Exp $
|
|
||||||
** Standard mathematical library
|
|
||||||
** See Copyright Notice in lua.h
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <math.h>
|
|
||||||
|
|
||||||
#define lmathlib_c
|
|
||||||
#define LUA_LIB
|
|
||||||
|
|
||||||
#include "lua.h"
|
|
||||||
|
|
||||||
#include "lauxlib.h"
|
|
||||||
#include "lualib.h"
|
|
||||||
|
|
||||||
|
|
||||||
#undef PI
|
|
||||||
#define PI ((lua_Number)(3.1415926535897932384626433832795))
|
|
||||||
#define RADIANS_PER_DEGREE ((lua_Number)(PI/180.0))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static int math_abs (lua_State *L) {
|
|
||||||
lua_pushnumber(L, l_mathop(fabs)(luaL_checknumber(L, 1)));
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int math_sin (lua_State *L) {
|
|
||||||
lua_pushnumber(L, l_mathop(sin)(luaL_checknumber(L, 1)));
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int math_sinh (lua_State *L) {
|
|
||||||
lua_pushnumber(L, l_mathop(sinh)(luaL_checknumber(L, 1)));
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int math_cos (lua_State *L) {
|
|
||||||
lua_pushnumber(L, l_mathop(cos)(luaL_checknumber(L, 1)));
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int math_cosh (lua_State *L) {
|
|
||||||
lua_pushnumber(L, l_mathop(cosh)(luaL_checknumber(L, 1)));
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int math_tan (lua_State *L) {
|
|
||||||
lua_pushnumber(L, l_mathop(tan)(luaL_checknumber(L, 1)));
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int math_tanh (lua_State *L) {
|
|
||||||
lua_pushnumber(L, l_mathop(tanh)(luaL_checknumber(L, 1)));
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int math_asin (lua_State *L) {
|
|
||||||
lua_pushnumber(L, l_mathop(asin)(luaL_checknumber(L, 1)));
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int math_acos (lua_State *L) {
|
|
||||||
lua_pushnumber(L, l_mathop(acos)(luaL_checknumber(L, 1)));
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int math_atan (lua_State *L) {
|
|
||||||
lua_pushnumber(L, l_mathop(atan)(luaL_checknumber(L, 1)));
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int math_atan2 (lua_State *L) {
|
|
||||||
lua_pushnumber(L, l_mathop(atan2)(luaL_checknumber(L, 1),
|
|
||||||
luaL_checknumber(L, 2)));
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int math_ceil (lua_State *L) {
|
|
||||||
lua_pushnumber(L, l_mathop(ceil)(luaL_checknumber(L, 1)));
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int math_floor (lua_State *L) {
|
|
||||||
lua_pushnumber(L, l_mathop(floor)(luaL_checknumber(L, 1)));
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int math_fmod (lua_State *L) {
|
|
||||||
lua_pushnumber(L, l_mathop(fmod)(luaL_checknumber(L, 1),
|
|
||||||
luaL_checknumber(L, 2)));
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int math_modf (lua_State *L) {
|
|
||||||
lua_Number ip;
|
|
||||||
lua_Number fp = l_mathop(modf)(luaL_checknumber(L, 1), &ip);
|
|
||||||
lua_pushnumber(L, ip);
|
|
||||||
lua_pushnumber(L, fp);
|
|
||||||
return 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int math_sqrt (lua_State *L) {
|
|
||||||
lua_pushnumber(L, l_mathop(sqrt)(luaL_checknumber(L, 1)));
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int math_pow (lua_State *L) {
|
|
||||||
lua_Number x = luaL_checknumber(L, 1);
|
|
||||||
lua_Number y = luaL_checknumber(L, 2);
|
|
||||||
lua_pushnumber(L, l_mathop(pow)(x, y));
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int math_log (lua_State *L) {
|
|
||||||
lua_Number x = luaL_checknumber(L, 1);
|
|
||||||
lua_Number res;
|
|
||||||
if (lua_isnoneornil(L, 2))
|
|
||||||
res = l_mathop(log)(x);
|
|
||||||
else {
|
|
||||||
lua_Number base = luaL_checknumber(L, 2);
|
|
||||||
if (base == (lua_Number)10.0) res = l_mathop(log10)(x);
|
|
||||||
else res = l_mathop(log)(x)/l_mathop(log)(base);
|
|
||||||
}
|
|
||||||
lua_pushnumber(L, res);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
#if defined(LUA_COMPAT_LOG10)
|
|
||||||
static int math_log10 (lua_State *L) {
|
|
||||||
lua_pushnumber(L, l_mathop(log10)(luaL_checknumber(L, 1)));
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static int math_exp (lua_State *L) {
|
|
||||||
lua_pushnumber(L, l_mathop(exp)(luaL_checknumber(L, 1)));
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int math_deg (lua_State *L) {
|
|
||||||
lua_pushnumber(L, luaL_checknumber(L, 1)/RADIANS_PER_DEGREE);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int math_rad (lua_State *L) {
|
|
||||||
lua_pushnumber(L, luaL_checknumber(L, 1)*RADIANS_PER_DEGREE);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int math_frexp (lua_State *L) {
|
|
||||||
int e;
|
|
||||||
lua_pushnumber(L, l_mathop(frexp)(luaL_checknumber(L, 1), &e));
|
|
||||||
lua_pushinteger(L, e);
|
|
||||||
return 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int math_ldexp (lua_State *L) {
|
|
||||||
lua_Number x = luaL_checknumber(L, 1);
|
|
||||||
int ep = luaL_checkint(L, 2);
|
|
||||||
lua_pushnumber(L, l_mathop(ldexp)(x, ep));
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static int math_min (lua_State *L) {
|
|
||||||
int n = lua_gettop(L); /* number of arguments */
|
|
||||||
lua_Number dmin = luaL_checknumber(L, 1);
|
|
||||||
int i;
|
|
||||||
for (i=2; i<=n; i++) {
|
|
||||||
lua_Number d = luaL_checknumber(L, i);
|
|
||||||
if (d < dmin)
|
|
||||||
dmin = d;
|
|
||||||
}
|
|
||||||
lua_pushnumber(L, dmin);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static int math_max (lua_State *L) {
|
|
||||||
int n = lua_gettop(L); /* number of arguments */
|
|
||||||
lua_Number dmax = luaL_checknumber(L, 1);
|
|
||||||
int i;
|
|
||||||
for (i=2; i<=n; i++) {
|
|
||||||
lua_Number d = luaL_checknumber(L, i);
|
|
||||||
if (d > dmax)
|
|
||||||
dmax = d;
|
|
||||||
}
|
|
||||||
lua_pushnumber(L, dmax);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static int math_random (lua_State *L) {
|
|
||||||
/* the `%' avoids the (rare) case of r==1, and is needed also because on
|
|
||||||
some systems (SunOS!) `rand()' may return a value larger than RAND_MAX */
|
|
||||||
lua_Number r = (lua_Number)(rand()%RAND_MAX) / (lua_Number)RAND_MAX;
|
|
||||||
switch (lua_gettop(L)) { /* check number of arguments */
|
|
||||||
case 0: { /* no arguments */
|
|
||||||
lua_pushnumber(L, r); /* Number between 0 and 1 */
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 1: { /* only upper limit */
|
|
||||||
lua_Number u = luaL_checknumber(L, 1);
|
|
||||||
luaL_argcheck(L, (lua_Number)1.0 <= u, 1, "interval is empty");
|
|
||||||
lua_pushnumber(L, l_mathop(floor)(r*u) + (lua_Number)(1.0)); /* [1, u] */
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 2: { /* lower and upper limits */
|
|
||||||
lua_Number l = luaL_checknumber(L, 1);
|
|
||||||
lua_Number u = luaL_checknumber(L, 2);
|
|
||||||
luaL_argcheck(L, l <= u, 2, "interval is empty");
|
|
||||||
lua_pushnumber(L, l_mathop(floor)(r*(u-l+1)) + l); /* [l, u] */
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
default: return luaL_error(L, "wrong number of arguments");
|
|
||||||
}
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static int math_randomseed (lua_State *L) {
|
|
||||||
srand(luaL_checkunsigned(L, 1));
|
|
||||||
(void)rand(); /* discard first value to avoid undesirable correlations */
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static const luaL_Reg mathlib[] = {
|
|
||||||
{"abs", math_abs},
|
|
||||||
{"acos", math_acos},
|
|
||||||
{"asin", math_asin},
|
|
||||||
{"atan2", math_atan2},
|
|
||||||
{"atan", math_atan},
|
|
||||||
{"ceil", math_ceil},
|
|
||||||
{"cosh", math_cosh},
|
|
||||||
{"cos", math_cos},
|
|
||||||
{"deg", math_deg},
|
|
||||||
{"exp", math_exp},
|
|
||||||
{"floor", math_floor},
|
|
||||||
{"fmod", math_fmod},
|
|
||||||
{"frexp", math_frexp},
|
|
||||||
{"ldexp", math_ldexp},
|
|
||||||
#if defined(LUA_COMPAT_LOG10)
|
|
||||||
{"log10", math_log10},
|
|
||||||
#endif
|
|
||||||
{"log", math_log},
|
|
||||||
{"max", math_max},
|
|
||||||
{"min", math_min},
|
|
||||||
{"modf", math_modf},
|
|
||||||
{"pow", math_pow},
|
|
||||||
{"rad", math_rad},
|
|
||||||
{"random", math_random},
|
|
||||||
{"randomseed", math_randomseed},
|
|
||||||
{"sinh", math_sinh},
|
|
||||||
{"sin", math_sin},
|
|
||||||
{"sqrt", math_sqrt},
|
|
||||||
{"tanh", math_tanh},
|
|
||||||
{"tan", math_tan},
|
|
||||||
{NULL, NULL}
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
** Open math library
|
|
||||||
*/
|
|
||||||
LUAMOD_API int luaopen_math (lua_State *L) {
|
|
||||||
luaL_newlib(L, mathlib);
|
|
||||||
lua_pushnumber(L, PI);
|
|
||||||
lua_setfield(L, -2, "pi");
|
|
||||||
lua_pushnumber(L, HUGE_VAL);
|
|
||||||
lua_setfield(L, -2, "huge");
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
287
3rdparty/genie/src/host/lua-5.2.3/src/lobject.c
vendored
287
3rdparty/genie/src/host/lua-5.2.3/src/lobject.c
vendored
@ -1,287 +0,0 @@
|
|||||||
/*
|
|
||||||
** $Id: lobject.c,v 2.58.1.1 2013/04/12 18:48:47 roberto Exp $
|
|
||||||
** Some generic functions over Lua objects
|
|
||||||
** See Copyright Notice in lua.h
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <stdarg.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
#define lobject_c
|
|
||||||
#define LUA_CORE
|
|
||||||
|
|
||||||
#include "lua.h"
|
|
||||||
|
|
||||||
#include "lctype.h"
|
|
||||||
#include "ldebug.h"
|
|
||||||
#include "ldo.h"
|
|
||||||
#include "lmem.h"
|
|
||||||
#include "lobject.h"
|
|
||||||
#include "lstate.h"
|
|
||||||
#include "lstring.h"
|
|
||||||
#include "lvm.h"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
LUAI_DDEF const TValue luaO_nilobject_ = {NILCONSTANT};
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
** converts an integer to a "floating point byte", represented as
|
|
||||||
** (eeeeexxx), where the real value is (1xxx) * 2^(eeeee - 1) if
|
|
||||||
** eeeee != 0 and (xxx) otherwise.
|
|
||||||
*/
|
|
||||||
int luaO_int2fb (unsigned int x) {
|
|
||||||
int e = 0; /* exponent */
|
|
||||||
if (x < 8) return x;
|
|
||||||
while (x >= 0x10) {
|
|
||||||
x = (x+1) >> 1;
|
|
||||||
e++;
|
|
||||||
}
|
|
||||||
return ((e+1) << 3) | (cast_int(x) - 8);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* converts back */
|
|
||||||
int luaO_fb2int (int x) {
|
|
||||||
int e = (x >> 3) & 0x1f;
|
|
||||||
if (e == 0) return x;
|
|
||||||
else return ((x & 7) + 8) << (e - 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int luaO_ceillog2 (unsigned int x) {
|
|
||||||
static const lu_byte log_2[256] = {
|
|
||||||
0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
|
|
||||||
6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
|
|
||||||
7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
|
|
||||||
7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
|
|
||||||
8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
|
|
||||||
8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
|
|
||||||
8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
|
|
||||||
8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8
|
|
||||||
};
|
|
||||||
int l = 0;
|
|
||||||
x--;
|
|
||||||
while (x >= 256) { l += 8; x >>= 8; }
|
|
||||||
return l + log_2[x];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
lua_Number luaO_arith (int op, lua_Number v1, lua_Number v2) {
|
|
||||||
switch (op) {
|
|
||||||
case LUA_OPADD: return luai_numadd(NULL, v1, v2);
|
|
||||||
case LUA_OPSUB: return luai_numsub(NULL, v1, v2);
|
|
||||||
case LUA_OPMUL: return luai_nummul(NULL, v1, v2);
|
|
||||||
case LUA_OPDIV: return luai_numdiv(NULL, v1, v2);
|
|
||||||
case LUA_OPMOD: return luai_nummod(NULL, v1, v2);
|
|
||||||
case LUA_OPPOW: return luai_numpow(NULL, v1, v2);
|
|
||||||
case LUA_OPUNM: return luai_numunm(NULL, v1);
|
|
||||||
default: lua_assert(0); return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int luaO_hexavalue (int c) {
|
|
||||||
if (lisdigit(c)) return c - '0';
|
|
||||||
else return ltolower(c) - 'a' + 10;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#if !defined(lua_strx2number)
|
|
||||||
|
|
||||||
#include <math.h>
|
|
||||||
|
|
||||||
|
|
||||||
static int isneg (const char **s) {
|
|
||||||
if (**s == '-') { (*s)++; return 1; }
|
|
||||||
else if (**s == '+') (*s)++;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static lua_Number readhexa (const char **s, lua_Number r, int *count) {
|
|
||||||
for (; lisxdigit(cast_uchar(**s)); (*s)++) { /* read integer part */
|
|
||||||
r = (r * cast_num(16.0)) + cast_num(luaO_hexavalue(cast_uchar(**s)));
|
|
||||||
(*count)++;
|
|
||||||
}
|
|
||||||
return r;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
** convert an hexadecimal numeric string to a number, following
|
|
||||||
** C99 specification for 'strtod'
|
|
||||||
*/
|
|
||||||
static lua_Number lua_strx2number (const char *s, char **endptr) {
|
|
||||||
lua_Number r = 0.0;
|
|
||||||
int e = 0, i = 0;
|
|
||||||
int neg = 0; /* 1 if number is negative */
|
|
||||||
*endptr = cast(char *, s); /* nothing is valid yet */
|
|
||||||
while (lisspace(cast_uchar(*s))) s++; /* skip initial spaces */
|
|
||||||
neg = isneg(&s); /* check signal */
|
|
||||||
if (!(*s == '0' && (*(s + 1) == 'x' || *(s + 1) == 'X'))) /* check '0x' */
|
|
||||||
return 0.0; /* invalid format (no '0x') */
|
|
||||||
s += 2; /* skip '0x' */
|
|
||||||
r = readhexa(&s, r, &i); /* read integer part */
|
|
||||||
if (*s == '.') {
|
|
||||||
s++; /* skip dot */
|
|
||||||
r = readhexa(&s, r, &e); /* read fractional part */
|
|
||||||
}
|
|
||||||
if (i == 0 && e == 0)
|
|
||||||
return 0.0; /* invalid format (no digit) */
|
|
||||||
e *= -4; /* each fractional digit divides value by 2^-4 */
|
|
||||||
*endptr = cast(char *, s); /* valid up to here */
|
|
||||||
if (*s == 'p' || *s == 'P') { /* exponent part? */
|
|
||||||
int exp1 = 0;
|
|
||||||
int neg1;
|
|
||||||
s++; /* skip 'p' */
|
|
||||||
neg1 = isneg(&s); /* signal */
|
|
||||||
if (!lisdigit(cast_uchar(*s)))
|
|
||||||
goto ret; /* must have at least one digit */
|
|
||||||
while (lisdigit(cast_uchar(*s))) /* read exponent */
|
|
||||||
exp1 = exp1 * 10 + *(s++) - '0';
|
|
||||||
if (neg1) exp1 = -exp1;
|
|
||||||
e += exp1;
|
|
||||||
}
|
|
||||||
*endptr = cast(char *, s); /* valid up to here */
|
|
||||||
ret:
|
|
||||||
if (neg) r = -r;
|
|
||||||
return l_mathop(ldexp)(r, e);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
int luaO_str2d (const char *s, size_t len, lua_Number *result) {
|
|
||||||
char *endptr;
|
|
||||||
if (strpbrk(s, "nN")) /* reject 'inf' and 'nan' */
|
|
||||||
return 0;
|
|
||||||
else if (strpbrk(s, "xX")) /* hexa? */
|
|
||||||
*result = lua_strx2number(s, &endptr);
|
|
||||||
else
|
|
||||||
*result = lua_str2number(s, &endptr);
|
|
||||||
if (endptr == s) return 0; /* nothing recognized */
|
|
||||||
while (lisspace(cast_uchar(*endptr))) endptr++;
|
|
||||||
return (endptr == s + len); /* OK if no trailing characters */
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void pushstr (lua_State *L, const char *str, size_t l) {
|
|
||||||
setsvalue2s(L, L->top++, luaS_newlstr(L, str, l));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* this function handles only `%d', `%c', %f, %p, and `%s' formats */
|
|
||||||
const char *luaO_pushvfstring (lua_State *L, const char *fmt, va_list argp) {
|
|
||||||
int n = 0;
|
|
||||||
for (;;) {
|
|
||||||
const char *e = strchr(fmt, '%');
|
|
||||||
if (e == NULL) break;
|
|
||||||
luaD_checkstack(L, 2); /* fmt + item */
|
|
||||||
pushstr(L, fmt, e - fmt);
|
|
||||||
switch (*(e+1)) {
|
|
||||||
case 's': {
|
|
||||||
const char *s = va_arg(argp, char *);
|
|
||||||
if (s == NULL) s = "(null)";
|
|
||||||
pushstr(L, s, strlen(s));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 'c': {
|
|
||||||
char buff;
|
|
||||||
buff = cast(char, va_arg(argp, int));
|
|
||||||
pushstr(L, &buff, 1);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 'd': {
|
|
||||||
setnvalue(L->top++, cast_num(va_arg(argp, int)));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 'f': {
|
|
||||||
setnvalue(L->top++, cast_num(va_arg(argp, l_uacNumber)));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 'p': {
|
|
||||||
char buff[4*sizeof(void *) + 8]; /* should be enough space for a `%p' */
|
|
||||||
int l = sprintf(buff, "%p", va_arg(argp, void *));
|
|
||||||
pushstr(L, buff, l);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case '%': {
|
|
||||||
pushstr(L, "%", 1);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
default: {
|
|
||||||
luaG_runerror(L,
|
|
||||||
"invalid option " LUA_QL("%%%c") " to " LUA_QL("lua_pushfstring"),
|
|
||||||
*(e + 1));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
n += 2;
|
|
||||||
fmt = e+2;
|
|
||||||
}
|
|
||||||
luaD_checkstack(L, 1);
|
|
||||||
pushstr(L, fmt, strlen(fmt));
|
|
||||||
if (n > 0) luaV_concat(L, n + 1);
|
|
||||||
return svalue(L->top - 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
const char *luaO_pushfstring (lua_State *L, const char *fmt, ...) {
|
|
||||||
const char *msg;
|
|
||||||
va_list argp;
|
|
||||||
va_start(argp, fmt);
|
|
||||||
msg = luaO_pushvfstring(L, fmt, argp);
|
|
||||||
va_end(argp);
|
|
||||||
return msg;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* number of chars of a literal string without the ending \0 */
|
|
||||||
#define LL(x) (sizeof(x)/sizeof(char) - 1)
|
|
||||||
|
|
||||||
#define RETS "..."
|
|
||||||
#define PRE "[string \""
|
|
||||||
#define POS "\"]"
|
|
||||||
|
|
||||||
#define addstr(a,b,l) ( memcpy(a,b,(l) * sizeof(char)), a += (l) )
|
|
||||||
|
|
||||||
void luaO_chunkid (char *out, const char *source, size_t bufflen) {
|
|
||||||
size_t l = strlen(source);
|
|
||||||
if (*source == '=') { /* 'literal' source */
|
|
||||||
if (l <= bufflen) /* small enough? */
|
|
||||||
memcpy(out, source + 1, l * sizeof(char));
|
|
||||||
else { /* truncate it */
|
|
||||||
addstr(out, source + 1, bufflen - 1);
|
|
||||||
*out = '\0';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (*source == '@') { /* file name */
|
|
||||||
if (l <= bufflen) /* small enough? */
|
|
||||||
memcpy(out, source + 1, l * sizeof(char));
|
|
||||||
else { /* add '...' before rest of name */
|
|
||||||
addstr(out, RETS, LL(RETS));
|
|
||||||
bufflen -= LL(RETS);
|
|
||||||
memcpy(out, source + 1 + l - bufflen, bufflen * sizeof(char));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else { /* string; format as [string "source"] */
|
|
||||||
const char *nl = strchr(source, '\n'); /* find first new line (if any) */
|
|
||||||
addstr(out, PRE, LL(PRE)); /* add prefix */
|
|
||||||
bufflen -= LL(PRE RETS POS) + 1; /* save space for prefix+suffix+'\0' */
|
|
||||||
if (l < bufflen && nl == NULL) { /* small one-line source? */
|
|
||||||
addstr(out, source, l); /* keep it */
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if (nl != NULL) l = nl - source; /* stop at first newline */
|
|
||||||
if (l > bufflen) l = bufflen;
|
|
||||||
addstr(out, source, l);
|
|
||||||
addstr(out, RETS, LL(RETS));
|
|
||||||
}
|
|
||||||
memcpy(out, POS, (LL(POS) + 1) * sizeof(char));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
185
3rdparty/genie/src/host/lua-5.2.3/src/lstring.c
vendored
185
3rdparty/genie/src/host/lua-5.2.3/src/lstring.c
vendored
@ -1,185 +0,0 @@
|
|||||||
/*
|
|
||||||
** $Id: lstring.c,v 2.26.1.1 2013/04/12 18:48:47 roberto Exp $
|
|
||||||
** String table (keeps all strings handled by Lua)
|
|
||||||
** See Copyright Notice in lua.h
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
#define lstring_c
|
|
||||||
#define LUA_CORE
|
|
||||||
|
|
||||||
#include "lua.h"
|
|
||||||
|
|
||||||
#include "lmem.h"
|
|
||||||
#include "lobject.h"
|
|
||||||
#include "lstate.h"
|
|
||||||
#include "lstring.h"
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
** Lua will use at most ~(2^LUAI_HASHLIMIT) bytes from a string to
|
|
||||||
** compute its hash
|
|
||||||
*/
|
|
||||||
#if !defined(LUAI_HASHLIMIT)
|
|
||||||
#define LUAI_HASHLIMIT 5
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
** equality for long strings
|
|
||||||
*/
|
|
||||||
int luaS_eqlngstr (TString *a, TString *b) {
|
|
||||||
size_t len = a->tsv.len;
|
|
||||||
lua_assert(a->tsv.tt == LUA_TLNGSTR && b->tsv.tt == LUA_TLNGSTR);
|
|
||||||
return (a == b) || /* same instance or... */
|
|
||||||
((len == b->tsv.len) && /* equal length and ... */
|
|
||||||
(memcmp(getstr(a), getstr(b), len) == 0)); /* equal contents */
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
** equality for strings
|
|
||||||
*/
|
|
||||||
int luaS_eqstr (TString *a, TString *b) {
|
|
||||||
return (a->tsv.tt == b->tsv.tt) &&
|
|
||||||
(a->tsv.tt == LUA_TSHRSTR ? eqshrstr(a, b) : luaS_eqlngstr(a, b));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
unsigned int luaS_hash (const char *str, size_t l, unsigned int seed) {
|
|
||||||
unsigned int h = seed ^ cast(unsigned int, l);
|
|
||||||
size_t l1;
|
|
||||||
size_t step = (l >> LUAI_HASHLIMIT) + 1;
|
|
||||||
for (l1 = l; l1 >= step; l1 -= step)
|
|
||||||
h = h ^ ((h<<5) + (h>>2) + cast_byte(str[l1 - 1]));
|
|
||||||
return h;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
** resizes the string table
|
|
||||||
*/
|
|
||||||
void luaS_resize (lua_State *L, int newsize) {
|
|
||||||
int i;
|
|
||||||
stringtable *tb = &G(L)->strt;
|
|
||||||
/* cannot resize while GC is traversing strings */
|
|
||||||
luaC_runtilstate(L, ~bitmask(GCSsweepstring));
|
|
||||||
if (newsize > tb->size) {
|
|
||||||
luaM_reallocvector(L, tb->hash, tb->size, newsize, GCObject *);
|
|
||||||
for (i = tb->size; i < newsize; i++) tb->hash[i] = NULL;
|
|
||||||
}
|
|
||||||
/* rehash */
|
|
||||||
for (i=0; i<tb->size; i++) {
|
|
||||||
GCObject *p = tb->hash[i];
|
|
||||||
tb->hash[i] = NULL;
|
|
||||||
while (p) { /* for each node in the list */
|
|
||||||
GCObject *next = gch(p)->next; /* save next */
|
|
||||||
unsigned int h = lmod(gco2ts(p)->hash, newsize); /* new position */
|
|
||||||
gch(p)->next = tb->hash[h]; /* chain it */
|
|
||||||
tb->hash[h] = p;
|
|
||||||
resetoldbit(p); /* see MOVE OLD rule */
|
|
||||||
p = next;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (newsize < tb->size) {
|
|
||||||
/* shrinking slice must be empty */
|
|
||||||
lua_assert(tb->hash[newsize] == NULL && tb->hash[tb->size - 1] == NULL);
|
|
||||||
luaM_reallocvector(L, tb->hash, tb->size, newsize, GCObject *);
|
|
||||||
}
|
|
||||||
tb->size = newsize;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
** creates a new string object
|
|
||||||
*/
|
|
||||||
static TString *createstrobj (lua_State *L, const char *str, size_t l,
|
|
||||||
int tag, unsigned int h, GCObject **list) {
|
|
||||||
TString *ts;
|
|
||||||
size_t totalsize; /* total size of TString object */
|
|
||||||
totalsize = sizeof(TString) + ((l + 1) * sizeof(char));
|
|
||||||
ts = &luaC_newobj(L, tag, totalsize, list, 0)->ts;
|
|
||||||
ts->tsv.len = l;
|
|
||||||
ts->tsv.hash = h;
|
|
||||||
ts->tsv.extra = 0;
|
|
||||||
memcpy(ts+1, str, l*sizeof(char));
|
|
||||||
((char *)(ts+1))[l] = '\0'; /* ending 0 */
|
|
||||||
return ts;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
** creates a new short string, inserting it into string table
|
|
||||||
*/
|
|
||||||
static TString *newshrstr (lua_State *L, const char *str, size_t l,
|
|
||||||
unsigned int h) {
|
|
||||||
GCObject **list; /* (pointer to) list where it will be inserted */
|
|
||||||
stringtable *tb = &G(L)->strt;
|
|
||||||
TString *s;
|
|
||||||
if (tb->nuse >= cast(lu_int32, tb->size) && tb->size <= MAX_INT/2)
|
|
||||||
luaS_resize(L, tb->size*2); /* too crowded */
|
|
||||||
list = &tb->hash[lmod(h, tb->size)];
|
|
||||||
s = createstrobj(L, str, l, LUA_TSHRSTR, h, list);
|
|
||||||
tb->nuse++;
|
|
||||||
return s;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
** checks whether short string exists and reuses it or creates a new one
|
|
||||||
*/
|
|
||||||
static TString *internshrstr (lua_State *L, const char *str, size_t l) {
|
|
||||||
GCObject *o;
|
|
||||||
global_State *g = G(L);
|
|
||||||
unsigned int h = luaS_hash(str, l, g->seed);
|
|
||||||
for (o = g->strt.hash[lmod(h, g->strt.size)];
|
|
||||||
o != NULL;
|
|
||||||
o = gch(o)->next) {
|
|
||||||
TString *ts = rawgco2ts(o);
|
|
||||||
if (h == ts->tsv.hash &&
|
|
||||||
l == ts->tsv.len &&
|
|
||||||
(memcmp(str, getstr(ts), l * sizeof(char)) == 0)) {
|
|
||||||
if (isdead(G(L), o)) /* string is dead (but was not collected yet)? */
|
|
||||||
changewhite(o); /* resurrect it */
|
|
||||||
return ts;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return newshrstr(L, str, l, h); /* not found; create a new string */
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
** new string (with explicit length)
|
|
||||||
*/
|
|
||||||
TString *luaS_newlstr (lua_State *L, const char *str, size_t l) {
|
|
||||||
if (l <= LUAI_MAXSHORTLEN) /* short string? */
|
|
||||||
return internshrstr(L, str, l);
|
|
||||||
else {
|
|
||||||
if (l + 1 > (MAX_SIZET - sizeof(TString))/sizeof(char))
|
|
||||||
luaM_toobig(L);
|
|
||||||
return createstrobj(L, str, l, LUA_TLNGSTR, G(L)->seed, NULL);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
** new zero-terminated string
|
|
||||||
*/
|
|
||||||
TString *luaS_new (lua_State *L, const char *str) {
|
|
||||||
return luaS_newlstr(L, str, strlen(str));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
Udata *luaS_newudata (lua_State *L, size_t s, Table *e) {
|
|
||||||
Udata *u;
|
|
||||||
if (s > MAX_SIZET - sizeof(Udata))
|
|
||||||
luaM_toobig(L);
|
|
||||||
u = &luaC_newobj(L, LUA_TUSERDATA, sizeof(Udata) + s, NULL, 0)->u;
|
|
||||||
u->uv.len = s;
|
|
||||||
u->uv.metatable = NULL;
|
|
||||||
u->uv.env = e;
|
|
||||||
return u;
|
|
||||||
}
|
|
||||||
|
|
283
3rdparty/genie/src/host/lua-5.2.3/src/ltablib.c
vendored
283
3rdparty/genie/src/host/lua-5.2.3/src/ltablib.c
vendored
@ -1,283 +0,0 @@
|
|||||||
/*
|
|
||||||
** $Id: ltablib.c,v 1.65.1.1 2013/04/12 18:48:47 roberto Exp $
|
|
||||||
** Library for Table Manipulation
|
|
||||||
** See Copyright Notice in lua.h
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include <stddef.h>
|
|
||||||
|
|
||||||
#define ltablib_c
|
|
||||||
#define LUA_LIB
|
|
||||||
|
|
||||||
#include "lua.h"
|
|
||||||
|
|
||||||
#include "lauxlib.h"
|
|
||||||
#include "lualib.h"
|
|
||||||
|
|
||||||
|
|
||||||
#define aux_getn(L,n) (luaL_checktype(L, n, LUA_TTABLE), luaL_len(L, n))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#if defined(LUA_COMPAT_MAXN)
|
|
||||||
static int maxn (lua_State *L) {
|
|
||||||
lua_Number max = 0;
|
|
||||||
luaL_checktype(L, 1, LUA_TTABLE);
|
|
||||||
lua_pushnil(L); /* first key */
|
|
||||||
while (lua_next(L, 1)) {
|
|
||||||
lua_pop(L, 1); /* remove value */
|
|
||||||
if (lua_type(L, -1) == LUA_TNUMBER) {
|
|
||||||
lua_Number v = lua_tonumber(L, -1);
|
|
||||||
if (v > max) max = v;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
lua_pushnumber(L, max);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
static int tinsert (lua_State *L) {
|
|
||||||
int e = aux_getn(L, 1) + 1; /* first empty element */
|
|
||||||
int pos; /* where to insert new element */
|
|
||||||
switch (lua_gettop(L)) {
|
|
||||||
case 2: { /* called with only 2 arguments */
|
|
||||||
pos = e; /* insert new element at the end */
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 3: {
|
|
||||||
int i;
|
|
||||||
pos = luaL_checkint(L, 2); /* 2nd argument is the position */
|
|
||||||
luaL_argcheck(L, 1 <= pos && pos <= e, 2, "position out of bounds");
|
|
||||||
for (i = e; i > pos; i--) { /* move up elements */
|
|
||||||
lua_rawgeti(L, 1, i-1);
|
|
||||||
lua_rawseti(L, 1, i); /* t[i] = t[i-1] */
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
default: {
|
|
||||||
return luaL_error(L, "wrong number of arguments to " LUA_QL("insert"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
lua_rawseti(L, 1, pos); /* t[pos] = v */
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static int tremove (lua_State *L) {
|
|
||||||
int size = aux_getn(L, 1);
|
|
||||||
int pos = luaL_optint(L, 2, size);
|
|
||||||
if (pos != size) /* validate 'pos' if given */
|
|
||||||
luaL_argcheck(L, 1 <= pos && pos <= size + 1, 1, "position out of bounds");
|
|
||||||
lua_rawgeti(L, 1, pos); /* result = t[pos] */
|
|
||||||
for ( ; pos < size; pos++) {
|
|
||||||
lua_rawgeti(L, 1, pos+1);
|
|
||||||
lua_rawseti(L, 1, pos); /* t[pos] = t[pos+1] */
|
|
||||||
}
|
|
||||||
lua_pushnil(L);
|
|
||||||
lua_rawseti(L, 1, pos); /* t[pos] = nil */
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void addfield (lua_State *L, luaL_Buffer *b, int i) {
|
|
||||||
lua_rawgeti(L, 1, i);
|
|
||||||
if (!lua_isstring(L, -1))
|
|
||||||
luaL_error(L, "invalid value (%s) at index %d in table for "
|
|
||||||
LUA_QL("concat"), luaL_typename(L, -1), i);
|
|
||||||
luaL_addvalue(b);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static int tconcat (lua_State *L) {
|
|
||||||
luaL_Buffer b;
|
|
||||||
size_t lsep;
|
|
||||||
int i, last;
|
|
||||||
const char *sep = luaL_optlstring(L, 2, "", &lsep);
|
|
||||||
luaL_checktype(L, 1, LUA_TTABLE);
|
|
||||||
i = luaL_optint(L, 3, 1);
|
|
||||||
last = luaL_opt(L, luaL_checkint, 4, luaL_len(L, 1));
|
|
||||||
luaL_buffinit(L, &b);
|
|
||||||
for (; i < last; i++) {
|
|
||||||
addfield(L, &b, i);
|
|
||||||
luaL_addlstring(&b, sep, lsep);
|
|
||||||
}
|
|
||||||
if (i == last) /* add last value (if interval was not empty) */
|
|
||||||
addfield(L, &b, i);
|
|
||||||
luaL_pushresult(&b);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
** {======================================================
|
|
||||||
** Pack/unpack
|
|
||||||
** =======================================================
|
|
||||||
*/
|
|
||||||
|
|
||||||
static int pack (lua_State *L) {
|
|
||||||
int n = lua_gettop(L); /* number of elements to pack */
|
|
||||||
lua_createtable(L, n, 1); /* create result table */
|
|
||||||
lua_pushinteger(L, n);
|
|
||||||
lua_setfield(L, -2, "n"); /* t.n = number of elements */
|
|
||||||
if (n > 0) { /* at least one element? */
|
|
||||||
int i;
|
|
||||||
lua_pushvalue(L, 1);
|
|
||||||
lua_rawseti(L, -2, 1); /* insert first element */
|
|
||||||
lua_replace(L, 1); /* move table into index 1 */
|
|
||||||
for (i = n; i >= 2; i--) /* assign other elements */
|
|
||||||
lua_rawseti(L, 1, i);
|
|
||||||
}
|
|
||||||
return 1; /* return table */
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static int unpack (lua_State *L) {
|
|
||||||
int i, e, n;
|
|
||||||
luaL_checktype(L, 1, LUA_TTABLE);
|
|
||||||
i = luaL_optint(L, 2, 1);
|
|
||||||
e = luaL_opt(L, luaL_checkint, 3, luaL_len(L, 1));
|
|
||||||
if (i > e) return 0; /* empty range */
|
|
||||||
n = e - i + 1; /* number of elements */
|
|
||||||
if (n <= 0 || !lua_checkstack(L, n)) /* n <= 0 means arith. overflow */
|
|
||||||
return luaL_error(L, "too many results to unpack");
|
|
||||||
lua_rawgeti(L, 1, i); /* push arg[i] (avoiding overflow problems) */
|
|
||||||
while (i++ < e) /* push arg[i + 1...e] */
|
|
||||||
lua_rawgeti(L, 1, i);
|
|
||||||
return n;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* }====================================================== */
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
** {======================================================
|
|
||||||
** Quicksort
|
|
||||||
** (based on `Algorithms in MODULA-3', Robert Sedgewick;
|
|
||||||
** Addison-Wesley, 1993.)
|
|
||||||
** =======================================================
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
static void set2 (lua_State *L, int i, int j) {
|
|
||||||
lua_rawseti(L, 1, i);
|
|
||||||
lua_rawseti(L, 1, j);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int sort_comp (lua_State *L, int a, int b) {
|
|
||||||
if (!lua_isnil(L, 2)) { /* function? */
|
|
||||||
int res;
|
|
||||||
lua_pushvalue(L, 2);
|
|
||||||
lua_pushvalue(L, a-1); /* -1 to compensate function */
|
|
||||||
lua_pushvalue(L, b-2); /* -2 to compensate function and `a' */
|
|
||||||
lua_call(L, 2, 1);
|
|
||||||
res = lua_toboolean(L, -1);
|
|
||||||
lua_pop(L, 1);
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
else /* a < b? */
|
|
||||||
return lua_compare(L, a, b, LUA_OPLT);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void auxsort (lua_State *L, int l, int u) {
|
|
||||||
while (l < u) { /* for tail recursion */
|
|
||||||
int i, j;
|
|
||||||
/* sort elements a[l], a[(l+u)/2] and a[u] */
|
|
||||||
lua_rawgeti(L, 1, l);
|
|
||||||
lua_rawgeti(L, 1, u);
|
|
||||||
if (sort_comp(L, -1, -2)) /* a[u] < a[l]? */
|
|
||||||
set2(L, l, u); /* swap a[l] - a[u] */
|
|
||||||
else
|
|
||||||
lua_pop(L, 2);
|
|
||||||
if (u-l == 1) break; /* only 2 elements */
|
|
||||||
i = (l+u)/2;
|
|
||||||
lua_rawgeti(L, 1, i);
|
|
||||||
lua_rawgeti(L, 1, l);
|
|
||||||
if (sort_comp(L, -2, -1)) /* a[i]<a[l]? */
|
|
||||||
set2(L, i, l);
|
|
||||||
else {
|
|
||||||
lua_pop(L, 1); /* remove a[l] */
|
|
||||||
lua_rawgeti(L, 1, u);
|
|
||||||
if (sort_comp(L, -1, -2)) /* a[u]<a[i]? */
|
|
||||||
set2(L, i, u);
|
|
||||||
else
|
|
||||||
lua_pop(L, 2);
|
|
||||||
}
|
|
||||||
if (u-l == 2) break; /* only 3 elements */
|
|
||||||
lua_rawgeti(L, 1, i); /* Pivot */
|
|
||||||
lua_pushvalue(L, -1);
|
|
||||||
lua_rawgeti(L, 1, u-1);
|
|
||||||
set2(L, i, u-1);
|
|
||||||
/* a[l] <= P == a[u-1] <= a[u], only need to sort from l+1 to u-2 */
|
|
||||||
i = l; j = u-1;
|
|
||||||
for (;;) { /* invariant: a[l..i] <= P <= a[j..u] */
|
|
||||||
/* repeat ++i until a[i] >= P */
|
|
||||||
while (lua_rawgeti(L, 1, ++i), sort_comp(L, -1, -2)) {
|
|
||||||
if (i>=u) luaL_error(L, "invalid order function for sorting");
|
|
||||||
lua_pop(L, 1); /* remove a[i] */
|
|
||||||
}
|
|
||||||
/* repeat --j until a[j] <= P */
|
|
||||||
while (lua_rawgeti(L, 1, --j), sort_comp(L, -3, -1)) {
|
|
||||||
if (j<=l) luaL_error(L, "invalid order function for sorting");
|
|
||||||
lua_pop(L, 1); /* remove a[j] */
|
|
||||||
}
|
|
||||||
if (j<i) {
|
|
||||||
lua_pop(L, 3); /* pop pivot, a[i], a[j] */
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
set2(L, i, j);
|
|
||||||
}
|
|
||||||
lua_rawgeti(L, 1, u-1);
|
|
||||||
lua_rawgeti(L, 1, i);
|
|
||||||
set2(L, u-1, i); /* swap pivot (a[u-1]) with a[i] */
|
|
||||||
/* a[l..i-1] <= a[i] == P <= a[i+1..u] */
|
|
||||||
/* adjust so that smaller half is in [j..i] and larger one in [l..u] */
|
|
||||||
if (i-l < u-i) {
|
|
||||||
j=l; i=i-1; l=i+2;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
j=i+1; i=u; u=j-2;
|
|
||||||
}
|
|
||||||
auxsort(L, j, i); /* call recursively the smaller one */
|
|
||||||
} /* repeat the routine for the larger one */
|
|
||||||
}
|
|
||||||
|
|
||||||
static int sort (lua_State *L) {
|
|
||||||
int n = aux_getn(L, 1);
|
|
||||||
luaL_checkstack(L, 40, ""); /* assume array is smaller than 2^40 */
|
|
||||||
if (!lua_isnoneornil(L, 2)) /* is there a 2nd argument? */
|
|
||||||
luaL_checktype(L, 2, LUA_TFUNCTION);
|
|
||||||
lua_settop(L, 2); /* make sure there is two arguments */
|
|
||||||
auxsort(L, 1, n);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* }====================================================== */
|
|
||||||
|
|
||||||
|
|
||||||
static const luaL_Reg tab_funcs[] = {
|
|
||||||
{"concat", tconcat},
|
|
||||||
#if defined(LUA_COMPAT_MAXN)
|
|
||||||
{"maxn", maxn},
|
|
||||||
#endif
|
|
||||||
{"insert", tinsert},
|
|
||||||
{"pack", pack},
|
|
||||||
{"unpack", unpack},
|
|
||||||
{"remove", tremove},
|
|
||||||
{"sort", sort},
|
|
||||||
{NULL, NULL}
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
LUAMOD_API int luaopen_table (lua_State *L) {
|
|
||||||
luaL_newlib(L, tab_funcs);
|
|
||||||
#if defined(LUA_COMPAT_UNPACK)
|
|
||||||
/* _G.unpack = table.unpack */
|
|
||||||
lua_getfield(L, -1, "unpack");
|
|
||||||
lua_setglobal(L, "unpack");
|
|
||||||
#endif
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
77
3rdparty/genie/src/host/lua-5.2.3/src/ltm.c
vendored
77
3rdparty/genie/src/host/lua-5.2.3/src/ltm.c
vendored
@ -1,77 +0,0 @@
|
|||||||
/*
|
|
||||||
** $Id: ltm.c,v 2.14.1.1 2013/04/12 18:48:47 roberto Exp $
|
|
||||||
** Tag methods
|
|
||||||
** See Copyright Notice in lua.h
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
#define ltm_c
|
|
||||||
#define LUA_CORE
|
|
||||||
|
|
||||||
#include "lua.h"
|
|
||||||
|
|
||||||
#include "lobject.h"
|
|
||||||
#include "lstate.h"
|
|
||||||
#include "lstring.h"
|
|
||||||
#include "ltable.h"
|
|
||||||
#include "ltm.h"
|
|
||||||
|
|
||||||
|
|
||||||
static const char udatatypename[] = "userdata";
|
|
||||||
|
|
||||||
LUAI_DDEF const char *const luaT_typenames_[LUA_TOTALTAGS] = {
|
|
||||||
"no value",
|
|
||||||
"nil", "boolean", udatatypename, "number",
|
|
||||||
"string", "table", "function", udatatypename, "thread",
|
|
||||||
"proto", "upval" /* these last two cases are used for tests only */
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
void luaT_init (lua_State *L) {
|
|
||||||
static const char *const luaT_eventname[] = { /* ORDER TM */
|
|
||||||
"__index", "__newindex",
|
|
||||||
"__gc", "__mode", "__len", "__eq",
|
|
||||||
"__add", "__sub", "__mul", "__div", "__mod",
|
|
||||||
"__pow", "__unm", "__lt", "__le",
|
|
||||||
"__concat", "__call"
|
|
||||||
};
|
|
||||||
int i;
|
|
||||||
for (i=0; i<TM_N; i++) {
|
|
||||||
G(L)->tmname[i] = luaS_new(L, luaT_eventname[i]);
|
|
||||||
luaS_fix(G(L)->tmname[i]); /* never collect these names */
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
** function to be used with macro "fasttm": optimized for absence of
|
|
||||||
** tag methods
|
|
||||||
*/
|
|
||||||
const TValue *luaT_gettm (Table *events, TMS event, TString *ename) {
|
|
||||||
const TValue *tm = luaH_getstr(events, ename);
|
|
||||||
lua_assert(event <= TM_EQ);
|
|
||||||
if (ttisnil(tm)) { /* no tag method? */
|
|
||||||
events->flags |= cast_byte(1u<<event); /* cache this fact */
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
else return tm;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
const TValue *luaT_gettmbyobj (lua_State *L, const TValue *o, TMS event) {
|
|
||||||
Table *mt;
|
|
||||||
switch (ttypenv(o)) {
|
|
||||||
case LUA_TTABLE:
|
|
||||||
mt = hvalue(o)->metatable;
|
|
||||||
break;
|
|
||||||
case LUA_TUSERDATA:
|
|
||||||
mt = uvalue(o)->metatable;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
mt = G(L)->mt[ttypenv(o)];
|
|
||||||
}
|
|
||||||
return (mt ? luaH_getstr(mt, G(L)->tmname[event]) : luaO_nilobject);
|
|
||||||
}
|
|
||||||
|
|
497
3rdparty/genie/src/host/lua-5.2.3/src/lua.c
vendored
497
3rdparty/genie/src/host/lua-5.2.3/src/lua.c
vendored
@ -1,497 +0,0 @@
|
|||||||
/*
|
|
||||||
** $Id: lua.c,v 1.206.1.1 2013/04/12 18:48:47 roberto Exp $
|
|
||||||
** Lua stand-alone interpreter
|
|
||||||
** See Copyright Notice in lua.h
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include <signal.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
#define lua_c
|
|
||||||
|
|
||||||
#include "lua.h"
|
|
||||||
|
|
||||||
#include "lauxlib.h"
|
|
||||||
#include "lualib.h"
|
|
||||||
|
|
||||||
|
|
||||||
#if !defined(LUA_PROMPT)
|
|
||||||
#define LUA_PROMPT "> "
|
|
||||||
#define LUA_PROMPT2 ">> "
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !defined(LUA_PROGNAME)
|
|
||||||
#define LUA_PROGNAME "lua"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !defined(LUA_MAXINPUT)
|
|
||||||
#define LUA_MAXINPUT 512
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !defined(LUA_INIT)
|
|
||||||
#define LUA_INIT "LUA_INIT"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define LUA_INITVERSION \
|
|
||||||
LUA_INIT "_" LUA_VERSION_MAJOR "_" LUA_VERSION_MINOR
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
** lua_stdin_is_tty detects whether the standard input is a 'tty' (that
|
|
||||||
** is, whether we're running lua interactively).
|
|
||||||
*/
|
|
||||||
#if defined(LUA_USE_ISATTY)
|
|
||||||
#include <unistd.h>
|
|
||||||
#define lua_stdin_is_tty() isatty(0)
|
|
||||||
#elif defined(LUA_WIN)
|
|
||||||
#include <io.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#define lua_stdin_is_tty() _isatty(_fileno(stdin))
|
|
||||||
#else
|
|
||||||
#define lua_stdin_is_tty() 1 /* assume stdin is a tty */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
** lua_readline defines how to show a prompt and then read a line from
|
|
||||||
** the standard input.
|
|
||||||
** lua_saveline defines how to "save" a read line in a "history".
|
|
||||||
** lua_freeline defines how to free a line read by lua_readline.
|
|
||||||
*/
|
|
||||||
#if defined(LUA_USE_READLINE)
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <readline/readline.h>
|
|
||||||
#include <readline/history.h>
|
|
||||||
#define lua_readline(L,b,p) ((void)L, ((b)=readline(p)) != NULL)
|
|
||||||
#define lua_saveline(L,idx) \
|
|
||||||
if (lua_rawlen(L,idx) > 0) /* non-empty line? */ \
|
|
||||||
add_history(lua_tostring(L, idx)); /* add it to history */
|
|
||||||
#define lua_freeline(L,b) ((void)L, free(b))
|
|
||||||
|
|
||||||
#elif !defined(lua_readline)
|
|
||||||
|
|
||||||
#define lua_readline(L,b,p) \
|
|
||||||
((void)L, fputs(p, stdout), fflush(stdout), /* show prompt */ \
|
|
||||||
fgets(b, LUA_MAXINPUT, stdin) != NULL) /* get line */
|
|
||||||
#define lua_saveline(L,idx) { (void)L; (void)idx; }
|
|
||||||
#define lua_freeline(L,b) { (void)L; (void)b; }
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static lua_State *globalL = NULL;
|
|
||||||
|
|
||||||
static const char *progname = LUA_PROGNAME;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void lstop (lua_State *L, lua_Debug *ar) {
|
|
||||||
(void)ar; /* unused arg. */
|
|
||||||
lua_sethook(L, NULL, 0, 0);
|
|
||||||
luaL_error(L, "interrupted!");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void laction (int i) {
|
|
||||||
signal(i, SIG_DFL); /* if another SIGINT happens before lstop,
|
|
||||||
terminate process (default action) */
|
|
||||||
lua_sethook(globalL, lstop, LUA_MASKCALL | LUA_MASKRET | LUA_MASKCOUNT, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void print_usage (const char *badoption) {
|
|
||||||
luai_writestringerror("%s: ", progname);
|
|
||||||
if (badoption[1] == 'e' || badoption[1] == 'l')
|
|
||||||
luai_writestringerror("'%s' needs argument\n", badoption);
|
|
||||||
else
|
|
||||||
luai_writestringerror("unrecognized option '%s'\n", badoption);
|
|
||||||
luai_writestringerror(
|
|
||||||
"usage: %s [options] [script [args]]\n"
|
|
||||||
"Available options are:\n"
|
|
||||||
" -e stat execute string " LUA_QL("stat") "\n"
|
|
||||||
" -i enter interactive mode after executing " LUA_QL("script") "\n"
|
|
||||||
" -l name require library " LUA_QL("name") "\n"
|
|
||||||
" -v show version information\n"
|
|
||||||
" -E ignore environment variables\n"
|
|
||||||
" -- stop handling options\n"
|
|
||||||
" - stop handling options and execute stdin\n"
|
|
||||||
,
|
|
||||||
progname);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void l_message (const char *pname, const char *msg) {
|
|
||||||
if (pname) luai_writestringerror("%s: ", pname);
|
|
||||||
luai_writestringerror("%s\n", msg);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static int report (lua_State *L, int status) {
|
|
||||||
if (status != LUA_OK && !lua_isnil(L, -1)) {
|
|
||||||
const char *msg = lua_tostring(L, -1);
|
|
||||||
if (msg == NULL) msg = "(error object is not a string)";
|
|
||||||
l_message(progname, msg);
|
|
||||||
lua_pop(L, 1);
|
|
||||||
/* force a complete garbage collection in case of errors */
|
|
||||||
lua_gc(L, LUA_GCCOLLECT, 0);
|
|
||||||
}
|
|
||||||
return status;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* the next function is called unprotected, so it must avoid errors */
|
|
||||||
static void finalreport (lua_State *L, int status) {
|
|
||||||
if (status != LUA_OK) {
|
|
||||||
const char *msg = (lua_type(L, -1) == LUA_TSTRING) ? lua_tostring(L, -1)
|
|
||||||
: NULL;
|
|
||||||
if (msg == NULL) msg = "(error object is not a string)";
|
|
||||||
l_message(progname, msg);
|
|
||||||
lua_pop(L, 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static int traceback (lua_State *L) {
|
|
||||||
const char *msg = lua_tostring(L, 1);
|
|
||||||
if (msg)
|
|
||||||
luaL_traceback(L, L, msg, 1);
|
|
||||||
else if (!lua_isnoneornil(L, 1)) { /* is there an error object? */
|
|
||||||
if (!luaL_callmeta(L, 1, "__tostring")) /* try its 'tostring' metamethod */
|
|
||||||
lua_pushliteral(L, "(no error message)");
|
|
||||||
}
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static int docall (lua_State *L, int narg, int nres) {
|
|
||||||
int status;
|
|
||||||
int base = lua_gettop(L) - narg; /* function index */
|
|
||||||
lua_pushcfunction(L, traceback); /* push traceback function */
|
|
||||||
lua_insert(L, base); /* put it under chunk and args */
|
|
||||||
globalL = L; /* to be available to 'laction' */
|
|
||||||
signal(SIGINT, laction);
|
|
||||||
status = lua_pcall(L, narg, nres, base);
|
|
||||||
signal(SIGINT, SIG_DFL);
|
|
||||||
lua_remove(L, base); /* remove traceback function */
|
|
||||||
return status;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void print_version (void) {
|
|
||||||
luai_writestring(LUA_COPYRIGHT, strlen(LUA_COPYRIGHT));
|
|
||||||
luai_writeline();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static int getargs (lua_State *L, char **argv, int n) {
|
|
||||||
int narg;
|
|
||||||
int i;
|
|
||||||
int argc = 0;
|
|
||||||
while (argv[argc]) argc++; /* count total number of arguments */
|
|
||||||
narg = argc - (n + 1); /* number of arguments to the script */
|
|
||||||
luaL_checkstack(L, narg + 3, "too many arguments to script");
|
|
||||||
for (i=n+1; i < argc; i++)
|
|
||||||
lua_pushstring(L, argv[i]);
|
|
||||||
lua_createtable(L, narg, n + 1);
|
|
||||||
for (i=0; i < argc; i++) {
|
|
||||||
lua_pushstring(L, argv[i]);
|
|
||||||
lua_rawseti(L, -2, i - n);
|
|
||||||
}
|
|
||||||
return narg;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static int dofile (lua_State *L, const char *name) {
|
|
||||||
int status = luaL_loadfile(L, name);
|
|
||||||
if (status == LUA_OK) status = docall(L, 0, 0);
|
|
||||||
return report(L, status);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static int dostring (lua_State *L, const char *s, const char *name) {
|
|
||||||
int status = luaL_loadbuffer(L, s, strlen(s), name);
|
|
||||||
if (status == LUA_OK) status = docall(L, 0, 0);
|
|
||||||
return report(L, status);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static int dolibrary (lua_State *L, const char *name) {
|
|
||||||
int status;
|
|
||||||
lua_getglobal(L, "require");
|
|
||||||
lua_pushstring(L, name);
|
|
||||||
status = docall(L, 1, 1); /* call 'require(name)' */
|
|
||||||
if (status == LUA_OK)
|
|
||||||
lua_setglobal(L, name); /* global[name] = require return */
|
|
||||||
return report(L, status);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static const char *get_prompt (lua_State *L, int firstline) {
|
|
||||||
const char *p;
|
|
||||||
lua_getglobal(L, firstline ? "_PROMPT" : "_PROMPT2");
|
|
||||||
p = lua_tostring(L, -1);
|
|
||||||
if (p == NULL) p = (firstline ? LUA_PROMPT : LUA_PROMPT2);
|
|
||||||
return p;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* mark in error messages for incomplete statements */
|
|
||||||
#define EOFMARK "<eof>"
|
|
||||||
#define marklen (sizeof(EOFMARK)/sizeof(char) - 1)
|
|
||||||
|
|
||||||
static int incomplete (lua_State *L, int status) {
|
|
||||||
if (status == LUA_ERRSYNTAX) {
|
|
||||||
size_t lmsg;
|
|
||||||
const char *msg = lua_tolstring(L, -1, &lmsg);
|
|
||||||
if (lmsg >= marklen && strcmp(msg + lmsg - marklen, EOFMARK) == 0) {
|
|
||||||
lua_pop(L, 1);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return 0; /* else... */
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static int pushline (lua_State *L, int firstline) {
|
|
||||||
char buffer[LUA_MAXINPUT];
|
|
||||||
char *b = buffer;
|
|
||||||
size_t l;
|
|
||||||
const char *prmt = get_prompt(L, firstline);
|
|
||||||
int readstatus = lua_readline(L, b, prmt);
|
|
||||||
lua_pop(L, 1); /* remove result from 'get_prompt' */
|
|
||||||
if (readstatus == 0)
|
|
||||||
return 0; /* no input */
|
|
||||||
l = strlen(b);
|
|
||||||
if (l > 0 && b[l-1] == '\n') /* line ends with newline? */
|
|
||||||
b[l-1] = '\0'; /* remove it */
|
|
||||||
if (firstline && b[0] == '=') /* first line starts with `=' ? */
|
|
||||||
lua_pushfstring(L, "return %s", b+1); /* change it to `return' */
|
|
||||||
else
|
|
||||||
lua_pushstring(L, b);
|
|
||||||
lua_freeline(L, b);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static int loadline (lua_State *L) {
|
|
||||||
int status;
|
|
||||||
lua_settop(L, 0);
|
|
||||||
if (!pushline(L, 1))
|
|
||||||
return -1; /* no input */
|
|
||||||
for (;;) { /* repeat until gets a complete line */
|
|
||||||
size_t l;
|
|
||||||
const char *line = lua_tolstring(L, 1, &l);
|
|
||||||
status = luaL_loadbuffer(L, line, l, "=stdin");
|
|
||||||
if (!incomplete(L, status)) break; /* cannot try to add lines? */
|
|
||||||
if (!pushline(L, 0)) /* no more input? */
|
|
||||||
return -1;
|
|
||||||
lua_pushliteral(L, "\n"); /* add a new line... */
|
|
||||||
lua_insert(L, -2); /* ...between the two lines */
|
|
||||||
lua_concat(L, 3); /* join them */
|
|
||||||
}
|
|
||||||
lua_saveline(L, 1);
|
|
||||||
lua_remove(L, 1); /* remove line */
|
|
||||||
return status;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void dotty (lua_State *L) {
|
|
||||||
int status;
|
|
||||||
const char *oldprogname = progname;
|
|
||||||
progname = NULL;
|
|
||||||
while ((status = loadline(L)) != -1) {
|
|
||||||
if (status == LUA_OK) status = docall(L, 0, LUA_MULTRET);
|
|
||||||
report(L, status);
|
|
||||||
if (status == LUA_OK && lua_gettop(L) > 0) { /* any result to print? */
|
|
||||||
luaL_checkstack(L, LUA_MINSTACK, "too many results to print");
|
|
||||||
lua_getglobal(L, "print");
|
|
||||||
lua_insert(L, 1);
|
|
||||||
if (lua_pcall(L, lua_gettop(L)-1, 0, 0) != LUA_OK)
|
|
||||||
l_message(progname, lua_pushfstring(L,
|
|
||||||
"error calling " LUA_QL("print") " (%s)",
|
|
||||||
lua_tostring(L, -1)));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
lua_settop(L, 0); /* clear stack */
|
|
||||||
luai_writeline();
|
|
||||||
progname = oldprogname;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static int handle_script (lua_State *L, char **argv, int n) {
|
|
||||||
int status;
|
|
||||||
const char *fname;
|
|
||||||
int narg = getargs(L, argv, n); /* collect arguments */
|
|
||||||
lua_setglobal(L, "arg");
|
|
||||||
fname = argv[n];
|
|
||||||
if (strcmp(fname, "-") == 0 && strcmp(argv[n-1], "--") != 0)
|
|
||||||
fname = NULL; /* stdin */
|
|
||||||
status = luaL_loadfile(L, fname);
|
|
||||||
lua_insert(L, -(narg+1));
|
|
||||||
if (status == LUA_OK)
|
|
||||||
status = docall(L, narg, LUA_MULTRET);
|
|
||||||
else
|
|
||||||
lua_pop(L, narg);
|
|
||||||
return report(L, status);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* check that argument has no extra characters at the end */
|
|
||||||
#define noextrachars(x) {if ((x)[2] != '\0') return -1;}
|
|
||||||
|
|
||||||
|
|
||||||
/* indices of various argument indicators in array args */
|
|
||||||
#define has_i 0 /* -i */
|
|
||||||
#define has_v 1 /* -v */
|
|
||||||
#define has_e 2 /* -e */
|
|
||||||
#define has_E 3 /* -E */
|
|
||||||
|
|
||||||
#define num_has 4 /* number of 'has_*' */
|
|
||||||
|
|
||||||
|
|
||||||
static int collectargs (char **argv, int *args) {
|
|
||||||
int i;
|
|
||||||
for (i = 1; argv[i] != NULL; i++) {
|
|
||||||
if (argv[i][0] != '-') /* not an option? */
|
|
||||||
return i;
|
|
||||||
switch (argv[i][1]) { /* option */
|
|
||||||
case '-':
|
|
||||||
noextrachars(argv[i]);
|
|
||||||
return (argv[i+1] != NULL ? i+1 : 0);
|
|
||||||
case '\0':
|
|
||||||
return i;
|
|
||||||
case 'E':
|
|
||||||
args[has_E] = 1;
|
|
||||||
break;
|
|
||||||
case 'i':
|
|
||||||
noextrachars(argv[i]);
|
|
||||||
args[has_i] = 1; /* go through */
|
|
||||||
case 'v':
|
|
||||||
noextrachars(argv[i]);
|
|
||||||
args[has_v] = 1;
|
|
||||||
break;
|
|
||||||
case 'e':
|
|
||||||
args[has_e] = 1; /* go through */
|
|
||||||
case 'l': /* both options need an argument */
|
|
||||||
if (argv[i][2] == '\0') { /* no concatenated argument? */
|
|
||||||
i++; /* try next 'argv' */
|
|
||||||
if (argv[i] == NULL || argv[i][0] == '-')
|
|
||||||
return -(i - 1); /* no next argument or it is another option */
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default: /* invalid option; return its index... */
|
|
||||||
return -i; /* ...as a negative value */
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static int runargs (lua_State *L, char **argv, int n) {
|
|
||||||
int i;
|
|
||||||
for (i = 1; i < n; i++) {
|
|
||||||
lua_assert(argv[i][0] == '-');
|
|
||||||
switch (argv[i][1]) { /* option */
|
|
||||||
case 'e': {
|
|
||||||
const char *chunk = argv[i] + 2;
|
|
||||||
if (*chunk == '\0') chunk = argv[++i];
|
|
||||||
lua_assert(chunk != NULL);
|
|
||||||
if (dostring(L, chunk, "=(command line)") != LUA_OK)
|
|
||||||
return 0;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 'l': {
|
|
||||||
const char *filename = argv[i] + 2;
|
|
||||||
if (*filename == '\0') filename = argv[++i];
|
|
||||||
lua_assert(filename != NULL);
|
|
||||||
if (dolibrary(L, filename) != LUA_OK)
|
|
||||||
return 0; /* stop if file fails */
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
default: break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static int handle_luainit (lua_State *L) {
|
|
||||||
const char *name = "=" LUA_INITVERSION;
|
|
||||||
const char *init = getenv(name + 1);
|
|
||||||
if (init == NULL) {
|
|
||||||
name = "=" LUA_INIT;
|
|
||||||
init = getenv(name + 1); /* try alternative name */
|
|
||||||
}
|
|
||||||
if (init == NULL) return LUA_OK;
|
|
||||||
else if (init[0] == '@')
|
|
||||||
return dofile(L, init+1);
|
|
||||||
else
|
|
||||||
return dostring(L, init, name);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static int pmain (lua_State *L) {
|
|
||||||
int argc = (int)lua_tointeger(L, 1);
|
|
||||||
char **argv = (char **)lua_touserdata(L, 2);
|
|
||||||
int script;
|
|
||||||
int args[num_has];
|
|
||||||
args[has_i] = args[has_v] = args[has_e] = args[has_E] = 0;
|
|
||||||
if (argv[0] && argv[0][0]) progname = argv[0];
|
|
||||||
script = collectargs(argv, args);
|
|
||||||
if (script < 0) { /* invalid arg? */
|
|
||||||
print_usage(argv[-script]);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
if (args[has_v]) print_version();
|
|
||||||
if (args[has_E]) { /* option '-E'? */
|
|
||||||
lua_pushboolean(L, 1); /* signal for libraries to ignore env. vars. */
|
|
||||||
lua_setfield(L, LUA_REGISTRYINDEX, "LUA_NOENV");
|
|
||||||
}
|
|
||||||
/* open standard libraries */
|
|
||||||
luaL_checkversion(L);
|
|
||||||
lua_gc(L, LUA_GCSTOP, 0); /* stop collector during initialization */
|
|
||||||
luaL_openlibs(L); /* open libraries */
|
|
||||||
lua_gc(L, LUA_GCRESTART, 0);
|
|
||||||
if (!args[has_E] && handle_luainit(L) != LUA_OK)
|
|
||||||
return 0; /* error running LUA_INIT */
|
|
||||||
/* execute arguments -e and -l */
|
|
||||||
if (!runargs(L, argv, (script > 0) ? script : argc)) return 0;
|
|
||||||
/* execute main script (if there is one) */
|
|
||||||
if (script && handle_script(L, argv, script) != LUA_OK) return 0;
|
|
||||||
if (args[has_i]) /* -i option? */
|
|
||||||
dotty(L);
|
|
||||||
else if (script == 0 && !args[has_e] && !args[has_v]) { /* no arguments? */
|
|
||||||
if (lua_stdin_is_tty()) {
|
|
||||||
print_version();
|
|
||||||
dotty(L);
|
|
||||||
}
|
|
||||||
else dofile(L, NULL); /* executes stdin as a file */
|
|
||||||
}
|
|
||||||
lua_pushboolean(L, 1); /* signal no errors */
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int main (int argc, char **argv) {
|
|
||||||
int status, result;
|
|
||||||
lua_State *L = luaL_newstate(); /* create state */
|
|
||||||
if (L == NULL) {
|
|
||||||
l_message(argv[0], "cannot create state: not enough memory");
|
|
||||||
return EXIT_FAILURE;
|
|
||||||
}
|
|
||||||
/* call 'pmain' in protected mode */
|
|
||||||
lua_pushcfunction(L, &pmain);
|
|
||||||
lua_pushinteger(L, argc); /* 1st argument */
|
|
||||||
lua_pushlightuserdata(L, argv); /* 2nd argument */
|
|
||||||
status = lua_pcall(L, 2, 1, 0);
|
|
||||||
result = lua_toboolean(L, -1); /* get result */
|
|
||||||
finalreport(L, status);
|
|
||||||
lua_close(L);
|
|
||||||
return (result && status == LUA_OK) ? EXIT_SUCCESS : EXIT_FAILURE;
|
|
||||||
}
|
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user