depth, normals i guess

This commit is contained in:
2026-02-19 22:06:21 +02:00
parent 4dd2e13c48
commit 04b0f02e7f
18 changed files with 129 additions and 55 deletions

View File

@@ -16,6 +16,8 @@ class CFunnyGameBridge: public IEngineBridge
virtual void Frame( float fDelta ) override;
virtual void Shutdown() override;
virtual void ConnectInterface( const char *psz, void *pInterface ) override;
IMeshInstance *m_pMeshInstance;
float m_fTime = 0;
};
IEngineBridge *EngineBridge()
@@ -35,26 +37,17 @@ void CFunnyGameBridge::Init()
g_pWorldRenderer->Init();
pShader = g_pRenderContext->CreateShader("game/core/shaders/mesh_raster.shader_c");
float cubeVertices[][3] = {
{-1, -1, 1}, { 1, -1, 1}, { 1, 1, 1},
{-1, -1, 1}, { 1, 1, 1}, {-1, 1, 1},
{-1, -1, -1}, {-1, 1, -1}, { 1, 1, -1},
{-1, -1, -1}, { 1, 1, -1}, { 1, -1, -1},
{-1, -1, -1}, {-1, -1, 1}, {-1, 1, 1},
{-1, -1, -1}, {-1, 1, 1}, {-1, 1, -1},
{ 1, -1, -1}, { 1, 1, -1}, { 1, 1, 1},
{ 1, -1, -1}, { 1, 1, 1}, { 1, -1, 1},
{-1, 1, -1}, {-1, 1, 1}, { 1, 1, 1},
{-1, 1, -1}, { 1, 1, 1}, { 1, 1, -1},
{-1, -1, -1}, { 1, -1, -1}, { 1, -1, 1},
{-1, -1, -1}, { 1, -1, 1}, {-1, -1, 1}
};
pBuffer = g_pRenderContext->CreateVertexBuffer(sizeof(cubeVertices));
IFileHandle *pHandle = filesystem->Open("game/core/meshes/cube.fmesh_c", FILEMODE_READ);
float *pData = (float*)V_malloc(filesystem->Size(pHandle));
filesystem->Read(pHandle, pData, filesystem->Size(pHandle));
pBuffer = g_pRenderContext->CreateVertexBuffer(filesystem->Size(pHandle));
pBuffer->Lock();
void *pMapped = pBuffer->Map();
V_memcpy(pMapped, cubeVertices, sizeof(cubeVertices));
V_memcpy(pMapped, pData, filesystem->Size(pHandle));
pBuffer->Unmap();
pBuffer->Unlock();
V_free(pData);
filesystem->Close(pHandle);
IMesh *pMesh = g_pWorldRenderer->CreateMesh("Triangle");
@@ -67,8 +60,8 @@ void CFunnyGameBridge::Init()
pMesh->SetVertices(pBuffer);
pMesh->SetMaterial(pMaterial);
IMeshInstance *pMeshInstance = g_pWorldRenderer->CreateInstance(pMesh);
pMeshInstance->SetPosition({1,1,1});
m_pMeshInstance = g_pWorldRenderer->CreateInstance(pMesh);
m_pMeshInstance->SetScale({5, 5, 5});
}
void CFunnyGameBridge::Tick( float fDelta )
@@ -77,6 +70,11 @@ void CFunnyGameBridge::Tick( float fDelta )
void CFunnyGameBridge::Frame( float fDelta )
{
versor q;
m_fTime += fDelta;
glm_euler_zyx_quat((vec3){0,m_fTime, 0}, q);
m_pMeshInstance->SetPosition({sin(m_fTime/3)*10,0,0});
m_pMeshInstance->SetRotation({q[0], q[1], q[2], q[3]});
g_pWorldRenderer->Frame(fDelta);
}
@@ -89,6 +87,7 @@ void CFunnyGameBridge::Shutdown()
void CFunnyGameBridge::ConnectInterface( const char *psz, void *pInterface )
{
CONNECT_INTERFACE(RENDER_CONTEXT_INTERFACE_VERSION, g_pRenderContext);
CONNECT_INTERFACE(FILESYSTEM_INTERFACE_VERSION, filesystem);
CONNECT_INTERFACE("MainWindow", g_pMainWindow);
}