this must have been in previous commit
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -97,7 +97,6 @@ void IEngine::Init()
|
||||
IConsole::Execute();
|
||||
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: Updates every frame
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
@@ -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
146
engine/ml_video.cpp
Normal 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
45
engine/ml_videosdl.cpp
Normal 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 )
|
||||
{
|
||||
}
|
||||
@@ -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
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
#endif
|
||||
#else
|
||||
// Other platforms
|
||||
#define STBI_THREAD_LOCAL thread_local
|
||||
#endif
|
||||
#include "stb_image.h"
|
||||
|
||||
|
||||
@@ -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};
|
||||
|
||||
Reference in New Issue
Block a user