ヒアドキュメント

heredoc.png
シェーダをソースコードの中に埋め込みたいときなどに便利なheredoc
string doc = R"( 文章 )";

で挟めば全部リテラル認識されます。改行してもok!
#include <iostream>
#include <string>
using namespace std;
int main(int argc, char const* argv[])
{
    string doc = R"(
            out vec2 vUV;
            void main () {
              gl_Position = uModelViewProj * vec4(pos, 1.0);
            }
            )";
    cout << doc << endl;
    return 0;
}

R(" ..")の中ではシンタックスハイライトが利かないのが残念ですが。。
この中身ではエスケープシーケンスしてもそのまま円マークが表示されます。
ファイルパスを記述するのに便利です。

shader-embed

サポートサイト Wikidot.com shader-embed