WIP implementing createNode API.

Added KRContext::m_nodeMap and initialization logic.
Added code to hello_cube smoke test to call KrCreateNode.  (Commented until test can pass)
This commit is contained in:
2022-09-21 23:55:24 -07:00
parent 3f4289ec08
commit 6c8bf9fa2c
6 changed files with 66 additions and 5 deletions

View File

@@ -34,10 +34,44 @@
void smoke_load()
{
KrCreateSceneInfo create_scene_info = {};
create_scene_info.sType = KR_STRUCTURE_TYPE_CREATE_SCENE;
create_scene_info.resourceHandle = 10;
create_scene_info.pSceneName = "cube";
enum
{
kSceneResourceHandle = 10,
kSkyboxTextureResourceHandle
};
enum
{
kCameraNodeHandle = 10
};
/*
KrMapResourceInfo map_skybox_resource = { KR_STRUCTURE_TYPE_MAP_RESOURCE };
map_skybox_resource.pResourceName = "skybox";
map_skybox_resource.resourceHandle = kSkyboxTextureResourceHandle;
KrResult res = KrMapResource(&map_skybox_resource);
assert(res == KR_SUCCESS);
*/
// Create a scene
KrCreateSceneInfo create_scene_info = { KR_STRUCTURE_TYPE_CREATE_SCENE };
create_scene_info.resourceHandle = kSceneResourceHandle;
create_scene_info.pSceneName = "my_scene";
KrResult res = KrCreateScene(&create_scene_info);
assert(res == KR_SUCCESS);
/*
// Add a camera to the scene
KrCreateNodeInfo create_camera_info = { KR_STRUCTURE_TYPE_CREATE_NODE };
res = KrInitNodeInfo(&create_camera_info.node, KR_STRUCTURE_TYPE_NODE_CAMERA);
assert(res == KR_SUCCESS);
create_camera_info.relativeNodeHandle = -1;
create_camera_info.newNodeHandle = kCameraNodeHandle;
create_camera_info.sceneHandle = kSceneResourceHandle;
create_camera_info.node.pName = "my_camera";
create_camera_info.node.camera.surface = 1;
// create_camera_info.node.camera.skybox_texture = kSkyboxTextureResourceHandle;
res = KrCreateNode(&create_camera_info);
assert(res == KR_SUCCESS);
*/
}

View File

@@ -63,6 +63,7 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine
KrInitializeInfo init_info = {};
init_info.sType = KR_STRUCTURE_TYPE_INITIALIZE;
init_info.resourceMapSize = 1024;
init_info.nodeMapSize = 1024;
KrResult res = KrInitialize(&init_info);
if (res != KR_SUCCESS) {
// printf("Failed to initialize Kraken!\n");