From 30ae308c9b26b18096f3f993f4b6ad50ea6bfd76 Mon Sep 17 00:00:00 2001 From: jussi Date: Tue, 22 Feb 2022 19:09:57 +0200 Subject: [PATCH] Documentation, heightmap example and custom begin and end draw. --- .vscode/launch.json | 2 +- API.md | 15 ++++- README.md | 32 +++++++++- doc_parser.lua | 3 +- examples/heightmap/main.lua | 80 ++++++++++++++++++++++++ examples/resources/images/heightmap.png | Bin 0 -> 1056 bytes examples/resources/images/tiles.png | Bin 32917 -> 57203 bytes include/core.h | 2 + src/core.c | 22 +++++++ src/lua_core.c | 6 ++ src/models.c | 11 +++- 11 files changed, 167 insertions(+), 6 deletions(-) create mode 100644 examples/heightmap/main.lua create mode 100644 examples/resources/images/heightmap.png diff --git a/.vscode/launch.json b/.vscode/launch.json index 662de51..6927ffe 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -9,7 +9,7 @@ "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/build/ReiLua", - "args": ["/examples/font/"], + "args": ["/examples/heightmap/"], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], diff --git a/API.md b/API.md index e9805ba..297e9d8 100644 --- a/API.md +++ b/API.md @@ -20,7 +20,8 @@ This function will be called every frame during execution. It will get time dura > function draw() This function will be called every frame after process and it should have all rendering related functions. -Note: Engine will call Raylib functions 'BeginDrawing()' before this function call and 'EndDrawing()' after it +Note: Engine will call Raylib functions 'BeginDrawing()' before this function call and 'EndDrawing()' after it. +You can still use RL_BeginDrawing() and RL_EndDrawing() manually from anywhere. --- @@ -698,6 +699,18 @@ Set background color ( framebuffer clear color ) --- +> RL_BeginDrawing() + +Setup canvas ( framebuffer ) to start drawing + +--- + +> RL_EndDrawing() + +End canvas drawing and swap buffers ( double buffering ) + +--- + > success = RL_BeginBlendMode( int mode ) Begin blending mode ( BLEND_ALPHA, BLEND_ADDITIVE, BLEND_MULTIPLIED... ) diff --git a/README.md b/README.md index 899c3c6..2d2b338 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,37 @@ Reilua means fair in finnish. ## Status -ReiLua is currently in arbitrary version 0.1 and some planned raylib functionality is still missing. +ReiLua is currently in arbitrary version 0.1 and some planned raylib functionality is still missing but it already has over 300 functions. + +List of some missing features that are planned to be included. For specific function check API. + +* Core + * Some screen-space-related functions + * Files drop + * custom callbacks + * camera2d and it's functions + * VR stereo config functions for VR simulator +* Textures + * Most image loading functions + * Image manipulation functions + * Texture update functions + * Color/pixel related functions +* Text + * Some font loading/unloading functions +* Audio + * Wave + * AudioStream management functions +* Mesh + * Some mesh management functions + +Submodules. + +* Raygui + * Advanced controls +* Raymath + * Quaternions +* Physac + * Whole implementation ## Usage diff --git a/doc_parser.lua b/doc_parser.lua index 848577c..80fa490 100644 --- a/doc_parser.lua +++ b/doc_parser.lua @@ -30,7 +30,8 @@ apiFile:write( "\n> function process( delta )\n\ This function will be called every frame during execution. It will get time duration from last frame on argument 'delta'\n\n---\n" ) apiFile:write( "\n> function draw()\n\ This function will be called every frame after process and it should have all rendering related functions.\ -Note: Engine will call Raylib functions 'BeginDrawing()' before this function call and 'EndDrawing()' after it\n\n---\n" ) +Note: Engine will call Raylib functions 'BeginDrawing()' before this function call and 'EndDrawing()' after it.\ +You can still use RL_BeginDrawing() and RL_EndDrawing() manually from anywhere.\n\n---\n" ) -- Globals. diff --git a/examples/heightmap/main.lua b/examples/heightmap/main.lua new file mode 100644 index 0000000..ea594b2 --- /dev/null +++ b/examples/heightmap/main.lua @@ -0,0 +1,80 @@ +local TILE_SIZE = 32 + +local monitor = 0 +local camera = -1 +local groundTexture = -1 +local tilesetTex = -1 +local heigthImage = -1 +local mesh = -1 +local material = -1 + +local grassRec = { 6 * TILE_SIZE, 0 * TILE_SIZE, TILE_SIZE, TILE_SIZE } +local dirtRec = { 4 * TILE_SIZE, 0 * TILE_SIZE, TILE_SIZE, TILE_SIZE } +local dirtRightRec = { 5 * TILE_SIZE, 0 * TILE_SIZE, TILE_SIZE, TILE_SIZE } +local dirtLeftRec = { 5 * TILE_SIZE, 2 * TILE_SIZE, TILE_SIZE, TILE_SIZE } +local dirtTopRec = { 6 * TILE_SIZE, 1 * TILE_SIZE, TILE_SIZE, TILE_SIZE } +local dirtBottomRec = { 7 * TILE_SIZE, 0 * TILE_SIZE, TILE_SIZE, TILE_SIZE } + +local matrix = {} + +function init() + local mPos = RL_GetMonitorPosition( monitor ) + local mSize = RL_GetMonitorSize( monitor ) + local winSize = RL_GetWindowSize() + + RL_SetWindowState( FLAG_WINDOW_RESIZABLE ) + RL_SetWindowPosition( { mPos[1] + mSize[1] / 2 - winSize[1] / 2, mPos[2] + mSize[2] / 2 - winSize[2] / 2 } ) + + camera = RL_CreateCamera3D() + RL_SetCamera3DPosition( camera, { 0, 2, 4 } ) + RL_SetCamera3DTarget( camera, { 0, 0, 0 } ) + RL_SetCamera3DUp( camera, { 0, 2, 0 } ) + RL_SetCamera3DMode( camera, CAMERA_FREE ) + + heigthImage = RL_LoadImage( RL_GetBasePath().."../resources/images/heightmap.png" ) + + mesh = RL_GenMeshHeightmap( heigthImage, { 16, 4, 16 } ) + tilesetTex = RL_LoadTexture( RL_GetBasePath().."../resources/images/tiles.png" ) + groundTexture = RL_LoadRenderTexture( { TILE_SIZE * 16, TILE_SIZE * 16 } ) + + -- Draw to ground texture. + RL_BeginTextureMode( groundTexture ) + + for x = 1, 16 do + for y = 1, 16 do + local pos = { x - 1, y - 1 } + + if 4 < x and x < 14 and 4 < y and y < 8 then + RL_DrawTextureRec( tilesetTex, dirtRec, { pos[1] * TILE_SIZE, pos[2] * TILE_SIZE }, WHITE ) + elseif 4 == x and 4 < y and y < 8 then + RL_DrawTextureRec( tilesetTex, dirtRightRec, { pos[1] * TILE_SIZE, pos[2] * TILE_SIZE }, WHITE ) + elseif 14 == x and 4 < y and y < 8 then + RL_DrawTextureRec( tilesetTex, dirtLeftRec, { pos[1] * TILE_SIZE, pos[2] * TILE_SIZE }, WHITE ) + elseif 4 < x and x < 14 and 4 == y then + RL_DrawTextureRec( tilesetTex, dirtTopRec, { pos[1] * TILE_SIZE, pos[2] * TILE_SIZE }, WHITE ) + elseif 4 < x and x < 14 and 8 == y then + RL_DrawTextureRec( tilesetTex, dirtBottomRec, { pos[1] * TILE_SIZE, pos[2] * TILE_SIZE }, WHITE ) + else + RL_DrawTextureRec( tilesetTex, grassRec, { pos[1] * TILE_SIZE, pos[2] * TILE_SIZE }, WHITE ) + end + end + end + + RL_EndTextureMode() + + material = RL_LoadMaterialDefault() + RL_SetTextureSource( TEXTURE_SOURCE_RENDER_TEXTURE ) + RL_SetMaterialTexture( material, MATERIAL_MAP_ALBEDO, groundTexture ) + RL_SetTextureSource( TEXTURE_SOURCE_TEXTURE ) + + matrix = RL_MatrixMultiply( RL_MatrixIdentity(), RL_MatrixTranslate( { -4, 0, -4 } ) ) +end + +function draw() + RL_ClearBackground( { 100, 150, 100 } ) + RL_UpdateCamera3D( camera ) + + RL_BeginMode3D( camera ) + RL_DrawMesh( mesh, material, matrix ) + RL_EndMode3D() +end diff --git a/examples/resources/images/heightmap.png b/examples/resources/images/heightmap.png new file mode 100644 index 0000000000000000000000000000000000000000..d0c9b174eb6cce27481ff07d519b0c4a3214e76c GIT binary patch literal 1056 zcmV+*1mF9KP)EX>4Tx04R}tkv&MmP!xqvTcskE4i*t{$WWauh>8j>T7@E12(?114kj=CgC-40 zii@M*T5#}ZvFhOBtgC~oAPD||I665gx=4xlC509-UUt6(RCh6+<=yvZ^(Z-$0X~6vmg$B?yg@v< zY3ZEzi6g8iDa7Z*BL-cN_>t?f%Ws?u4*Pj##7L*+i6g{9p^fD>W<^6Ko*<4Ysz&+# zjLQn=EzWAW%9{7&FAU|hm1VBe8bkt%Sb_)vGO8${3=1*ZHBwBZ=sfP>A8`C4xny#c zz{s(H3RFmrAN&t~&(_S3kGV;qIMDfG+aE(fa2IIQZ2SAzwi_ov;2F5mTK-BMnEoWa z*3zO!KzJLtxNd3k9&ot>^grp6AvscjmOq~d-p}ZpvOw=G(7oo)t$B{q2Ov$eO5Okm zhrn=wve!M{-PJy~e|wtq`vK~ka@QaST*UwY010qNS#tmYE+YT{E+YYWr9XB6000Mc zNliru<^dKE3J)@^C8q!Y02y>eSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{ z00Ia}L_t(2&plGva^o-zlPJn(?Od(fZ|rAxrbj%@M3Hq_=RRnsd?iSLAn5!1`#jG8 zP)aGK5JD)Wgb)Crl;)hZ)-lF$9Ho>WA0Mc-Zki^>=)Etc003jGqDv_$r5NKhO_$51 zZCfcN0zlI=-h1a9B67|-=an$VXsvb5rIa}5RRR)17-N*uuImnm!!Qhg^1Szy(h!2R z_WS$0lybY>&{}JZ+4r3>)^!~KIOm*mF~&+#IV)NSfnQ%=*4okQ8DqmRAmaZk5u2u|As~cc^{%?sG|ey!gpd$I zj8RJIy>Hug9LE^r@9%F20THnp*Y|zj_viDO5F(|_Ik#<_QX0o`p68r%jPZWIqYwfS zDW%4knk4{;F+M##old7xic(4`l~StD!F64=)-}n9xNRE%aL#ki03fA&JRTv0l#-NE aDfJH^W{Jz)Z1G$G0000 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 delta 29869 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 diff --git a/include/core.h b/include/core.h index 8d855be..7a0655a 100644 --- a/include/core.h +++ b/include/core.h @@ -32,6 +32,8 @@ int lcoreDisableCursor( lua_State *L ); int lcoreIsCursorOnScreen( lua_State *L ); /* Drawing. */ int lcoreClearBackground( lua_State *L ); +int lcoreBeginDrawing( lua_State *L ); +int lcoreEndDrawing( lua_State *L ); int lcoreBeginBlendMode( lua_State *L ); int lcoreEndBlendMode( lua_State *L ); int lcoreBeginScissorMode( lua_State *L ); diff --git a/src/core.c b/src/core.c index f772617..cd7316e 100644 --- a/src/core.c +++ b/src/core.c @@ -494,6 +494,28 @@ int lcoreClearBackground( lua_State *L ) { return 1; } +/* +> RL_BeginDrawing() + +Setup canvas ( framebuffer ) to start drawing +*/ +int lcoreBeginDrawing( lua_State *L ) { + BeginDrawing(); + + return 1; +} + +/* +> RL_EndDrawing() + +End canvas drawing and swap buffers ( double buffering ) +*/ +int lcoreEndDrawing( lua_State *L ) { + EndDrawing(); + + return 1; +} + /* > success = RL_BeginBlendMode( int mode ) diff --git a/src/lua_core.c b/src/lua_core.c index 42b3f22..d7204f5 100644 --- a/src/lua_core.c +++ b/src/lua_core.c @@ -228,6 +228,10 @@ bool luaCallMain() { /* If web, set path to resources folder. */ #ifdef EMSCRIPTEN sprintf( path, "resources/main.lua" ); + /* Alternatively look for main. Could be precompiled binary file. */ + if ( !FileExists( path ) ) { + sprintf( path, "resources/main" ); + } #else sprintf( path, "%smain.lua", state->exePath ); /* Alternatively look for main. Could be precompiled binary file. */ @@ -347,6 +351,8 @@ void luaRegister() { lua_register( L, "RL_IsCursorOnScreen", lcoreIsCursorOnScreen ); /* Drawing. */ lua_register( L, "RL_ClearBackground", lcoreClearBackground ); + lua_register( L, "RL_BeginDrawing", lcoreBeginDrawing ); + lua_register( L, "RL_EndDrawing", lcoreEndDrawing ); lua_register( L, "RL_BeginBlendMode", lcoreBeginBlendMode ); lua_register( L, "RL_EndBlendMode", lcoreEndBlendMode ); lua_register( L, "RL_BeginScissorMode", lcoreBeginScissorMode ); diff --git a/src/models.c b/src/models.c index 17683b8..f105991 100644 --- a/src/models.c +++ b/src/models.c @@ -939,7 +939,14 @@ int lmodelsGenMeshHeightmap( lua_State *L ) { } Vector3 size = uluaGetVector3( L ); lua_pop( L, 1 ); - Image *heightmap = state->images[ lua_tointeger( L, -1 ) ]; + size_t imageId = lua_tointeger( L, -1 ); + + if ( !validImage( imageId ) ) { + lua_pushboolean( L, false ); + return 1; + } + + Image *heightmap = state->images[ imageId ]; int i = 0; for ( i = 0; i < state->meshCount; i++ ) { @@ -1112,7 +1119,7 @@ int lmodelsDrawMesh( lua_State *L ) { return 1; } -/* TODO Needs shader to work. Test it when we have shaders. */ +/* TODO Not testet. */ /* > success = RL_DrawMeshInstanced( Mesh mesh, Material material, Matrix{} transforms, int instances )