| export_on_save | |
|---|---|
|
|- .forge => for now it is quite empty. But you can check REY_LoggerNUtils/.forge to understand what this really is for
|- .install => `cmake install`
|- .CMakeFiles
|- REY_FetchV4 from REY_LoggerNUtils
|-
|- amVK => smol lil library for vulkan 😄
|- guide => a vulkan guide by REYNEP
|- intern
|- REY_LoggerNUtils:- [GIT-SUBMODULE] /see ## libraries section in this doc
|
|- amGHOST_logWIN32.hh = 😉 [wrapper around REY_LoggerNUtils]
|- amGHOST_System.hh = Like an Platform Agnostic "INTERFACE"
|- amGHOST_Window.hh = same as above
|- amGHOST_<smth>.hh = more like the above two- One of my 2025 goal is to create a LIVE Video on this, 😄> where I show the creation of amGHOST from ground up / void / nada / null 😉.
#include "amGHOST/amGHOST_System.hh"
int main(int argumentCount, char* argumentVector[]) {
REY::cout << "\n";
amGHOST_System::create_system(); // initializes amG_HEART
amGHOST_Window* W = amG_HEART->new_window_interface();
W->create(L"Whatever", 0, 0, 500, 600);
REY::cin.get(); // wait for terminal input
W->destroy();
REY::cout << "\n";
return 0;
}amGHOST_Window* W = amG_HEART->new_window_interface();
W->create(L"Whatever", 0, 0, 500, 600);
const char* extName = amGHOST_System::get_vulkan_os_surface_ext_name());
#include "amGHOST_VkSurfaceKHR.hh"
VkSurfaceKHR VK_S = amGHOST_VkSurfaceKHR::create_surface(W, amVK_Instance::s_vk);- These are "INTERFACE" objects.
- i.e.
class amGHOST_Systemhaspure virtualfunctions.
- i.e.
- under the hood
class amGHOST_SystemWIN32/X11orXLIB/WAYLAND/cocoagets created.- check files inside
./intern/
- check files inside
- same kinda thingy happens to all other
amGHOST_<smth>.hh - These
.hhfiles serve as both INTERFACE + DOCUMENTATION 😉
- Treat
amGHOST_<smth>.hhfiles as INTERFACE + DOCUMENTATION 😉! - Everything that you can do with
amGHOSTwill be listed inside these files. That is, basically functions and documentation for them.
- Listed inside
./amVK/readme.md
- ensure you got the libraries / modules listed below
-
REY_LoggerNUtils:- Automatically-Handled usingcmake- [GIT-SUBMODULE] + [REY_FetchV4_Way3_SUBMODULE]
- even tho it's a git-submodule. we fetch/grab/do-shits using CMAKE Scripts like
.CMakeFiles/REY_FetchV4_REY_LoggerNUtils.cmakeinstead ofgit submodule --update --init
-
vulkan:- [REY_FetchV4_SCOUT]- download
vulkan-sdkfrom:- https://vulkan.lunarg.com/sdk/home- make sure
VULKAN_SDK&VK_SDK_PATHenvironment variables are set - restart VSCode after installing vulkanSDK.
- make sure
- download
-
cmake:- download & install cmake☺️
- auto grab it if vulkan-sdk is not found.... using
REY_FetchV4::Zip
{
...
// C/C++ intelliSense Extension
"C_Cpp.files.exclude": {
"C:\\Users\\REY\\Desktop\\idk\\amGHOST\\amVK\\guide": true,
},
...
}- Logs are better than RETURN VALUES.
- The way that we need to check RETURN VALUES of every single VULKAN FUNCTION. Wrapping every vulkan function call around with a RESULT/VK_CHECK wrapper.... [all of it felt really frickin hectic >_<>] .... is exactly what led me to take this decision.