Implemented API for model node creation.

hello_cube smoke test now adds a model node and assigns the built-in cube model
This commit is contained in:
2024-09-21 23:32:38 -07:00
parent 3b9a5d6f81
commit 0a66f11ff0
17 changed files with 95 additions and 29 deletions

View File

@@ -37,12 +37,14 @@ bool smoke_load()
enum
{
kSceneResourceHandle = 10,
kSkyboxTextureResourceHandle
kSkyboxTextureResourceHandle,
kCubeMeshResourceHandle
};
enum
{
kCameraNodeHandle = 10
kCameraNodeHandle = 10,
kCubeNodeHandle = 11
};
KrLoadResourceInfo load_resource_info = {};
@@ -63,6 +65,12 @@ bool smoke_load()
KrResult res = KrMapResource(&map_skybox_resource);
assert(res == KR_SUCCESS);
*/
KrMapResourceInfo map_cube_mesh_resource = { KR_STRUCTURE_TYPE_MAP_RESOURCE };
map_cube_mesh_resource.pResourceName = "__cube";
map_cube_mesh_resource.resourceHandle = kCubeMeshResourceHandle;
res = KrMapResource(&map_cube_mesh_resource);
assert(res == KR_SUCCESS);
// Create a scene
KrCreateSceneInfo create_scene_info = { KR_STRUCTURE_TYPE_CREATE_SCENE };
@@ -85,5 +93,18 @@ bool smoke_load()
res = KrCreateNode(&create_camera_info);
assert(res == KR_SUCCESS);
// Add a cube to the scene
KrCreateNodeInfo create_cube_info = { KR_STRUCTURE_TYPE_CREATE_NODE };
res = KrInitNodeInfo(&create_cube_info.node, KR_STRUCTURE_TYPE_NODE_MODEL);
assert(res == KR_SUCCESS);
create_cube_info.relativeNodeHandle = KR_NULL_HANDLE;
create_cube_info.location = KR_SCENE_NODE_APPEND_CHILD;
create_cube_info.newNodeHandle = kCubeNodeHandle;
create_cube_info.sceneHandle = kSceneResourceHandle;
create_cube_info.node.pName = "my_cube";
create_cube_info.node.model.mesh = kCubeMeshResourceHandle;
res = KrCreateNode(&create_cube_info);
assert(res == KR_SUCCESS);
return true;
}