KarmaEngine
Game Engine for practical learning and research purposes
Loading...
Searching...
No Matches
Todo List
Member Karma::AActor::RemoveOwnedComponent (std::shared_ptr< UActorComponent > Component)
Not functional yet
Member Karma::Application::DecommisionApplicationEngine ()
Need to think how this should be written with GC in mind
Member Karma::Application::HookInputSystem (std::shared_ptr< Input > input)
Think about the need to uplift to more abstract implementation
Member Karma::Application::InitializeApplicationEngine ()
Ponder over the usage of KEngine type instances for Editor and Game
Member Karma::BufferElement::BufferElement (ShaderDataType type, const std::string &name, bool normalized=false, uint64_t offset=0)
Think about vulkan needs of normalized parameter, with opengl in context, and try to abstract accordingly. Also may need to think about the custom default offsets
Class Karma::Camera
This class needs major revamp with reparenting(?) with AActor, just like Unreal Engine's CameraActor
Member Karma::Camera::GetPosition () const
Use different data structure, provided in Ganit/Transform.h
Member Karma::CastChecked (const U &Src, ECastCheckedType::Type CheckType=ECastCheckedType::NullChecked)
static_cast may require more addition depending on the usage
Member Karma::EnumHasAnyFlags (Enum Flags, Enum Contains)
may need to write in seperate file
Member Karma::FActorSpawnParameters::m_Name
Need to write auto naming mechanism
Member Karma::FFieldClass::GetAllFieldClasses ()
Write function definition when required
Member Karma::FFieldClass::GetNameToFieldClassMap ()
Write function definition when requreid
Member Karma::FFieldClass::IsChildOf (const FFieldClass *InClass) const
Need to try with various cases for intended purpose
Member Karma::FFieldVariant::GetRawPointer () const
Ponder how this is different from previous similar function
Member Karma::FFieldVariant::IsA (const UClass *InClass) const
Function definition is missing
Member Karma::FFieldVariant::IsA (const FFieldClass *InClass) const
Function definition is missing
Member Karma::FFieldVariant::IsValid () const
Ponder over the routine
Member Karma::FFieldVariant::IsValidLowLevel () const
Function definition is missing
Member Karma::FFieldVariant::ToFieldUnsafe () const
Ponder
Member Karma::FMath::CountTrailingZeros (uint32_t Value)
Not yet functional because no clear
Member Karma::FMemory::MallocZeroed (SIZE_T Count, uint32 Alignment=DEFAULT_ALIGNMENT)
Make Alignment functional in Malloc
Member Karma::FStaticConstructObjectParameters::m_Name
If no value (NAME_None) is specified, the object will be given a unique name in the form of ClassName_#.
Member Karma::FUObjectArray::AddUObject (UObject *Object)
Benchmark if this is bottle neck for SpawnActor
Member Karma::FUObjectArray::TIterator::TIterator (const FUObjectArray &InArray, bool bOnlyGCedObjects=false)
Garbage collection may require some changes here
Member Karma::GraphicsContext::OnWindowResize (WindowResizeEvent &event)=0
Seems OpenGL specific. Either think about usage in Vulkan or re design
Member Karma::GraphicsContext::SwapBuffers ()=0
This seems to be an OpenGL specific call. Need to design api accordingly
Member Karma::int32
find or write appropriate class for such type
Member Karma::KarmaClassObjectMap::FindClassObjects (const UClass *Key)
write class registration system for comparing UClass
Member Karma::KarmaClassObjectMap::FindOrAddClass (const UClass *Key)
Priority based: memory management needed, especially since new is used to allocate KarmaVector<UObject*> on heap
Member Karma::KarmaGui::MemAlloc (size_t size)
Make use of Karma's memory management (KarmaSmriti) class, with modifications, just like that for UObject.
Member Karma::KarmaGui::MemFree (void *ptr)
Make use of Karma's memory management (KarmaSmriti) class, with modifications, just like that for UObject.
Struct Karma::KarmaGui_ImplVulkan_Data
Ponder upon the fatness.
Member Karma::KarmaGui_ImplVulkanH_Window::RenderArea
Ponder, how to implement the context switch from Editor rendering to Game rendering.
Struct Karma::KarmaGuiBackendRendererUserData
This just fattens the KarmaBackendRendererUserData with disregard to I (Interface seggregation principle) of SOLID principles. Try using polymorphism by wormbo's "other way round" phrase and making OpenGL3_Data and Vulkan_Data child classes of KarmaGuiBackendRendererUserData.
Member Karma::KarmaGuiOpenGLHandler::KarmaGui_ImplOpenGL3_SetupRenderState (KGDrawData *draw_data, int fb_width, int fb_height, GLuint vertex_array_object)
An amature work: try using math GLM's projection matrix for orthographic view
Member Karma::KarmaGuiOpenGLHandler::KarmaGui_ImplOpenGL3_ShutdownPlatformInterface ()
KarmaGuiOpenGLHandler seems to be not doing the right form of cleaning of resources because Renderer_Destroy_Window is not set like that in KarmaGuiVulkanHandler. Try to find a way.
Member Karma::KarmaGuiRenderer::KarmaGui_ImplVulkan_Init (KarmaGui_ImplVulkan_InitInfo *initInfo)
Think about using moving the function to KarmaGuiVulkanHandler::KarmaGui_ImplVulkan_Init instead (for better keeping IDK?)
Member Karma::KarmaGuiRenderer::SetUpKarmaGuiRenderer (GLFWwindow *window)
Move the Vulkan part to KarmaGuiVulkanHandler for instance KarmaGui_ImplVulkan_Init. Or maybe just ponder first since I seem to have attempted that.
Member Karma::KarmaGuiVulkanHandler::KarmaGui_ImplVulkan_NewFrame ()
Ponder over
Member Karma::KarmaGuiVulkanHandler::KarmaGui_ImplVulkan_SetupRenderState (KGDrawData *drawData, VkPipeline pipeline, VkCommandBuffer commandBuffer, KarmaGui_ImplVulkanH_ImageFrameRenderBuffers *remderingBufferData, int width, int height)
Ponder over the commandBuffer usage (should backend have seperate commandbuffer?)
Member Karma::KarmaGuiVulkanHandler::KarmaGui_ImplVulkan_SetupRenderStateFor3DRendering (Scene *sceneToDraw, VkCommandBuffer commandBuffer, KGDrawData *drawData)
Ponder over the commandBuffer usage (should backend have seperate commandbuffer?)
Member Karma::KEngine::CleanupGameViewport ()
Write the logic once viewport is implemented
Member Karma::KEngine::WorldAdded (UWorld *World)
Not functional
Member Karma::KEngine::WorldDestroyed (UWorld *InWorld)
Not functional
Member Karma::OpenGLShader::Bind () const override
See to remove the "texSampler" and make generic
Member Karma::OpenGLShader::Bind (const std::string &texShaderName) const override
Maybe make arrangements for list of uniforms and rename texShaderName
Member Karma::OpenGLShader::UnBind () const override
Ponder about uniform unbinding
Member Karma::RenderCommand::Clear ()
Seems like VulkanRendererAPI is not using this function call for clearing.
Member Karma::RendererAPI::None
None rendering could be supported in future
Member Karma::RF_Dynamic
: BP2CPP_remove
Member Karma::Shader::Bind () const
For OpenGL only. Vulkan Bind() is empty and may need abstract thinking
Member Karma::Shader::Bind (const std::string &texShaderNames) const
Think with the previous binding routiine
Member Karma::Shader::UnBind () const
Only OpenGL uses this, that too, for shader and not uniform. May need pondering over.
Class Karma::Texture
Need to integrate VulkanTexture in abstract way (vulkantexture shouldn't be explicit in this class, violation of SRP?)
Member Karma::Texture::GetVulkanTexture () const
Needs to be abstracted (no rendering API specific functionality in this class)
Member Karma::TSubclassOf< TClass >::TSubclassOf (U &&From)
Definition for ImplicitConv needs to be provided
Member Karma::UClass::GetDefaultObject (bool bCreateIfNeeded=true) const
Will be completely written once the scope of defaultobject is needed
Member Karma::UClass::SetupObjectInitializer (FObjectInitializer &ObjectInitializer) const
Placeholder for the moment.
Member Karma::ULevel::Initialize (const FURL &InURL)
Empty at the moment. Shall be filled in future with enough context.
Member Karma::ULevel::SetWorldSettings (AWorldSettings *NewWorldSettings)
not completely functional yet
Member Karma::UniformBufferObject::UploadUniformBuffer (size_t frameIndex=0)=0
Need to rewrite implementation of this virtual function because Material::ProcessForSubmission() makes agnostic call and VulkanContext::UploadUBO also makes call to upload uniform which is seperate from Material::ProcessForSubmission.
Member Karma::UObject::BeginDestroy ()
To be written with Shiva logic for UObject destruction.
Member Karma::UObject::FinishDestroy ()
To be written with Shiva logic for UObject destruction.
Member Karma::UObject::GetDesc ()
Place holder for now. Plan to rewrite once Editor reaches that stage
Member Karma::UObject::IsSelected () const
UE this doesn't belong here, but it doesn't belong anywhere else any better. To be written after Editor is functional with UObjects
Member Karma::UObjectBase::AddToRoot ()
To be implemented when garbage collection system is finished
Member Karma::UObjectBase::ClearGarbage ()
Not functional
Member Karma::UObjectBase::FixGarbageOrPendingKillInternalObjectFlags (const EInternalObjectFlags InFlags)
Need to write decent garbage collection system. Then this may become useful.
Member Karma::UObjectBase::IsValidLowLevel () const
Not functional
Member Karma::UObjectBase::MarkAsGarbage ()
Not functional
Member Karma::UStruct::IsChildOf (const UStruct *SomeBase) const

write class registration system for comparing UClass

Need to write a decent class registration code for class comparison

Member Karma::UWorld::AddOnActorSpawnedHandler () const
Not functional
Member Karma::UWorld::InitializeActorsForPlay (const FURL &InURL, bool bResetTime=true)
See if actor iteration is required
Member Karma::UWorld::ModifyLevel (ULevel *Level) const
Not functional. Should be completed once we delve into game logic and sorts while making actual game?
Member Karma::UWorld::OnActorSpawned ()
Not functional
Member Karma::VertexArray::Bind () const =0
Seems only specific to OpenGL. Need to think the abstraction with Vulkan in mind
Member Karma::VertexArray::SetMaterial (std::shared_ptr< Material > material)=0
a seperate setting of shader may be redundant
Member Karma::VertexArray::UnBind () const =0
Again, need to think the abstraction
Member Karma::VulkanIndexBuffer::Bind () const override
Ponder over Vulkan equivalent of glBindBuffer
Member Karma::VulkanIndexBuffer::UnBind () const override
Ponder over Vulkan equivalent of glBindBuffer
Member Karma::VulkanVertexBuffer::Bind () const override
Ponder over Vulkan equivalent of glBindBuffer
Member Karma::VulkanVertexBuffer::UnBind () const override
Ponder over Vulkan equivalent of glBindBuffer(GL_ARRAY_BUFFER, 0);