diff --git a/projects/core/src/instance/gryphn_instance.c b/projects/core/src/instance/gryphn_instance.c index 29a0084..30ebd37 100644 --- a/projects/core/src/instance/gryphn_instance.c +++ b/projects/core/src/instance/gryphn_instance.c @@ -15,7 +15,7 @@ gnReturnCode gnCreateInstance(gnInstanceHandle* instance, gnInstanceCreateInfo* (*instance)->hasDebugger = GN_FALSE; (*instance)->layers = loaderLayerArrayListCreate(); - loaderLayerArrayListAdd(&(*instance)->layers, loadLayer((loaderInfo){ + loaderLayerArrayListAdd((*instance)->layers, loadLayer((loaderInfo){ .api = info->coreAPI, .layerToLoad = api_layer })); @@ -23,20 +23,20 @@ gnReturnCode gnCreateInstance(gnInstanceHandle* instance, gnInstanceCreateInfo* gnBool unsupportedExtension = GN_FALSE; for (int c = 0; c < GN_EXT_MAX; c++) (*instance)->enabledExtensions[c] = GN_FALSE; for (int c = 0; c < GN_LAYER_MAX; c++) (*instance)->enabledLayerCounts[c] = 0; - for (int i = 0; i < info->extensionCount; i++) { + for (uint32_t i = 0; i < info->extensionCount; i++) { (*instance)->enabledExtensions[info->extensions[i]] = GN_TRUE; if (!gnIsExtensionSuppoted(info->coreAPI, info->extensions[i])) unsupportedExtension = GN_TRUE; } - if ((*instance)->enabledExtensions[GN_EXT_SYNCHRONIZATION]) (*instance)->layers.data[0].syncFunctions = loadAPISyncFunctions(info->coreAPI); - if ((*instance)->enabledExtensions[GN_EXT_QUEUES]) (*instance)->layers.data[0].queueFunctions = loadAPIQueueFunctions(info->coreAPI); + // if ((*instance)->enabledExtensions[GN_EXT_SYNCHRONIZATION]) (*instance)->layers.data[0].syncFunctions = loadAPISyncFunctions(info->coreAPI); + // if ((*instance)->enabledExtensions[GN_EXT_QUEUES]) (*instance)->layers.data[0].queueFunctions = loadAPIQueueFunctions(info->coreAPI); if (info->debuggerInfo.layerCount > 0) { - for (int i = 0; i < info->debuggerInfo.layerCount; i++) { + for (uint32_t i = 0; i < info->debuggerInfo.layerCount; i++) { (*instance)->enabledLayerCounts[info->debuggerInfo.layers[i]]++; if (info->debuggerInfo.layers[i] == GN_DEBUGGER_LAYER_FUNCTIONS) { - loaderLayerArrayListAdd(&(*instance)->layers, loadLayer((loaderInfo){ + loaderLayerArrayListAdd((*instance)->layers, loadLayer((loaderInfo){ .api = info->coreAPI, .layerToLoad = function_checker_layer })); @@ -52,15 +52,16 @@ gnReturnCode gnCreateInstance(gnInstanceHandle* instance, gnInstanceCreateInfo* )); int layerIDX = 0; - for (int i = 0; i < info->debuggerInfo.layerCount; i++) { + for (uint32_t i = 0; i < info->debuggerInfo.layerCount; i++) { if (info->debuggerInfo.layers[i] == GN_DEBUGGER_LAYER_FUNCTIONS) (*instance)->allLayers[layerIDX++] = checkerLoadInstanceFunctions(); (*instance)->allLayers[layerIDX - 1].next = &(*instance)->allLayers[layerIDX]; } (*instance)->allLayers[layerIDX] = gryphnLoadAPILayer(info->coreAPI); (*instance)->functions = &(*instance)->allLayers[0]; - (*instance)->currentLayer = ((*instance)->layers.count - 1); - for (int i = 0; i < (*instance)->layers.count; i++) (*instance)->layers.data[i].layerIndex = i; - (*instance)->callingLayer = &(*instance)->layers.data[(*instance)->layers.count - 1]; + + resetLayer(*instance); + for (uint32_t i = 0; i < loaderLayerArrayListCount((*instance)->layers); i++) loaderLayerArrayListRefAt((*instance)->layers, i)->layerIndex = i; + (*instance)->callingLayer = loaderLayerArrayListRefAt((*instance)->layers, (*instance)->currentLayer); if (unsupportedExtension) return GN_UNLOADED_EXTENSION; return (*instance)->functions->createInstance(*instance, info, (*instance)->functions->next); } diff --git a/projects/core/src/uniforms/gryphn_uniform_pool.c b/projects/core/src/uniforms/gryphn_uniform_pool.c index d0bd999..c9c7019 100644 --- a/projects/core/src/uniforms/gryphn_uniform_pool.c +++ b/projects/core/src/uniforms/gryphn_uniform_pool.c @@ -13,12 +13,12 @@ gnReturnCode gnCreateUniformPool(gnUniformPool* pool, gnDeviceHandle device) { // you own this memory now gnUniformArrayList gnUniformPoolAllocateUniforms(gnUniformPool pool, gnUniformAllocationInfo allocInfo) { gnUniform* uniforms = pool->device->instance->callingLayer->deviceFunctions._gnUniformPoolAllocateUniforms(pool, allocInfo); - for (int i = 0; i < allocInfo.setCount; i++) + for (uint32_t i = 0; i < allocInfo.setCount; i++) uniforms[i]->pool = pool; gnUniformArrayList list = gnUniformArrayListCreate(); - gnUniformArrayListResize(&list, allocInfo.setCount); - for (int i = 0; i < allocInfo.setCount; i++) list.data[i] = uniforms[i]; + gnUniformArrayListResize(list, allocInfo.setCount); + for (uint32_t i = 0; i < allocInfo.setCount; i++) *gnUniformArrayListRefAt(list, i) = uniforms[i]; return list; } diff --git a/projects/loader/src/gryphn_loader.c b/projects/loader/src/gryphn_loader.c index bb8523e..26915ed 100644 --- a/projects/loader/src/gryphn_loader.c +++ b/projects/loader/src/gryphn_loader.c @@ -169,11 +169,11 @@ loaderLayer* loaderGetNextLayer(gnInstance instance) { nextLayer = 0; resetLayer(instance); } - return &instance->layers.data[nextLayer]; + return loaderLayerArrayListRefAt(instance->layers, nextLayer); } void resetLayer(gnInstance instance) { - instance->currentLayer = (instance->layers.count - 1); + instance->currentLayer = loaderLayerArrayListCount(instance->layers) - 1; } diff --git a/projects/utils b/projects/utils index b5f0d16..e3286f1 160000 --- a/projects/utils +++ b/projects/utils @@ -1 +1 @@ -Subproject commit b5f0d1641286155548abf933225e81bbc20239d1 +Subproject commit e3286f119d8debe0803503ffd16c6af71bf14980