fnish metals new return codes
This commit is contained in:
@@ -7,5 +7,5 @@ typedef struct gnPlatformInstance_t {
|
||||
NSView* metalContentView;
|
||||
} gnPlatformInstance;
|
||||
|
||||
gnReturnCode createMetalInstance(gnInstanceHandle instance, gnInstanceInfo instanceInfo);
|
||||
gnReturnCode createMetalInstance(gnInstanceHandle instance, gnInstanceCreateInfo* instanceInfo);
|
||||
void destroyMetalInstance(gnInstance instance);
|
||||
|
@@ -1,7 +1,7 @@
|
||||
#include "metal_instance.h"
|
||||
|
||||
// metal instances are kinda useless
|
||||
gnReturnCode createMetalInstance(gnInstanceHandle instance, gnInstanceInfo instanceInfo) {
|
||||
gnReturnCode createMetalInstance(gnInstanceHandle instance, gnInstanceCreateInfo* instanceInfo) {
|
||||
if (instance->instance == NULL) instance->instance = malloc(sizeof(gnPlatformInstance));
|
||||
return GN_SUCCESS;
|
||||
}
|
||||
|
@@ -87,7 +87,7 @@ gnReturnCode createMetalGraphicsPipeline(gnGraphicsPipeline graphicsPipeline, gn
|
||||
});
|
||||
[shaderLib release];
|
||||
free((void*)shaderCode);
|
||||
return GN_FAILED_TO_CREATE_SHADER_MODULE;
|
||||
return GN_FAILED_CREATE_OBJECT;
|
||||
}
|
||||
|
||||
|
||||
@@ -135,7 +135,7 @@ gnReturnCode createMetalGraphicsPipeline(gnGraphicsPipeline graphicsPipeline, gn
|
||||
[descriptor release];
|
||||
[vertexDescriptor release];
|
||||
[error release];
|
||||
if (graphicsPipeline->graphicsPipeline->graphicsPipeline == nil) return GN_FAILED_TO_CREATE_GRAPHICS_PIPELINE;
|
||||
if (graphicsPipeline->graphicsPipeline->graphicsPipeline == nil) return GN_FAILED_CREATE_OBJECT;
|
||||
return GN_SUCCESS;
|
||||
}
|
||||
|
||||
|
@@ -8,7 +8,7 @@ gnReturnCode metalPresent(gnOutputDeviceHandle device, gnPresentInfo info) {
|
||||
for (int i =0 ; i < info.presentationQueueCount; i++) {
|
||||
info.presentationQueues[i]->info.surface->windowSurface->layer.device = device->outputDevice->device;
|
||||
id<CAMetalDrawable> drawable = [info.presentationQueues[i]->info.surface->windowSurface->layer nextDrawable];
|
||||
if (drawable == nil) return GN_FAILED_TO_CREATE_FRAMEBUFFER;
|
||||
if (drawable == nil) return GN_UNKNOWN_ERROR;
|
||||
|
||||
__block gnPresentationQueue presentationQueue = info.presentationQueues[i];
|
||||
__block uint32_t imageIndex = info.imageIndices[i];
|
||||
@@ -54,7 +54,7 @@ gnReturnCode metalPresentSync(gnOutputDeviceHandle device, gnPresentSyncInfo inf
|
||||
for (int i =0 ; i < info.presentationQueueCount; i++) {
|
||||
if (info.presentationQueues[i]->info.surface->windowSurface->layer.device == nil) info.presentationQueues[i]->info.surface->windowSurface->layer.device = device->outputDevice->device;
|
||||
id<CAMetalDrawable> drawable = [info.presentationQueues[i]->info.surface->windowSurface->layer nextDrawable];
|
||||
if (drawable == nil) return GN_FAILED_TO_CREATE_FRAMEBUFFER;
|
||||
if (drawable == nil) return GN_UNKNOWN_ERROR;
|
||||
|
||||
__block gnPresentationQueue presentationQueue = info.presentationQueues[i];
|
||||
__block uint32_t imageIndex = info.imageIndices[i];
|
||||
|
@@ -5,20 +5,6 @@
|
||||
#include "sync/semaphore/metal_semaphore.h"
|
||||
|
||||
gnReturnCode createMetalPresentationQueue(gnPresentationQueueHandle presentationQueue, const gnDevice device, gnPresentationQueueInfo presentationInfo) {
|
||||
if (presentationInfo.minImageCount > 3) {
|
||||
gnDebuggerSetErrorMessage(device->instance->debugger, (gnMessageData){
|
||||
.message = gnCreateString("On Metal you cannot have more than 3 images in a presentation queue")
|
||||
});
|
||||
return GN_UNSUPPORTED_IMAGE_COUNT;
|
||||
}
|
||||
|
||||
if (presentationInfo.minImageCount < 2) {
|
||||
gnDebuggerSetErrorMessage(device->instance->debugger, (gnMessageData){
|
||||
.message = gnCreateString("On Metal you cannot have less than 2 images in a presentation queue")
|
||||
});
|
||||
return GN_UNSUPPORTED_IMAGE_COUNT;
|
||||
}
|
||||
|
||||
presentationQueue->presentationQueue = malloc(sizeof(struct gnPlatformPresentationQueue_t));
|
||||
presentationQueue->presentationQueue->createdSize.x = presentationInfo.surface->windowSurface->layer.visibleRect.size.width;
|
||||
presentationQueue->presentationQueue->createdSize.y = presentationInfo.surface->windowSurface->layer.visibleRect.size.height;
|
||||
|
Reference in New Issue
Block a user