write all new functions headers

This commit is contained in:
Gregory Wells
2025-09-19 09:21:18 -04:00
parent c495a7a0e8
commit a0450a0351
4 changed files with 82 additions and 3 deletions

View File

@@ -10,6 +10,10 @@ gnPhysicalDeviceProperties gnQueryPhysicalDeviceFeatures(gnInstanceHandle instan
return instance->functions->getPhysicalDeviceFeatures(instance, device, instance->functions->next);
}
gnPhysicalDeviceProperties gnQueryPhysicalDeviceLimits(gnInstanceHandle instance, gnPhysicalDeviceHandle device) {
return instance->functions->getPhysicalDeviceLimits(instance, device, instance->functions->next);
}
gnBool gnPhysicalDeviceCanPresentToSurface(gnInstanceHandle instance, gnPhysicalDeviceHandle device, gnWindowSurfaceHandle windowSurface) {
return instance->callingLayer->instanceFunctions._gnPhysicalDeviceCanPresentToSurface(device, windowSurface);
}

View File

@@ -2,6 +2,7 @@
#include "stdint.h"
#include "utils/gryphn_string.h"
#include "gryphn_handles.h"
#include <utils/math/gryphn_vec2.h>
typedef enum gnPhysicalDeviceType {
GN_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU,
@@ -11,7 +12,7 @@ typedef enum gnPhysicalDeviceType {
GN_PHYSICAL_DEVICE_TYPE_CPU,
} gnPhysicalDeviceType;
typedef enum gnMultisampleCountFlags {
typedef enum gnSampleCountFlags {
GN_SAMPLE_BIT_1 = 1 << 0, // 0x01
GN_SAMPLE_BIT_2 = 1 << 1, // 0x02
GN_SAMPLE_BIT_4 = 1 << 2, // 0x04
@@ -19,7 +20,7 @@ typedef enum gnMultisampleCountFlags {
GN_SAMPLE_BIT_16 = 1 << 4, // 0x10
GN_SAMPLE_BIT_32 = 1 << 5, // 0x20
GN_SAMPLE_BIT_64 = 1 << 6, // 0x40
} gnMultisampleCountFlags;
} gnSampleCountFlags;
typedef struct gnPhysicalDeviceProperties {
uint32_t driverVersion;
@@ -40,7 +41,79 @@ typedef struct gnPhysicalDeviceFeatures {
gnBool samplerAnisotropy;
} gnPhysicalDeviceFeatures;
typedef struct gnPhysicalDeviceLimits {
uint32_t maxImageExtent1D;
uint32_t maxImageExtent2D;
uint32_t maxImageExtent3D;
uint32_t maxImageExtentCube;
uint32_t maxImageArrayLayers;
uint32_t maxTexelBufferElements;
uint32_t maxUniformBufferRange;
uint32_t maxStorageBufferRange;
uint32_t maxPushConstantsSize;
uint32_t maxMemoryAllocationCount;
uint32_t maxSamplerAllocationCount;
uint32_t maxBoundUniforms;
uint32_t maxPerStageUniformSamplers;
uint32_t maxPerStageUniformUniformBuffers;
uint32_t maxPerStageUniformStorageBuffers;
uint32_t maxPerStageUniformSampledImages;
uint32_t maxPerStageUniformStorageImages;
uint32_t maxPerStageUniformInputAttachments;
uint32_t maxPerStageResources;
uint32_t maxUniformSamplers;
uint32_t maxUniformUniformBuffers;
uint32_t maxUniformUniformBuffersDynamic;
uint32_t maxUniformStorageBuffers;
uint32_t maxUniformStorageBuffersDynamic;
uint32_t maxUniformSampledImages;
uint32_t maxUniformStorageImages;
uint32_t maxUniformInputAttachments;
uint32_t maxVertexInputAttributes;
uint32_t maxVertexInputBindings;
uint32_t maxVertexInputAttributeOffset;
uint32_t maxVertexInputBindingStride;
uint32_t maxVertexOutputComponents;
uint32_t maxTessellationGenerationLevel;
uint32_t maxTessellationPatchSize;
uint32_t maxTessellationControlPerVertexInputComponents;
uint32_t maxTessellationControlPerVertexOutputComponents;
uint32_t maxTessellationControlPerPatchOutputComponents;
uint32_t maxTessellationControlTotalOutputComponents;
uint32_t maxTessellationEvaluationInputComponents;
uint32_t maxTessellationEvaluationOutputComponents;
uint32_t maxGeometryShaderInvocations;
uint32_t maxGeometryInputComponents;
uint32_t maxGeometryOutputComponents;
uint32_t maxGeometryOutputVertices;
uint32_t maxGeometryTotalOutputComponents;
uint32_t maxFragmentInputComponents;
uint32_t maxFragmentOutputAttachments;
uint32_t maxFragmentDualSrcAttachments;
uint32_t maxFragmentCombinedOutputResources;
uint32_t maxDrawIndexedIndexValue;
uint32_t maxDrawIndirectCount;
float maxSamplerLodBias;
float maxSamplerAnisotropy;
uint32_t maxViewports;
uint32_t maxViewportExtents[2];
float viewportBoundsRange[2];
gnExtent2D maxFramebufferExtent;
uint32_t maxFramebufferLayers;
gnSampleCountFlags framebufferColorSampleCounts;
gnSampleCountFlags framebufferDepthSampleCounts;
gnSampleCountFlags framebufferStencilSampleCounts;
gnSampleCountFlags framebufferNoAttachmentsSampleCounts;
uint32_t maxColorAttachments;
float pointSizeRange[2];
float lineWidthRange[2];
float pointSizeGranularity;
float lineWidthGranularity;
gnBool strictLines;
} gnPhysicalDeviceLimits;
gnPhysicalDeviceProperties gnQueryPhysicalDeviceProperties(gnInstanceHandle instance, gnPhysicalDeviceHandle device);
gnPhysicalDeviceProperties gnQueryPhysicalDeviceFeatures(gnInstanceHandle instance, gnPhysicalDeviceHandle device);
gnPhysicalDeviceProperties gnQueryPhysicalDeviceLimits(gnInstanceHandle instance, gnPhysicalDeviceHandle device);
gnBool gnPhysicalDeviceCanPresentToSurface(gnInstance instance, gnPhysicalDeviceHandle device, gnWindowSurfaceHandle windowSurface);

View File

@@ -26,8 +26,9 @@ typedef gnBool (*PFN_gnIsInstanceSuitable)(gnInstanceHandle, gnSuitableField, gr
typedef gnReturnCode (*PFN_gnInstanceQueryDevices)(gnInstanceHandle, uint32_t*, gnPhysicalDeviceHandle*, gryphnInstanceFunctionLayers*);
typedef void (*PFN_gnDestroyInstance)(gnInstanceHandle, gryphnInstanceFunctionLayers*, gnAllocators*);
typedef gnPhysicalDeviceProperties (*PFN_gnQueryPhysicalDeviceFeatures)(gnInstanceHandle, gnPhysicalDeviceHandle, gryphnInstanceFunctionLayers*);
typedef gnPhysicalDeviceProperties (*PFN_gnQueryPhysicalDeviceProperties)(gnInstance, gnPhysicalDeviceHandle, gryphnInstanceFunctionLayers*);
typedef gnPhysicalDeviceProperties (*PFN_gnQueryPhysicalDeviceFeatures)(gnInstanceHandle, gnPhysicalDeviceHandle, gryphnInstanceFunctionLayers*);
typedef gnPhysicalDeviceProperties (*PFN_gnQueryPhysicalDeviceLimits)(gnInstanceHandle, gnPhysicalDeviceHandle, gryphnInstanceFunctionLayers*);
typedef struct gnInstanceFunctions {
gnBool (*_gnPhysicalDeviceCanPresentToSurface)(gnPhysicalDevice device, gnWindowSurfaceHandle windowSurface);

View File

@@ -20,6 +20,7 @@ typedef struct gryphnInstanceFunctionLayers {
PFN_gnDestroyInstance destroyInstance;
PFN_gnQueryPhysicalDeviceFeatures getPhysicalDeviceFeatures;
PFN_gnQueryPhysicalDeviceProperties getPhysicalDeviceProperties;
PFN_gnQueryPhysicalDeviceLimits getPhysicalDeviceLimits;
struct gryphnInstanceFunctionLayers* next;
} gryphnInstanceFunctionLayers;