working on rendering

This commit is contained in:
2025-12-23 15:03:44 +02:00
parent 5a71b3023a
commit 3b4e2eea32
65 changed files with 1971 additions and 190 deletions

View File

@@ -18,7 +18,63 @@ extern "C" void FunnyMain( int argc, char **argv )
ServerGameDLL()->Init();
IShader *pShader = NULL;
IBuffer *pCameraInfoBuffer = NULL;
IMaterial *pMaterial = NULL;
IImage *pOutputImage = NULL;
IVertexBuffer *pVertices = NULL;
float vertices[9] = {
0,-0.5, 0,
0.5,0.5, 0,
-0.5,0.5, 0,
};
pVertices = g_pRenderContext->CreateVertexBuffer(36);
void *pMapped = pVertices->Map();
V_memcpy(pMapped, vertices, 36);
pVertices->Unmap();
pCameraInfoBuffer = g_pRenderContext->CreateConstantBuffer(64);
pShader = g_pRenderContext->CreateShader("funnygame/core/shaders/flat.shader_c");
pMaterial = g_pRenderContext->CreateMaterial(pShader);
pMaterial->PSSetConstantsBuffer(0, pCameraInfoBuffer);
pOutputImage = g_pRenderContext->CreateRenderTarget(
g_pRenderContext->GetNewOutputImageWidth(),
g_pRenderContext->GetNewOutputImageHeight(),
IMAGE_FORMAT_RGBA8_UNORM,
MULTISAMPLE_TYPE_NONE);
IRenderCommandList *pCommandList = g_pRenderContext->CreateCommandList();
pCommandList->StartRecording();
pCommandList->SetRenderTarget(0, pOutputImage);
pCommandList->SetMaterial(pMaterial);
pCommandList->SetVertexBuffer(0, pVertices);
pCommandList->DrawPrimitives(3, 0, 1, 0);
pCommandList->EndRecording();
for (;;) {
/*
if (g_pRenderContext->BIsOutputImageOutdated())
{
uint32_t nWidth;
uint32_t nHeight;
pOutputImage = g_pRenderContext->CreateRenderTarget(
g_pRenderContext->GetNewOutputImageWidth(),
g_pRenderContext->GetNewOutputImageHeight(),
IMAGE_FORMAT_RGBA8_UNORM,
MULTISAMPLE_TYPE_NONE);
}
*/
g_pRenderContext->SubmitCommandList(pCommandList);
g_pRenderContext->SetOutputImage(pOutputImage);
gamewindow->UpdateWindow();
Materials()->Frame(0);
};

View File

@@ -83,6 +83,7 @@ public:
delete pHandle;
}
virtual CUtlBuffer<unsigned char> Read( IFileHandle *pFile ) override { return NULL; };
virtual const char *ReadString( IFileHandle *pFile ) override { return NULL; };
};
EXPOSE_FILESYSTEM(CPAKFileSystem, "pakfs");