Vertex buffers state and Shader state functions. Vertex buffers management WIP.

This commit is contained in:
jussi
2023-08-17 18:33:50 +03:00
parent 5438a70b0a
commit b7b46ada04
14 changed files with 830 additions and 16 deletions

View File

@@ -36,15 +36,15 @@ function RL.process( delta )
cameraPos[2] = cameraPos[2] - cameraSpeed * delta
end
-- Rotate.
if RL.IsKeyDown( string.byte( "E" ) ) then -- Or RL.IsKeyDown( KEY_E )
if RL.IsKeyDown( RL.KEY_E ) then -- Or RL.IsKeyDown( KEY_E )
cameraRot = cameraRot + cameraRotSpeed * delta
elseif RL.IsKeyDown( string.byte( "Q" ) ) then
elseif RL.IsKeyDown( RL.KEY_Q ) then
cameraRot = cameraRot - cameraRotSpeed * delta
end
-- Zoom.
if RL.IsKeyDown( string.byte( "R" ) ) then
if RL.IsKeyDown( RL.KEY_R ) then
cameraZoom = cameraZoom + cameraZoomSpeed * delta
elseif RL.IsKeyDown( string.byte( "F" ) ) then
elseif RL.IsKeyDown( RL.KEY_F ) then
cameraZoom = cameraZoom - cameraZoomSpeed * delta
end
end
@@ -62,6 +62,7 @@ function RL.draw()
RL.DrawTextureRec( tileTexture, { 0, 0, 32, 32 }, { x * 32, y * 32 }, RL.WHITE )
end
end
-- Draw hero.
RL.DrawTextureRec( tileTexture, { 3 * 32, 0, 32, 32 }, { cameraPos[1] - 16, cameraPos[2] - 16 }, RL.WHITE )
RL.EndMode2D()

View File

@@ -85,5 +85,5 @@ function RL.draw()
Space: Play animation\
Up arrow: Inreace animation speed\
Down arrow: Decreace animation speed",
{ 10, 10 }, 30, 5, RL.WHITE )
{ 10, 10 }, 30, 5, RL.WHITE )
end

56
examples/rlgl/main.lua Normal file
View File

@@ -0,0 +1,56 @@
-- Work In Progress!
local monitor = 0
local texture = -1
local vaoId = -1
local vboId = -1
local triSize = 32.0
local vertices = {
0.0, 0.0, 0.0,
0.0, 0.0, triSize,
triSize, 0.0, triSize
}
local colors = {
RL.RED, RL.RED, RL.RED,
RL.GREEN, RL.GREEN, RL.GREEN,
RL.BLUE, RL.BLUE, RL.BLUE
}
function RL.init()
local mPos = RL.GetMonitorPosition( monitor )
local mSize = RL.GetMonitorSize( monitor )
local winSize = RL.GetScreenSize()
RL.SetWindowState( RL.FLAG_WINDOW_RESIZABLE )
RL.SetWindowState( RL.FLAG_VSYNC_HINT )
RL.SetWindowPosition( { mPos[1] + mSize[1] / 2 - winSize[1] / 2, mPos[2] + mSize[2] / 2 - winSize[2] / 2 } )
vaoId = RL.rlLoadVertexArray()
RL.rlEnableVertexArray( vaoId )
-- vboId = RL.rlLoadVertexBuffer( vertexBuffer, RL.RL_UNSIGNED_BYTE, false )
vboId = RL.rlLoadVertexBuffer( vertices, RL.RL_FLOAT, false )
RL.rlSetVertexAttribute( 0, 3, RL.RL_FLOAT, false, 0, 0 )
RL.rlEnableVertexAttribute( 0 )
RL.rlDisableVertexArray()
-- RL.DrawMesh( )
-- print( "vaoId", vaoId )
-- print( "vboId", vboId )
end
function RL.draw()
RL.ClearBackground( { 100, 150, 100 } )
end
function RL.exit()
if 0 <= vaoId then
RL.rlUnloadVertexArray( vaoId )
end
if 0 <= vboId then
RL.rlUnloadVertexBuffer( vboId )
end
end