せっかくなのでGLSL向けのSyntaxHighlighterも作ってみました。
こちらの記事も合わせて見てください
適用例は下記のようになります。
[glsl]
#version 450
#extension GL_ARB_separate_shader_objects : enable
#extension GL_ARB_shading_language_420pack : enable
//————————————————————————————————-
// Input Definitions.
//————————————————————————————————-
layout(location = 0) in vec3 InputPosition; // 位置座標.
layout(location = 1) in vec4 InputColor; // 頂点カラー.
//————————————————————————————————-
// Output Definitions.
//————————————————————————————————-
layout(location = 0) out vec4 OutputColor; // 頂点カラー.
out gl_PerVertex
{
vec4 gl_Position; // 位置座標.
};
//————————————————————————————————-
// 頂点シェーダメインエントリーポイントです.
//————————————————————————————————-
void main()
{
vec4 localPos = vec4(InputPosition, 1.0f);
gl_Position = localPos;
OutputColor = InputColor;
// Flip Y-Coordinate.
gl_Position.y = -gl_Position.y;
}
[/glsl]
[glsl]
#version 450
#extension GL_ARB_separate_shader_objects : enable
#extension GL_ARB_shading_language_420pack : enable
//————————————————————————————————-
// Input Definitions.
//————————————————————————————————-
layout(location = 0) in vec4 InputColor;
layout(location = 1) in vec2 InputTexCoord;
//————————————————————————————————-
// Output Definitions.
//————————————————————————————————-
layout(location = 0) out vec4 ColorTarget0;
//————————————————————————————————-
// Constant
//————————————————————————————————-
layout(binding = 1) uniform sampler ColorSmp;
layout(binding = 2) uniform texture2D ColorMap;
//————————————————————————————————-
// フラグメントシェーダメインエントリーポイントです.
//————————————————————————————————-
void main()
{
ColorTarget0 = texture(sampler2D(ColorMap, ColorSmp), InputTexCoord) * InputColor;
}
[/glsl]