write all new functions headers
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
@@ -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);
|
||||
|
@@ -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);
|
||||
|
@@ -20,6 +20,7 @@ typedef struct gryphnInstanceFunctionLayers {
|
||||
PFN_gnDestroyInstance destroyInstance;
|
||||
PFN_gnQueryPhysicalDeviceFeatures getPhysicalDeviceFeatures;
|
||||
PFN_gnQueryPhysicalDeviceProperties getPhysicalDeviceProperties;
|
||||
PFN_gnQueryPhysicalDeviceLimits getPhysicalDeviceLimits;
|
||||
struct gryphnInstanceFunctionLayers* next;
|
||||
} gryphnInstanceFunctionLayers;
|
||||
|
||||
|
Reference in New Issue
Block a user