IDevice::createShaderProgram - dpw105f18/papago-api GitHub Wiki
Create a shader program
unique_ptr<IShaderProgram> createShaderProgram (IVertexShader &vertexShader, IFragmentShader &fragmentShader)
Returns
Returns a unique pointer to an IShaderProgram instance.
Parameters
| Parameter | Description |
|---|---|
| vertexShader | vertexShader is a shader program contained in byte format, its used to create a full shaderprogram that is to be used in a renderpass. |
| fragmentShader | fragmentShader is a shader program contained in byte format, its used used to create a full shaderprogram that is to be used in a renderpass. |
Example of createShaderProgram
#include "isurface.hpp"
#include "idevice.hpp"
#include "parser.hpp"
#include "ishader_program.hpp"
int main()
{
/*
setup code omitted
*/
//Find the GLSL-SPIRV compiler
auto parser = Parser("[Path to VulkanSDK]/VulkanSDK/1.0.65.0/Bin32/glslangValidator.exe");
//Compile the vertex and fragment shader from GLSL to SPIRV and store it in memory
auto vertexShader = parser.compileVertexShader(readFile("shader/vertexShader.vert"),"main");
auto fragmentShader = parser.compileFragmentShader(readFile("shader/fragmentShader.frag"),"main");
//Use the vertex and fragment shader to create a complete shader program. This will be later used during render passes.
auto shaderProgram = device->createShaderProgram(*vertexShader, *fragmentShader);
}