this must have been in previous commit

This commit is contained in:
2025-06-29 01:25:34 +03:00
parent cdeaac7c0c
commit b8e78174ad
217 changed files with 110408 additions and 239 deletions

View File

@@ -25,10 +25,6 @@ CUtlVector<CUtlString> engine_CompiledFiles = {
/* client entities */
"engine/cl_worldspawn.cpp",
"engine/cl_light.cpp",
/* rendering */
"engine/vk_videosdl.cpp",
"engine/vk_video.cpp",
/* io */
"engine/input.cpp",
@@ -42,10 +38,18 @@ CUtlVector<CUtlString> engine_Libraries = {
int engine_build()
{
if (Target_t::DefaultTarget().kernel == TARGET_KERNEL_DARWIN)
engine_Libraries.AppendTail("MoltenVK");
if (Target_t::DefaultTarget().kernel == TARGET_KERNEL_IOS || Target_t::DefaultTarget().kernel == TARGET_KERNEL_DARWIN)
{
engine_CompiledFiles.AppendTail("engine/ml_videosdl.cpp");
engine_CompiledFiles.AppendTail("engine/ml_video.cpp");
} else {
engine_CompiledFiles.AppendTail("engine/vk_videosdl.cpp");
engine_CompiledFiles.AppendTail("engine/vk_video.cpp");
}
if (Target_t::DefaultTarget().kernel == TARGET_KERNEL_LINUX)
{
engine_Libraries.AppendTail("vulkan");
}
CCProject compileProject = {};
CLDProject ldProject = {};
@@ -53,6 +57,8 @@ int engine_build()
compileProject.files = engine_CompiledFiles;
compileProject.includeDirectories = all_IncludeDirectories;
compileProject.bFPIC = true;
if (bStaticBuild)
compileProject.macros.AppendTail((C_Macro_t){"STATIC_BUILD","1"});
ldProject = compileProject.Compile();
ldProject.libraries = engine_Libraries;
if (bStaticBuild)

View File

@@ -97,7 +97,6 @@ void IEngine::Init()
IConsole::Execute();
};
//-----------------------------------------------------------------------------
// Purpose: Updates every frame
//-----------------------------------------------------------------------------

View File

@@ -50,6 +50,7 @@ public:
//-----------------------------------------------------------------------------
void IFileSystem::InitFilesystem()
{
#ifdef STATIC_BUILD
fs_basedir = ICommandLine::ParamValue("-basedir");
if ( fs_basedir == 0 )
fs_basedir=BASEDIR;
@@ -62,6 +63,8 @@ void IFileSystem::InitFilesystem()
fs_gamedir=GAMEDIR;
AddGameDirectory(fs_gamedir);
#endif
AddGameDirectory(".");
}
//-----------------------------------------------------------------------------

146
engine/ml_video.cpp Normal file
View File

@@ -0,0 +1,146 @@
#include "Metal/Metal.hpp"
#include "math3d.h"
#include "filesystem.h"
#include "rendering.h"
#include "tier0/lib.h"
#include "tier1/utlvector.h"
#include "tier0/platform.h"
#include "rendering.h"
mat4 g_cameraView;
IStorageBuffer *IRenderer::CreateStorageBuffer( uint32_t uSize )
{
}
IUniformBuffer *IRenderer::CreateUniformBuffer( uint32_t uSize )
{
}
IVertexBuffer *IRenderer::CreateVertexBuffer( uint32_t uSize )
{
}
IIndexBuffer *IRenderer::CreateIndexBuffer( uint32_t uSize )
{
}
IImage *IRenderer::CreateImage( EImageFormat format, uint32_t usage, uint32_t nWidth, uint32_t nHeight, uint32_t nSamples )
{
};
void IRenderer::DestroyBuffer( IBuffer *pBuffer )
{
}
void IRenderer::DestroyImage( IImage *pImage )
{
}
void IRenderer::SetConstants( uint32_t nSize, uint32_t nOffset, void *pData )
{
}
void IRenderer::Barrier( EBarrierStage stageIn, uint32_t stageOut, CUtlVector<BufferBarrier_t> buffers, CUtlVector<ImageBarrier_t> images )
{
}
void IRenderer::BindData( uint32_t binding, IBuffer *pBuffer, IImage* pImage)
{
}
void IRenderer::BindPipeline( IPipeline *pPipeline )
{
}
void IRenderer::Begin( uint32_t nWidth, uint32_t nHeight, CUtlVector<RenderingColorAttachment_t> attachments, RenderingDepthAttachment_t depth )
{
}
void IRenderer::ResetState()
{
}
void IRenderer::SetDepthMode( EDepthMode mode )
{
}
void IRenderer::Draw( IVertexBuffer *pVertex, IIndexBuffer *pIndex )
{
}
void IRenderer::End()
{
}
IGraphicsPipeline *IRenderer::CreateGraphicsPipeline(
CUtlVector<Shader_t> shaders,
CUtlVector<ShaderInput_t> inputs,
uint32_t nConstantsSize,
CUtlVector<EImageFormat> outputFormats
)
{
};
CUtlVector<RenderingStep_t> g_StepPrepass;
CUtlVector<RenderingStep_t> g_StepMeshRendering;
CUtlVector<RenderingStep_t> g_StepShading;
CUtlVector<RenderingStep_t> g_StepPostProcessing;
CUtlVector<RenderingStep_t> g_StepUI;
CRenderingStep::CRenderingStep()
{
}
CRenderingStep::CRenderingStep(const char *szStepName, CreateRenderStepFn pfn)
{
}
CPrepassRenderingStep::CPrepassRenderingStep(const char *szStepName, CreateRenderStepFn pfn)
{
g_StepPrepass.AppendTail({pfn(), szStepName});
}
CMeshRenderingStep::CMeshRenderingStep(const char *szStepName, CreateRenderStepFn pfn)
{
g_StepMeshRendering.AppendTail({pfn(), szStepName});
}
CShadingRenderingStep::CShadingRenderingStep(const char *szStepName, CreateRenderStepFn pfn)
{
g_StepShading.AppendTail({pfn(), szStepName});
}
CPostProcessingRenderingStep::CPostProcessingRenderingStep(const char *szStepName, CreateRenderStepFn pfn)
{
g_StepPostProcessing.AppendTail({pfn(), szStepName});
}
CUIRenderingStep::CUIRenderingStep(const char *szStepName, CreateRenderStepFn pfn)
{
g_StepUI.AppendTail({pfn(), szStepName});
}

45
engine/ml_videosdl.cpp Normal file
View File

@@ -0,0 +1,45 @@
#include "rendering.h"
#include "tier0/platform.h"
#include "tier1/utlvector.h"
#include "console.h"
#include "tier1/commandline.h"
#include "input.h"
#define NS_PRIVATE_IMPLEMENTATION
#define MTL_PRIVATE_IMPLEMENTATION
#define MTK_PRIVATE_IMPLEMENTATION
#define CA_PRIVATE_IMPLEMENTATION
#include "tier0/minmax_off.h"
#include "Metal/Metal.hpp"
#include "SDL3/SDL.h"
#include "SDL3/SDL_keycode.h"
#include "SDL3/SDL_metal.h"
#include "SDL3/SDL_events.h"
#include "tier0/minmax.h"
SDL_Window *g_window;
void IInput::SetMouseMode( EMouseMode mode )
{
switch (mode)
{
case MOUSE_MODE_GAME:
SDL_SetWindowRelativeMouseMode(g_window, true);
return;
default:
SDL_SetWindowRelativeMouseMode(g_window, false);
return;
}
}
void IVideo::Init()
{
if (!SDL_Init(SDL_INIT_VIDEO | SDL_INIT_EVENTS))
V_printf("%s\n",SDL_GetError());
g_window = SDL_CreateWindow("rtt", 1280, 720, SDL_WINDOW_VULKAN);
}
void IVideo::Frame( float fDelta )
{
}

View File

@@ -12,12 +12,15 @@ void *g_serverdll;
ConVar g_tickrate("tickrate","64",FCVAR_PROTECTED);
float g_fAccumulator = 0;
extern "C" void IGame_Load(void);
//-----------------------------------------------------------------------------
// Loads game and client libraries if linking dynamically, otherwise it runs
// IGame_Load compiled statically.
//-----------------------------------------------------------------------------
void IServer::LoadGame( const char *psz )
{
#ifndef STATIC_BUILD
#ifdef __WIN32__
g_serverdll = Plat_LoadLibrary(CUtlString("%s/bin/server.dll", psz));
#endif
@@ -34,6 +37,9 @@ void IServer::LoadGame( const char *psz )
if (!GameLoadfn)
Plat_FatalErrorFunc("IGame_Load not found in libserver.so\n");
GameLoadfn();
#else
IGame_Load();
#endif
};
//-----------------------------------------------------------------------------

View File

@@ -20,7 +20,6 @@
#endif
#else
// Other platforms
#define STBI_THREAD_LOCAL thread_local
#endif
#include "stb_image.h"

View File

@@ -8,9 +8,7 @@
#include "vulkan/vulkan.h"
#include "SDL3/SDL.h"
#include "vulkan/vulkan_core.h"
#include <SDL3/SDL_keycode.h>
#define SDL_MAIN_HANDLED
#include "SDL3/SDL_main.h"
#include "SDL3/SDL_keycode.h"
#include "SDL3/SDL_vulkan.h"
#include "SDL3/SDL_events.h"
@@ -234,7 +232,8 @@ EInputKey ISDL_KeyName(SDL_Keycode key)
void IVideo::Init()
{
SDL_Init(SDL_INIT_VIDEO | SDL_INIT_EVENTS);
if (!SDL_Init(SDL_INIT_VIDEO | SDL_INIT_EVENTS))
V_printf("%s\n",SDL_GetError());
g_window = SDL_CreateWindow("rtt", 1280, 720, SDL_WINDOW_VULKAN);
unsigned int nExtensionCount = 0;
@@ -466,6 +465,16 @@ void IVideo::Frame( float fDelta )
beginInfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;
vkBeginCommandBuffer(g_vkCommandBuffer, &beginInfo);
IVulkan::Frame();
VkClearColorValue clear = {
.float32 = {
1,1,0,1
}
};
VkImageSubresourceRange range = {
.levelCount = 1,
.layerCount = 1,
};
vkCmdClearColorImage(g_vkCommandBuffer, g_swapchainImage, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, &clear, 1, &range);
vkEndCommandBuffer(g_vkCommandBuffer);
VkPipelineStageFlags waitStages[] = {VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT};