Kemena3D
Loading...
Searching...
No Matches
kshadernode.h File Reference
#include <string>
#include <vector>
#include <map>
#include <set>
#include <unordered_map>
#include "kdatatype.h"
#include "nlohmann/json.hpp"
Include dependency graph for kshadernode.h:

Go to the source code of this file.

Classes

struct  kemena::kShaderPin
 A single input or output connection point on a shader node. More...
struct  kemena::kShaderNode
 A node in the shader graph: a typed operation with input/output pins. More...
 A directed edge connecting an output pin to an input pin. More...
struct  kemena::kShaderGraph
 A complete node-based shader graph: nodes, links, and identity. More...
struct  kemena::kShaderCompileResult
 Result of compiling a shader graph into GLSL. More...
class  kemena::kShaderCompiler
 Compiles a kShaderGraph into combined GLSL source. More...

Namespaces

namespace  kemena
 Top-level Kemena3D engine namespace.

Enumerations

enum class  kemena::kPinType {
  kemena::Float , kemena::Vec2 , kemena::Vec3 , kemena::Vec4 ,
  kemena::Sampler2D , kemena::SamplerCube
}
 Data type carried by a shader-node pin (link/connection type). More...
enum class  kemena::kShaderNodeType {
  kemena::ConstFloat , kemena::ConstVec2 , kemena::ConstVec3 , kemena::ConstVec4 ,
  kemena::UVCoord , kemena::Time , kemena::VertexColor , kemena::WorldPosition ,
  kemena::ViewDirection , kemena::VertexNormal , kemena::Texture2D , kemena::TextureCube ,
  kemena::Add , kemena::Subtract , kemena::Multiply , kemena::Divide ,
  kemena::Dot , kemena::Cross , kemena::Normalize , kemena::Length ,
  kemena::Clamp , kemena::Mix , kemena::Pow , kemena::Abs ,
  kemena::Floor , kemena::Ceil , kemena::Fract , kemena::Sqrt ,
  kemena::Min , kemena::Max , kemena::Step , kemena::Smoothstep ,
  kemena::OneMinus , kemena::Split , kemena::Combine , kemena::Swizzle ,
  kemena::MaterialTiling , kemena::MaterialAmbient , kemena::MaterialDiffuse , kemena::MaterialSpecular ,
  kemena::MaterialShininess , kemena::MaterialMetallic , kemena::MaterialRoughness , kemena::OutputFlat ,
  kemena::OutputPhong , kemena::OutputPBR
}
 Identifies the kind of operation a shader graph node performs. More...

Functions

const char * kemena::kPinTypeName (kPinType t)
 Returns the GLSL type keyword for a pin type.
bool kemena::kPinCompatible (kPinType from, kPinType to)
 Tests whether an output pin type may feed into an input pin type.