Castor3D 0.16.0
Multiplatform 3D engine
|
#include <RenderSystem.hpp>
Public Member Functions | |
C3D_API | RenderSystem (Engine &engine, AshPluginDescription desc, Extensions instanceExtensions={}, Extensions deviceExtensions={}) |
C3D_API | RenderSystem (Engine &engine, Renderer renderer, Extensions deviceExtensions={}) |
C3D_API SpirVShader | compileShader (VkShaderStageFlagBits stage, castor::String const &name, ast::Shader const &shader, ast::EntryPointConfig const &entryPoint) |
C3D_API SpirVShader | compileShader (VkShaderStageFlagBits stage, castor::String const &name, castor::MbString const &glsl) const |
C3D_API SpirVShader const & | compileShader (ShaderModule &shaderModule) |
C3D_API SpirVShader const & | compileShader (ProgramModule &shaderModule, ast::EntryPointConfig const &entryPoint) |
C3D_API castor::Matrix4x4f | getFrustum (float left, float right, float bottom, float top, float zNear, float zFar) const |
C3D_API castor::Matrix4x4f | getPerspective (castor::Angle const &fovy, float aspect, float zNear, float zFar) const |
C3D_API castor::Matrix4x4f | getOrtho (float left, float right, float bottom, float top, float zNear, float zFar) const |
C3D_API castor::Matrix4x4f | getInfinitePerspective (castor::Angle const &fovy, float aspect, float zNear) const |
Getters. | |
C3D_API Texture const & | getPrefilteredBrdfTexture () const |
AshPluginDescription const & | getDescription () const noexcept |
GpuInformations const & | getGpuInformations () const noexcept |
castor::String | getRendererType () const noexcept |
bool | hasDevice () const noexcept |
RenderDevice & | getRenderDevice () const noexcept |
bool | hasSsbo () const noexcept |
ashes::Instance const & | getInstance () const noexcept |
VkPhysicalDeviceProperties const & | getProperties () const noexcept |
VkPhysicalDeviceMemoryProperties const & | getMemoryProperties () const noexcept |
VkPhysicalDeviceFeatures const & | getFeatures () const noexcept |
ashes::PhysicalDevice const & | getPhysicalDevice () const noexcept |
bool | hasFeature (GpuFeature feature) const noexcept |
bool | hasStereoRendering () const noexcept |
bool | hasShaderStorageBuffers () const noexcept |
bool | hasShaderType (VkShaderStageFlagBits type) const noexcept |
uint32_t | getValue (GpuMin index) const noexcept |
uint32_t | getValue (GpuMax index) const noexcept |
bool | hasLLPV () const noexcept |
ashes::Buffer< castor::Point4f > const & | getRandomStorage () const noexcept |
Public Member Functions inherited from castor::OwnedBy< Engine > | |
Engine * | getOwner () const |
Static Public Member Functions | |
static C3D_API ashes::InstancePtr | createInstance (Engine const &engine, AshPluginDescription const &desc, Extensions &instanceExtensions) |
static C3D_API void | completeLayerNames (Engine const &engine, ashes::VkLayerPropertiesArray const &layers, ashes::StringArray &names) |
Additional Inherited Members | |
Protected Member Functions inherited from castor::OwnedBy< Engine > | |
OwnedBy (Engine &owner) | |
Constructor. | |
C3D_API castor3d::RenderSystem::RenderSystem | ( | Engine & | engine, |
AshPluginDescription | desc, | ||
Extensions | instanceExtensions = {}, | ||
Extensions | deviceExtensions = {} ) |
Constructor.
[in] | engine | The engine. |
[in] | desc | The Ashes plugin description. |
[in] | instanceExtensions | The instance extensions. |
[in] | deviceExtensions | The device extensions. |
C3D_API castor3d::RenderSystem::RenderSystem | ( | Engine & | engine, |
Renderer | renderer, | ||
Extensions | deviceExtensions = {} ) |
Constructor.
[in] | engine | The engine. |
[in] | renderer | The selected renderer. |
[in] | deviceExtensions | The device extensions. |
C3D_API SpirVShader const & castor3d::RenderSystem::compileShader | ( | ProgramModule & | shaderModule, |
ast::EntryPointConfig const & | entryPoint ) |
Compiles a shader module to the necessary shader language.
[in] | shaderModule | The shader to compile. |
[in] | entryPoint | The shader entry point to compile. |
C3D_API SpirVShader const & castor3d::RenderSystem::compileShader | ( | ShaderModule & | shaderModule | ) |
Compiles a shader module to the necessary shader language.
[in] | shaderModule | The shader to compile. |
C3D_API SpirVShader castor3d::RenderSystem::compileShader | ( | VkShaderStageFlagBits | stage, |
castor::String const & | name, | ||
ast::Shader const & | shader, | ||
ast::EntryPointConfig const & | entryPoint ) |
Compiles a shader module to the necessary shader language.
[in] | stage | The shader stage. |
[in] | name | The shader name. |
[in] | shader | The shader to compile. |
[in] | entryPoint | The shader entry point to compile. |
C3D_API SpirVShader castor3d::RenderSystem::compileShader | ( | VkShaderStageFlagBits | stage, |
castor::String const & | name, | ||
castor::MbString const & | glsl ) const |
Compiles a shader module to the necessary shader language.
[in] | stage | The shader stage. |
[in] | name | The shader name. |
[in] | glsl | The shader to compile. |
|
static |
Adds the instance layers names to the given names.
[in] | engine | The engine. |
[in] | layers | The available layers. |
[in,out] | names | The liste to fill. |
|
static |
Creates a Vulkan instance usable with Castor3D.
[in] | engine | The engine. |
[in] | desc | The Ashes plugin description. |
[in] | instanceExtensions | The instance extensions. |
|
inlinenoexcept |
References castor3d::Renderer::desc.
Referenced by getRendererType(), and hasSsbo().
|
inlinenoexcept |
C3D_API castor::Matrix4x4f castor3d::RenderSystem::getFrustum | ( | float | left, |
float | right, | ||
float | bottom, | ||
float | top, | ||
float | zNear, | ||
float | zFar ) const |
Computes an frustum projection matrix.
[in] | left,right | The left and right planes position. |
[in] | top,bottom | The top and bottom planes position. |
[in] | zNear,zFar | The near and far planes position. |
|
inlinenoexcept |
C3D_API castor::Matrix4x4f castor3d::RenderSystem::getInfinitePerspective | ( | castor::Angle const & | fovy, |
float | aspect, | ||
float | zNear ) const |
Computes a perspective projection matrix with no far plane clipping.
[in] | fovy | The vertical aperture angle. |
[in] | aspect | The width / height ratio. |
[in] | zNear | The near plane position. |
|
inlinenoexcept |
References castor3d::Renderer::instance.
|
inlinenoexcept |
C3D_API castor::Matrix4x4f castor3d::RenderSystem::getOrtho | ( | float | left, |
float | right, | ||
float | bottom, | ||
float | top, | ||
float | zNear, | ||
float | zFar ) const |
Computes an orthographic projection matrix.
[in] | left,right | The left and right planes position. |
[in] | top,bottom | The top and bottom planes position. |
[in] | zNear,zFar | The near and far planes position. |
C3D_API castor::Matrix4x4f castor3d::RenderSystem::getPerspective | ( | castor::Angle const & | fovy, |
float | aspect, | ||
float | zNear, | ||
float | zFar ) const |
Computes a perspective projection matrix.
[in] | fovy | The vertical aperture angle. |
[in] | aspect | The width / height ratio. |
[in] | zNear | The near plane position. |
[in] | zFar | The far plane position. |
|
inlinenoexcept |
References castor3d::Renderer::gpu.
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
References castor3d::GpuInformations::hasShaderStorageBuffers().
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
References castor3d::GpuInformations::hasStereoRendering().