GLSL向けシンタックスハイライトも作ってみた

せっかくなので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]

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください