summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/bgfx/tools
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/bgfx/tools')
-rw-r--r--3rdparty/bgfx/tools/geometryc/geometryc.cpp1375
-rw-r--r--3rdparty/bgfx/tools/geometryv/fs_mesh.bin.h525
-rw-r--r--3rdparty/bgfx/tools/geometryv/fs_mesh.sc64
-rw-r--r--3rdparty/bgfx/tools/geometryv/geometryv.cpp1332
-rw-r--r--3rdparty/bgfx/tools/geometryv/makefile6
-rw-r--r--3rdparty/bgfx/tools/geometryv/varying.def.sc4
-rw-r--r--3rdparty/bgfx/tools/geometryv/vs_mesh.bin.h298
-rw-r--r--3rdparty/bgfx/tools/geometryv/vs_mesh.sc17
-rw-r--r--3rdparty/bgfx/tools/shaderc/shaderc.cpp1155
-rw-r--r--3rdparty/bgfx/tools/shaderc/shaderc.h101
-rw-r--r--3rdparty/bgfx/tools/shaderc/shaderc_glsl.cpp151
-rw-r--r--3rdparty/bgfx/tools/shaderc/shaderc_hlsl.cpp151
-rw-r--r--3rdparty/bgfx/tools/shaderc/shaderc_metal.cpp700
-rw-r--r--3rdparty/bgfx/tools/shaderc/shaderc_pssl.cpp6
-rw-r--r--3rdparty/bgfx/tools/shaderc/shaderc_spirv.cpp917
-rw-r--r--3rdparty/bgfx/tools/texturev/common.sh121
-rw-r--r--3rdparty/bgfx/tools/texturev/fs_texture.bin.h1331
-rw-r--r--3rdparty/bgfx/tools/texturev/fs_texture.sc9
-rw-r--r--3rdparty/bgfx/tools/texturev/fs_texture_3d.bin.h1366
-rw-r--r--3rdparty/bgfx/tools/texturev/fs_texture_3d.sc8
-rw-r--r--3rdparty/bgfx/tools/texturev/fs_texture_array.bin.h698
-rw-r--r--3rdparty/bgfx/tools/texturev/fs_texture_array.sc4
-rw-r--r--3rdparty/bgfx/tools/texturev/fs_texture_cube.bin.h1509
-rw-r--r--3rdparty/bgfx/tools/texturev/fs_texture_cube.sc9
-rw-r--r--3rdparty/bgfx/tools/texturev/fs_texture_cube2.bin.h1325
-rw-r--r--3rdparty/bgfx/tools/texturev/fs_texture_cube2.sc9
-rw-r--r--3rdparty/bgfx/tools/texturev/fs_texture_msdf.bin.h602
-rw-r--r--3rdparty/bgfx/tools/texturev/fs_texture_msdf.sc4
-rw-r--r--3rdparty/bgfx/tools/texturev/fs_texture_sdf.bin.h607
-rw-r--r--3rdparty/bgfx/tools/texturev/fs_texture_sdf.sc4
-rw-r--r--3rdparty/bgfx/tools/texturev/makefile6
-rw-r--r--3rdparty/bgfx/tools/texturev/texturev.cpp414
-rw-r--r--3rdparty/bgfx/tools/texturev/vs_texture.bin.h455
-rw-r--r--3rdparty/bgfx/tools/texturev/vs_texture.sc4
-rw-r--r--3rdparty/bgfx/tools/texturev/vs_texture_cube.bin.h462
-rw-r--r--3rdparty/bgfx/tools/texturev/vs_texture_cube.sc4
36 files changed, 11453 insertions, 4300 deletions
diff --git a/3rdparty/bgfx/tools/geometryc/geometryc.cpp b/3rdparty/bgfx/tools/geometryc/geometryc.cpp
index 1e1f175e102..ba0d0274da6 100644
--- a/3rdparty/bgfx/tools/geometryc/geometryc.cpp
+++ b/3rdparty/bgfx/tools/geometryc/geometryc.cpp
@@ -1,25 +1,24 @@
/*
- * Copyright 2011-2018 Branimir Karadzic. All rights reserved.
- * License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause
+ * Copyright 2011-2022 Branimir Karadzic. All rights reserved.
+ * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE
*/
-#include <stdio.h>
-
#include <algorithm>
-#include <vector>
#include <bx/string.h>
#include <bgfx/bgfx.h>
-#include "../../src/vertexdecl.h"
+#include "../../src/vertexlayout.h"
#include <tinystl/allocator.h>
-#include <tinystl/unordered_map.h>
-#include <tinystl/unordered_set.h>
#include <tinystl/string.h>
+#include <tinystl/vector.h>
namespace stl = tinystl;
-#include <forsyth-too/forsythtriangleorderoptimizer.h>
-#include <ib-compress/indexbuffercompression.h>
+#include <meshoptimizer/src/meshoptimizer.h>
+
+#define CGLTF_VALIDATE_ENABLE_ASSERTS BX_CONFIG_DEBUG
+#define CGLTF_IMPLEMENTATION
+#include <cgltf/cgltf.h>
#define BGFX_GEOMETRYC_VERSION_MAJOR 1
#define BGFX_GEOMETRYC_VERSION_MINOR 0
@@ -27,7 +26,7 @@ namespace stl = tinystl;
#if 0
# define BX_TRACE(_format, ...) \
do { \
- printf(BX_FILE_LINE_LITERAL "BGFX " _format "\n", ##__VA_ARGS__); \
+ bx::printf(BX_FILE_LINE_LITERAL "BGFX " _format "\n", ##__VA_ARGS__); \
} while(0)
# define BX_WARN(_condition, _format, ...) \
@@ -38,7 +37,7 @@ namespace stl = tinystl;
} \
} while(0)
-# define BX_CHECK(_condition, _format, ...) \
+# define BX_ASSERT(_condition, _format, ...) \
do { \
if (!(_condition) ) \
{ \
@@ -49,42 +48,31 @@ namespace stl = tinystl;
#endif // 0
#include <bx/bx.h>
-#include <bx/debug.h>
+#include <bx/bounds.h>
#include <bx/commandline.h>
-#include <bx/timer.h>
+#include <bx/debug.h>
+#include <bx/file.h>
#include <bx/hash.h>
-#include <bx/uint32_t.h>
#include <bx/math.h>
-#include <bx/file.h>
-
-#include "bounds.h"
-
-struct Vector3
-{
- float x;
- float y;
- float z;
-};
+#include <bx/timer.h>
+#include <bx/uint32_t.h>
-typedef std::vector<Vector3> Vector3Array;
+typedef stl::vector<bx::Vec3> Vec3Array;
struct Index3
{
int32_t m_position;
int32_t m_texcoord;
int32_t m_normal;
- int32_t m_vertexIndex;
- int32_t m_vbc; // Barycentric ID. Holds eigher 0, 1 or 2.
+ int32_t m_vbc; // Barycentric ID. Holds either 0, 1 or 2.
};
-typedef stl::unordered_map<uint64_t, Index3> Index3Map;
-
-struct Triangle
+struct TriIndices
{
- uint64_t m_index[3];
+ Index3 m_index[3];
};
-typedef std::vector<Triangle> TriangleArray;
+typedef stl::vector<TriIndices> TriangleArray;
struct Group
{
@@ -94,7 +82,7 @@ struct Group
stl::string m_material;
};
-typedef std::vector<Group> GroupArray;
+typedef stl::vector<Group> GroupArray;
struct Primitive
{
@@ -105,62 +93,146 @@ struct Primitive
stl::string m_name;
};
-typedef std::vector<Primitive> PrimitiveArray;
+typedef stl::vector<Primitive> PrimitiveArray;
+
+struct Axis
+{
+ enum Enum
+ {
+ NegativeX,
+ PositiveX,
+ NegativeY,
+ PositiveY,
+ NegativeZ,
+ PositiveZ,
+ };
+};
+
+static bx::Vec3 s_axisVectors[6] =
+{
+ bx::Vec3(-1.0f, 0.0f, 0.0f),
+ bx::Vec3( 1.0f, 0.0f, 0.0f),
+ bx::Vec3( 0.0f,-1.0f, 0.0f),
+ bx::Vec3( 0.0f, 1.0f, 0.0f),
+ bx::Vec3( 0.0f, 0.0f,-1.0f),
+ bx::Vec3( 0.0f, 0.0f, 1.0f),
+};
+
+struct CoordinateSystem
+{
+ bx::Handedness::Enum m_handedness;
+ Axis::Enum m_up;
+ Axis::Enum m_forward;
+};
+
+struct CoordinateSystemMapping
+{
+ const char* m_param;
+ CoordinateSystem m_coordinateSystem;
+};
+
+static const CoordinateSystemMapping s_coordinateSystemMappings[] =
+{
+ { "lh-up+y", { bx::Handedness::Left, Axis::PositiveY, Axis::PositiveZ } },
+ { "lh-up+z", { bx::Handedness::Left, Axis::PositiveZ, Axis::PositiveY } },
+ { "rh-up+y", { bx::Handedness::Right, Axis::PositiveY, Axis::PositiveZ } },
+ { "rh-up+z", { bx::Handedness::Right, Axis::PositiveZ, Axis::PositiveY } },
+};
+
+struct Mesh
+{
+ Vec3Array m_positions;
+ Vec3Array m_normals;
+ Vec3Array m_texcoords;
+ TriangleArray m_triangles;
+ GroupArray m_groups;
+
+ CoordinateSystem m_coordinateSystem;
+};
static uint32_t s_obbSteps = 17;
-#define BGFX_CHUNK_MAGIC_VB BX_MAKEFOURCC('V', 'B', ' ', 0x1)
-#define BGFX_CHUNK_MAGIC_IB BX_MAKEFOURCC('I', 'B', ' ', 0x0)
-#define BGFX_CHUNK_MAGIC_IBC BX_MAKEFOURCC('I', 'B', 'C', 0x0)
-#define BGFX_CHUNK_MAGIC_PRI BX_MAKEFOURCC('P', 'R', 'I', 0x0)
+constexpr uint32_t kChunkVertexBuffer = BX_MAKEFOURCC('V', 'B', ' ', 0x1);
+constexpr uint32_t kChunkVertexBufferCompressed = BX_MAKEFOURCC('V', 'B', 'C', 0x0);
+constexpr uint32_t kChunkIndexBuffer = BX_MAKEFOURCC('I', 'B', ' ', 0x0);
+constexpr uint32_t kChunkIndexBufferCompressed = BX_MAKEFOURCC('I', 'B', 'C', 0x1);
+constexpr uint32_t kChunkPrimitive = BX_MAKEFOURCC('P', 'R', 'I', 0x0);
-long int fsize(FILE* _file)
+void optimizeVertexCache(uint16_t* _indices, uint32_t _numIndices, uint32_t _numVertices)
{
- long int pos = ftell(_file);
- fseek(_file, 0L, SEEK_END);
- long int size = ftell(_file);
- fseek(_file, pos, SEEK_SET);
- return size;
+ uint16_t* newIndexList = new uint16_t[_numIndices];
+ meshopt_optimizeVertexCache(newIndexList, _indices, _numIndices, _numVertices);
+ bx::memCopy(_indices, newIndexList, _numIndices * 2);
+ delete[] newIndexList;
}
-void triangleReorder(uint16_t* _indices, uint32_t _numIndices, uint32_t _numVertices, uint16_t _cacheSize)
+uint32_t optimizeVertexFetch(
+ uint16_t* _indices
+ , uint32_t _numIndices
+ , uint8_t* _vertexData
+ , uint32_t _numVertices
+ , uint16_t _stride
+ )
{
- uint16_t* newIndexList = new uint16_t[_numIndices];
- Forsyth::OptimizeFaces(_indices, _numIndices, _numVertices, 0, newIndexList, _cacheSize);
- bx::memCopy(_indices, newIndexList, _numIndices*2);
- delete [] newIndexList;
+ unsigned char* newVertices = (unsigned char*)malloc(_numVertices * _stride );
+ size_t vertexCount = meshopt_optimizeVertexFetch(newVertices, _indices, _numIndices, _vertexData, _numVertices, _stride);
+ bx::memCopy(_vertexData, newVertices, _numVertices * _stride);
+ free(newVertices);
+
+ return uint32_t(vertexCount);
}
-void triangleCompress(bx::WriterI* _writer, uint16_t* _indices, uint32_t _numIndices, uint8_t* _vertexData, uint32_t _numVertices, uint16_t _stride)
+void writeCompressedIndices(
+ bx::WriterI* _writer
+ , const uint16_t* _indices
+ , uint32_t _numIndices
+ , uint32_t _numVertices
+ , bx::Error* _err
+ )
{
- uint32_t* vertexRemap = (uint32_t*)malloc(_numVertices*sizeof(uint32_t) );
+ size_t maxSize = meshopt_encodeIndexBufferBound(_numIndices, _numVertices);
+ unsigned char* compressedIndices = (unsigned char*)malloc(maxSize);
+
+ size_t compressedSize = meshopt_encodeIndexBuffer(compressedIndices, maxSize, _indices, _numIndices);
- WriteBitstream writer;
- CompressIndexBuffer(_indices, _numIndices/3, vertexRemap, _numVertices, IBCF_AUTO, writer);
- writer.Finish();
- printf( "uncompressed: %10d, compressed: %10d, ratio: %0.2f%%\n"
+ bx::printf("Indices uncompressed: %10d, compressed: %10d, ratio: %0.2f%%\n"
, _numIndices*2
- , (uint32_t)writer.ByteSize()
- , 100.0f - float(writer.ByteSize() ) / float(_numIndices*2)*100.0f
+ , (uint32_t)compressedSize
+ , 100.0f - float(compressedSize ) / float(_numIndices*2)*100.0f
);
- BX_UNUSED(_vertexData, _stride);
- uint8_t* outVertexData = (uint8_t*)malloc(_numVertices*_stride);
- for (uint32_t ii = 0; ii < _numVertices; ++ii)
- {
- uint32_t remap = vertexRemap[ii];
- remap = UINT32_MAX == remap ? ii : remap;
- bx::memCopy(&outVertexData[remap*_stride], &_vertexData[ii*_stride], _stride);
- }
- bx::memCopy(_vertexData, outVertexData, _numVertices*_stride);
- free(outVertexData);
+ bx::write(_writer, (uint32_t)compressedSize, _err);
+ bx::write(_writer, compressedIndices, (uint32_t)compressedSize, _err);
- free(vertexRemap);
+ free(compressedIndices);
+}
+
+void writeCompressedVertices(
+ bx::WriterI* _writer
+ , const uint8_t* _vertices
+ , uint32_t _numVertices
+ , uint16_t _stride
+ , bx::Error* _err
+ )
+{
+ size_t maxSize = meshopt_encodeVertexBufferBound(_numVertices, _stride);
+ unsigned char* compressedVertices = (unsigned char*)malloc(maxSize);
+
+ size_t compressedSize = meshopt_encodeVertexBuffer(compressedVertices, maxSize, _vertices, _numVertices, _stride);
+
+ bx::printf("Vertices uncompressed: %10d, compressed: %10d, ratio: %0.2f%%\n"
+ , _numVertices * _stride
+ , (uint32_t)compressedSize
+ , 100.0f - float(compressedSize) / float(_numVertices * _stride)*100.0f
+ );
+
+ bx::write(_writer, (uint32_t)compressedSize, _err);
+ bx::write(_writer, compressedVertices, (uint32_t)compressedSize, _err);
- bx::write(_writer, writer.RawData(), (uint32_t)writer.ByteSize() );
+ free(compressedVertices);
}
-void calcTangents(void* _vertices, uint16_t _numVertices, bgfx::VertexDecl _decl, const uint16_t* _indices, uint32_t _numIndices)
+void calcTangents(void* _vertices, uint16_t _numVertices, bgfx::VertexLayout _layout, const uint16_t* _indices, uint32_t _numIndices)
{
struct PosTexcoord
{
@@ -188,14 +260,14 @@ void calcTangents(void* _vertices, uint16_t _numVertices, bgfx::VertexDecl _decl
uint32_t i1 = indices[1];
uint32_t i2 = indices[2];
- bgfx::vertexUnpack(&v0.m_x, bgfx::Attrib::Position, _decl, _vertices, i0);
- bgfx::vertexUnpack(&v0.m_u, bgfx::Attrib::TexCoord0, _decl, _vertices, i0);
+ bgfx::vertexUnpack(&v0.m_x, bgfx::Attrib::Position, _layout, _vertices, i0);
+ bgfx::vertexUnpack(&v0.m_u, bgfx::Attrib::TexCoord0, _layout, _vertices, i0);
- bgfx::vertexUnpack(&v1.m_x, bgfx::Attrib::Position, _decl, _vertices, i1);
- bgfx::vertexUnpack(&v1.m_u, bgfx::Attrib::TexCoord0, _decl, _vertices, i1);
+ bgfx::vertexUnpack(&v1.m_x, bgfx::Attrib::Position, _layout, _vertices, i1);
+ bgfx::vertexUnpack(&v1.m_u, bgfx::Attrib::TexCoord0, _layout, _vertices, i1);
- bgfx::vertexUnpack(&v2.m_x, bgfx::Attrib::Position, _decl, _vertices, i2);
- bgfx::vertexUnpack(&v2.m_u, bgfx::Attrib::TexCoord0, _decl, _vertices, i2);
+ bgfx::vertexUnpack(&v2.m_x, bgfx::Attrib::Position, _layout, _vertices, i2);
+ bgfx::vertexUnpack(&v2.m_u, bgfx::Attrib::TexCoord0, _layout, _vertices, i2);
const float bax = v1.m_x - v0.m_x;
const float bay = v1.m_y - v0.m_y;
@@ -236,111 +308,131 @@ void calcTangents(void* _vertices, uint16_t _numVertices, bgfx::VertexDecl _decl
for (uint32_t ii = 0; ii < _numVertices; ++ii)
{
- const float* tanu = &tangents[ii*6];
- const float* tanv = &tangents[ii*6 + 3];
+ const bx::Vec3 tanu = bx::load<bx::Vec3>(&tangents[ii*6]);
+ const bx::Vec3 tanv = bx::load<bx::Vec3>(&tangents[ii*6 + 3]);
- float normal[4];
- bgfx::vertexUnpack(normal, bgfx::Attrib::Normal, _decl, _vertices, ii);
- float ndt = bx::vec3Dot(normal, tanu);
+ float nxyzw[4];
+ bgfx::vertexUnpack(nxyzw, bgfx::Attrib::Normal, _layout, _vertices, ii);
- float nxt[3];
- bx::vec3Cross(nxt, normal, tanu);
-
- float tmp[3];
- tmp[0] = tanu[0] - normal[0] * ndt;
- tmp[1] = tanu[1] - normal[1] * ndt;
- tmp[2] = tanu[2] - normal[2] * ndt;
+ const bx::Vec3 normal = bx::load<bx::Vec3>(nxyzw);
+ const float ndt = bx::dot(normal, tanu);
+ const bx::Vec3 nxt = bx::cross(normal, tanu);
+ const bx::Vec3 tmp = bx::sub(tanu, bx::mul(normal, ndt) );
float tangent[4];
- bx::vec3Norm(tangent, tmp);
+ bx::store(tangent, bx::normalize(tmp) );
+ tangent[3] = bx::dot(nxt, tanv) < 0.0f ? -1.0f : 1.0f;
- tangent[3] = bx::vec3Dot(nxt, tanv) < 0.0f ? -1.0f : 1.0f;
- bgfx::vertexPack(tangent, true, bgfx::Attrib::Tangent, _decl, _vertices, ii);
+ bgfx::vertexPack(tangent, true, bgfx::Attrib::Tangent, _layout, _vertices, ii);
}
delete [] tangents;
}
-void write(bx::WriterI* _writer, const void* _vertices, uint32_t _numVertices, uint32_t _stride)
+void write(
+ bx::WriterI* _writer
+ , const void* _vertices
+ , uint32_t _numVertices
+ , uint32_t _stride
+ , bx::Error* _err
+ )
{
- Sphere maxSphere;
- calcMaxBoundingSphere(maxSphere, _vertices, _numVertices, _stride);
+ bx::Sphere maxSphere;
+ bx::calcMaxBoundingSphere(maxSphere, _vertices, _numVertices, _stride);
- Sphere minSphere;
- calcMinBoundingSphere(minSphere, _vertices, _numVertices, _stride);
+ bx::Sphere minSphere;
+ bx::calcMinBoundingSphere(minSphere, _vertices, _numVertices, _stride);
- if (minSphere.m_radius > maxSphere.m_radius)
+ if (minSphere.radius > maxSphere.radius)
{
- bx::write(_writer, maxSphere);
+ bx::write(_writer, maxSphere, _err);
}
else
{
- bx::write(_writer, minSphere);
+ bx::write(_writer, minSphere, _err);
}
- Aabb aabb;
- toAabb(aabb, _vertices, _numVertices, _stride);
- bx::write(_writer, aabb);
+ bx::Aabb aabb;
+ bx::toAabb(aabb, _vertices, _numVertices, _stride);
+ bx::write(_writer, aabb, _err);
- Obb obb;
- calcObb(obb, _vertices, _numVertices, _stride, s_obbSteps);
- bx::write(_writer, obb);
+ bx::Obb obb;
+ bx::calcObb(obb, _vertices, _numVertices, _stride, s_obbSteps);
+ bx::write(_writer, obb, _err);
}
-void write(bx::WriterI* _writer
- , const uint8_t* _vertices
- , uint32_t _numVertices
- , const bgfx::VertexDecl& _decl
- , const uint16_t* _indices
- , uint32_t _numIndices
- , const uint8_t* _compressedIndices
- , uint32_t _compressedSize
- , const stl::string& _material
- , const PrimitiveArray& _primitives
- )
+void write(
+ bx::WriterI* _writer
+ , const uint8_t* _vertices
+ , uint32_t _numVertices
+ , const bgfx::VertexLayout& _layout
+ , const uint16_t* _indices
+ , uint32_t _numIndices
+ , bool _compress
+ , const stl::string& _material
+ , const PrimitiveArray& _primitives
+ , bx::Error* _err
+ )
{
using namespace bx;
using namespace bgfx;
- uint32_t stride = _decl.getStride();
- write(_writer, BGFX_CHUNK_MAGIC_VB);
- write(_writer, _vertices, _numVertices, stride);
+ uint32_t stride = _layout.getStride();
+
+ if (_compress)
+ {
+ write(_writer, kChunkVertexBufferCompressed, _err);
+ write(_writer, _vertices, _numVertices, stride, _err);
+
+ write(_writer, _layout);
+
+ write(_writer, uint16_t(_numVertices), _err);
+ writeCompressedVertices(_writer, _vertices, _numVertices, uint16_t(stride), _err);
+ }
+ else
+ {
+ write(_writer, kChunkVertexBuffer, _err);
+ write(_writer, _vertices, _numVertices, stride, _err);
- write(_writer, _decl);
+ write(_writer, _layout, _err);
- write(_writer, uint16_t(_numVertices) );
- write(_writer, _vertices, _numVertices*stride);
+ write(_writer, uint16_t(_numVertices), _err);
+ write(_writer, _vertices, _numVertices*stride, _err);
+ }
- if (NULL != _compressedIndices)
+ if (_compress)
{
- write(_writer, BGFX_CHUNK_MAGIC_IBC);
- write(_writer, _numIndices);
- write(_writer, _compressedSize);
- write(_writer, _compressedIndices, _compressedSize);
+ write(_writer, kChunkIndexBufferCompressed, _err);
+ write(_writer, _numIndices, _err);
+
+ writeCompressedIndices(_writer, _indices, _numIndices, _numVertices, _err);
}
else
{
- write(_writer, BGFX_CHUNK_MAGIC_IB);
- write(_writer, _numIndices);
- write(_writer, _indices, _numIndices*2);
+ write(_writer, kChunkIndexBuffer, _err);
+ write(_writer, _numIndices, _err);
+ write(_writer, _indices, _numIndices*2, _err);
}
- write(_writer, BGFX_CHUNK_MAGIC_PRI);
+ write(_writer, kChunkPrimitive, _err);
+
uint16_t nameLen = uint16_t(_material.size() );
- write(_writer, nameLen);
- write(_writer, _material.c_str(), nameLen);
- write(_writer, uint16_t(_primitives.size() ) );
+ write(_writer, nameLen, _err);
+
+ write(_writer, _material.c_str(), nameLen, _err);
+ write(_writer, uint16_t(_primitives.size() ), _err);
+
for (PrimitiveArray::const_iterator primIt = _primitives.begin(); primIt != _primitives.end(); ++primIt)
{
const Primitive& prim = *primIt;
nameLen = uint16_t(prim.m_name.size() );
- write(_writer, nameLen);
- write(_writer, prim.m_name.c_str(), nameLen);
- write(_writer, prim.m_startIndex);
- write(_writer, prim.m_numIndices);
- write(_writer, prim.m_startVertex);
- write(_writer, prim.m_numVertices);
- write(_writer, &_vertices[prim.m_startVertex*stride], prim.m_numVertices, stride);
+ write(_writer, nameLen, _err);
+ write(_writer, prim.m_name.c_str(), nameLen, _err);
+ write(_writer, prim.m_startIndex, _err);
+ write(_writer, prim.m_numIndices, _err);
+ write(_writer, prim.m_startVertex, _err);
+ write(_writer, prim.m_numVertices, _err);
+ write(_writer, &_vertices[prim.m_startVertex*stride], prim.m_numVertices, stride, _err);
}
}
@@ -361,141 +453,61 @@ struct GroupSortByMaterial
}
};
-void help(const char* _error = NULL)
+void mtxCoordinateTransform(float* _result, const CoordinateSystem& _cs)
{
- if (NULL != _error)
+ bx::Vec3 up = s_axisVectors[_cs.m_up];
+ bx::Vec3 forward = s_axisVectors[_cs.m_forward];
+ bx::Vec3 right = cross(forward,up);
+
+ if (_cs.m_handedness == bx::Handedness::Left)
{
- fprintf(stderr, "Error:\n%s\n\n", _error);
+ right = bx::mul(right, -1.0f);
}
- fprintf(stderr
- , "geometryc, bgfx geometry compiler tool, version %d.%d.%d.\n"
- "Copyright 2011-2018 Branimir Karadzic. All rights reserved.\n"
- "License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause\n\n"
- , BGFX_GEOMETRYC_VERSION_MAJOR
- , BGFX_GEOMETRYC_VERSION_MINOR
- , BGFX_API_VERSION
- );
-
- fprintf(stderr
- , "Usage: geometryc -f <in> -o <out>\n"
-
- "\n"
- "Supported input file types:\n"
- " *.obj Wavefront\n"
-
- "\n"
- "Options:\n"
- " -h, --help Help.\n"
- " -v, --version Version information only.\n"
- " -f <file path> Input file path.\n"
- " -o <file path> Output file path.\n"
- " -s, --scale <num> Scale factor.\n"
- " --ccw Counter-clockwise winding order.\n"
- " --flipv Flip texture coordinate V.\n"
- " --obb <num> Number of steps for calculating oriented bounding box.\n"
- " Default value is 17. Less steps less precise OBB is.\n"
- " More steps slower calculation.\n"
- " --packnormal <num> Normal packing.\n"
- " 0 - unpacked 12 bytes (default).\n"
- " 1 - packed 4 bytes.\n"
- " --packuv <num> Texture coordinate packing.\n"
- " 0 - unpacked 8 bytes (default).\n"
- " 1 - packed 4 bytes.\n"
- " --tangent Calculate tangent vectors (packing mode is the same as normal).\n"
- " --barycentric Adds barycentric vertex attribute (packed in bgfx::Attrib::Color1).\n"
- " -c, --compress Compress indices.\n"
-
- "\n"
- "For additional information, see https://github.com/bkaradzic/bgfx\n"
- );
+ bx::mtxIdentity(_result);
+ bx::store(&_result[0], right);
+ bx::store(&_result[4], forward);
+ bx::store(&_result[8], up);
}
-int main(int _argc, const char* _argv[])
+float mtxDeterminant(const float* _a)
{
- bx::CommandLine cmdLine(_argc, _argv);
-
- if (cmdLine.hasArg('v', "version") )
- {
- fprintf(stderr
- , "geometryc, bgfx geometry compiler tool, version %d.%d.%d.\n"
- , BGFX_GEOMETRYC_VERSION_MAJOR
- , BGFX_GEOMETRYC_VERSION_MINOR
- , BGFX_API_VERSION
- );
- return bx::kExitSuccess;
- }
-
- if (cmdLine.hasArg('h', "help") )
- {
- help();
- return bx::kExitFailure;
- }
-
- const char* filePath = cmdLine.findOption('f');
- if (NULL == filePath)
- {
- help("Input file name must be specified.");
- return bx::kExitFailure;
- }
-
- const char* outFilePath = cmdLine.findOption('o');
- if (NULL == outFilePath)
- {
- help("Output file name must be specified.");
- return bx::kExitFailure;
- }
-
- float scale = 1.0f;
- const char* scaleArg = cmdLine.findOption('s', "scale");
- if (NULL != scaleArg)
- {
- if (!bx::fromString(&scale, scaleArg))
- {
- scale = 1.0f;
- }
- }
-
- bool compress = cmdLine.hasArg('c', "compress");
-
- cmdLine.hasArg(s_obbSteps, '\0', "obb");
- s_obbSteps = bx::uint32_min(bx::uint32_max(s_obbSteps, 1), 90);
-
- uint32_t packNormal = 0;
- cmdLine.hasArg(packNormal, '\0', "packnormal");
-
- uint32_t packUv = 0;
- cmdLine.hasArg(packUv, '\0', "packuv");
-
- bool ccw = cmdLine.hasArg("ccw");
- bool flipV = cmdLine.hasArg("flipv");
- bool hasTangent = cmdLine.hasArg("tangent");
- bool hasBc = cmdLine.hasArg("barycentric");
-
- FILE* file = fopen(filePath, "r");
- if (NULL == file)
- {
- printf("Unable to open input file '%s'.", filePath);
- exit(bx::kExitFailure);
- }
-
- int64_t parseElapsed = -bx::getHPCounter();
- int64_t triReorderElapsed = 0;
-
- uint32_t size = (uint32_t)fsize(file);
- char* data = new char[size+1];
- size = (uint32_t)fread(data, 1, size, file);
- data[size] = '\0';
- fclose(file);
+ const float xx = _a[ 0];
+ const float xy = _a[ 1];
+ const float xz = _a[ 2];
+ const float xw = _a[ 3];
+ const float yx = _a[ 4];
+ const float yy = _a[ 5];
+ const float yz = _a[ 6];
+ const float yw = _a[ 7];
+ const float zx = _a[ 8];
+ const float zy = _a[ 9];
+ const float zz = _a[10];
+ const float zw = _a[11];
+ const float wx = _a[12];
+ const float wy = _a[13];
+ const float wz = _a[14];
+ const float ww = _a[15];
+
+ float det = 0.0f;
+ det += xx * (yy*(zz*ww - zw*wz) - yz*(zy*ww - zw*wy) + yw*(zy*wz - zz*wy) );
+ det -= xy * (yx*(zz*ww - zw*wz) - yz*(zx*ww - zw*wx) + yw*(zx*wz - zz*wx) );
+ det += xz * (yx*(zy*ww - zw*wy) - yy*(zx*ww - zw*wx) + yw*(zx*wy - zy*wx) );
+ det -= xw * (yx*(zy*wz - zz*wy) - yy*(zx*wz - zz*wx) + yz*(zx*wy - zy*wx) );
+
+ return det;
+}
- // https://en.wikipedia.org/wiki/Wavefront_.obj_file
+void parseObj(char* _data, uint32_t _size, Mesh* _mesh, bool _hasBc)
+{
+ // Reference(s):
+ // - Wavefront .obj file
+ // https://en.wikipedia.org/wiki/Wavefront_.obj_file
- Vector3Array positions;
- Vector3Array normals;
- Vector3Array texcoords;
- Index3Map indexMap;
- TriangleArray triangles;
- GroupArray groups;
+ // Coordinate system is right-handed, but up/forward is not defined, but +Y Up, +Z Forward seems to be a common default
+ _mesh->m_coordinateSystem.m_handedness = bx::Handedness::Right;
+ _mesh->m_coordinateSystem.m_up = Axis::PositiveY;
+ _mesh->m_coordinateSystem.m_forward = Axis::PositiveZ;
uint32_t num = 0;
@@ -508,7 +520,7 @@ int main(int _argc, const char* _argv[])
int argc;
char* argv[64];
- for (bx::StringView next(data, size); !next.isEmpty(); )
+ for (bx::StringView next(_data, _size); !next.isEmpty(); )
{
next = bx::tokenizeCommandLine(next, commandLine, len, argc, argv, BX_COUNTOF(argv), '\n');
@@ -523,47 +535,48 @@ int main(int _argc, const char* _argv[])
}
else if (0 == bx::strCmp(argv[0], "f") )
{
- Triangle triangle;
- bx::memSet(&triangle, 0, sizeof(Triangle) );
+ TriIndices triangle;
+ bx::memSet(&triangle, 0, sizeof(TriIndices) );
- const int numNormals = (int)normals.size();
- const int numTexcoords = (int)texcoords.size();
- const int numPositions = (int)positions.size();
+ const int numNormals = (int)_mesh->m_normals.size();
+ const int numTexcoords = (int)_mesh->m_texcoords.size();
+ const int numPositions = (int)_mesh->m_positions.size();
for (uint32_t edge = 0, numEdges = argc-1; edge < numEdges; ++edge)
{
Index3 index;
index.m_texcoord = -1;
index.m_normal = -1;
- index.m_vertexIndex = -1;
- if (hasBc)
+ if (_hasBc)
{
index.m_vbc = edge < 3 ? edge : (1+(edge+1) )&1;
}
else
{
- index.m_vbc = 0;
+ index.m_vbc = 0;
}
{
bx::StringView triplet(argv[edge + 1]);
bx::StringView vertex(triplet);
bx::StringView texcoord = bx::strFind(triplet, '/');
- if (!texcoord.isEmpty())
+ if (!texcoord.isEmpty() )
{
- vertex.set(vertex.getPtr(), texcoord.getPtr());
+ vertex.set(vertex.getPtr(), texcoord.getPtr() );
- const bx::StringView normal = bx::strFind(bx::StringView(texcoord.getPtr() + 1, triplet.getTerm()), '/');
- if (!normal.isEmpty())
+ const bx::StringView normal = bx::strFind(bx::StringView(texcoord.getPtr() + 1, triplet.getTerm() ), '/');
+ if (!normal.isEmpty() )
{
int32_t nn;
- bx::fromString(&nn, bx::StringView(normal.getPtr() + 1, triplet.getTerm()));
+ bx::fromString(&nn, bx::StringView(normal.getPtr() + 1, triplet.getTerm() ) );
index.m_normal = (nn < 0) ? nn + numNormals : nn - 1;
}
- texcoord.set(texcoord.getPtr() + 1, normal.getPtr());
+ texcoord.set(texcoord.getPtr() + 1, normal.getPtr() );
- // https://en.wikipedia.org/wiki/Wavefront_.obj_file#Vertex_Normal_Indices_Without_Texture_Coordinate_Indices
- if (!texcoord.isEmpty())
+ // Reference(s):
+ // - Wavefront .obj file / Vertex normal indices without texture coordinate indices
+ // https://en.wikipedia.org/wiki/Wavefront_.obj_file#Vertex_Normal_Indices_Without_Texture_Coordinate_Indices
+ if (!texcoord.isEmpty() )
{
int32_t tex;
bx::fromString(&tex, texcoord);
@@ -576,52 +589,21 @@ int main(int _argc, const char* _argv[])
index.m_position = (pos < 0) ? pos + numPositions : pos - 1;
}
- const uint64_t hash0 = uint64_t(index.m_position)<< 0;
- const uint64_t hash1 = uint64_t(index.m_texcoord)<<20;
- const uint64_t hash2 = uint64_t(index.m_normal )<<40;
- const uint64_t hash3 = uint64_t(index.m_vbc )<<60;
- const uint64_t hash = hash0^hash1^hash2^hash3;
-
- stl::pair<Index3Map::iterator, bool> result = indexMap.insert(stl::make_pair(hash, index) );
- if (!result.second)
- {
- Index3& oldIndex = result.first->second;
- BX_UNUSED(oldIndex);
- BX_CHECK(true
- && oldIndex.m_position == index.m_position
- && oldIndex.m_texcoord == index.m_texcoord
- && oldIndex.m_normal == index.m_normal
- , "Hash collision!"
- );
- }
-
switch (edge)
{
case 0: case 1: case 2:
- triangle.m_index[edge] = hash;
+ triangle.m_index[edge] = index;
if (2 == edge)
{
- if (ccw)
- {
- std::swap(triangle.m_index[1], triangle.m_index[2]);
- }
- triangles.push_back(triangle);
+ _mesh->m_triangles.push_back(triangle);
}
break;
default:
- if (ccw)
- {
- triangle.m_index[2] = triangle.m_index[1];
- triangle.m_index[1] = hash;
- }
- else
- {
- triangle.m_index[1] = triangle.m_index[2];
- triangle.m_index[2] = hash;
- }
+ triangle.m_index[1] = triangle.m_index[2];
+ triangle.m_index[2] = index;
- triangles.push_back(triangle);
+ _mesh->m_triangles.push_back(triangle);
break;
}
}
@@ -632,22 +614,22 @@ int main(int _argc, const char* _argv[])
}
else if (*argv[0] == 'v')
{
- group.m_numTriangles = (uint32_t)(triangles.size() ) - group.m_startTriangle;
+ group.m_numTriangles = (uint32_t)(_mesh->m_triangles.size() ) - group.m_startTriangle;
if (0 < group.m_numTriangles)
{
- groups.push_back(group);
- group.m_startTriangle = (uint32_t)(triangles.size() );
+ _mesh->m_groups.push_back(group);
+ group.m_startTriangle = (uint32_t)(_mesh->m_triangles.size() );
group.m_numTriangles = 0;
}
if (0 == bx::strCmp(argv[0], "vn") )
{
- Vector3 normal;
+ bx::Vec3 normal(bx::init::None);
bx::fromString(&normal.x, argv[1]);
bx::fromString(&normal.y, argv[2]);
bx::fromString(&normal.z, argv[3]);
- normals.push_back(normal);
+ _mesh->m_normals.push_back(normal);
}
else if (0 == bx::strCmp(argv[0], "vp") )
{
@@ -655,12 +637,12 @@ int main(int _argc, const char* _argv[])
if (once)
{
once = false;
- printf("warning: 'parameter space vertices' are unsupported.\n");
+ bx::printf("warning: 'parameter space vertices' are unsupported.\n");
}
}
else if (0 == bx::strCmp(argv[0], "vt") )
{
- Vector3 texcoord;
+ bx::Vec3 texcoord(bx::init::None);
texcoord.y = 0.0f;
texcoord.z = 0.0f;
@@ -680,7 +662,7 @@ int main(int _argc, const char* _argv[])
break;
}
- texcoords.push_back(texcoord);
+ _mesh->m_texcoords.push_back(texcoord);
}
else
{
@@ -689,7 +671,7 @@ int main(int _argc, const char* _argv[])
bx::fromString(&py, argv[2]);
bx::fromString(&pz, argv[3]);
- if (argc > 4)
+ if (argc == 5 || argc == 8)
{
bx::fromString(&pw, argv[4]);
}
@@ -698,17 +680,12 @@ int main(int _argc, const char* _argv[])
pw = 1.0f;
}
- float invW = scale/pw;
- px *= invW;
- py *= invW;
- pz *= invW;
+ bx::Vec3 pos(px, py, pz);
- Vector3 pos;
- pos.x = px;
- pos.y = py;
- pos.z = pz;
+ const float invW = bx::rcp(pw);
+ pos = bx::mul(pos, invW);
- positions.push_back(pos);
+ _mesh->m_positions.push_back(pos);
}
}
else if (0 == bx::strCmp(argv[0], "usemtl") )
@@ -717,11 +694,11 @@ int main(int _argc, const char* _argv[])
if (0 != bx::strCmp(material.c_str(), group.m_material.c_str() ) )
{
- group.m_numTriangles = (uint32_t)(triangles.size() ) - group.m_startTriangle;
+ group.m_numTriangles = (uint32_t)(_mesh->m_triangles.size() ) - group.m_startTriangle;
if (0 < group.m_numTriangles)
{
- groups.push_back(group);
- group.m_startTriangle = (uint32_t)(triangles.size() );
+ _mesh->m_groups.push_back(group);
+ group.m_startTriangle = (uint32_t)(_mesh->m_triangles.size() );
group.m_numTriangles = 0;
}
}
@@ -743,75 +720,463 @@ int main(int _argc, const char* _argv[])
++num;
}
- group.m_numTriangles = (uint32_t)(triangles.size() ) - group.m_startTriangle;
+ group.m_numTriangles = (uint32_t)(_mesh->m_triangles.size() ) - group.m_startTriangle;
if (0 < group.m_numTriangles)
{
- groups.push_back(group);
- group.m_startTriangle = (uint32_t)(triangles.size() );
+ _mesh->m_groups.push_back(group);
+ group.m_startTriangle = (uint32_t)(_mesh->m_triangles.size() );
group.m_numTriangles = 0;
}
+ bx::printf("obj parser # %d\n", num);
+}
+
+
+void gltfReadFloat(const float* _accessorData, cgltf_size _accessorNumComponents, cgltf_size _index, cgltf_float* _out, cgltf_size _outElementSize)
+{
+ const float* input = &_accessorData[_accessorNumComponents * _index];
+
+ for (cgltf_size ii = 0; ii < _outElementSize; ++ii)
+ {
+ _out[ii] = (ii < _accessorNumComponents) ? input[ii] : 0.0f;
+ }
+}
+
+void processGltfNode(cgltf_node* _node, Mesh* _mesh, Group* _group, bool _hasBc)
+{
+ cgltf_mesh* mesh = _node->mesh;
+ if (NULL != mesh)
+ {
+ float nodeToWorld[16];
+ cgltf_node_transform_world(_node, nodeToWorld);
+ float nodeToWorldNormal[16];
+ bx::mtxCofactor(nodeToWorldNormal, nodeToWorld);
+
+ for (cgltf_size primitiveIndex = 0; primitiveIndex < mesh->primitives_count; ++primitiveIndex)
+ {
+ cgltf_primitive* primitive = &mesh->primitives[primitiveIndex];
+
+ cgltf_size numVertex = primitive->attributes[0].data->count;
+
+ int32_t basePositionIndex = (int32_t)_mesh->m_positions.size();
+ int32_t baseNormalIndex = (int32_t)_mesh->m_normals.size();
+ int32_t baseTexcoordIndex = (int32_t)_mesh->m_texcoords.size();
+
+ bool hasNormal = false;
+ bool hasTexcoord = false;
+
+ for (cgltf_size attributeIndex = 0; attributeIndex < primitive->attributes_count; ++attributeIndex)
+ {
+ cgltf_attribute* attribute = &primitive->attributes[attributeIndex];
+ cgltf_accessor* accessor = attribute->data;
+ cgltf_size accessorCount = accessor->count;
+
+ BX_ASSERT(numVertex == accessorCount, "Invalid attribute count");
+
+ cgltf_size floatCount = cgltf_accessor_unpack_floats(accessor, NULL, 0);
+ float* accessorData = (float*)malloc(floatCount * sizeof(float) );
+ cgltf_accessor_unpack_floats(accessor, accessorData, floatCount);
+
+ cgltf_size numComponents = cgltf_num_components(accessor->type);
+
+ if (attribute->type == cgltf_attribute_type_position && attribute->index == 0)
+ {
+ _mesh->m_positions.reserve(_mesh->m_positions.size() + accessorCount);
+
+ bx::Vec3 pos(bx::init::None);
+
+ for (cgltf_size v = 0; v < accessorCount; ++v)
+ {
+ gltfReadFloat(accessorData, numComponents, v, &pos.x, 3);
+ pos = mul(pos, nodeToWorld);
+ _mesh->m_positions.push_back(pos);
+ }
+ }
+ else if (attribute->type == cgltf_attribute_type_normal && attribute->index == 0)
+ {
+ _mesh->m_normals.reserve(_mesh->m_normals.size() + accessorCount);
+
+ hasNormal = true;
+ bx::Vec3 normal(bx::init::None);
+
+ for (cgltf_size v = 0; v < accessorCount; ++v)
+ {
+ gltfReadFloat(accessorData, numComponents, v, &normal.x, 3);
+ normal = mul(normal, nodeToWorldNormal);
+ _mesh->m_normals.push_back(normal);
+ }
+ }
+ else if (attribute->type == cgltf_attribute_type_texcoord && attribute->index == 0)
+ {
+ _mesh->m_texcoords.reserve(_mesh->m_texcoords.size() + accessorCount);
+
+ hasTexcoord = true;
+ bx::Vec3 texcoord(bx::init::None);
+
+ for (cgltf_size v = 0; v < accessorCount; ++v)
+ {
+ gltfReadFloat(accessorData, numComponents, v, &texcoord.x, 3);
+ _mesh->m_texcoords.push_back(texcoord);
+ }
+ }
+
+ free(accessorData);
+ }
+
+ if (primitive->indices != NULL)
+ {
+ cgltf_accessor* accessor = primitive->indices;
+
+ for (cgltf_size v = 0; v < accessor->count; v += 3)
+ {
+ TriIndices triangle;
+ for (int i = 0; i < 3; ++i)
+ {
+ Index3 index;
+ int32_t vertexIndex = int32_t(cgltf_accessor_read_index(accessor, v+i) );
+ index.m_position = basePositionIndex + vertexIndex;
+ index.m_normal = hasNormal ? baseNormalIndex + vertexIndex : -1;
+ index.m_texcoord = hasTexcoord ? baseTexcoordIndex + vertexIndex : -1;
+ index.m_vbc = _hasBc ? i : 0;
+ triangle.m_index[i] = index;
+ }
+ _mesh->m_triangles.push_back(triangle);
+ }
+ }
+ else
+ {
+ for (cgltf_size v = 0; v < numVertex; v += 3)
+ {
+ TriIndices triangle;
+ for (int i = 0; i < 3; ++i)
+ {
+ Index3 index;
+ int32_t vertexIndex = int32_t(v * 3 + i);
+ index.m_position = basePositionIndex + vertexIndex;
+ index.m_normal = hasNormal ? baseNormalIndex + vertexIndex : -1;
+ index.m_texcoord = hasTexcoord ? baseTexcoordIndex + vertexIndex : -1;
+ index.m_vbc = _hasBc ? i : 0;
+ triangle.m_index[i] = index;
+ }
+ _mesh->m_triangles.push_back(triangle);
+ }
+ }
+
+ _group->m_numTriangles = (uint32_t)(_mesh->m_triangles.size() ) - _group->m_startTriangle;
+ if (0 < _group->m_numTriangles)
+ {
+ _mesh->m_groups.push_back(*_group);
+ _group->m_startTriangle = (uint32_t)(_mesh->m_triangles.size() );
+ _group->m_numTriangles = 0;
+ }
+ }
+ }
+
+ for (cgltf_size childIndex = 0; childIndex < _node->children_count; ++childIndex)
+ processGltfNode(_node->children[childIndex], _mesh, _group, _hasBc);
+}
+
+void parseGltf(char* _data, uint32_t _size, Mesh* _mesh, bool _hasBc, const bx::StringView& _path)
+{
+ // Reference(s):
+ // - Gltf 2.0 specification
+ // https://github.com/KhronosGroup/glTF/tree/master/specification/2.0
+
+ _mesh->m_coordinateSystem.m_handedness = bx::Handedness::Right;
+ _mesh->m_coordinateSystem.m_forward = Axis::PositiveZ;
+ _mesh->m_coordinateSystem.m_up = Axis::PositiveY;
+
+ Group group;
+ group.m_startTriangle = 0;
+ group.m_numTriangles = 0;
+
+ cgltf_options options = { };
+ cgltf_data* data = NULL;
+ cgltf_result result = cgltf_parse(&options, _data, _size, &data);
+
+ if (result == cgltf_result_success)
+ {
+ char* path = (char*)malloc(_path.getLength()+1);
+ bx::memCopy(path, _path.getPtr(), _path.getLength() );
+ path[_path.getLength()] = 0;
+ result = cgltf_load_buffers(&options, data, path);
+ free(path);
+
+ if (result == cgltf_result_success)
+ {
+ for (cgltf_size sceneIndex = 0; sceneIndex < data->scenes_count; ++sceneIndex)
+ {
+ cgltf_scene* scene = &data->scenes[sceneIndex];
+
+ for (cgltf_size nodeIndex = 0; nodeIndex < scene->nodes_count; ++nodeIndex)
+ {
+ cgltf_node* node = scene->nodes[nodeIndex];
+
+ processGltfNode(node, _mesh, &group, _hasBc);
+ }
+ }
+ }
+
+ cgltf_free(data);
+ }
+}
+
+
+void help(const char* _error = NULL)
+{
+ if (NULL != _error)
+ {
+ bx::printf("Error:\n%s\n\n", _error);
+ }
+
+ bx::printf(
+ "geometryc, bgfx geometry compiler tool, version %d.%d.%d.\n"
+ "Copyright 2011-2022 Branimir Karadzic. All rights reserved.\n"
+ "License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE\n\n"
+ , BGFX_GEOMETRYC_VERSION_MAJOR
+ , BGFX_GEOMETRYC_VERSION_MINOR
+ , BGFX_API_VERSION
+ );
+
+ bx::printf(
+ "Usage: geometryc -f <in> -o <out>\n"
+
+ "\n"
+ "Supported input file types:\n"
+ " *.obj Wavefront\n"
+ " *.gltf,*.glb glTF 2.0\n"
+
+ "\n"
+ "Options:\n"
+ " -h, --help Display this help and exit.\n"
+ " -v, --version Output version information and exit.\n"
+ " -f <file path> Input's file path.\n"
+ " -o <file path> Output's file path.\n"
+ " -s, --scale <num> Scale factor.\n"
+ " --ccw Front face is counter-clockwise winding order.\n"
+ " --flipv Flip texture coordinate V.\n"
+ " --obb <num> Number of steps for calculating oriented bounding box.\n"
+ " Defaults to 17.\n"
+ " Less steps = less precise OBB.\n"
+ " More steps = slower calculation.\n"
+ " --packnormal <num> Normal packing.\n"
+ " 0 - unpacked 12 bytes. (default)\n"
+ " 1 - packed 4 bytes.\n"
+ " --packuv <num> Texture coordinate packing.\n"
+ " 0 - unpacked 8 bytes. (default)\n"
+ " 1 - packed 4 bytes.\n"
+ " --tangent Calculate tangent vectors. (packing mode is the same as normal)\n"
+ " --barycentric Adds barycentric vertex attribute. (Packed in bgfx::Attrib::Color1)\n"
+ " -c, --compress Compress indices.\n"
+ " --[l/r]h-up+[y/z] Coordinate system. Defaults to '--lh-up+y' — Left-Handed +Y is up.\n"
+
+ "\n"
+ "For additional information, see https://github.com/bkaradzic/bgfx\n"
+ );
+}
+
+int main(int _argc, const char* _argv[])
+{
+ bx::CommandLine cmdLine(_argc, _argv);
+
+ if (cmdLine.hasArg('v', "version") )
+ {
+ bx::printf(
+ "geometryc, bgfx geometry compiler tool, version %d.%d.%d.\n"
+ , BGFX_GEOMETRYC_VERSION_MAJOR
+ , BGFX_GEOMETRYC_VERSION_MINOR
+ , BGFX_API_VERSION
+ );
+ return bx::kExitSuccess;
+ }
+
+ if (cmdLine.hasArg('h', "help") )
+ {
+ help();
+ return bx::kExitFailure;
+ }
+
+ const char* filePath = cmdLine.findOption('f');
+ if (NULL == filePath)
+ {
+ help("Input file name must be specified.");
+ return bx::kExitFailure;
+ }
+
+ const char* outFilePath = cmdLine.findOption('o');
+ if (NULL == outFilePath)
+ {
+ help("Output file name must be specified.");
+ return bx::kExitFailure;
+ }
+
+ float scale = 1.0f;
+ const char* scaleArg = cmdLine.findOption('s', "scale");
+ if (NULL != scaleArg)
+ {
+ if (!bx::fromString(&scale, scaleArg) )
+ {
+ scale = 1.0f;
+ }
+ }
+
+ bool compress = cmdLine.hasArg('c', "compress");
+
+ cmdLine.hasArg(s_obbSteps, '\0', "obb");
+ s_obbSteps = bx::uint32_min(bx::uint32_max(s_obbSteps, 1), 90);
+
+ uint32_t packNormal = 0;
+ cmdLine.hasArg(packNormal, '\0', "packnormal");
+
+ uint32_t packUv = 0;
+ cmdLine.hasArg(packUv, '\0', "packuv");
+
+ bool ccw = cmdLine.hasArg("ccw");
+ bool flipV = cmdLine.hasArg("flipv");
+ bool hasTangent = cmdLine.hasArg("tangent");
+ bool hasBc = cmdLine.hasArg("barycentric");
+
+ CoordinateSystem outputCoordinateSystem;
+ outputCoordinateSystem.m_handedness = bx::Handedness::Left;
+ outputCoordinateSystem.m_forward = Axis::PositiveZ;
+ outputCoordinateSystem.m_up = Axis::PositiveY;
+ for (uint32_t ii = 0; ii < BX_COUNTOF(s_coordinateSystemMappings); ++ii)
+ {
+ if (cmdLine.hasArg(s_coordinateSystemMappings[ii].m_param) )
+ {
+ outputCoordinateSystem = s_coordinateSystemMappings[ii].m_coordinateSystem;
+ }
+ }
+
+ bx::FileReader fr;
+ if (!bx::open(&fr, filePath) )
+ {
+ bx::printf("Unable to open input file '%s'.", filePath);
+ return bx::kExitFailure;
+ }
+
+ int64_t parseElapsed = -bx::getHPCounter();
+ int64_t triReorderElapsed = 0;
+
+ uint32_t size = (uint32_t)bx::getSize(&fr);
+ char* data = new char[size+1];
+ size = bx::read(&fr, data, size, bx::ErrorAssert{});
+ data[size] = '\0';
+ bx::close(&fr);
+
+ Mesh mesh;
+ bx::StringView ext = bx::FilePath(filePath).getExt();
+ if (0 == bx::strCmpI(ext, ".obj") )
+ {
+ parseObj(data, size, &mesh, hasBc);
+ }
+ else if (0 == bx::strCmpI(ext, ".gltf") || 0 == bx::strCmpI(ext, ".glb") )
+ {
+ parseGltf(data, size, &mesh, hasBc, bx::FilePath(filePath).getPath() );
+ }
+ else
+ {
+ bx::printf("Unsupported input file format '%s'.", filePath);
+ exit(bx::kExitFailure);
+ }
+
delete [] data;
int64_t now = bx::getHPCounter();
parseElapsed += now;
int64_t convertElapsed = -now;
- std::sort(groups.begin(), groups.end(), GroupSortByMaterial() );
+ std::sort(mesh.m_groups.begin(), mesh.m_groups.end(), GroupSortByMaterial() );
+
+ bool changeWinding = ccw;
+
+ if (scale != 1.0f)
+ {
+ for (Vec3Array::iterator it = mesh.m_positions.begin(), itEnd = mesh.m_positions.end(); it != itEnd; ++it)
+ {
+ it->x *= scale;
+ it->y *= scale;
+ it->z *= scale;
+ }
+ }
- bool hasColor = false;
- bool hasNormal;
- bool hasTexcoord;
{
- Index3Map::const_iterator it = indexMap.begin();
- hasNormal = -1 != it->second.m_normal;
- hasTexcoord = -1 != it->second.m_texcoord;
+ float meshTransform[16];
+ mtxCoordinateTransform(meshTransform, mesh.m_coordinateSystem);
+
+ float meshInvTranform[16];
+ bx::mtxTranspose(meshInvTranform, meshTransform);
+
+ float outTransform[16];
+ mtxCoordinateTransform(outTransform, outputCoordinateSystem);
+
+ float transform[16];
+ bx::mtxMul(transform, meshInvTranform, outTransform);
+
+ if ( mtxDeterminant(transform) < 0.0f )
+ {
+ changeWinding = !changeWinding;
+ }
+
+ float identity[16];
+ bx::mtxIdentity(identity);
- if (!hasTexcoord)
+ if ( 0 != bx::memCmp(identity, transform, sizeof(transform) ) )
{
- for (Index3Map::iterator jt = indexMap.begin(), jtEnd = indexMap.end(); jt != jtEnd && !hasTexcoord; ++jt)
+ for (Vec3Array::iterator it = mesh.m_positions.begin(), itEnd = mesh.m_positions.end(); it != itEnd; ++it)
{
- hasTexcoord |= -1 != jt->second.m_texcoord;
+ *it = bx::mul(*it, transform);
}
- if (hasTexcoord)
+ for (Vec3Array::iterator it = mesh.m_normals.begin(), itEnd = mesh.m_normals.end(); it != itEnd; ++it)
{
- for (Index3Map::iterator jt = indexMap.begin(), jtEnd = indexMap.end(); jt != jtEnd; ++jt)
- {
- jt->second.m_texcoord = -1 == jt->second.m_texcoord ? 0 : jt->second.m_texcoord;
- }
+ *it = bx::mul(*it, transform);
}
}
+ }
+
- if (!hasNormal)
+ bool hasColor = false;
+ bool hasNormal = false;
+ bool hasTexcoord = false;
+ {
+ for (TriangleArray::iterator jt = mesh.m_triangles.begin(), jtEnd = mesh.m_triangles.end(); jt != jtEnd && !hasTexcoord; ++jt)
{
- for (Index3Map::iterator jt = indexMap.begin(), jtEnd = indexMap.end(); jt != jtEnd && !hasNormal; ++jt)
+ for (uint32_t i = 0; i < 3; ++i)
{
- hasNormal |= -1 != jt->second.m_normal;
+ hasTexcoord |= -1 != jt->m_index[i].m_texcoord;
}
+ }
- if (hasNormal)
+ for (TriangleArray::iterator jt = mesh.m_triangles.begin(), jtEnd = mesh.m_triangles.end(); jt != jtEnd && !hasNormal; ++jt)
+ {
+ for (uint32_t i = 0; i < 3; ++i)
{
- for (Index3Map::iterator jt = indexMap.begin(), jtEnd = indexMap.end(); jt != jtEnd; ++jt)
- {
- jt->second.m_normal = -1 == jt->second.m_normal ? 0 : jt->second.m_normal;
- }
+ hasNormal |= -1 != jt->m_index[i].m_normal;
+ }
+ }
+
+ if (changeWinding)
+ {
+ for (TriangleArray::iterator jt = mesh.m_triangles.begin(), jtEnd = mesh.m_triangles.end(); jt != jtEnd; ++jt)
+ {
+ bx::swap(jt->m_index[1], jt->m_index[2]);
}
}
}
- bgfx::VertexDecl decl;
- decl.begin();
- decl.add(bgfx::Attrib::Position, 3, bgfx::AttribType::Float);
+ bgfx::VertexLayout layout;
+ layout.begin();
+ layout.add(bgfx::Attrib::Position, 3, bgfx::AttribType::Float);
if (hasColor)
{
- decl.add(bgfx::Attrib::Color0, 4, bgfx::AttribType::Uint8, true);
+ layout.add(bgfx::Attrib::Color0, 4, bgfx::AttribType::Uint8, true);
}
if (hasBc)
{
- decl.add(bgfx::Attrib::Color1, 4, bgfx::AttribType::Uint8, true);
+ layout.add(bgfx::Attrib::Color1, 4, bgfx::AttribType::Uint8, true);
}
if (hasTexcoord)
@@ -820,11 +1185,11 @@ int main(int _argc, const char* _argv[])
{
default:
case 0:
- decl.add(bgfx::Attrib::TexCoord0, 2, bgfx::AttribType::Float);
+ layout.add(bgfx::Attrib::TexCoord0, 2, bgfx::AttribType::Float);
break;
case 1:
- decl.add(bgfx::Attrib::TexCoord0, 2, bgfx::AttribType::Half);
+ layout.add(bgfx::Attrib::TexCoord0, 2, bgfx::AttribType::Half);
break;
}
}
@@ -837,43 +1202,51 @@ int main(int _argc, const char* _argv[])
{
default:
case 0:
- decl.add(bgfx::Attrib::Normal, 3, bgfx::AttribType::Float);
+ layout.add(bgfx::Attrib::Normal, 3, bgfx::AttribType::Float);
if (hasTangent)
{
- decl.add(bgfx::Attrib::Tangent, 4, bgfx::AttribType::Float);
+ layout.add(bgfx::Attrib::Tangent, 4, bgfx::AttribType::Float);
}
break;
case 1:
- decl.add(bgfx::Attrib::Normal, 4, bgfx::AttribType::Uint8, true, true);
+ layout.add(bgfx::Attrib::Normal, 4, bgfx::AttribType::Uint8, true, true);
if (hasTangent)
{
- decl.add(bgfx::Attrib::Tangent, 4, bgfx::AttribType::Uint8, true, true);
+ layout.add(bgfx::Attrib::Tangent, 4, bgfx::AttribType::Uint8, true, true);
}
break;
}
}
- decl.end();
+ layout.end();
- uint32_t stride = decl.getStride();
- uint8_t* vertexData = new uint8_t[triangles.size() * 3 * stride];
- uint16_t* indexData = new uint16_t[triangles.size() * 3];
+ uint32_t stride = layout.getStride();
+ uint8_t* vertexData = new uint8_t[mesh.m_triangles.size() * 3 * stride];
+ uint16_t* indexData = new uint16_t[mesh.m_triangles.size() * 3];
int32_t numVertices = 0;
int32_t numIndices = 0;
- int32_t numPrimitives = 0;
+
+ int32_t writtenPrimitives = 0;
+ int32_t writtenVertices = 0;
+ int32_t writtenIndices = 0;
uint8_t* vertices = vertexData;
uint16_t* indices = indexData;
- stl::string material = groups.begin()->m_material;
+ const uint32_t tableSize = 65536 * 2;
+ const uint32_t hashmod = tableSize - 1;
+ uint32_t* table = new uint32_t[tableSize];
+ bx::memSet(table, 0xff, tableSize * sizeof(uint32_t) );
+
+ stl::string material = mesh.m_groups.empty() ? "" : mesh.m_groups.begin()->m_material;
PrimitiveArray primitives;
bx::FileWriter writer;
if (!bx::open(&writer, outFilePath) )
{
- printf("Unable to open output file '%s'.", outFilePath);
+ bx::printf("Unable to open output file '%s'.", outFilePath);
exit(bx::kExitFailure);
}
@@ -881,22 +1254,30 @@ int main(int _argc, const char* _argv[])
prim.m_startVertex = 0;
prim.m_startIndex = 0;
- uint32_t positionOffset = decl.getOffset(bgfx::Attrib::Position);
- uint32_t color0Offset = decl.getOffset(bgfx::Attrib::Color0);
+ uint32_t positionOffset = layout.getOffset(bgfx::Attrib::Position);
+ uint32_t color0Offset = layout.getOffset(bgfx::Attrib::Color0);
+
+ Group sentinelGroup;
+ sentinelGroup.m_startTriangle = 0;
+ sentinelGroup.m_numTriangles = UINT32_MAX;
+ mesh.m_groups.push_back(sentinelGroup);
- bx::DefaultAllocator crtAllocator;
- bx::MemoryBlock memBlock(&crtAllocator);
+ bx::Error err;
uint32_t ii = 0;
- for (GroupArray::const_iterator groupIt = groups.begin(); groupIt != groups.end(); ++groupIt, ++ii)
+ for (GroupArray::const_iterator groupIt = mesh.m_groups.begin(); groupIt != mesh.m_groups.end(); ++groupIt, ++ii)
{
+ const bool sentinel = groupIt->m_startTriangle == 0 && groupIt->m_numTriangles == UINT32_MAX;
+
for (uint32_t tri = groupIt->m_startTriangle, end = tri + groupIt->m_numTriangles; tri < end; ++tri)
{
if (0 != bx::strCmp(material.c_str(), groupIt->m_material.c_str() )
+ || sentinel
|| 65533 <= numVertices)
{
prim.m_numVertices = numVertices - prim.m_startVertex;
prim.m_numIndices = numIndices - prim.m_startIndex;
+
if (0 < prim.m_numVertices)
{
primitives.push_back(prim);
@@ -904,47 +1285,43 @@ int main(int _argc, const char* _argv[])
if (hasTangent)
{
- calcTangents(vertexData, uint16_t(numVertices), decl, indexData, numIndices);
+ calcTangents(vertexData, uint16_t(numVertices), layout, indexData, numIndices);
}
- bx::MemoryWriter memWriter(&memBlock);
-
triReorderElapsed -= bx::getHPCounter();
+
for (PrimitiveArray::const_iterator primIt = primitives.begin(); primIt != primitives.end(); ++primIt)
{
const Primitive& prim1 = *primIt;
- triangleReorder(indexData + prim1.m_startIndex, prim1.m_numIndices, numVertices, 32);
- if (compress)
- {
- triangleCompress(
- &memWriter
- , indexData + prim1.m_startIndex
- , prim1.m_numIndices
- , vertexData + prim1.m_startVertex
- , numVertices
- , uint16_t(stride)
- );
- }
+ optimizeVertexCache(indexData + prim1.m_startIndex, prim1.m_numIndices, numVertices);
}
- triReorderElapsed += bx::getHPCounter();
- write(&writer
- , vertexData
- , numVertices
- , decl
- , indexData
- , numIndices
- , (uint8_t*)memBlock.more()
- , memBlock.getSize()
- , material
- , primitives
- );
- primitives.clear();
+ numVertices = optimizeVertexFetch(indexData, numIndices, vertexData, numVertices, uint16_t(stride) );
+
+ triReorderElapsed += bx::getHPCounter();
- for (Index3Map::iterator indexIt = indexMap.begin(); indexIt != indexMap.end(); ++indexIt)
+ if (0 < numVertices
+ && 0 < numIndices)
{
- indexIt->second.m_vertexIndex = -1;
+ write(&writer
+ , vertexData
+ , numVertices
+ , layout
+ , indexData
+ , numIndices
+ , compress
+ , material
+ , primitives
+ , &err
+ );
}
+ primitives.clear();
+
+ bx::memSet(table, 0xff, tableSize * sizeof(uint32_t) );
+
+ ++writtenPrimitives;
+ writtenVertices += numVertices;
+ writtenIndices += numIndices;
vertices = vertexData;
indices = indexData;
@@ -952,64 +1329,94 @@ int main(int _argc, const char* _argv[])
numIndices = 0;
prim.m_startVertex = 0;
prim.m_startIndex = 0;
- ++numPrimitives;
material = groupIt->m_material;
+
+ if (sentinel)
+ {
+ break;
+ }
}
- Triangle& triangle = triangles[tri];
+ TriIndices& triangle = mesh.m_triangles[tri];
for (uint32_t edge = 0; edge < 3; ++edge)
{
- uint64_t hash = triangle.m_index[edge];
- Index3& index = indexMap[hash];
- if (index.m_vertexIndex == -1)
- {
- index.m_vertexIndex = numVertices++;
+ Index3& index = triangle.m_index[edge];
- float* position = (float*)(vertices + positionOffset);
- bx::memCopy(position, &positions[index.m_position], 3*sizeof(float) );
+ float* position = (float*)(vertices + positionOffset);
+ bx::memCopy(position, &mesh.m_positions[index.m_position], 3*sizeof(float) );
- if (hasColor)
+ if (hasColor)
+ {
+ uint32_t* color0 = (uint32_t*)(vertices + color0Offset);
+ *color0 = rgbaToAbgr(numVertices%255, numIndices%255, 0, 0xff);
+ }
+
+ if (hasBc)
+ {
+ const float bc[4] =
{
- uint32_t* color0 = (uint32_t*)(vertices + color0Offset);
- *color0 = rgbaToAbgr(numVertices%255, numIndices%255, 0, 0xff);
- }
+ (index.m_vbc == 0) ? 1.0f : 0.0f,
+ (index.m_vbc == 1) ? 1.0f : 0.0f,
+ (index.m_vbc == 2) ? 1.0f : 0.0f,
+ 0.0f
+ };
+ bgfx::vertexPack(bc, true, bgfx::Attrib::Color1, layout, vertices);
+ }
+
+ if (hasTexcoord)
+ {
+ float uv[2];
+ bx::memCopy(uv, &mesh.m_texcoords[index.m_texcoord == -1 ? 0 : index.m_texcoord], 2*sizeof(float) );
- if (hasBc)
+ if (flipV)
{
- const float bc[3] =
- {
- (index.m_vbc == 0) ? 1.0f : 0.0f,
- (index.m_vbc == 1) ? 1.0f : 0.0f,
- (index.m_vbc == 2) ? 1.0f : 0.0f,
- };
- bgfx::vertexPack(bc, true, bgfx::Attrib::Color1, decl, vertices);
+ uv[1] = -uv[1];
}
- if (hasTexcoord)
- {
- float uv[2];
- bx::memCopy(uv, &texcoords[index.m_texcoord], 2*sizeof(float) );
+ bgfx::vertexPack(uv, true, bgfx::Attrib::TexCoord0, layout, vertices);
+ }
- if (flipV)
- {
- uv[1] = -uv[1];
- }
+ if (hasNormal)
+ {
+ float normal[4];
+ bx::store(normal, bx::normalize(bx::load<bx::Vec3>(&mesh.m_normals[index.m_normal == -1 ? 0 : index.m_normal]) ) );
+ normal[3] = 0.0f;
+ bgfx::vertexPack(normal, true, bgfx::Attrib::Normal, layout, vertices);
+ }
+
+ uint32_t hash = bx::hash<bx::HashMurmur2A>(vertices, stride);
+ size_t bucket = hash & hashmod;
+ uint32_t vertexIndex = UINT32_MAX;
+
+ for (size_t probe = 0; probe <= hashmod; ++probe)
+ {
+ uint32_t& item = table[bucket];
- bgfx::vertexPack(uv, true, bgfx::Attrib::TexCoord0, decl, vertices);
+ if (item == ~0u)
+ {
+ vertices += stride;
+ item = numVertices++;
+ vertexIndex = item;
+ break;
}
- if (hasNormal)
+ if (0 == bx::memCmp(vertexData + item * stride, vertices, stride) )
{
- float normal[4];
- bx::vec3Norm(normal, (float*)&normals[index.m_normal]);
- bgfx::vertexPack(normal, true, bgfx::Attrib::Normal, decl, vertices);
+ vertexIndex = item;
+ break;
}
- vertices += stride;
+ bucket = (bucket + probe + 1) & hashmod;
}
- *indices++ = (uint16_t)index.m_vertexIndex;
+ if ( vertexIndex == UINT32_MAX )
+ {
+ bx::printf("hash table insert failed");
+ exit(bx::kExitFailure);
+ }
+
+ *indices++ = (uint16_t)vertexIndex;
++numIndices;
}
}
@@ -1032,64 +1439,26 @@ int main(int _argc, const char* _argv[])
);
}
- if (0 < primitives.size() )
- {
- if (hasTangent)
- {
- calcTangents(vertexData, uint16_t(numVertices), decl, indexData, numIndices);
- }
-
- bx::MemoryWriter memWriter(&memBlock);
-
- triReorderElapsed -= bx::getHPCounter();
- for (PrimitiveArray::const_iterator primIt = primitives.begin(); primIt != primitives.end(); ++primIt)
- {
- const Primitive& prim1 = *primIt;
- triangleReorder(indexData + prim1.m_startIndex, prim1.m_numIndices, numVertices, 32);
- if (compress)
- {
- triangleCompress(&memWriter
- , indexData + prim1.m_startIndex
- , prim1.m_numIndices
- , vertexData + prim1.m_startVertex
- , numVertices
- , uint16_t(stride)
- );
- }
- }
- triReorderElapsed += bx::getHPCounter();
-
- write(&writer
- , vertexData
- , numVertices
- , decl
- , indexData
- , numIndices
- , (uint8_t*)memBlock.more()
- , memBlock.getSize()
- , material
- , primitives
- );
- }
+ BX_ASSERT(0 == primitives.size(), "Not all primitives are written");
- printf("size: %d\n", uint32_t(bx::seek(&writer) ) );
+ bx::printf("size: %d\n", uint32_t(bx::seek(&writer) ) );
bx::close(&writer);
+ delete [] table;
delete [] indexData;
delete [] vertexData;
now = bx::getHPCounter();
convertElapsed += now;
- printf("parse %f [s]\ntri reorder %f [s]\nconvert %f [s]\n# %d, g %d, p %d, v %d, i %d\n"
+ bx::printf("parse %f [s]\ntri reorder %f [s]\nconvert %f [s]\ng %d, p %d, v %d, i %d\n"
, double(parseElapsed)/bx::getHPFrequency()
, double(triReorderElapsed)/bx::getHPFrequency()
, double(convertElapsed)/bx::getHPFrequency()
- , num
- , uint32_t(groups.size() )
- , numPrimitives
- , numVertices
- , numIndices
+ , uint32_t(mesh.m_groups.size()-1)
+ , writtenPrimitives
+ , writtenVertices
+ , writtenIndices
);
return bx::kExitSuccess;
diff --git a/3rdparty/bgfx/tools/geometryv/fs_mesh.bin.h b/3rdparty/bgfx/tools/geometryv/fs_mesh.bin.h
new file mode 100644
index 00000000000..6bf1cfdfb91
--- /dev/null
+++ b/3rdparty/bgfx/tools/geometryv/fs_mesh.bin.h
@@ -0,0 +1,525 @@
+static const uint8_t fs_mesh_glsl[1011] =
+{
+ 0x46, 0x53, 0x48, 0x0b, 0xe3, 0xc2, 0x5c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, // FSH....e........
+ 0x00, 0x00, 0x76, 0x61, 0x72, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x76, // ..varying vec3 v
+ 0x5f, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x3b, 0x0a, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x6d, 0x61, // _normal;.void ma
+ 0x69, 0x6e, 0x20, 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x74, // in ().{. vec3 t
+ 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, // mpvar_1;. tmpva
+ 0x72, 0x5f, 0x31, 0x20, 0x3d, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x28, // r_1 = normalize(
+ 0x76, 0x5f, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x65, 0x63, // v_normal);. vec
+ 0x33, 0x20, 0x72, 0x67, 0x62, 0x5f, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x67, 0x62, 0x5f, 0x32, // 3 rgb_2;. rgb_2
+ 0x20, 0x3d, 0x20, 0x28, 0x76, 0x65, 0x63, 0x33, 0x28, 0x30, 0x2e, 0x32, 0x37, 0x32, 0x39, 0x39, // = (vec3(0.27299
+ 0x39, 0x32, 0x2c, 0x20, 0x30, 0x2e, 0x32, 0x37, 0x35, 0x34, 0x37, 0x30, 0x31, 0x2c, 0x20, 0x30, // 92, 0.2754701, 0
+ 0x2e, 0x32, 0x35, 0x31, 0x34, 0x30, 0x38, 0x29, 0x20, 0x2b, 0x20, 0x28, 0x28, 0x76, 0x65, 0x63, // .251408) + ((vec
+ 0x33, 0x28, 0x30, 0x2e, 0x33, 0x37, 0x35, 0x34, 0x30, 0x36, 0x35, 0x2c, 0x20, 0x30, 0x2e, 0x34, // 3(0.3754065, 0.4
+ 0x31, 0x33, 0x38, 0x33, 0x38, 0x38, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x31, 0x35, 0x38, 0x33, 0x32, // 138388, 0.415832
+ 0x37, 0x29, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x29, // 7) * tmpvar_1.x)
+ 0x20, 0x2f, 0x20, 0x32, 0x2e, 0x35, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x67, 0x62, 0x5f, // / 2.5));. rgb_
+ 0x32, 0x20, 0x3d, 0x20, 0x28, 0x72, 0x67, 0x62, 0x5f, 0x32, 0x20, 0x2b, 0x20, 0x28, 0x28, 0x76, // 2 = (rgb_2 + ((v
+ 0x65, 0x63, 0x33, 0x28, 0x30, 0x2e, 0x30, 0x35, 0x34, 0x36, 0x33, 0x31, 0x39, 0x31, 0x2c, 0x20, // ec3(0.05463191,
+ 0x30, 0x2e, 0x30, 0x35, 0x35, 0x33, 0x33, 0x36, 0x36, 0x32, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x36, // 0.05533662, 0.06
+ 0x38, 0x33, 0x37, 0x34, 0x39, 0x38, 0x29, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // 837498) * tmpvar
+ 0x5f, 0x31, 0x2e, 0x79, 0x29, 0x20, 0x2f, 0x20, 0x32, 0x2e, 0x35, 0x29, 0x29, 0x3b, 0x0a, 0x20, // _1.y) / 2.5));.
+ 0x20, 0x72, 0x67, 0x62, 0x5f, 0x32, 0x20, 0x3d, 0x20, 0x28, 0x72, 0x67, 0x62, 0x5f, 0x32, 0x20, // rgb_2 = (rgb_2
+ 0x2b, 0x20, 0x28, 0x28, 0x76, 0x65, 0x63, 0x33, 0x28, 0x2d, 0x30, 0x2e, 0x31, 0x31, 0x38, 0x32, // + ((vec3(-0.1182
+ 0x32, 0x37, 0x33, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x31, 0x31, 0x36, 0x35, 0x37, 0x38, 0x36, 0x2c, // 273, -0.1165786,
+ 0x20, 0x2d, 0x30, 0x2e, 0x31, 0x31, 0x34, 0x34, 0x34, 0x32, 0x34, 0x29, 0x20, 0x2a, 0x20, 0x74, // -0.1144424) * t
+ 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x7a, 0x29, 0x20, 0x2f, 0x20, 0x32, 0x2e, 0x35, // mpvar_1.z) / 2.5
+ 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x67, 0x62, 0x5f, 0x32, 0x20, 0x3d, 0x20, 0x28, 0x72, // ));. rgb_2 = (r
+ 0x67, 0x62, 0x5f, 0x32, 0x20, 0x2b, 0x20, 0x28, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // gb_2 + ((tmpvar_
+ 0x31, 0x2e, 0x78, 0x20, 0x2a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x28, 0x76, 0x65, 0x63, 0x33, // 1.x * . (vec3
+ 0x28, 0x2d, 0x30, 0x2e, 0x31, 0x39, 0x33, 0x30, 0x36, 0x36, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x31, // (-0.193066, -0.1
+ 0x38, 0x36, 0x30, 0x39, 0x35, 0x33, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x31, 0x36, 0x35, 0x33, 0x35, // 860953, -0.16535
+ 0x31, 0x38, 0x29, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x7a, // 18) * tmpvar_1.z
+ 0x29, 0x0a, 0x20, 0x20, 0x29, 0x20, 0x2f, 0x20, 0x32, 0x2e, 0x35, 0x29, 0x29, 0x3b, 0x0a, 0x20, // ). ) / 2.5));.
+ 0x20, 0x72, 0x67, 0x62, 0x5f, 0x32, 0x20, 0x3d, 0x20, 0x28, 0x72, 0x67, 0x62, 0x5f, 0x32, 0x20, // rgb_2 = (rgb_2
+ 0x2b, 0x20, 0x28, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x20, 0x2a, // + ((tmpvar_1.x *
+ 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x30, 0x2e, 0x30, 0x36, 0x38, 0x31, 0x31, 0x30, 0x36, 0x33, // vec3(0.06811063
+ 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x36, 0x35, 0x31, 0x39, 0x32, 0x38, 0x2c, 0x20, 0x30, 0x2e, 0x30, // , 0.0651928, 0.0
+ 0x35, 0x32, 0x36, 0x30, 0x36, 0x34, 0x29, 0x29, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, // 526064)) * tmpva
+ 0x72, 0x5f, 0x31, 0x2e, 0x79, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x67, 0x62, 0x5f, 0x32, // r_1.y));. rgb_2
+ 0x20, 0x3d, 0x20, 0x28, 0x72, 0x67, 0x62, 0x5f, 0x32, 0x20, 0x2b, 0x20, 0x28, 0x76, 0x65, 0x63, // = (rgb_2 + (vec
+ 0x33, 0x28, 0x30, 0x2e, 0x30, 0x30, 0x30, 0x32, 0x39, 0x32, 0x31, 0x31, 0x32, 0x33, 0x2c, 0x20, // 3(0.0002921123,
+ 0x2d, 0x30, 0x2e, 0x30, 0x30, 0x35, 0x31, 0x33, 0x39, 0x37, 0x34, 0x35, 0x2c, 0x20, 0x2d, 0x30, // -0.005139745, -0
+ 0x2e, 0x30, 0x31, 0x33, 0x39, 0x30, 0x39, 0x34, 0x38, 0x29, 0x20, 0x2a, 0x20, 0x28, 0x0a, 0x20, // .01390948) * (.
+ 0x20, 0x20, 0x20, 0x28, 0x28, 0x33, 0x2e, 0x30, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, // ((3.0 * tmpva
+ 0x72, 0x5f, 0x31, 0x2e, 0x79, 0x29, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // r_1.y) * tmpvar_
+ 0x31, 0x2e, 0x79, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x29, 0x29, // 1.y). - 1.0)))
+ 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x67, 0x62, 0x5f, 0x32, 0x20, 0x3d, 0x20, 0x28, 0x72, 0x67, 0x62, // ;. rgb_2 = (rgb
+ 0x5f, 0x32, 0x20, 0x2b, 0x20, 0x28, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, // _2 + ((tmpvar_1.
+ 0x7a, 0x20, 0x2a, 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x2d, 0x30, 0x2e, 0x31, 0x36, 0x31, 0x38, // z * vec3(-0.1618
+ 0x39, 0x36, 0x38, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x31, 0x35, 0x33, 0x36, 0x34, 0x39, 0x38, 0x2c, // 968, -0.1536498,
+ 0x20, 0x2d, 0x30, 0x2e, 0x31, 0x33, 0x32, 0x39, 0x32, 0x33, 0x39, 0x29, 0x29, 0x20, 0x2a, 0x20, // -0.1329239)) *
+ 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x79, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, // tmpvar_1.y));.
+ 0x72, 0x67, 0x62, 0x5f, 0x32, 0x20, 0x3d, 0x20, 0x28, 0x72, 0x67, 0x62, 0x5f, 0x32, 0x20, 0x2b, // rgb_2 = (rgb_2 +
+ 0x20, 0x28, 0x76, 0x65, 0x63, 0x33, 0x28, 0x2d, 0x30, 0x2e, 0x30, 0x32, 0x31, 0x38, 0x30, 0x33, // (vec3(-0.021803
+ 0x36, 0x33, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x30, 0x32, 0x39, 0x38, 0x36, 0x35, 0x30, 0x37, 0x2c, // 63, -0.02986507,
+ 0x20, 0x2d, 0x30, 0x2e, 0x30, 0x34, 0x32, 0x39, 0x33, 0x39, 0x35, 0x38, 0x29, 0x20, 0x2a, 0x20, // -0.04293958) *
+ 0x28, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, // (. (tmpvar_1.
+ 0x7a, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x7a, 0x29, 0x0a, // z * tmpvar_1.z).
+ 0x20, 0x20, 0x20, 0x2d, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, // - . (tmpva
+ 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, // r_1.x * tmpvar_1
+ 0x2e, 0x78, 0x29, 0x0a, 0x20, 0x20, 0x29, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x67, 0x6c, 0x5f, // .x). )));. gl_
+ 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x2e, 0x78, 0x79, 0x7a, 0x20, 0x3d, 0x20, // FragColor.xyz =
+ 0x72, 0x67, 0x62, 0x5f, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, // rgb_2;. gl_Frag
+ 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x2e, 0x77, 0x20, 0x3d, 0x20, 0x31, 0x2e, 0x30, 0x3b, 0x0a, 0x7d, // Color.w = 1.0;.}
+ 0x0a, 0x0a, 0x00, // ...
+};
+static const uint8_t fs_mesh_essl[1029] =
+{
+ 0x46, 0x53, 0x48, 0x0b, 0xe3, 0xc2, 0x5c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2, 0x03, // FSH....e........
+ 0x00, 0x00, 0x76, 0x61, 0x72, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, // ..varying highp
+ 0x76, 0x65, 0x63, 0x33, 0x20, 0x76, 0x5f, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x3b, 0x0a, 0x76, // vec3 v_normal;.v
+ 0x6f, 0x69, 0x64, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, // oid main ().{.
+ 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, // highp vec3 tmpva
+ 0x72, 0x5f, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x20, // r_1;. tmpvar_1
+ 0x3d, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x28, 0x76, 0x5f, 0x6e, 0x6f, // = normalize(v_no
+ 0x72, 0x6d, 0x61, 0x6c, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x76, // rmal);. highp v
+ 0x65, 0x63, 0x33, 0x20, 0x72, 0x67, 0x62, 0x5f, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x67, 0x62, // ec3 rgb_2;. rgb
+ 0x5f, 0x32, 0x20, 0x3d, 0x20, 0x28, 0x76, 0x65, 0x63, 0x33, 0x28, 0x30, 0x2e, 0x32, 0x37, 0x32, // _2 = (vec3(0.272
+ 0x39, 0x39, 0x39, 0x32, 0x2c, 0x20, 0x30, 0x2e, 0x32, 0x37, 0x35, 0x34, 0x37, 0x30, 0x31, 0x2c, // 9992, 0.2754701,
+ 0x20, 0x30, 0x2e, 0x32, 0x35, 0x31, 0x34, 0x30, 0x38, 0x29, 0x20, 0x2b, 0x20, 0x28, 0x28, 0x76, // 0.251408) + ((v
+ 0x65, 0x63, 0x33, 0x28, 0x30, 0x2e, 0x33, 0x37, 0x35, 0x34, 0x30, 0x36, 0x35, 0x2c, 0x20, 0x30, // ec3(0.3754065, 0
+ 0x2e, 0x34, 0x31, 0x33, 0x38, 0x33, 0x38, 0x38, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x31, 0x35, 0x38, // .4138388, 0.4158
+ 0x33, 0x32, 0x37, 0x29, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, // 327) * tmpvar_1.
+ 0x78, 0x29, 0x20, 0x2f, 0x20, 0x32, 0x2e, 0x35, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x67, // x) / 2.5));. rg
+ 0x62, 0x5f, 0x32, 0x20, 0x3d, 0x20, 0x28, 0x72, 0x67, 0x62, 0x5f, 0x32, 0x20, 0x2b, 0x20, 0x28, // b_2 = (rgb_2 + (
+ 0x28, 0x76, 0x65, 0x63, 0x33, 0x28, 0x30, 0x2e, 0x30, 0x35, 0x34, 0x36, 0x33, 0x31, 0x39, 0x31, // (vec3(0.05463191
+ 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x35, 0x35, 0x33, 0x33, 0x36, 0x36, 0x32, 0x2c, 0x20, 0x30, 0x2e, // , 0.05533662, 0.
+ 0x30, 0x36, 0x38, 0x33, 0x37, 0x34, 0x39, 0x38, 0x29, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, // 06837498) * tmpv
+ 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x79, 0x29, 0x20, 0x2f, 0x20, 0x32, 0x2e, 0x35, 0x29, 0x29, 0x3b, // ar_1.y) / 2.5));
+ 0x0a, 0x20, 0x20, 0x72, 0x67, 0x62, 0x5f, 0x32, 0x20, 0x3d, 0x20, 0x28, 0x72, 0x67, 0x62, 0x5f, // . rgb_2 = (rgb_
+ 0x32, 0x20, 0x2b, 0x20, 0x28, 0x28, 0x76, 0x65, 0x63, 0x33, 0x28, 0x2d, 0x30, 0x2e, 0x31, 0x31, // 2 + ((vec3(-0.11
+ 0x38, 0x32, 0x32, 0x37, 0x33, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x31, 0x31, 0x36, 0x35, 0x37, 0x38, // 82273, -0.116578
+ 0x36, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x31, 0x31, 0x34, 0x34, 0x34, 0x32, 0x34, 0x29, 0x20, 0x2a, // 6, -0.1144424) *
+ 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x7a, 0x29, 0x20, 0x2f, 0x20, 0x32, // tmpvar_1.z) / 2
+ 0x2e, 0x35, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x67, 0x62, 0x5f, 0x32, 0x20, 0x3d, 0x20, // .5));. rgb_2 =
+ 0x28, 0x72, 0x67, 0x62, 0x5f, 0x32, 0x20, 0x2b, 0x20, 0x28, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, // (rgb_2 + ((tmpva
+ 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x20, 0x2a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x28, 0x76, 0x65, // r_1.x * . (ve
+ 0x63, 0x33, 0x28, 0x2d, 0x30, 0x2e, 0x31, 0x39, 0x33, 0x30, 0x36, 0x36, 0x2c, 0x20, 0x2d, 0x30, // c3(-0.193066, -0
+ 0x2e, 0x31, 0x38, 0x36, 0x30, 0x39, 0x35, 0x33, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x31, 0x36, 0x35, // .1860953, -0.165
+ 0x33, 0x35, 0x31, 0x38, 0x29, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, // 3518) * tmpvar_1
+ 0x2e, 0x7a, 0x29, 0x0a, 0x20, 0x20, 0x29, 0x20, 0x2f, 0x20, 0x32, 0x2e, 0x35, 0x29, 0x29, 0x3b, // .z). ) / 2.5));
+ 0x0a, 0x20, 0x20, 0x72, 0x67, 0x62, 0x5f, 0x32, 0x20, 0x3d, 0x20, 0x28, 0x72, 0x67, 0x62, 0x5f, // . rgb_2 = (rgb_
+ 0x32, 0x20, 0x2b, 0x20, 0x28, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x78, // 2 + ((tmpvar_1.x
+ 0x20, 0x2a, 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x30, 0x2e, 0x30, 0x36, 0x38, 0x31, 0x31, 0x30, // * vec3(0.068110
+ 0x36, 0x33, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x36, 0x35, 0x31, 0x39, 0x32, 0x38, 0x2c, 0x20, 0x30, // 63, 0.0651928, 0
+ 0x2e, 0x30, 0x35, 0x32, 0x36, 0x30, 0x36, 0x34, 0x29, 0x29, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, // .0526064)) * tmp
+ 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x79, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x67, 0x62, // var_1.y));. rgb
+ 0x5f, 0x32, 0x20, 0x3d, 0x20, 0x28, 0x72, 0x67, 0x62, 0x5f, 0x32, 0x20, 0x2b, 0x20, 0x28, 0x76, // _2 = (rgb_2 + (v
+ 0x65, 0x63, 0x33, 0x28, 0x30, 0x2e, 0x30, 0x30, 0x30, 0x32, 0x39, 0x32, 0x31, 0x31, 0x32, 0x33, // ec3(0.0002921123
+ 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x30, 0x30, 0x35, 0x31, 0x33, 0x39, 0x37, 0x34, 0x35, 0x2c, 0x20, // , -0.005139745,
+ 0x2d, 0x30, 0x2e, 0x30, 0x31, 0x33, 0x39, 0x30, 0x39, 0x34, 0x38, 0x29, 0x20, 0x2a, 0x20, 0x28, // -0.01390948) * (
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x28, 0x28, 0x33, 0x2e, 0x30, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, // . ((3.0 * tmp
+ 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x79, 0x29, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, // var_1.y) * tmpva
+ 0x72, 0x5f, 0x31, 0x2e, 0x79, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x31, 0x2e, 0x30, 0x29, // r_1.y). - 1.0)
+ 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x67, 0x62, 0x5f, 0x32, 0x20, 0x3d, 0x20, 0x28, 0x72, // ));. rgb_2 = (r
+ 0x67, 0x62, 0x5f, 0x32, 0x20, 0x2b, 0x20, 0x28, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // gb_2 + ((tmpvar_
+ 0x31, 0x2e, 0x7a, 0x20, 0x2a, 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x2d, 0x30, 0x2e, 0x31, 0x36, // 1.z * vec3(-0.16
+ 0x31, 0x38, 0x39, 0x36, 0x38, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x31, 0x35, 0x33, 0x36, 0x34, 0x39, // 18968, -0.153649
+ 0x38, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x31, 0x33, 0x32, 0x39, 0x32, 0x33, 0x39, 0x29, 0x29, 0x20, // 8, -0.1329239))
+ 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x79, 0x29, 0x29, 0x3b, 0x0a, // * tmpvar_1.y));.
+ 0x20, 0x20, 0x72, 0x67, 0x62, 0x5f, 0x32, 0x20, 0x3d, 0x20, 0x28, 0x72, 0x67, 0x62, 0x5f, 0x32, // rgb_2 = (rgb_2
+ 0x20, 0x2b, 0x20, 0x28, 0x76, 0x65, 0x63, 0x33, 0x28, 0x2d, 0x30, 0x2e, 0x30, 0x32, 0x31, 0x38, // + (vec3(-0.0218
+ 0x30, 0x33, 0x36, 0x33, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x30, 0x32, 0x39, 0x38, 0x36, 0x35, 0x30, // 0363, -0.0298650
+ 0x37, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x30, 0x34, 0x32, 0x39, 0x33, 0x39, 0x35, 0x38, 0x29, 0x20, // 7, -0.04293958)
+ 0x2a, 0x20, 0x28, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // * (. (tmpvar_
+ 0x31, 0x2e, 0x7a, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x7a, // 1.z * tmpvar_1.z
+ 0x29, 0x0a, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x28, 0x74, 0x6d, 0x70, // ). - . (tmp
+ 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // var_1.x * tmpvar
+ 0x5f, 0x31, 0x2e, 0x78, 0x29, 0x0a, 0x20, 0x20, 0x29, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x67, // _1.x). )));. g
+ 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x2e, 0x78, 0x79, 0x7a, 0x20, // l_FragColor.xyz
+ 0x3d, 0x20, 0x72, 0x67, 0x62, 0x5f, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x67, 0x6c, 0x5f, 0x46, 0x72, // = rgb_2;. gl_Fr
+ 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x2e, 0x77, 0x20, 0x3d, 0x20, 0x31, 0x2e, 0x30, 0x3b, // agColor.w = 1.0;
+ 0x0a, 0x7d, 0x0a, 0x0a, 0x00, // .}...
+};
+static const uint8_t fs_mesh_spv[2642] =
+{
+ 0x46, 0x53, 0x48, 0x0b, 0xe3, 0xc2, 0x5c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x0a, // FSH....e......<.
+ 0x00, 0x00, 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0a, 0x00, 0x08, 0x00, 0x23, 0x02, // ....#.........#.
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, // ................
+ 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, // ......GLSL.std.4
+ 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, // 50..............
+ 0x00, 0x00, 0x0f, 0x00, 0x08, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, // ..............ma
+ 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x01, 0x00, 0x00, 0x1e, 0x01, 0x00, 0x00, 0x29, 0x01, // in............).
+ 0x00, 0x00, 0x10, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, // ................
+ 0x03, 0x00, 0x05, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, // ................
+ 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x1a, 0x01, // ..main..........
+ 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x00, 0x00, // ..gl_FragCoord..
+ 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x1e, 0x01, 0x00, 0x00, 0x76, 0x5f, 0x6e, 0x6f, 0x72, 0x6d, // ..........v_norm
+ 0x61, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x29, 0x01, 0x00, 0x00, 0x62, 0x67, // al........)...bg
+ 0x66, 0x78, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x44, 0x61, 0x74, 0x61, 0x30, 0x00, 0x00, 0x47, 0x00, // fx_FragData0..G.
+ 0x04, 0x00, 0x1a, 0x01, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x47, 0x00, // ..............G.
+ 0x04, 0x00, 0x1e, 0x01, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, // ..............G.
+ 0x04, 0x00, 0x29, 0x01, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x00, // ..).............
+ 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, // ......!.........
+ 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, // .......... .....
+ 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x17, 0x00, // ................
+ 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x2b, 0x00, // ..............+.
+ 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x14, 0xb1, 0xc4, 0xbe, 0x2b, 0x00, // ......8.......+.
+ 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0xfb, 0xd3, 0xd8, 0xbe, 0x2b, 0x00, // ......9.......+.
+ 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x6d, 0xdf, 0xd9, 0xbe, 0x2c, 0x00, // ......:...m...,.
+ 0x06, 0x00, 0x08, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x39, 0x00, // ......;...8...9.
+ 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3e, 0x00, // ..:...+.......>.
+ 0x00, 0x00, 0x00, 0xfe, 0x64, 0x3d, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3f, 0x00, // ....d=+.......?.
+ 0x00, 0x00, 0x2c, 0xf2, 0x67, 0x3d, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x40, 0x00, // ..,.g=+.......@.
+ 0x00, 0x00, 0x66, 0x4c, 0x8f, 0x3d, 0x2c, 0x00, 0x06, 0x00, 0x08, 0x00, 0x00, 0x00, 0x41, 0x00, // ..fL.=,.......A.
+ 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x2b, 0x00, // ..>...?...@...+.
+ 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x11, 0xc7, 0xf7, 0x3d, 0x2b, 0x00, // ......D......=+.
+ 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x82, 0x52, 0xf4, 0x3d, 0x2b, 0x00, // ......E....R.=+.
+ 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x66, 0xd8, 0xef, 0x3d, 0x2c, 0x00, // ......F...f..=,.
+ 0x06, 0x00, 0x08, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x45, 0x00, // ......G...D...E.
+ 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x4a, 0x00, // ..F...+.......J.
+ 0x00, 0x00, 0xe5, 0xf3, 0x34, 0xbe, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x4b, 0x00, // ....4.+.......K.
+ 0x00, 0x00, 0x5b, 0x6b, 0x2e, 0xbe, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x4c, 0x00, // ..[k..+.......L.
+ 0x00, 0x00, 0x30, 0xfa, 0x1a, 0xbe, 0x2c, 0x00, 0x06, 0x00, 0x08, 0x00, 0x00, 0x00, 0x4d, 0x00, // ..0...,.......M.
+ 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x2b, 0x00, // ..J...K...L...+.
+ 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x56, 0x59, 0xff, 0xbd, 0x2b, 0x00, // ......P...VY..+.
+ 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0xf1, 0x68, 0xf4, 0xbd, 0x2b, 0x00, // ......Q....h..+.
+ 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x1f, 0x39, 0xc5, 0xbd, 0x2c, 0x00, // ......R....9..,.
+ 0x06, 0x00, 0x08, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x51, 0x00, // ......S...P...Q.
+ 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x56, 0x00, // ..R...+.......V.
+ 0x00, 0x00, 0x83, 0xcb, 0xf2, 0x3a, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x57, 0x00, // .....:+.......W.
+ 0x00, 0x00, 0x03, 0x80, 0x05, 0xbd, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x58, 0x00, // ......+.......X.
+ 0x00, 0x00, 0x8f, 0xa4, 0xb4, 0xbd, 0x2c, 0x00, 0x06, 0x00, 0x08, 0x00, 0x00, 0x00, 0x59, 0x00, // ......,.......Y.
+ 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x2b, 0x00, // ..V...W...X...+.
+ 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x37, 0xbd, 0x97, 0x3e, 0x2b, 0x00, // ..........7..>+.
+ 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x73, 0x02, 0x90, 0x3e, 0x2b, 0x00, // ......]...s..>+.
+ 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x09, 0x2b, 0x79, 0x3e, 0x2c, 0x00, // ......^....+y>,.
+ 0x06, 0x00, 0x08, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x5d, 0x00, // ......_.......].
+ 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x62, 0x00, // ..^...+.......b.
+ 0x00, 0x00, 0x2a, 0x7c, 0xa3, 0xbd, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x63, 0x00, // ..*|..+.......c.
+ 0x00, 0x00, 0x27, 0xee, 0xdf, 0xbd, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x64, 0x00, // ..'...+.......d.
+ 0x00, 0x00, 0x5c, 0xfb, 0x20, 0xbe, 0x2c, 0x00, 0x06, 0x00, 0x08, 0x00, 0x00, 0x00, 0x65, 0x00, // .... .,.......e.
+ 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x2b, 0x00, // ..b...c...d...+.
+ 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x1c, 0x2a, 0xfa, 0xbe, 0x2b, 0x00, // ......o....*..+.
+ 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x1c, 0x2a, 0xfa, 0x3e, 0x2b, 0x00, // ......u....*.>+.
+ 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0xa1, 0xd8, 0x8b, 0x3f, 0x2b, 0x00, // .............?+.
+ 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0xa1, 0xd8, 0x8b, 0xbf, 0x2b, 0x00, // ..............+.
+ 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x01, 0x7b, 0xa1, 0x3e, 0x2b, 0x00, // ...........{.>+.
+ 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x2b, 0x00, // ............@@+.
+ 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x2b, 0x00, // .............?+.
+ 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0xa1, 0xd8, 0x0b, 0x3f, 0x2b, 0x00, // .............?+.
+ 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x2b, 0x00, // .............@+.
+ 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, 0x00, // .............? .
+ 0x04, 0x00, 0x19, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3b, 0x00, // ..............;.
+ 0x04, 0x00, 0x19, 0x01, 0x00, 0x00, 0x1a, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, // .............. .
+ 0x04, 0x00, 0x1d, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x3b, 0x00, // ..............;.
+ 0x04, 0x00, 0x1d, 0x01, 0x00, 0x00, 0x1e, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, // .............. .
+ 0x04, 0x00, 0x28, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3b, 0x00, // ..(...........;.
+ 0x04, 0x00, 0x28, 0x01, 0x00, 0x00, 0x29, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, // ..(...).......+.
+ 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1b, 0x02, 0x00, 0x00, 0x8e, 0xc6, 0x8b, 0x3e, 0x2b, 0x00, // .............>+.
+ 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1c, 0x02, 0x00, 0x00, 0x6b, 0x0a, 0x8d, 0x3e, 0x2b, 0x00, // ..........k..>+.
+ 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1d, 0x02, 0x00, 0x00, 0x8e, 0xb8, 0x80, 0x3e, 0x2c, 0x00, // .............>,.
+ 0x06, 0x00, 0x08, 0x00, 0x00, 0x00, 0x1e, 0x02, 0x00, 0x00, 0x1b, 0x02, 0x00, 0x00, 0x1c, 0x02, // ................
+ 0x00, 0x00, 0x1d, 0x02, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x02, // ......+....... .
+ 0x00, 0x00, 0xcd, 0xcc, 0xcc, 0x3e, 0x2c, 0x00, 0x06, 0x00, 0x08, 0x00, 0x00, 0x00, 0x21, 0x02, // .....>,.......!.
+ 0x00, 0x00, 0x20, 0x02, 0x00, 0x00, 0x20, 0x02, 0x00, 0x00, 0x20, 0x02, 0x00, 0x00, 0x01, 0x00, // .. ... ... .....
+ 0x03, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x22, 0x02, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, // ......"...6.....
+ 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, // ................
+ 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x1f, 0x01, // ......=.........
+ 0x00, 0x00, 0x1e, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x08, 0x00, 0x00, 0x00, 0x47, 0x01, // ..............G.
+ 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x1f, 0x01, 0x00, 0x00, 0x51, 0x00, // ......E.......Q.
+ 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x68, 0x01, 0x00, 0x00, 0x47, 0x01, 0x00, 0x00, 0x00, 0x00, // ......h...G.....
+ 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x69, 0x01, 0x00, 0x00, 0x6f, 0x00, // ..........i...o.
+ 0x00, 0x00, 0x68, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6c, 0x01, // ..h...Q.......l.
+ 0x00, 0x00, 0x47, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x06, 0x00, // ..G.............
+ 0x00, 0x00, 0x6d, 0x01, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x6c, 0x01, 0x00, 0x00, 0x51, 0x00, // ..m...u...l...Q.
+ 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x70, 0x01, 0x00, 0x00, 0x47, 0x01, 0x00, 0x00, 0x02, 0x00, // ......p...G.....
+ 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x71, 0x01, 0x00, 0x00, 0x6f, 0x00, // ..........q...o.
+ 0x00, 0x00, 0x70, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x74, 0x01, // ..p...Q.......t.
+ 0x00, 0x00, 0x47, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x06, 0x00, // ..G.............
+ 0x00, 0x00, 0x75, 0x01, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x74, 0x01, 0x00, 0x00, 0x51, 0x00, // ..u.......t...Q.
+ 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x77, 0x01, 0x00, 0x00, 0x47, 0x01, 0x00, 0x00, 0x02, 0x00, // ......w...G.....
+ 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x78, 0x01, 0x00, 0x00, 0x75, 0x01, // ..........x...u.
+ 0x00, 0x00, 0x77, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x7b, 0x01, // ..w...Q.......{.
+ 0x00, 0x00, 0x47, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x06, 0x00, // ..G.............
+ 0x00, 0x00, 0x7c, 0x01, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x7b, 0x01, 0x00, 0x00, 0x51, 0x00, // ..|.......{...Q.
+ 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x7e, 0x01, 0x00, 0x00, 0x47, 0x01, 0x00, 0x00, 0x01, 0x00, // ......~...G.....
+ 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x7f, 0x01, 0x00, 0x00, 0x7c, 0x01, // ..............|.
+ 0x00, 0x00, 0x7e, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x82, 0x01, // ..~...Q.........
+ 0x00, 0x00, 0x47, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x06, 0x00, // ..G.............
+ 0x00, 0x00, 0x83, 0x01, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x82, 0x01, 0x00, 0x00, 0x51, 0x00, // ..............Q.
+ 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00, 0x00, 0x47, 0x01, 0x00, 0x00, 0x01, 0x00, // ..........G.....
+ 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x86, 0x01, 0x00, 0x00, 0x83, 0x01, // ................
+ 0x00, 0x00, 0x85, 0x01, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x87, 0x01, // ................
+ 0x00, 0x00, 0x86, 0x01, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x06, 0x00, // ................
+ 0x00, 0x00, 0x88, 0x01, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x87, 0x01, 0x00, 0x00, 0x51, 0x00, // ..............Q.
+ 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x8b, 0x01, 0x00, 0x00, 0x47, 0x01, 0x00, 0x00, 0x02, 0x00, // ..........G.....
+ 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x8c, 0x01, 0x00, 0x00, 0x88, 0x00, // ................
+ 0x00, 0x00, 0x8b, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x8e, 0x01, // ......Q.........
+ 0x00, 0x00, 0x47, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x06, 0x00, // ..G.............
+ 0x00, 0x00, 0x8f, 0x01, 0x00, 0x00, 0x8c, 0x01, 0x00, 0x00, 0x8e, 0x01, 0x00, 0x00, 0x51, 0x00, // ..............Q.
+ 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x92, 0x01, 0x00, 0x00, 0x47, 0x01, 0x00, 0x00, 0x02, 0x00, // ..........G.....
+ 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x94, 0x01, 0x00, 0x00, 0x47, 0x01, // ..Q...........G.
+ 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x95, 0x01, // ................
+ 0x00, 0x00, 0x92, 0x01, 0x00, 0x00, 0x94, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, // ..........Q.....
+ 0x00, 0x00, 0x97, 0x01, 0x00, 0x00, 0x47, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, // ......G.......Q.
+ 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x99, 0x01, 0x00, 0x00, 0x47, 0x01, 0x00, 0x00, 0x00, 0x00, // ..........G.....
+ 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x9a, 0x01, 0x00, 0x00, 0x97, 0x01, // ................
+ 0x00, 0x00, 0x99, 0x01, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x9b, 0x01, // ................
+ 0x00, 0x00, 0x95, 0x01, 0x00, 0x00, 0x9a, 0x01, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x06, 0x00, // ................
+ 0x00, 0x00, 0x9c, 0x01, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x9b, 0x01, 0x00, 0x00, 0x8e, 0x00, // ................
+ 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, 0xab, 0x01, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x69, 0x01, // ..........;...i.
+ 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, 0xac, 0x01, 0x00, 0x00, 0xab, 0x01, // ................
+ 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, 0xae, 0x01, // ................
+ 0x00, 0x00, 0xac, 0x01, 0x00, 0x00, 0x21, 0x02, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x08, 0x00, // ......!.........
+ 0x00, 0x00, 0xb0, 0x01, 0x00, 0x00, 0x1e, 0x02, 0x00, 0x00, 0xae, 0x01, 0x00, 0x00, 0x8e, 0x00, // ................
+ 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, 0xb5, 0x01, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x6d, 0x01, // ..........A...m.
+ 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, 0xb6, 0x01, 0x00, 0x00, 0xb5, 0x01, // ................
+ 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, 0xb8, 0x01, // ................
+ 0x00, 0x00, 0xb6, 0x01, 0x00, 0x00, 0x21, 0x02, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x08, 0x00, // ......!.........
+ 0x00, 0x00, 0xba, 0x01, 0x00, 0x00, 0xb0, 0x01, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x8e, 0x00, // ................
+ 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, 0xbf, 0x01, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x71, 0x01, // ..........G...q.
+ 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xbf, 0x01, // ................
+ 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, 0xc2, 0x01, // ................
+ 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x21, 0x02, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x08, 0x00, // ......!.........
+ 0x00, 0x00, 0xc4, 0x01, 0x00, 0x00, 0xba, 0x01, 0x00, 0x00, 0xc2, 0x01, 0x00, 0x00, 0x8e, 0x00, // ................
+ 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, 0xc9, 0x01, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x78, 0x01, // ..........M...x.
+ 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, 0xca, 0x01, 0x00, 0x00, 0xc9, 0x01, // ................
+ 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, 0xcc, 0x01, // ................
+ 0x00, 0x00, 0xca, 0x01, 0x00, 0x00, 0x21, 0x02, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x08, 0x00, // ......!.........
+ 0x00, 0x00, 0xce, 0x01, 0x00, 0x00, 0xc4, 0x01, 0x00, 0x00, 0xcc, 0x01, 0x00, 0x00, 0x8e, 0x00, // ................
+ 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, 0xd3, 0x01, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x7f, 0x01, // ..........S.....
+ 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, 0xd4, 0x01, 0x00, 0x00, 0xd3, 0x01, // ................
+ 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, 0xd6, 0x01, // ................
+ 0x00, 0x00, 0xce, 0x01, 0x00, 0x00, 0xd4, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x08, 0x00, // ................
+ 0x00, 0x00, 0xdb, 0x01, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x88, 0x01, 0x00, 0x00, 0x8e, 0x00, // ......Y.........
+ 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, 0xdc, 0x01, 0x00, 0x00, 0xdb, 0x01, 0x00, 0x00, 0xec, 0x00, // ................
+ 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, 0xde, 0x01, 0x00, 0x00, 0xd6, 0x01, // ................
+ 0x00, 0x00, 0xdc, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, 0xe3, 0x01, // ................
+ 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x8f, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x08, 0x00, // .._.............
+ 0x00, 0x00, 0xe4, 0x01, 0x00, 0x00, 0xe3, 0x01, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, 0x81, 0x00, // ................
+ 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, 0xe6, 0x01, 0x00, 0x00, 0xde, 0x01, 0x00, 0x00, 0xe4, 0x01, // ................
+ 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, 0xeb, 0x01, 0x00, 0x00, 0x65, 0x00, // ..............e.
+ 0x00, 0x00, 0x9c, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, 0xec, 0x01, // ................
+ 0x00, 0x00, 0xeb, 0x01, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x08, 0x00, // ................
+ 0x00, 0x00, 0xee, 0x01, 0x00, 0x00, 0xe6, 0x01, 0x00, 0x00, 0xec, 0x01, 0x00, 0x00, 0x4f, 0x00, // ..............O.
+ 0x09, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x4b, 0x01, 0x00, 0x00, 0x22, 0x02, 0x00, 0x00, 0xee, 0x01, // ......K...".....
+ 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, // ................
+ 0x00, 0x00, 0x52, 0x00, 0x06, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x18, 0x02, 0x00, 0x00, 0x98, 0x00, // ..R.............
+ 0x00, 0x00, 0x4b, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x29, 0x01, // ..K.......>...).
+ 0x00, 0x00, 0x18, 0x02, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00, 0x00, 0x00, // ..........8.....
+ 0x00, 0x00, // ..
+};
+static const uint8_t fs_mesh_dx9[663] =
+{
+ 0x46, 0x53, 0x48, 0x0b, 0xe3, 0xc2, 0x5c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x02, // FSH....e........
+ 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xfe, 0xff, 0x14, 0x00, 0x43, 0x54, 0x41, 0x42, 0x1c, 0x00, // ..........CTAB..
+ 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ..#.............
+ 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x70, 0x73, 0x5f, 0x33, 0x5f, 0x30, // ..........ps_3_0
+ 0x00, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, // .Microsoft (R) H
+ 0x4c, 0x53, 0x4c, 0x20, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x69, // LSL Shader Compi
+ 0x6c, 0x65, 0x72, 0x20, 0x31, 0x30, 0x2e, 0x31, 0x00, 0xab, 0x51, 0x00, 0x00, 0x05, 0x00, 0x00, // ler 10.1..Q.....
+ 0x0f, 0xa0, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x80, 0xbf, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, // ....@@.......?..
+ 0x00, 0x00, 0x51, 0x00, 0x00, 0x05, 0x01, 0x00, 0x0f, 0xa0, 0x8e, 0xc6, 0x8b, 0x3e, 0x6b, 0x0a, // ..Q..........>k.
+ 0x8d, 0x3e, 0x8e, 0xb8, 0x80, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x05, 0x02, 0x00, // .>...>....Q.....
+ 0x0f, 0xa0, 0x3a, 0xc4, 0x19, 0x3e, 0x25, 0x82, 0x29, 0x3e, 0x39, 0x53, 0x2a, 0x3e, 0x00, 0x00, // ..:..>%.)>9S*>..
+ 0x00, 0x00, 0x51, 0x00, 0x00, 0x05, 0x03, 0x00, 0x0f, 0xa0, 0x92, 0x04, 0xb3, 0x3c, 0xb8, 0x53, // ..Q..........<.S
+ 0xb5, 0x3c, 0x16, 0x0d, 0xe0, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x05, 0x04, 0x00, // .<...<....Q.....
+ 0x0f, 0xa0, 0x20, 0xb4, 0x41, 0xbd, 0x9c, 0x00, 0x3f, 0xbd, 0xa0, 0x80, 0x3b, 0xbd, 0x00, 0x00, // .. .A...?...;...
+ 0x00, 0x00, 0x51, 0x00, 0x00, 0x05, 0x05, 0x00, 0x0f, 0xa0, 0xe2, 0x28, 0x9e, 0xbd, 0x04, 0x73, // ..Q........(...s
+ 0x98, 0xbd, 0xc8, 0x74, 0x87, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x05, 0x06, 0x00, // ...t......Q.....
+ 0x0f, 0xa0, 0x96, 0x7d, 0x8b, 0x3d, 0xcd, 0x83, 0x85, 0x3d, 0xd0, 0x79, 0x57, 0x3d, 0x00, 0x00, // ...}.=...=.yW=..
+ 0x00, 0x00, 0x51, 0x00, 0x00, 0x05, 0x07, 0x00, 0x0f, 0xa0, 0xa6, 0x26, 0x99, 0x39, 0x4e, 0x6b, // ..Q........&.9Nk
+ 0xa8, 0xbb, 0x93, 0xe4, 0x63, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x05, 0x08, 0x00, // ....c.....Q.....
+ 0x0f, 0xa0, 0x48, 0xc8, 0x25, 0xbe, 0x62, 0x56, 0x1d, 0xbe, 0x37, 0x1d, 0x08, 0xbe, 0x00, 0x00, // ..H.%.bV..7.....
+ 0x00, 0x00, 0x51, 0x00, 0x00, 0x05, 0x09, 0x00, 0x0f, 0xa0, 0x85, 0x9d, 0xb2, 0xbc, 0x9a, 0xa7, // ..Q.............
+ 0xf4, 0xbc, 0x69, 0xe1, 0x2f, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x02, 0x03, 0x00, // ..i./...........
+ 0x00, 0x80, 0x00, 0x00, 0x07, 0x90, 0x08, 0x00, 0x00, 0x03, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, // ................
+ 0xe4, 0x90, 0x00, 0x00, 0xe4, 0x90, 0x07, 0x00, 0x00, 0x02, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, // ................
+ 0x00, 0x80, 0x05, 0x00, 0x00, 0x03, 0x00, 0x00, 0x0f, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, // ................
+ 0x90, 0x90, 0x01, 0x00, 0x00, 0x02, 0x01, 0x00, 0x07, 0x80, 0x02, 0x00, 0xe4, 0xa0, 0x04, 0x00, // ................
+ 0x00, 0x04, 0x01, 0x00, 0x07, 0x80, 0x00, 0x00, 0x55, 0x80, 0x01, 0x00, 0xe4, 0x80, 0x01, 0x00, // ........U.......
+ 0xe4, 0xa0, 0x04, 0x00, 0x00, 0x04, 0x01, 0x00, 0x07, 0x80, 0x00, 0x00, 0xaa, 0x80, 0x03, 0x00, // ................
+ 0xe4, 0xa0, 0x01, 0x00, 0xe4, 0x80, 0x04, 0x00, 0x00, 0x04, 0x01, 0x00, 0x07, 0x80, 0x00, 0x00, // ................
+ 0xff, 0x80, 0x04, 0x00, 0xe4, 0xa0, 0x01, 0x00, 0xe4, 0x80, 0x05, 0x00, 0x00, 0x03, 0x02, 0x00, // ................
+ 0x0f, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x00, 0x00, 0xab, 0x80, 0x04, 0x00, 0x00, 0x04, 0x01, 0x00, // ................
+ 0x07, 0x80, 0x02, 0x00, 0x00, 0x80, 0x05, 0x00, 0xe4, 0xa0, 0x01, 0x00, 0xe4, 0x80, 0x04, 0x00, // ................
+ 0x00, 0x04, 0x01, 0x00, 0x07, 0x80, 0x02, 0x00, 0x55, 0x80, 0x06, 0x00, 0xe4, 0xa0, 0x01, 0x00, // ........U.......
+ 0xe4, 0x80, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x01, 0x80, 0x02, 0x00, 0xaa, 0x80, 0x00, 0x00, // ................
+ 0x00, 0xa0, 0x00, 0x00, 0x55, 0xa0, 0x04, 0x00, 0x00, 0x04, 0x01, 0x00, 0x07, 0x80, 0x00, 0x00, // ....U...........
+ 0x00, 0x80, 0x07, 0x00, 0xe4, 0xa0, 0x01, 0x00, 0xe4, 0x80, 0x04, 0x00, 0x00, 0x04, 0x01, 0x00, // ................
+ 0x07, 0x80, 0x02, 0x00, 0xff, 0x80, 0x08, 0x00, 0xe4, 0xa0, 0x01, 0x00, 0xe4, 0x80, 0x05, 0x00, // ................
+ 0x00, 0x03, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x55, 0x80, 0x00, 0x00, 0x55, 0x80, 0x04, 0x00, // ........U...U...
+ 0x00, 0x04, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, // ................
+ 0x00, 0x81, 0x04, 0x00, 0x00, 0x04, 0x00, 0x08, 0x07, 0x80, 0x00, 0x00, 0x00, 0x80, 0x09, 0x00, // ................
+ 0xe4, 0xa0, 0x01, 0x00, 0xe4, 0x80, 0x01, 0x00, 0x00, 0x02, 0x00, 0x08, 0x08, 0x80, 0x00, 0x00, // ................
+ 0xaa, 0xa0, 0xff, 0xff, 0x00, 0x00, 0x00, // .......
+};
+static const uint8_t fs_mesh_dx11[878] =
+{
+ 0x46, 0x53, 0x48, 0x0b, 0xe3, 0xc2, 0x5c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x03, // FSH....e......X.
+ 0x00, 0x00, 0x44, 0x58, 0x42, 0x43, 0x44, 0x44, 0xd1, 0x1e, 0x9d, 0xd3, 0x3f, 0xa4, 0x1f, 0x99, // ..DXBCDD....?...
+ 0x9d, 0x06, 0x1d, 0x10, 0x35, 0xc7, 0x01, 0x00, 0x00, 0x00, 0x58, 0x03, 0x00, 0x00, 0x03, 0x00, // ....5.....X.....
+ 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x49, 0x53, // ..,...........IS
+ 0x47, 0x4e, 0x4c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x38, 0x00, // GNL...........8.
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
+ 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ......D.........
+ 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, 0x53, 0x56, // ..............SV
+ 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x00, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, // _POSITION.NORMAL
+ 0x00, 0xab, 0x4f, 0x53, 0x47, 0x4e, 0x2c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, // ..OSGN,.........
+ 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, // .. .............
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x54, 0x41, 0x52, // ..........SV_TAR
+ 0x47, 0x45, 0x54, 0x00, 0xab, 0xab, 0x53, 0x48, 0x44, 0x52, 0x9c, 0x02, 0x00, 0x00, 0x40, 0x00, // GET...SHDR....@.
+ 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0x62, 0x10, 0x00, 0x03, 0x72, 0x10, 0x10, 0x00, 0x01, 0x00, // ......b...r.....
+ 0x00, 0x00, 0x65, 0x00, 0x00, 0x03, 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x00, // ..e.... ......h.
+ 0x00, 0x02, 0x03, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x07, 0x12, 0x00, 0x10, 0x00, 0x00, 0x00, // ................
+ 0x00, 0x00, 0x46, 0x12, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x12, 0x10, 0x00, 0x01, 0x00, // ..F.......F.....
+ 0x00, 0x00, 0x44, 0x00, 0x00, 0x05, 0x12, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, // ..D.............
+ 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x07, 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, // ......8.........
+ 0x00, 0x00, 0x06, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x19, 0x10, 0x00, 0x01, 0x00, // ................
+ 0x00, 0x00, 0x32, 0x00, 0x00, 0x0f, 0x72, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x56, 0x05, // ..2...r.......V.
+ 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x3a, 0xc4, 0x19, 0x3e, 0x25, 0x82, // .......@..:..>%.
+ 0x29, 0x3e, 0x39, 0x53, 0x2a, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x8e, 0xc6, // )>9S*>.....@....
+ 0x8b, 0x3e, 0x6b, 0x0a, 0x8d, 0x3e, 0x8e, 0xb8, 0x80, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, // .>k..>...>....2.
+ 0x00, 0x0c, 0x72, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa6, 0x0a, 0x10, 0x00, 0x00, 0x00, // ..r.............
+ 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x92, 0x04, 0xb3, 0x3c, 0xb8, 0x53, 0xb5, 0x3c, 0x16, 0x0d, // ...@.....<.S.<..
+ 0xe0, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, // .<....F.......2.
+ 0x00, 0x0c, 0x72, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf6, 0x0f, 0x10, 0x00, 0x00, 0x00, // ..r.............
+ 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x20, 0xb4, 0x41, 0xbd, 0x9c, 0x00, 0x3f, 0xbd, 0xa0, 0x80, // ...@.. .A...?...
+ 0x3b, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x38, 0x00, // ;.....F.......8.
+ 0x00, 0x07, 0xf2, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, // ..........F.....
+ 0x00, 0x00, 0xb6, 0x0a, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0c, 0x72, 0x00, // ..........2...r.
+ 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, // ...............@
+ 0x00, 0x00, 0xe2, 0x28, 0x9e, 0xbd, 0x04, 0x73, 0x98, 0xbd, 0xc8, 0x74, 0x87, 0xbd, 0x00, 0x00, // ...(...s...t....
+ 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0c, 0x72, 0x00, // ..F.......2...r.
+ 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x56, 0x05, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, // ......V........@
+ 0x00, 0x00, 0x96, 0x7d, 0x8b, 0x3d, 0xcd, 0x83, 0x85, 0x3d, 0xd0, 0x79, 0x57, 0x3d, 0x00, 0x00, // ...}.=...=.yW=..
+ 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x09, 0x12, 0x00, // ..F.......2.....
+ 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x40, // ......*........@
+ 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x80, 0xbf, 0x32, 0x00, // ....@@.@......2.
+ 0x00, 0x0c, 0x72, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x10, 0x00, 0x00, 0x00, // ..r.............
+ 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0xa6, 0x26, 0x99, 0x39, 0x4e, 0x6b, 0xa8, 0xbb, 0x93, 0xe4, // ...@...&.9Nk....
+ 0x63, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, // c.....F.......2.
+ 0x00, 0x0c, 0x72, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf6, 0x0f, 0x10, 0x00, 0x02, 0x00, // ..r.............
+ 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x48, 0xc8, 0x25, 0xbe, 0x62, 0x56, 0x1d, 0xbe, 0x37, 0x1d, // ...@..H.%.bV..7.
+ 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x38, 0x00, // ......F.......8.
+ 0x00, 0x07, 0x12, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x10, 0x00, 0x00, 0x00, // ................
+ 0x00, 0x00, 0x1a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, 0x12, 0x00, // ..........2.....
+ 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x00, // ......:.......:.
+ 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x10, 0x80, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, // ..........A.....
+ 0x00, 0x00, 0x32, 0x00, 0x00, 0x0c, 0x72, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, // ..2...r ........
+ 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x85, 0x9d, 0xb2, 0xbc, 0x9a, 0xa7, // .......@........
+ 0xf4, 0xbc, 0x69, 0xe1, 0x2f, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x01, 0x00, // ..i./.....F.....
+ 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0x82, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x40, // ..6.... .......@
+ 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x3e, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, // .....?>.......
+};
+static const uint8_t fs_mesh_mtl[1798] =
+{
+ 0x46, 0x53, 0x48, 0x0b, 0xe3, 0xc2, 0x5c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x06, // FSH....e........
+ 0x00, 0x00, 0x23, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3c, 0x6d, 0x65, 0x74, 0x61, // ..#include <meta
+ 0x6c, 0x5f, 0x73, 0x74, 0x64, 0x6c, 0x69, 0x62, 0x3e, 0x0a, 0x23, 0x69, 0x6e, 0x63, 0x6c, 0x75, // l_stdlib>.#inclu
+ 0x64, 0x65, 0x20, 0x3c, 0x73, 0x69, 0x6d, 0x64, 0x2f, 0x73, 0x69, 0x6d, 0x64, 0x2e, 0x68, 0x3e, // de <simd/simd.h>
+ 0x0a, 0x0a, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, // ..using namespac
+ 0x65, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, // e metal;..consta
+ 0x6e, 0x74, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x5f, 0x35, 0x34, 0x33, 0x20, 0x3d, // nt float4 _543 =
+ 0x20, 0x7b, 0x7d, 0x3b, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x78, 0x6c, 0x61, // {};..struct xla
+ 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x5f, 0x6f, 0x75, 0x74, 0x0a, 0x7b, 0x0a, 0x20, // tMtlMain_out.{.
+ 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x62, 0x67, 0x66, 0x78, 0x5f, 0x46, // float4 bgfx_F
+ 0x72, 0x61, 0x67, 0x44, 0x61, 0x74, 0x61, 0x30, 0x20, 0x5b, 0x5b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, // ragData0 [[color
+ 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, // (0)]];.};..struc
+ 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x6e, // t xlatMtlMain_in
+ 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x76, 0x5f, // .{. float3 v_
+ 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x5b, 0x5b, 0x75, 0x73, 0x65, 0x72, 0x28, 0x6c, 0x6f, // normal [[user(lo
+ 0x63, 0x6e, 0x30, 0x29, 0x5d, 0x5d, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x66, 0x72, 0x61, 0x67, // cn0)]];.};..frag
+ 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, // ment xlatMtlMain
+ 0x5f, 0x6f, 0x75, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, // _out xlatMtlMain
+ 0x28, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x6e, 0x20, // (xlatMtlMain_in
+ 0x69, 0x6e, 0x20, 0x5b, 0x5b, 0x73, 0x74, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x5d, 0x5d, 0x29, // in [[stage_in]])
+ 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, // .{. xlatMtlMa
+ 0x69, 0x6e, 0x5f, 0x6f, 0x75, 0x74, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x3b, // in_out out = {};
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x5f, 0x33, 0x32, 0x34, // . float3 _324
+ 0x20, 0x3d, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x28, 0x69, 0x6e, 0x2e, // = normalize(in.
+ 0x76, 0x5f, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, // v_normal);. f
+ 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x5f, 0x34, 0x39, 0x31, 0x20, 0x3d, 0x20, 0x28, 0x28, 0x28, // loat3 _491 = (((
+ 0x28, 0x28, 0x28, 0x28, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x30, 0x2e, 0x32, 0x37, 0x32, // ((((float3(0.272
+ 0x39, 0x39, 0x39, 0x32, 0x32, 0x37, 0x30, 0x34, 0x36, 0x39, 0x36, 0x36, 0x35, 0x35, 0x2c, 0x20, // 99922704696655,
+ 0x30, 0x2e, 0x32, 0x37, 0x35, 0x34, 0x37, 0x30, 0x31, 0x30, 0x37, 0x37, 0x39, 0x33, 0x38, 0x30, // 0.27547010779380
+ 0x37, 0x39, 0x38, 0x2c, 0x20, 0x30, 0x2e, 0x32, 0x35, 0x31, 0x34, 0x30, 0x38, 0x30, 0x34, 0x30, // 798, 0.251408040
+ 0x35, 0x32, 0x33, 0x35, 0x32, 0x39, 0x30, 0x35, 0x29, 0x20, 0x2b, 0x20, 0x28, 0x28, 0x28, 0x66, // 52352905) + (((f
+ 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x2d, 0x30, 0x2e, 0x33, 0x38, 0x34, 0x31, 0x36, 0x33, 0x34, // loat3(-0.3841634
+ 0x39, 0x38, 0x38, 0x37, 0x38, 0x34, 0x37, 0x39, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x34, 0x32, 0x33, // 98878479, -0.423
+ 0x34, 0x39, 0x32, 0x32, 0x38, 0x32, 0x36, 0x32, 0x39, 0x30, 0x31, 0x33, 0x30, 0x36, 0x2c, 0x20, // 49228262901306,
+ 0x2d, 0x30, 0x2e, 0x34, 0x32, 0x35, 0x35, 0x33, 0x32, 0x37, 0x32, 0x38, 0x34, 0x33, 0x33, 0x36, // -0.4255327284336
+ 0x30, 0x39, 0x30, 0x31, 0x29, 0x20, 0x2a, 0x20, 0x28, 0x28, 0x2d, 0x30, 0x2e, 0x34, 0x38, 0x38, // 0901) * ((-0.488
+ 0x36, 0x30, 0x32, 0x35, 0x31, 0x39, 0x30, 0x33, 0x35, 0x33, 0x33, 0x39, 0x33, 0x36, 0x29, 0x20, // 60251903533936)
+ 0x2a, 0x20, 0x5f, 0x33, 0x32, 0x34, 0x2e, 0x78, 0x29, 0x29, 0x20, 0x2a, 0x20, 0x32, 0x2e, 0x30, // * _324.x)) * 2.0
+ 0x29, 0x20, 0x2a, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x30, 0x2e, 0x34, 0x30, 0x30, // ) * float3(0.400
+ 0x30, 0x30, 0x30, 0x30, 0x30, 0x35, 0x39, 0x36, 0x30, 0x34, 0x36, 0x34, 0x34, 0x38, 0x29, 0x29, // 00000596046448))
+ 0x29, 0x20, 0x2b, 0x20, 0x28, 0x28, 0x28, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x30, 0x2e, // ) + (((float3(0.
+ 0x30, 0x35, 0x35, 0x39, 0x30, 0x36, 0x32, 0x39, 0x35, 0x37, 0x37, 0x36, 0x33, 0x36, 0x37, 0x31, // 0559062957763671
+ 0x38, 0x38, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x35, 0x36, 0x36, 0x32, 0x37, 0x34, 0x33, 0x37, 0x34, // 88, 0.0566274374
+ 0x37, 0x32, 0x33, 0x34, 0x33, 0x34, 0x34, 0x35, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x36, 0x39, 0x39, // 72343445, 0.0699
+ 0x36, 0x39, 0x39, 0x33, 0x37, 0x32, 0x30, 0x35, 0x33, 0x31, 0x34, 0x36, 0x33, 0x36, 0x29, 0x20, // 69937205314636)
+ 0x2a, 0x20, 0x28, 0x30, 0x2e, 0x34, 0x38, 0x38, 0x36, 0x30, 0x32, 0x35, 0x31, 0x39, 0x30, 0x33, // * (0.48860251903
+ 0x35, 0x33, 0x33, 0x39, 0x33, 0x36, 0x20, 0x2a, 0x20, 0x5f, 0x33, 0x32, 0x34, 0x2e, 0x79, 0x29, // 533936 * _324.y)
+ 0x29, 0x20, 0x2a, 0x20, 0x32, 0x2e, 0x30, 0x29, 0x20, 0x2a, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, // ) * 2.0) * float
+ 0x33, 0x28, 0x30, 0x2e, 0x34, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x35, 0x39, 0x36, 0x30, // 3(0.400000005960
+ 0x34, 0x36, 0x34, 0x34, 0x38, 0x29, 0x29, 0x29, 0x20, 0x2b, 0x20, 0x28, 0x28, 0x28, 0x66, 0x6c, // 46448))) + (((fl
+ 0x6f, 0x61, 0x74, 0x33, 0x28, 0x30, 0x2e, 0x31, 0x32, 0x30, 0x39, 0x38, 0x35, 0x31, 0x35, 0x37, // oat3(0.120985157
+ 0x37, 0x38, 0x37, 0x37, 0x39, 0x39, 0x38, 0x34, 0x2c, 0x20, 0x30, 0x2e, 0x31, 0x31, 0x39, 0x32, // 78779984, 0.1192
+ 0x39, 0x37, 0x39, 0x39, 0x36, 0x31, 0x36, 0x33, 0x33, 0x36, 0x38, 0x32, 0x33, 0x2c, 0x20, 0x30, // 9799616336823, 0
+ 0x2e, 0x31, 0x31, 0x37, 0x31, 0x31, 0x31, 0x39, 0x36, 0x36, 0x30, 0x31, 0x33, 0x39, 0x30, 0x38, // .117111966013908
+ 0x33, 0x39, 0x29, 0x20, 0x2a, 0x20, 0x28, 0x28, 0x2d, 0x30, 0x2e, 0x34, 0x38, 0x38, 0x36, 0x30, // 39) * ((-0.48860
+ 0x32, 0x35, 0x31, 0x39, 0x30, 0x33, 0x35, 0x33, 0x33, 0x39, 0x33, 0x36, 0x29, 0x20, 0x2a, 0x20, // 251903533936) *
+ 0x5f, 0x33, 0x32, 0x34, 0x2e, 0x7a, 0x29, 0x29, 0x20, 0x2a, 0x20, 0x32, 0x2e, 0x30, 0x29, 0x20, // _324.z)) * 2.0)
+ 0x2a, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x30, 0x2e, 0x34, 0x30, 0x30, 0x30, 0x30, // * float3(0.40000
+ 0x30, 0x30, 0x30, 0x35, 0x39, 0x36, 0x30, 0x34, 0x36, 0x34, 0x34, 0x38, 0x29, 0x29, 0x29, 0x20, // 000596046448)))
+ 0x2b, 0x20, 0x28, 0x28, 0x28, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x2d, 0x30, 0x2e, 0x31, // + (((float3(-0.1
+ 0x37, 0x36, 0x37, 0x31, 0x31, 0x36, 0x33, 0x33, 0x38, 0x30, 0x31, 0x34, 0x36, 0x30, 0x32, 0x37, // 7671163380146027
+ 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x31, 0x37, 0x30, 0x33, 0x33, 0x31, 0x34, 0x30, 0x33, 0x36, 0x31, // , -0.17033140361
+ 0x33, 0x30, 0x39, 0x30, 0x35, 0x32, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x31, 0x35, 0x31, 0x33, 0x34, // 309052, -0.15134
+ 0x35, 0x30, 0x31, 0x34, 0x35, 0x37, 0x32, 0x31, 0x34, 0x33, 0x35, 0x35, 0x29, 0x20, 0x2a, 0x20, // 501457214355) *
+ 0x28, 0x28, 0x31, 0x2e, 0x30, 0x39, 0x32, 0x35, 0x34, 0x38, 0x34, 0x38, 0x39, 0x35, 0x37, 0x30, // ((1.092548489570
+ 0x36, 0x31, 0x37, 0x37, 0x20, 0x2a, 0x20, 0x5f, 0x33, 0x32, 0x34, 0x2e, 0x78, 0x29, 0x20, 0x2a, // 6177 * _324.x) *
+ 0x20, 0x5f, 0x33, 0x32, 0x34, 0x2e, 0x7a, 0x29, 0x29, 0x20, 0x2a, 0x20, 0x31, 0x2e, 0x30, 0x29, // _324.z)) * 1.0)
+ 0x20, 0x2a, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x30, 0x2e, 0x34, 0x30, 0x30, 0x30, // * float3(0.4000
+ 0x30, 0x30, 0x30, 0x30, 0x35, 0x39, 0x36, 0x30, 0x34, 0x36, 0x34, 0x34, 0x38, 0x29, 0x29, 0x29, // 0000596046448)))
+ 0x20, 0x2b, 0x20, 0x28, 0x28, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x2d, 0x30, 0x2e, 0x31, // + ((float3(-0.1
+ 0x32, 0x34, 0x36, 0x38, 0x32, 0x31, 0x31, 0x33, 0x35, 0x32, 0x38, 0x32, 0x35, 0x31, 0x36, 0x35, // 2468211352825165
+ 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x31, 0x31, 0x39, 0x33, 0x34, 0x30, 0x37, 0x38, 0x34, 0x38, 0x34, // , -0.11934078484
+ 0x37, 0x37, 0x33, 0x36, 0x33, 0x36, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x30, 0x39, 0x36, 0x33, 0x30, // 773636, -0.09630
+ 0x30, 0x33, 0x35, 0x36, 0x30, 0x39, 0x30, 0x30, 0x36, 0x38, 0x38, 0x31, 0x37, 0x29, 0x20, 0x2a, // 0356090068817) *
+ 0x20, 0x28, 0x28, 0x28, 0x2d, 0x31, 0x2e, 0x30, 0x39, 0x32, 0x35, 0x34, 0x38, 0x34, 0x38, 0x39, // (((-1.092548489
+ 0x35, 0x37, 0x30, 0x36, 0x31, 0x37, 0x37, 0x29, 0x20, 0x2a, 0x20, 0x5f, 0x33, 0x32, 0x34, 0x2e, // 5706177) * _324.
+ 0x78, 0x29, 0x20, 0x2a, 0x20, 0x5f, 0x33, 0x32, 0x34, 0x2e, 0x79, 0x29, 0x29, 0x20, 0x2a, 0x20, // x) * _324.y)) *
+ 0x30, 0x2e, 0x35, 0x29, 0x29, 0x20, 0x2b, 0x20, 0x28, 0x28, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, // 0.5)) + ((float3
+ 0x28, 0x30, 0x2e, 0x30, 0x30, 0x31, 0x38, 0x35, 0x32, 0x33, 0x37, 0x38, 0x35, 0x39, 0x38, 0x34, // (0.0018523785984
+ 0x31, 0x34, 0x33, 0x36, 0x31, 0x35, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x30, 0x33, 0x32, 0x35, 0x39, // 143615, -0.03259
+ 0x32, 0x37, 0x38, 0x34, 0x36, 0x31, 0x33, 0x33, 0x37, 0x30, 0x38, 0x39, 0x35, 0x2c, 0x20, 0x2d, // 2784613370895, -
+ 0x30, 0x2e, 0x30, 0x38, 0x38, 0x32, 0x30, 0x34, 0x34, 0x39, 0x35, 0x36, 0x30, 0x38, 0x38, 0x30, // 0.08820449560880
+ 0x36, 0x36, 0x31, 0x29, 0x20, 0x2a, 0x20, 0x28, 0x30, 0x2e, 0x33, 0x31, 0x35, 0x33, 0x39, 0x31, // 661) * (0.315391
+ 0x35, 0x37, 0x30, 0x33, 0x32, 0x39, 0x36, 0x36, 0x36, 0x31, 0x34, 0x20, 0x2a, 0x20, 0x28, 0x28, // 57032966614 * ((
+ 0x28, 0x33, 0x2e, 0x30, 0x20, 0x2a, 0x20, 0x5f, 0x33, 0x32, 0x34, 0x2e, 0x79, 0x29, 0x20, 0x2a, // (3.0 * _324.y) *
+ 0x20, 0x5f, 0x33, 0x32, 0x34, 0x2e, 0x79, 0x29, 0x20, 0x2d, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x29, // _324.y) - 1.0))
+ 0x29, 0x20, 0x2a, 0x20, 0x30, 0x2e, 0x35, 0x29, 0x29, 0x20, 0x2b, 0x20, 0x28, 0x28, 0x66, 0x6c, // ) * 0.5)) + ((fl
+ 0x6f, 0x61, 0x74, 0x33, 0x28, 0x30, 0x2e, 0x32, 0x39, 0x36, 0x33, 0x36, 0x35, 0x34, 0x36, 0x39, // oat3(0.296365469
+ 0x36, 0x39, 0x34, 0x31, 0x33, 0x37, 0x35, 0x37, 0x2c, 0x20, 0x30, 0x2e, 0x32, 0x38, 0x31, 0x32, // 69413757, 0.2812
+ 0x36, 0x38, 0x36, 0x38, 0x36, 0x30, 0x35, 0x36, 0x31, 0x33, 0x37, 0x30, 0x38, 0x2c, 0x20, 0x30, // 6868605613708, 0
+ 0x2e, 0x32, 0x34, 0x33, 0x33, 0x32, 0x38, 0x32, 0x32, 0x38, 0x35, 0x39, 0x32, 0x38, 0x37, 0x32, // .243328228592872
+ 0x36, 0x32, 0x29, 0x20, 0x2a, 0x20, 0x28, 0x28, 0x28, 0x2d, 0x31, 0x2e, 0x30, 0x39, 0x32, 0x35, // 62) * (((-1.0925
+ 0x34, 0x38, 0x34, 0x38, 0x39, 0x35, 0x37, 0x30, 0x36, 0x31, 0x37, 0x37, 0x29, 0x20, 0x2a, 0x20, // 484895706177) *
+ 0x5f, 0x33, 0x32, 0x34, 0x2e, 0x7a, 0x29, 0x20, 0x2a, 0x20, 0x5f, 0x33, 0x32, 0x34, 0x2e, 0x79, // _324.z) * _324.y
+ 0x29, 0x29, 0x20, 0x2a, 0x20, 0x30, 0x2e, 0x35, 0x29, 0x29, 0x20, 0x2b, 0x20, 0x28, 0x28, 0x66, // )) * 0.5)) + ((f
+ 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x2d, 0x30, 0x2e, 0x30, 0x37, 0x39, 0x38, 0x32, 0x36, 0x36, // loat3(-0.0798266
+ 0x36, 0x37, 0x39, 0x30, 0x34, 0x38, 0x35, 0x33, 0x38, 0x32, 0x31, 0x2c, 0x20, 0x2d, 0x30, 0x2e, // 67904853821, -0.
+ 0x31, 0x30, 0x39, 0x33, 0x34, 0x30, 0x39, 0x35, 0x38, 0x32, 0x39, 0x37, 0x32, 0x35, 0x32, 0x36, // 1093409582972526
+ 0x36, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x31, 0x35, 0x37, 0x32, 0x30, 0x38, 0x38, 0x35, 0x39, 0x39, // 6, -0.1572088599
+ 0x32, 0x30, 0x35, 0x30, 0x31, 0x37, 0x31, 0x29, 0x20, 0x2a, 0x20, 0x28, 0x30, 0x2e, 0x35, 0x34, // 2050171) * (0.54
+ 0x36, 0x32, 0x37, 0x34, 0x32, 0x34, 0x34, 0x37, 0x38, 0x35, 0x33, 0x30, 0x38, 0x38, 0x34, 0x20, // 627424478530884
+ 0x2a, 0x20, 0x28, 0x28, 0x5f, 0x33, 0x32, 0x34, 0x2e, 0x7a, 0x20, 0x2a, 0x20, 0x5f, 0x33, 0x32, // * ((_324.z * _32
+ 0x34, 0x2e, 0x7a, 0x29, 0x20, 0x2d, 0x20, 0x28, 0x5f, 0x33, 0x32, 0x34, 0x2e, 0x78, 0x20, 0x2a, // 4.z) - (_324.x *
+ 0x20, 0x5f, 0x33, 0x32, 0x34, 0x2e, 0x78, 0x29, 0x29, 0x29, 0x29, 0x20, 0x2a, 0x20, 0x30, 0x2e, // _324.x)))) * 0.
+ 0x35, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x5f, // 5);. float4 _
+ 0x35, 0x33, 0x33, 0x20, 0x3d, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x28, 0x5f, 0x34, 0x39, // 533 = float4(_49
+ 0x31, 0x2e, 0x78, 0x2c, 0x20, 0x5f, 0x34, 0x39, 0x31, 0x2e, 0x79, 0x2c, 0x20, 0x5f, 0x34, 0x39, // 1.x, _491.y, _49
+ 0x31, 0x2e, 0x7a, 0x2c, 0x20, 0x5f, 0x35, 0x34, 0x33, 0x2e, 0x77, 0x29, 0x3b, 0x0a, 0x20, 0x20, // 1.z, _543.w);.
+ 0x20, 0x20, 0x5f, 0x35, 0x33, 0x33, 0x2e, 0x77, 0x20, 0x3d, 0x20, 0x31, 0x2e, 0x30, 0x3b, 0x0a, // _533.w = 1.0;.
+ 0x20, 0x20, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x2e, 0x62, 0x67, 0x66, 0x78, 0x5f, 0x46, 0x72, 0x61, // out.bgfx_Fra
+ 0x67, 0x44, 0x61, 0x74, 0x61, 0x30, 0x20, 0x3d, 0x20, 0x5f, 0x35, 0x33, 0x33, 0x3b, 0x0a, 0x20, // gData0 = _533;.
+ 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6f, 0x75, 0x74, 0x3b, 0x0a, 0x7d, // return out;.}
+ 0x0a, 0x0a, 0x00, 0x00, 0x00, 0x00, // ......
+};
+extern const uint8_t* fs_mesh_pssl;
+extern const uint32_t fs_mesh_pssl_size;
diff --git a/3rdparty/bgfx/tools/geometryv/fs_mesh.sc b/3rdparty/bgfx/tools/geometryv/fs_mesh.sc
new file mode 100644
index 00000000000..de56ba5c571
--- /dev/null
+++ b/3rdparty/bgfx/tools/geometryv/fs_mesh.sc
@@ -0,0 +1,64 @@
+$input v_normal
+
+/*
+ * Copyright 2019 Attila Kocsis. All rights reserved.
+ * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE
+ */
+
+#include <bgfx_shader.sh>
+
+
+// this is from 28-wireframe/fs_wf_mesh.sc by Dario Manesku
+vec3 evalSh(vec3 _dir)
+{
+# define k01 0.2820947918 // sqrt( 1/PI)/2
+# define k02 0.4886025119 // sqrt( 3/PI)/2
+# define k03 1.0925484306 // sqrt(15/PI)/2
+# define k04 0.3153915652 // sqrt( 5/PI)/4
+# define k05 0.5462742153 // sqrt(15/PI)/4
+
+ vec3 shEnv[9];
+ shEnv[0] = vec3( 0.967757057878229854, 0.976516067990363390, 0.891218272348969998); /* Band 0 */
+ shEnv[1] = vec3(-0.384163503608655643, -0.423492289131209787, -0.425532726148547868); /* Band 1 */
+ shEnv[2] = vec3( 0.055906294587354334, 0.056627436881069373, 0.069969936396987467);
+ shEnv[3] = vec3( 0.120985157386215209, 0.119297994074027414, 0.117111965829213599);
+ shEnv[4] = vec3(-0.176711633774331106, -0.170331404095516392, -0.151345020570876621); /* Band 2 */
+ shEnv[5] = vec3(-0.124682114349692147, -0.119340785411183953, -0.096300354204368860);
+ shEnv[6] = vec3( 0.001852378550138503, -0.032592784164597745, -0.088204495001329680);
+ shEnv[7] = vec3( 0.296365482782109446, 0.281268696656263029, 0.243328223888495510);
+ shEnv[8] = vec3(-0.079826665303240341, -0.109340956251195970, -0.157208859664677764);
+
+ vec3 nn = _dir.zxy;
+
+ float sh[9];
+ sh[0] = k01;
+ sh[1] = -k02*nn.y;
+ sh[2] = k02*nn.z;
+ sh[3] = -k02*nn.x;
+ sh[4] = k03*nn.y*nn.x;
+ sh[5] = -k03*nn.y*nn.z;
+ sh[6] = k04*(3.0*nn.z*nn.z-1.0);
+ sh[7] = -k03*nn.x*nn.z;
+ sh[8] = k05*(nn.x*nn.x-nn.y*nn.y);
+
+ vec3 rgb = vec3_splat(0.0);
+ rgb += shEnv[0] * sh[0] * 1.0;
+ rgb += shEnv[1] * sh[1] * 2.0/2.5;
+ rgb += shEnv[2] * sh[2] * 2.0/2.5;
+ rgb += shEnv[3] * sh[3] * 2.0/2.5;
+ rgb += shEnv[4] * sh[4] * 1.0/2.5;
+ rgb += shEnv[5] * sh[5] * 0.5;
+ rgb += shEnv[6] * sh[6] * 0.5;
+ rgb += shEnv[7] * sh[7] * 0.5;
+ rgb += shEnv[8] * sh[8] * 0.5;
+
+ return rgb;
+}
+
+void main()
+{
+ vec3 nn = normalize(v_normal);
+
+ gl_FragColor.xyz = evalSh(nn);
+ gl_FragColor.w = 1.0;
+}
diff --git a/3rdparty/bgfx/tools/geometryv/geometryv.cpp b/3rdparty/bgfx/tools/geometryv/geometryv.cpp
new file mode 100644
index 00000000000..ea3e075faae
--- /dev/null
+++ b/3rdparty/bgfx/tools/geometryv/geometryv.cpp
@@ -0,0 +1,1332 @@
+/*
+ * Copyright 2019-2019 Attila Kocsis. All rights reserved.
+ * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE
+ */
+
+#include "common.h"
+
+#include <bgfx/bgfx.h>
+
+#include <bx/commandline.h>
+#include <bx/easing.h>
+#include <bx/file.h>
+#include <bx/math.h>
+#include <bx/os.h>
+#include <bx/settings.h>
+
+#include <entry/entry.h>
+#include <entry/input.h>
+#include <entry/cmd.h>
+#include <entry/dialog.h>
+#include <imgui/imgui.h>
+#include <debugdraw/debugdraw.h>
+#include <bgfx_utils.h>
+
+#include <tinystl/allocator.h>
+#include <tinystl/vector.h>
+namespace stl = tinystl;
+#include <string>
+#include <algorithm>
+
+#include <bgfx/embedded_shader.h>
+
+#include "vs_mesh.bin.h"
+#include "fs_mesh.bin.h"
+
+#define SCENE_VIEW_ID 0
+
+#define BGFX_GEOMETRYV_VERSION_MAJOR 1
+#define BGFX_GEOMETRYV_VERSION_MINOR 0
+
+static const bgfx::EmbeddedShader s_embeddedShaders[] =
+{
+ BGFX_EMBEDDED_SHADER(vs_mesh),
+ BGFX_EMBEDDED_SHADER(fs_mesh),
+
+ BGFX_EMBEDDED_SHADER_END()
+};
+
+static const char* s_attribShortNames[] =
+{
+ "P", // Position
+ "N", // Normal
+ "T", // Tangent
+ "B", // Bitangent
+ "C0", // Color0
+ "C1", // Color1
+ "C2", // Color2
+ "C3", // Color3
+ "I", // Indices
+ "W", // Weight
+ "TC0", // TexCoord0
+ "TC1", // TexCoord1
+ "TC2", // TexCoord2
+ "TC3", // TexCoord3
+ "TC4", // TexCoord4
+ "TC5", // TexCoord5
+ "TC6", // TexCoord6
+ "TC7", // TexCoord7
+};
+BX_STATIC_ASSERT(BX_COUNTOF(s_attribShortNames) == bgfx::Attrib::Count);
+
+
+static const char* s_supportedExt[] =
+{
+ "bin",
+};
+
+struct Binding
+{
+ enum Enum
+ {
+ App,
+ View,
+ Help,
+ About,
+
+ Count
+ };
+};
+
+static const InputBinding s_bindingApp[] =
+{
+ { entry::Key::KeyQ, entry::Modifier::None, 1, NULL, "exit" },
+ { entry::Key::KeyF, entry::Modifier::None, 1, NULL, "graphics fullscreen" },
+
+ INPUT_BINDING_END
+};
+
+const char* s_resetCmd =
+ "view dolly\n"
+ "view orbit\n"
+ ;
+
+static const InputBinding s_bindingView[] =
+{
+ { entry::Key::Esc, entry::Modifier::None, 1, NULL, "exit" },
+
+ { entry::Key::Key1, entry::Modifier::None, 1, NULL, "view dolly" },
+
+ { entry::Key::Key0, entry::Modifier::None, 1, NULL, s_resetCmd },
+ { entry::Key::Plus, entry::Modifier::None, 1, NULL, "view dolly +0.1" },
+ { entry::Key::Minus, entry::Modifier::None, 1, NULL, "view dolly -0.1" },
+
+ { entry::Key::KeyW, entry::Modifier::None, 1, NULL, "view orbit y -0.1" },
+ { entry::Key::KeyS, entry::Modifier::None, 1, NULL, "view orbit y +0.1" },
+ { entry::Key::KeyA, entry::Modifier::None, 1, NULL, "view orbit x +0.1" },
+ { entry::Key::KeyD, entry::Modifier::None, 1, NULL, "view orbit x -0.1" },
+
+ { entry::Key::Up, entry::Modifier::None, 1, NULL, "view file-up" },
+ { entry::Key::Down, entry::Modifier::None, 1, NULL, "view file-down" },
+
+ { entry::Key::KeyI, entry::Modifier::None, 1, NULL, "view info" },
+
+ { entry::Key::KeyH, entry::Modifier::None, 1, NULL, "view help" },
+
+ { entry::Key::Return, entry::Modifier::None, 1, NULL, "view files" },
+
+ { entry::Key::Space, entry::Modifier::None, 1, NULL, "view geo\n" },
+
+ INPUT_BINDING_END
+};
+
+static const InputBinding s_bindingHelp[] =
+{
+ { entry::Key::Esc, entry::Modifier::None, 1, NULL, "view help" },
+ { entry::Key::KeyH, entry::Modifier::None, 1, NULL, "view help" },
+ INPUT_BINDING_END
+};
+
+static const InputBinding s_bindingAbout[] =
+{
+ { entry::Key::Esc, entry::Modifier::None, 1, NULL, "view about" },
+ INPUT_BINDING_END
+};
+
+static const char* s_bindingName[] =
+{
+ "App",
+ "View",
+ "Help",
+ "About",
+};
+BX_STATIC_ASSERT(Binding::Count == BX_COUNTOF(s_bindingName) );
+
+static const InputBinding* s_binding[] =
+{
+ s_bindingApp,
+ s_bindingView,
+ s_bindingHelp,
+ s_bindingAbout,
+};
+BX_STATIC_ASSERT(Binding::Count == BX_COUNTOF(s_binding) );
+
+static const char* s_filter = ""
+ "Bgfx geometry (bin) | *.bin\n"
+ ;
+
+struct Camera
+{
+ Camera()
+ {
+ init(bx::init::Zero, 2.0f, 0.01f, 100.0f);
+ }
+
+ void init(const bx::Vec3& _center, float _distance, float _near, float _far)
+ {
+ m_target.curr = _center;
+ m_target.dest = _center;
+
+ m_pos.curr = _center;
+ m_pos.curr.z += _distance;
+ m_pos.dest = _center;
+ m_pos.dest.z += _distance;
+
+ m_orbit[0] = 0.0f;
+ m_orbit[1] = 0.0f;
+
+ m_near = _near;
+ m_far = _far;
+ }
+
+ void mtxLookAt(float* _outViewMtx)
+ {
+ bx::mtxLookAt(_outViewMtx, m_pos.curr, m_target.curr);
+ }
+
+ void orbit(float _dx, float _dy)
+ {
+ m_orbit[0] += _dx;
+ m_orbit[1] += _dy;
+ }
+
+ void distance(float _z)
+ {
+ _z = bx::clamp(_z, m_near, m_far);
+
+ bx::Vec3 toTarget = bx::sub(m_target.dest, m_pos.dest);
+ bx::Vec3 toTargetNorm = bx::normalize(toTarget);
+
+ m_pos.dest = bx::mad(toTargetNorm, -_z, m_target.dest);
+ }
+
+ void dolly(float _dz)
+ {
+ const bx::Vec3 toTarget = bx::sub(m_target.dest, m_pos.dest);
+ const float toTargetLen = bx::length(toTarget);
+ const float invToTargetLen = 1.0f / (toTargetLen + bx::kFloatSmallest);
+ const bx::Vec3 toTargetNorm = bx::mul(toTarget, invToTargetLen);
+
+ float delta = toTargetLen * _dz;
+ float newLen = toTargetLen - delta;
+
+ if ( (m_near < newLen || _dz < 0.0f)
+ && (newLen < m_far || _dz > 0.0f) )
+ {
+ m_pos.dest = bx::mad(toTargetNorm, delta, m_pos.dest);
+ }
+ }
+
+ void consumeOrbit(float _amount)
+ {
+ float consume[2];
+ consume[0] = m_orbit[0] * _amount;
+ consume[1] = m_orbit[1] * _amount;
+ m_orbit[0] -= consume[0];
+ m_orbit[1] -= consume[1];
+
+ const bx::Vec3 toPos = bx::sub(m_pos.curr, m_target.curr);
+ const float toPosLen = bx::length(toPos);
+ const float invToPosLen = 1.0f / (toPosLen + bx::kFloatSmallest);
+ const bx::Vec3 toPosNorm = bx::mul(toPos, invToPosLen);
+
+ float ll[2];
+ bx::toLatLong(&ll[0], &ll[1], toPosNorm);
+ ll[0] += consume[0];
+ ll[1] -= consume[1];
+ ll[1] = bx::clamp(ll[1], 0.02f, 0.98f);
+
+ const bx::Vec3 tmp = bx::fromLatLong(ll[0], ll[1]);
+ const bx::Vec3 diff = bx::mul(bx::sub(tmp, toPosNorm), toPosLen);
+
+ m_pos.curr = bx::add(m_pos.curr, diff);
+ m_pos.dest = bx::add(m_pos.dest, diff);
+ }
+
+ void update(float _dt)
+ {
+ const float amount = bx::min(_dt / 0.12f, 1.0f);
+
+ consumeOrbit(amount);
+
+ m_target.curr = bx::lerp(m_target.curr, m_target.dest, amount);
+ m_pos.curr = bx::lerp(m_pos.curr, m_pos.dest, amount);
+ }
+
+ struct Interp3f
+ {
+ bx::Vec3 curr = bx::init::None;
+ bx::Vec3 dest = bx::init::None;
+ };
+
+ Interp3f m_target;
+ Interp3f m_pos;
+ float m_orbit[2];
+ float m_near, m_far;
+};
+
+struct Mouse
+{
+ Mouse()
+ {
+ m_dx = 0.0f;
+ m_dy = 0.0f;
+ m_prevMx = 0.0f;
+ m_prevMx = 0.0f;
+ m_scroll = 0;
+ m_scrollPrev = 0;
+ }
+
+ void update(float _mx, float _my, int32_t _mz, uint32_t _width, uint32_t _height)
+ {
+ const float widthf = float(int32_t(_width));
+ const float heightf = float(int32_t(_height));
+
+ // Delta movement.
+ m_dx = float(_mx - m_prevMx)/widthf;
+ m_dy = float(_my - m_prevMy)/heightf;
+
+ m_prevMx = _mx;
+ m_prevMy = _my;
+
+ // Scroll.
+ m_scroll = _mz - m_scrollPrev;
+ m_scrollPrev = _mz;
+ }
+
+ float m_dx; // Screen space.
+ float m_dy;
+ float m_prevMx;
+ float m_prevMy;
+ int32_t m_scroll;
+ int32_t m_scrollPrev;
+};
+
+struct View
+{
+ View()
+ : m_fileIndex(0)
+ , m_width(1280)
+ , m_height(720)
+ , m_help(false)
+ , m_about(false)
+ , m_info(false)
+ , m_files(false)
+ , m_axes(false)
+ , m_meshCenter(0.0f,0.0f,0.0f)
+ , m_meshRadius(1.0f)
+ , m_idleTimer(0.0f)
+ {
+ load();
+ }
+
+ ~View()
+ {
+ }
+ int32_t cmd(int32_t _argc, char const* const* _argv)
+ {
+ if (_argc >= 2)
+ {
+ if (0 == bx::strCmp(_argv[1], "file-up") )
+ {
+ m_fileIndex = bx::uint32_satsub(m_fileIndex, 1);
+ }
+ else if (0 == bx::strCmp(_argv[1], "file-down") )
+ {
+ uint32_t numFiles = bx::uint32_satsub(uint32_t(m_fileList.size() ), 1);
+ ++m_fileIndex;
+ m_fileIndex = bx::uint32_min(m_fileIndex, numFiles);
+ }
+ else if (0 == bx::strCmp(_argv[1], "help") )
+ {
+ m_help ^= true;
+ }
+ else if (0 == bx::strCmp(_argv[1], "about") )
+ {
+ m_about ^= true;
+ }
+ else if (0 == bx::strCmp(_argv[1], "save") )
+ {
+ save();
+ }
+ else if (0 == bx::strCmp(_argv[1], "info") )
+ {
+ m_info ^= true;
+ }
+ else if (0 == bx::strCmp(_argv[1], "files") )
+ {
+ m_files ^= true;
+ }
+ else if (0 == bx::strCmp(_argv[1], "dolly") )
+ {
+ if (_argc >= 3)
+ {
+ float dolly;
+ bx::fromString(&dolly, _argv[2]);
+
+ if (_argv[2][0] == '+'
+ || _argv[2][0] == '-')
+ {
+ m_camera.dolly(dolly);
+ m_idleTimer = 0.0f;
+ }
+ }
+ else
+ {
+ m_camera.distance(m_meshRadius * 2.0f);
+ }
+ }
+ else if (0 == bx::strCmp(_argv[1], "orbit") )
+ {
+ if (_argc >= 4)
+ {
+ int axis = (_argv[2][0] == 'x' ? 0 : 1);
+ float orbit[2] = { 0.0f, 0.0f};
+ bx::fromString(&orbit[axis], _argv[3]);
+
+ m_camera.orbit(orbit[0], orbit[1]);
+ m_idleTimer = 0.0f;
+ }
+ else
+ {
+ m_camera.m_target.dest = m_meshCenter;
+
+ m_camera.m_pos.dest = m_meshCenter;
+ m_camera.m_pos.dest.z -= m_meshRadius * 2.0f;
+
+ m_camera.m_orbit[0] = 0.0f;
+ m_camera.m_orbit[1] = 0.0f;
+ }
+ }
+ else if (0 == bx::strCmp(_argv[1], "axes") )
+ {
+ m_axes ^= true;
+ }
+ }
+
+ return 0;
+ }
+
+ static bool sortNameAscending(const std::string& _lhs, const std::string& _rhs)
+ {
+ return 0 > bx::strCmpV(_lhs.c_str(), _rhs.c_str() );
+ }
+
+ void updateFileList(const bx::FilePath& _filePath)
+ {
+ bx::DirectoryReader dr;
+
+ if (bx::open(&dr, _filePath) )
+ {
+ m_path = _filePath;
+ }
+ else if (bx::open(&dr, _filePath.getPath()) )
+ {
+ m_path = _filePath.getPath();
+ }
+ else
+ {
+ DBG("File path `%s` not found.", _filePath.getCPtr() );
+ return;
+ }
+
+ bx::Error err;
+
+ m_fileList.clear();
+
+ while (err.isOk() )
+ {
+ bx::FileInfo fi;
+ bx::read(&dr, fi, &err);
+
+ if (err.isOk()
+ && bx::FileType::File == fi.type)
+ {
+ bx::StringView ext = fi.filePath.getExt();
+
+ if (!ext.isEmpty() )
+ {
+ ext.set(ext.getPtr()+1, ext.getTerm() );
+
+ bool supported = false;
+ for (uint32_t ii = 0; ii < BX_COUNTOF(s_supportedExt); ++ii)
+ {
+ const bx::StringView supportedExt(s_supportedExt[ii]);
+
+ if (0 == bx::strCmpI(bx::max(ext.getPtr(), ext.getTerm() - supportedExt.getLength() ), supportedExt) )
+ {
+ supported = true;
+ break;
+ }
+ }
+
+ if (supported)
+ {
+ const bx::StringView fileName = fi.filePath.getFileName();
+ m_fileList.push_back(std::string(fileName.getPtr(), fileName.getTerm() ) );
+ }
+ }
+ }
+ }
+
+ bx::close(&dr);
+
+ std::sort(m_fileList.begin(), m_fileList.end(), sortNameAscending);
+
+ m_fileIndex = 0;
+ uint32_t idx = 0;
+
+ const bx::StringView fileName = _filePath.getFileName();
+
+ for (FileList::const_iterator it = m_fileList.begin(); it != m_fileList.end(); ++it, ++idx)
+ {
+ if (0 == bx::strCmpI(it->c_str(), fileName) )
+ {
+ // If it is case-insensitive match then might be correct one, but keep
+ // searching.
+ m_fileIndex = idx;
+
+ if (0 == bx::strCmp(it->c_str(), fileName) )
+ {
+ // If it is exact match we're done.
+ break;
+ }
+ }
+ }
+ }
+
+ void load()
+ {
+ bx::FilePath filePath(bx::Dir::Home);
+ filePath.join(".config/bgfx/geometryv.ini");
+
+ bx::Settings settings(entry::getAllocator() );
+
+ bx::FileReader reader;
+ if (bx::open(&reader, filePath) )
+ {
+ bx::read(&reader, settings, bx::ErrorAssert{});
+ bx::close(&reader);
+
+ if (!bx::fromString(&m_width, settings.get("view/width") ) )
+ {
+ m_width = 1280;
+ }
+
+ if (!bx::fromString(&m_height, settings.get("view/height") ) )
+ {
+ m_height = 720;
+ }
+ }
+ }
+
+ void save()
+ {
+ bx::FilePath filePath(bx::Dir::Home);
+ filePath.join(".config/bgfx/geometryv.ini");
+
+ if (bx::makeAll(filePath.getPath() ) )
+ {
+ bx::Settings settings(entry::getAllocator() );
+
+ char tmp[256];
+
+ bx::toString(tmp, sizeof(tmp), m_width);
+ settings.set("view/width", tmp);
+
+ bx::toString(tmp, sizeof(tmp), m_height);
+ settings.set("view/height", tmp);
+
+ bx::FileWriter writer;
+ if (bx::open(&writer, filePath) )
+ {
+ bx::write(&writer, settings, bx::ErrorAssert{});
+ bx::close(&writer);
+ }
+ }
+ }
+
+ bx::FilePath m_path;
+
+ typedef stl::vector<std::string> FileList;
+ FileList m_fileList;
+
+ uint32_t m_fileIndex;
+ uint32_t m_width;
+ uint32_t m_height;
+ bool m_help;
+ bool m_about;
+ bool m_info;
+ bool m_files;
+ bool m_axes;
+
+ Camera m_camera;
+ Mouse m_mouse;
+ bx::Vec3 m_meshCenter;
+ float m_meshRadius;
+ float m_idleTimer;
+
+};
+
+int cmdView(CmdContext* /*_context*/, void* _userData, int _argc, char const* const* _argv)
+{
+ View* view = static_cast<View*>(_userData);
+ return view->cmd(_argc, _argv);
+}
+
+template<bx::LerpFn lerpT, bx::EaseFn easeT>
+struct InterpolatorT
+{
+ float from;
+ float to;
+ float duration;
+ int64_t offset;
+
+ InterpolatorT(float _value)
+ {
+ reset(_value);
+ }
+
+ void reset(float _value)
+ {
+ from = _value;
+ to = _value;
+ duration = 0.0;
+ offset = bx::getHPCounter();
+ }
+
+ void set(float _value, float _duration)
+ {
+ if (_value != to)
+ {
+ from = getValue();
+ to = _value;
+ duration = _duration;
+ offset = bx::getHPCounter();
+ }
+ }
+
+ float getValue()
+ {
+ if (isActive() )
+ {
+ const double freq = double(bx::getHPFrequency() );
+ int64_t now = bx::getHPCounter();
+ float time = (float)(double(now - offset) / freq);
+ float lerp = bx::clamp(time, 0.0f, duration) / duration;
+ return lerpT(from, to, easeT(lerp) );
+ }
+
+ return to;
+ }
+
+ bool isActive() const
+ {
+ const double freq = double(bx::getHPFrequency() );
+ int64_t now = bx::getHPCounter();
+ float time = (float)(double(now - offset) / freq);
+ float lerp = bx::clamp(time, 0.0f, duration) / duration;
+ return lerp < 1.0f;
+ }
+};
+
+typedef InterpolatorT<bx::lerp, bx::easeInOutQuad> Interpolator;
+
+void keyBindingHelp(const char* _bindings, const char* _description)
+{
+ ImGui::TextColored(ImVec4(1.0f, 1.0f, 0.0f, 1.0f), "%s", _bindings);
+ ImGui::SameLine(140);
+ ImGui::Text("%s", _description);
+}
+
+void help(const char* _error = NULL)
+{
+ if (NULL != _error)
+ {
+ bx::printf("Error:\n%s\n\n", _error);
+ }
+
+ bx::printf(
+ "geometryv, bgfx geometry viewer tool, version %d.%d.%d.\n"
+ "Copyright 2019-2019 Attila Kocsis. All rights reserved.\n"
+ "License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE\n\n"
+ , BGFX_GEOMETRYV_VERSION_MAJOR
+ , BGFX_GEOMETRYV_VERSION_MINOR
+ , BGFX_API_VERSION
+ );
+
+ bx::printf(
+ "Usage: geometryv <file path>\n"
+ "\n"
+ "Supported input file types:\n"
+ );
+
+ for (uint32_t ii = 0; ii < BX_COUNTOF(s_supportedExt); ++ii)
+ {
+ bx::printf(" *.%s\n", s_supportedExt[ii]);
+ }
+
+ bx::printf(
+ "\n"
+ "Options:\n"
+ " -h, --help Help.\n"
+ " -v, --version Version information only.\n"
+ "\n"
+ "For additional information, see https://github.com/bkaradzic/bgfx\n"
+ );
+}
+
+int _main_(int _argc, char** _argv)
+{
+ bx::CommandLine cmdLine(_argc, _argv);
+
+ if (cmdLine.hasArg('v', "version") )
+ {
+ bx::printf(
+ "geometryv, bgfx geometry viewer tool, version %d.%d.%d.\n"
+ , BGFX_GEOMETRYV_VERSION_MAJOR
+ , BGFX_GEOMETRYV_VERSION_MINOR
+ , BGFX_API_VERSION
+ );
+ return bx::kExitSuccess;
+ }
+
+ if (cmdLine.hasArg('h', "help") )
+ {
+ help();
+ return bx::kExitFailure;
+ }
+
+ uint32_t debug = BGFX_DEBUG_TEXT;
+
+ inputAddBindings(s_bindingName[Binding::App], s_binding[Binding::App]);
+ inputAddBindings(s_bindingName[Binding::View], s_binding[Binding::View]);
+
+ View view;
+ cmdAdd("view", cmdView, &view);
+
+ entry::setWindowFlags(entry::kDefaultWindowHandle, ENTRY_WINDOW_FLAG_ASPECT_RATIO, false);
+ entry::setWindowSize(entry::kDefaultWindowHandle, view.m_width, view.m_height);
+
+ bgfx::Init init;
+ init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
+ init.platformData.ndt = entry::getNativeDisplayHandle();
+ init.resolution.width = view.m_width;
+ init.resolution.width = view.m_height;
+ init.resolution.reset = 0
+ | BGFX_RESET_VSYNC
+ | BGFX_RESET_MSAA_X16
+ ;
+
+ bgfx::init(init);
+
+ // Set view 0 clear state.
+ bgfx::setViewClear(SCENE_VIEW_ID
+ , BGFX_CLEAR_COLOR|BGFX_CLEAR_DEPTH
+ , 0x000000ff
+ , 1.0f
+ , 0
+ );
+
+ imguiCreate();
+
+ ddInit();
+
+ const bgfx::Caps* caps = bgfx::getCaps();
+ bgfx::RendererType::Enum type = caps->rendererType;
+
+ bgfx::ShaderHandle vsMesh = bgfx::createEmbeddedShader(s_embeddedShaders, type, "vs_mesh");
+ bgfx::ShaderHandle fsMesh = bgfx::createEmbeddedShader(s_embeddedShaders, type, "fs_mesh");
+
+ bgfx::ProgramHandle meshProgram = bgfx::createProgram(
+ vsMesh
+ , fsMesh
+ , true
+ );
+
+ float speed = 0.37f;
+ float time = 0.0f;
+
+ Interpolator menuFade(5.0f);
+
+ auto anyActive = [&]() -> bool
+ {
+ return false
+ || ImGui::MouseOverArea()
+ || menuFade.isActive()
+ ;
+ };
+
+ const char* filePath = _argc < 2 ? "" : _argv[1];
+
+ std::string path = filePath;
+ {
+ bx::FilePath fp(filePath);
+ view.updateFileList(fp);
+ }
+
+ int exitcode = bx::kExitSuccess;
+ Mesh* mesh = NULL;
+
+ {
+ uint32_t fileIndex = 0;
+
+ entry::WindowState windowState;
+ while (!entry::processWindowEvents(windowState, debug, init.resolution.reset) )
+ {
+ const entry::MouseState& mouseState = windowState.m_mouse;
+ view.m_width = windowState.m_width;
+ view.m_height = windowState.m_height;
+
+ if (!windowState.m_dropFile.isEmpty() )
+ {
+ view.updateFileList(windowState.m_dropFile);
+ windowState.m_dropFile.clear();
+ }
+
+ imguiBeginFrame(mouseState.m_mx
+ , mouseState.m_my
+ , (mouseState.m_buttons[entry::MouseButton::Left ] ? IMGUI_MBUT_LEFT : 0)
+ | (mouseState.m_buttons[entry::MouseButton::Right ] ? IMGUI_MBUT_RIGHT : 0)
+ | (mouseState.m_buttons[entry::MouseButton::Middle] ? IMGUI_MBUT_MIDDLE : 0)
+ , mouseState.m_mz
+ , uint16_t(view.m_width)
+ , uint16_t(view.m_height)
+ );
+
+ bool modalWindow = view.m_help || view.m_about;
+ bool overArea = false
+ || ImGui::GetMousePos().y <= ImGui::GetTextLineHeightWithSpacing()
+ || ImGui::MouseOverArea()
+ ;
+ overArea &= !modalWindow;
+
+ if (overArea)
+ {
+ menuFade.set(5.0f, 0.25f);
+ }
+ else if (modalWindow)
+ {
+ menuFade.reset(0.0f);
+ }
+ else
+ {
+ menuFade.set(0.0f, 2.0f);
+ }
+
+ ImGui::PushStyleVar(ImGuiStyleVar_Alpha, bx::clamp(menuFade.getValue(), 0.0f, 1.0f) );
+ ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding, 0.0f);
+
+ if (ImGui::BeginMainMenuBar() )
+ {
+ if (ImGui::BeginMenu("File"))
+ {
+ if (ImGui::MenuItem("Open File") )
+ {
+ bx::FilePath tmp = view.m_path;
+ if (openFileSelectionDialog(
+ tmp
+ , FileSelectionDialogType::Open
+ , "geometryv: Open File"
+ , s_filter
+ ) )
+ {
+ view.updateFileList(tmp);
+ }
+ }
+
+ if (ImGui::MenuItem("Show File List", NULL, view.m_files) )
+ {
+ cmdExec("view files");
+ }
+
+ ImGui::Separator();
+ if (ImGui::MenuItem("Exit") )
+ {
+ cmdExec("exit");
+ }
+
+ ImGui::EndMenu();
+ }
+
+ if (ImGui::BeginMenu("View") )
+ {
+ if (ImGui::MenuItem("Info", NULL, view.m_info) )
+ {
+ cmdExec("view info");
+ }
+
+ if (ImGui::MenuItem("Reset") )
+ {
+ cmdExec(s_resetCmd);
+ }
+
+ ImGui::Separator();
+
+ bool axes = view.m_axes;
+ if (ImGui::MenuItem("XYZ Axes", NULL, &axes) )
+ {
+ cmdExec("view axes");
+ }
+
+ ImGui::Separator();
+
+ if (ImGui::MenuItem("Save Options") )
+ {
+ cmdExec("view save");
+ }
+
+ ImGui::EndMenu();
+ }
+
+ if (ImGui::BeginMenu("Help") )
+ {
+ if (ImGui::MenuItem("View Help") )
+ {
+ cmdExec("view help");
+ }
+
+ ImGui::Separator();
+ if (ImGui::MenuItem("About") )
+ {
+ cmdExec("view about");
+ }
+
+ ImGui::EndMenu();
+ }
+
+ if (0 != view.m_fileList.size() )
+ {
+ ImGui::Separator();
+ ImGui::TextColored(
+ ImVec4(0.0f, 1.0f, 1.0f, 1.0f)
+ , "%s"
+ , view.m_fileList[view.m_fileIndex].c_str()
+ );
+ }
+
+ ImGui::EndMainMenuBar();
+ }
+
+ ImGui::PopStyleVar(2);
+
+ static bool help = false;
+ static bool about = false;
+
+ view.m_mouse.update(float(mouseState.m_mx), float(mouseState.m_my), mouseState.m_mz, view.m_width, view.m_height);
+ if (!overArea)
+ {
+ if (mouseState.m_buttons[entry::MouseButton::Left])
+ {
+ view.m_idleTimer = 0.0f;
+ view.m_camera.orbit(view.m_mouse.m_dx, view.m_mouse.m_dy);
+ }
+ else if (mouseState.m_buttons[entry::MouseButton::Right])
+ {
+ view.m_idleTimer = 0.0f;
+ view.m_camera.dolly(view.m_mouse.m_dx + view.m_mouse.m_dy);
+ }
+ else if (0 != view.m_mouse.m_scroll)
+ {
+ view.m_idleTimer = 0.0f;
+ view.m_camera.dolly(float(view.m_mouse.m_scroll)*0.1f);
+ }
+ }
+
+ if (help != view.m_help)
+ {
+ if (!help)
+ {
+ ImGui::OpenPopup("Help");
+ inputRemoveBindings(s_bindingName[Binding::View]);
+ inputAddBindings(s_bindingName[Binding::Help], s_binding[Binding::Help]);
+ }
+ else
+ {
+ inputRemoveBindings(s_bindingName[Binding::Help]);
+ inputAddBindings(s_bindingName[Binding::View], s_binding[Binding::View]);
+ }
+
+ help = view.m_help;
+ }
+
+ if (about != view.m_about)
+ {
+ if (!about)
+ {
+ ImGui::OpenPopup("About");
+ inputRemoveBindings(s_bindingName[Binding::View]);
+ inputAddBindings(s_bindingName[Binding::About], s_binding[Binding::About]);
+ }
+ else
+ {
+ inputRemoveBindings(s_bindingName[Binding::About]);
+ inputAddBindings(s_bindingName[Binding::View], s_binding[Binding::View]);
+ }
+
+ about = view.m_about;
+ }
+
+ if (view.m_info)
+ {
+ ImGui::SetNextWindowSize(
+ ImVec2(450.0f, 320.0f)
+ , ImGuiCond_FirstUseEver
+ );
+
+ if (ImGui::Begin("Info", &view.m_info) )
+ {
+ if (ImGui::BeginChild("##info", ImVec2(0.0f, 0.0f) ) )
+ {
+ if (NULL == mesh)
+ {
+ ImGui::Text("Geometry is not loaded.");
+ }
+ else
+ {
+ char layout[128] = {0};
+ for(int32_t attrib = bgfx::Attrib::Position; attrib < bgfx::Attrib::Count; attrib++)
+ {
+ if ( mesh->m_layout.has(bgfx::Attrib::Enum(attrib)) )
+ bx::strCat(layout, sizeof(layout), s_attribShortNames[attrib]);
+ }
+
+ ImGui::Text("Name: %s %s", view.m_fileList[view.m_fileIndex].c_str(), layout);
+
+ ImGui::Indent();
+ for (GroupArray::const_iterator itGroup = mesh->m_groups.begin(), itGroupEnd = mesh->m_groups.end()
+ ; itGroup != itGroupEnd
+ ; ++itGroup
+ )
+ {
+ ImGui::Text("Group v %d i %d c %.2f %.2f %.2f r %.2f"
+ , itGroup->m_numVertices
+ , itGroup->m_numIndices
+ , itGroup->m_sphere.center.x
+ , itGroup->m_sphere.center.y
+ , itGroup->m_sphere.center.z
+ , itGroup->m_sphere.radius
+ );
+
+ ImGui::Indent();
+
+ for (PrimitiveArray::const_iterator itPrim = itGroup->m_prims.begin(), itPrimEnd = itGroup->m_prims.end()
+ ; itPrim != itPrimEnd
+ ; ++itPrim
+ )
+ {
+ ImGui::Text("Primitive v %d i %d c %.2f %.2f %.2f r %.2f"
+ , itPrim->m_numVertices
+ , itPrim->m_numIndices
+ , itPrim->m_sphere.center.x
+ , itPrim->m_sphere.center.y
+ , itPrim->m_sphere.center.z
+ , itPrim->m_sphere.radius
+ );
+ }
+
+ ImGui::Unindent();
+ }
+
+ ImGui::Unindent();
+
+ ImGui::Separator();
+ }
+
+ ImGui::EndChild();
+ }
+
+ }
+
+ ImGui::End();
+ }
+
+ if (view.m_files)
+ {
+ char temp[bx::kMaxFilePath];
+ bx::snprintf(temp, BX_COUNTOF(temp), "%s##File", view.m_path.getCPtr() );
+
+ ImGui::SetNextWindowSize(
+ ImVec2(400.0f, 400.0f)
+ , ImGuiCond_FirstUseEver
+ );
+
+ if (ImGui::Begin(temp, &view.m_files) )
+ {
+ if (ImGui::BeginChild("##file_list", ImVec2(0.0f, 0.0f) ) )
+ {
+ ImGui::PushFont(ImGui::Font::Mono);
+ const float itemHeight = ImGui::GetTextLineHeightWithSpacing();
+ const float listHeight =
+ bx::max(1.0f, bx::floor(ImGui::GetWindowHeight()/itemHeight) )
+ * itemHeight
+ ;
+
+ ImGui::PushItemWidth(-1);
+ if (ImGui::BeginListBox("##empty", ImVec2(0.0f, listHeight) ) )
+ {
+ const int32_t itemCount = int32_t(view.m_fileList.size() );
+
+ ImGuiListClipper clipper;
+ clipper.Begin(itemCount, itemHeight);
+
+ int32_t start = clipper.DisplayStart;
+ int32_t end = clipper.DisplayEnd;
+
+ const int32_t index = int32_t(view.m_fileIndex);
+ if (index <= start)
+ {
+ ImGui::SetScrollY(ImGui::GetScrollY() - (start-index+1)*itemHeight);
+ }
+ else if (index >= end)
+ {
+ ImGui::SetScrollY(ImGui::GetScrollY() + (index-end+1)*itemHeight);
+ }
+
+ while (clipper.Step() )
+ {
+ for (int32_t pos = clipper.DisplayStart; pos < clipper.DisplayEnd; ++pos)
+ {
+ ImGui::PushID(pos);
+
+ bool isSelected = uint32_t(pos) == view.m_fileIndex;
+ if (ImGui::Selectable(view.m_fileList[pos].c_str(), &isSelected) )
+ {
+ view.m_fileIndex = pos;
+ }
+
+ ImGui::PopID();
+ }
+ }
+
+ clipper.End();
+
+ ImGui::EndListBox();
+ }
+
+ ImGui::PopFont();
+ ImGui::EndChild();
+ }
+ }
+
+ ImGui::End();
+ }
+
+ if (ImGui::BeginPopupModal("About", &view.m_about, ImGuiWindowFlags_AlwaysAutoResize) )
+ {
+ ImGui::SetWindowFontScale(1.0f);
+
+ ImGui::Text(
+ "geometryv, bgfx geometry viewer tool " ICON_KI_WRENCH ", version %d.%d.%d.\n"
+ "Copyright 2019-2019 Attila Kocsis. All rights reserved.\n"
+ "License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE\n"
+ , BGFX_GEOMETRYV_VERSION_MAJOR
+ , BGFX_GEOMETRYV_VERSION_MINOR
+ , BGFX_API_VERSION
+ );
+
+ ImGui::Dummy(ImVec2(0.0f, 0.0f) );
+ ImGui::SameLine(ImGui::GetWindowWidth() - 136.0f);
+ if (ImGui::Button("Close", ImVec2(128.0f, 0.0f) )
+ || !view.m_about)
+ {
+ view.m_about = false;
+ ImGui::CloseCurrentPopup();
+ }
+
+ ImGui::EndPopup();
+ }
+
+ if (ImGui::BeginPopupModal("Help", &view.m_help, ImGuiWindowFlags_AlwaysAutoResize) )
+ {
+ ImGui::SetWindowFontScale(1.0f);
+
+ ImGui::Text("Key bindings:\n\n");
+
+ ImGui::PushFont(ImGui::Font::Mono);
+ keyBindingHelp("ESC", "Exit.");
+ keyBindingHelp("h", "Toggle help screen.");
+ keyBindingHelp("i", "Toggle info screen.");
+ keyBindingHelp("f", "Toggle full-screen.");
+ ImGui::NextLine();
+
+ keyBindingHelp("LMB+drag", "Orbit.");
+ keyBindingHelp("W/A/S/D", "Orbit.");
+ keyBindingHelp("RMB+drag or MW", "Dolly.");
+ keyBindingHelp("=/-", "Dolly.");
+ keyBindingHelp("0", "Reset.");
+ keyBindingHelp("1", "Fit to window.");
+ ImGui::NextLine();
+
+ keyBindingHelp("up", "Previous geometry.");
+ keyBindingHelp("down", "Next geometry.");
+ ImGui::NextLine();
+
+ ImGui::NextLine();
+
+ ImGui::PopFont();
+
+ ImGui::Dummy(ImVec2(0.0f, 0.0f) );
+ ImGui::SameLine(ImGui::GetWindowWidth() - 136.0f);
+ if (ImGui::Button("Close", ImVec2(128.0f, 0.0f) )
+ || !view.m_help)
+ {
+ view.m_help = false;
+ ImGui::CloseCurrentPopup();
+ }
+
+ ImGui::EndPopup();
+ }
+
+ imguiEndFrame();
+
+ if ( (NULL == mesh || view.m_fileIndex != fileIndex)
+ && 0 != view.m_fileList.size() )
+ {
+ if (NULL != mesh )
+ {
+ meshUnload(mesh);
+ }
+
+ fileIndex = view.m_fileIndex;
+
+ bx::FilePath fp = view.m_path;
+ fp.join(view.m_fileList[view.m_fileIndex].c_str() );
+
+ mesh = meshLoad(fp.getCPtr());
+
+ std::string title;
+ if (NULL != mesh )
+ {
+ uint32_t numPrimitives = 0;
+ uint32_t numVertices = 0;
+ uint32_t numIndices = 0;
+ bx::Aabb boundingBox = {};
+
+ for (GroupArray::const_iterator it = mesh->m_groups.begin(), itEnd = mesh->m_groups.end(); it != itEnd; ++it)
+ {
+ if ( it == mesh->m_groups.begin())
+ {
+ boundingBox = it->m_aabb;
+ }
+ else
+ {
+ aabbExpand(boundingBox, it->m_aabb.min);
+ aabbExpand(boundingBox, it->m_aabb.max);
+ }
+
+ numPrimitives += (uint32_t)it->m_prims.size();
+ numVertices += (uint32_t)it->m_numVertices;
+ numIndices += (uint32_t)it->m_numIndices;
+ }
+
+ bx::stringPrintf(
+ title
+ , "%s (g %d, p %d, v %d, i %d)"
+ , fp.getCPtr()
+ , mesh->m_groups.size()
+ , numPrimitives
+ , numVertices
+ , numIndices
+ );
+
+ view.m_meshCenter = bx::getCenter(boundingBox);
+ view.m_meshRadius = bx::length(bx::getExtents(boundingBox) );
+
+ view.m_camera.init( view.m_meshCenter, view.m_meshRadius * 2.0f, 0.01f, view.m_meshRadius * 10.0f);
+ }
+ else
+ {
+ bx::stringPrintf(title, "Failed to load %s!", filePath);
+ }
+
+ entry::setWindowTitle(entry::kDefaultWindowHandle, title.c_str() );
+ }
+
+ int64_t now = bx::getHPCounter();
+ static int64_t last = now;
+ const int64_t frameTime = now - last;
+ last = now;
+ const double freq = double(bx::getHPFrequency() );
+ const float deltaTime = float(frameTime/freq);
+
+ time += (float)(frameTime*speed/freq);
+
+ // Update camera.
+ float viewMatrix[16];
+ view.m_camera.update(deltaTime);
+ view.m_camera.mtxLookAt(viewMatrix);
+
+ float projMatrix[16];
+ const float aspect = float(view.m_width)/float(view.m_height);
+ bx::mtxProj(projMatrix, 60.0f, aspect, 0.01f, 1000.0f, caps->homogeneousDepth);
+
+ bgfx::setViewTransform(SCENE_VIEW_ID, viewMatrix, projMatrix);
+ bgfx::setViewRect(SCENE_VIEW_ID, 0, 0, uint16_t(view.m_width), uint16_t(view.m_height) );
+
+ bgfx::touch(SCENE_VIEW_ID);
+
+ if ( view.m_axes )
+ {
+ DebugDrawEncoder dde;
+ dde.begin(SCENE_VIEW_ID);
+ dde.drawAxis(0.0f, 0.0f, 0.0f);
+ dde.drawGrid(Axis::Y, {0.0f, 0.0f, 0.0f});
+ dde.end();
+ }
+
+ bgfx::dbgTextClear();
+
+ float orientation[16];
+ bx::mtxIdentity(orientation);
+ bgfx::setTransform(orientation);
+
+ float mtx[16];
+ bx::mtxIdentity(mtx);
+
+ if (NULL != mesh)
+ {
+ meshSubmit(mesh
+ , SCENE_VIEW_ID
+ , meshProgram
+ , mtx);
+ }
+
+ bgfx::frame();
+
+ // Slow down when nothing is animating...
+ if (view.m_idleTimer > 2.0f
+ && !anyActive() )
+ {
+ bx::sleep(100);
+ }
+
+ view.m_idleTimer += deltaTime;
+ }
+ }
+
+ if (NULL != mesh )
+ {
+ meshUnload(mesh);
+ }
+
+ bgfx::destroy(meshProgram);
+
+ ddShutdown();
+
+ imguiDestroy();
+
+ bgfx::shutdown();
+
+ return exitcode;
+}
diff --git a/3rdparty/bgfx/tools/geometryv/makefile b/3rdparty/bgfx/tools/geometryv/makefile
new file mode 100644
index 00000000000..d1033a73cbb
--- /dev/null
+++ b/3rdparty/bgfx/tools/geometryv/makefile
@@ -0,0 +1,6 @@
+#
+# Copyright 2019-2019 Attila Kocsis. All rights reserved.
+# License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE
+#
+
+include ../../scripts/shader-embeded.mk
diff --git a/3rdparty/bgfx/tools/geometryv/varying.def.sc b/3rdparty/bgfx/tools/geometryv/varying.def.sc
new file mode 100644
index 00000000000..4282621c47f
--- /dev/null
+++ b/3rdparty/bgfx/tools/geometryv/varying.def.sc
@@ -0,0 +1,4 @@
+vec3 v_normal : NORMAL = vec3(0.0, 0.0, 1.0);
+
+vec3 a_position : POSITION;
+vec3 a_normal : NORMAL;
diff --git a/3rdparty/bgfx/tools/geometryv/vs_mesh.bin.h b/3rdparty/bgfx/tools/geometryv/vs_mesh.bin.h
new file mode 100644
index 00000000000..269edf1f2d7
--- /dev/null
+++ b/3rdparty/bgfx/tools/geometryv/vs_mesh.bin.h
@@ -0,0 +1,298 @@
+static const uint8_t vs_mesh_glsl[446] =
+{
+ 0x56, 0x53, 0x48, 0x0b, 0x00, 0x00, 0x00, 0x00, 0xe3, 0xc2, 0x5c, 0x65, 0x02, 0x00, 0x07, 0x75, // VSH........e...u
+ 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x04, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, // _model. .. .....
+ 0x0f, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, // .u_modelViewProj
+ 0x04, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x01, 0x00, 0x00, 0x61, 0x74, // ..............at
+ 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x61, 0x5f, 0x6e, // tribute vec3 a_n
+ 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x3b, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, // ormal;.attribute
+ 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x61, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, // vec3 a_position
+ 0x3b, 0x0a, 0x76, 0x61, 0x72, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x76, // ;.varying vec3 v
+ 0x5f, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, // _normal;.uniform
+ 0x20, 0x6d, 0x61, 0x74, 0x34, 0x20, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5b, 0x33, 0x32, // mat4 u_model[32
+ 0x5d, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x6d, 0x61, 0x74, 0x34, 0x20, // ];.uniform mat4
+ 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x3b, // u_modelViewProj;
+ 0x0a, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x28, 0x29, 0x0a, 0x7b, 0x0a, // .void main ().{.
+ 0x20, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x3b, // vec4 tmpvar_1;
+ 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x77, 0x20, 0x3d, 0x20, // . tmpvar_1.w =
+ 0x31, 0x2e, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, // 1.0;. tmpvar_1.
+ 0x78, 0x79, 0x7a, 0x20, 0x3d, 0x20, 0x61, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, // xyz = a_position
+ 0x3b, 0x0a, 0x20, 0x20, 0x67, 0x6c, 0x5f, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, // ;. gl_Position
+ 0x3d, 0x20, 0x28, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, // = (u_modelViewPr
+ 0x6f, 0x6a, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x29, 0x3b, 0x0a, // oj * tmpvar_1);.
+ 0x20, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x3b, // vec4 tmpvar_2;
+ 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x2e, 0x77, 0x20, 0x3d, 0x20, // . tmpvar_2.w =
+ 0x30, 0x2e, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x2e, // 0.0;. tmpvar_2.
+ 0x78, 0x79, 0x7a, 0x20, 0x3d, 0x20, 0x28, 0x28, 0x61, 0x5f, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, // xyz = ((a_normal
+ 0x20, 0x2a, 0x20, 0x32, 0x2e, 0x30, 0x29, 0x20, 0x2d, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x3b, 0x0a, // * 2.0) - 1.0);.
+ 0x20, 0x20, 0x76, 0x5f, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x3d, 0x20, 0x28, 0x75, 0x5f, // v_normal = (u_
+ 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5b, 0x30, 0x5d, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, // model[0] * tmpva
+ 0x72, 0x5f, 0x32, 0x29, 0x2e, 0x78, 0x79, 0x7a, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x00, // r_2).xyz;.}...
+};
+static const uint8_t vs_mesh_essl[482] =
+{
+ 0x56, 0x53, 0x48, 0x0b, 0x00, 0x00, 0x00, 0x00, 0xe3, 0xc2, 0x5c, 0x65, 0x02, 0x00, 0x07, 0x75, // VSH........e...u
+ 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x04, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, // _model. .. .....
+ 0x0f, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, // .u_modelViewProj
+ 0x04, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa3, 0x01, 0x00, 0x00, 0x61, 0x74, // ..............at
+ 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x76, 0x65, // tribute highp ve
+ 0x63, 0x33, 0x20, 0x61, 0x5f, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x3b, 0x0a, 0x61, 0x74, 0x74, // c3 a_normal;.att
+ 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, // ribute highp vec
+ 0x33, 0x20, 0x61, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3b, 0x0a, 0x76, 0x61, // 3 a_position;.va
+ 0x72, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, 0x33, // rying highp vec3
+ 0x20, 0x76, 0x5f, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, // v_normal;.unifo
+ 0x72, 0x6d, 0x20, 0x6d, 0x61, 0x74, 0x34, 0x20, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5b, // rm mat4 u_model[
+ 0x33, 0x32, 0x5d, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x68, 0x69, 0x67, // 32];.uniform hig
+ 0x68, 0x70, 0x20, 0x6d, 0x61, 0x74, 0x34, 0x20, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, // hp mat4 u_modelV
+ 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x3b, 0x0a, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x6d, 0x61, // iewProj;.void ma
+ 0x69, 0x6e, 0x20, 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, // in ().{. highp
+ 0x76, 0x65, 0x63, 0x34, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x3b, 0x0a, 0x20, // vec4 tmpvar_1;.
+ 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x77, 0x20, 0x3d, 0x20, 0x31, 0x2e, // tmpvar_1.w = 1.
+ 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x79, // 0;. tmpvar_1.xy
+ 0x7a, 0x20, 0x3d, 0x20, 0x61, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3b, 0x0a, // z = a_position;.
+ 0x20, 0x20, 0x67, 0x6c, 0x5f, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, // gl_Position =
+ 0x28, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, // (u_modelViewProj
+ 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, // * tmpvar_1);.
+ 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, // highp vec4 tmpva
+ 0x72, 0x5f, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x2e, // r_2;. tmpvar_2.
+ 0x77, 0x20, 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, // w = 0.0;. tmpva
+ 0x72, 0x5f, 0x32, 0x2e, 0x78, 0x79, 0x7a, 0x20, 0x3d, 0x20, 0x28, 0x28, 0x61, 0x5f, 0x6e, 0x6f, // r_2.xyz = ((a_no
+ 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x2a, 0x20, 0x32, 0x2e, 0x30, 0x29, 0x20, 0x2d, 0x20, 0x31, 0x2e, // rmal * 2.0) - 1.
+ 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x5f, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x3d, // 0);. v_normal =
+ 0x20, 0x28, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5b, 0x30, 0x5d, 0x20, 0x2a, 0x20, 0x74, // (u_model[0] * t
+ 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x29, 0x2e, 0x78, 0x79, 0x7a, 0x3b, 0x0a, 0x7d, 0x0a, // mpvar_2).xyz;.}.
+ 0x0a, 0x00, // ..
+};
+static const uint8_t vs_mesh_spv[1514] =
+{
+ 0x56, 0x53, 0x48, 0x0b, 0x00, 0x00, 0x00, 0x00, 0xe3, 0xc2, 0x5c, 0x65, 0x02, 0x00, 0x0f, 0x75, // VSH........e...u
+ 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x04, 0x00, // _modelViewProj..
+ 0x00, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, // .........u_model
+ 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x05, 0x00, 0x00, 0x03, 0x02, // ................
+ 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0a, 0x00, 0x08, 0x00, 0x8d, 0x00, 0x00, 0x00, 0x00, 0x00, // #...............
+ 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, // ................
+ 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, // ..GLSL.std.450..
+ 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, // ................
+ 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, // ..........main..
+ 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x50, 0x00, // ..@...C...L...P.
+ 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x05, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0x05, 0x00, // ................
+ 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, // ......main......
+ 0x06, 0x00, 0x22, 0x00, 0x00, 0x00, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0x6c, 0x6f, // .."...UniformBlo
+ 0x63, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, // ck........".....
+ 0x00, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x00, 0x06, 0x00, 0x07, 0x00, 0x22, 0x00, // ..u_model.....".
+ 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, // ......u_modelVie
+ 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x05, 0x00, 0x03, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, // wProj.....$.....
+ 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x40, 0x00, 0x00, 0x00, 0x61, 0x5f, 0x6e, 0x6f, 0x72, 0x6d, // ......@...a_norm
+ 0x61, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x43, 0x00, 0x00, 0x00, 0x61, 0x5f, // al........C...a_
+ 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x00, 0x00, 0x05, 0x00, 0x0a, 0x00, 0x4c, 0x00, // position......L.
+ 0x00, 0x00, 0x40, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x4f, 0x75, 0x74, // ..@entryPointOut
+ 0x70, 0x75, 0x74, 0x2e, 0x67, 0x6c, 0x5f, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x00, // put.gl_Position.
+ 0x00, 0x00, 0x05, 0x00, 0x09, 0x00, 0x50, 0x00, 0x00, 0x00, 0x40, 0x65, 0x6e, 0x74, 0x72, 0x79, // ......P...@entry
+ 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2e, 0x76, 0x5f, 0x6e, 0x6f, // PointOutput.v_no
+ 0x72, 0x6d, 0x61, 0x6c, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x06, 0x00, // rmal..G...!.....
+ 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x48, 0x00, 0x04, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, // ..@...H...".....
+ 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, // ......H...".....
+ 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x22, 0x00, // ..#.......H...".
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, // ..............H.
+ 0x04, 0x00, 0x22, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x48, 0x00, // .."...........H.
+ 0x05, 0x00, 0x22, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x08, // ..".......#.....
+ 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x22, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x00, // ..H...".........
+ 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x22, 0x00, 0x00, 0x00, 0x02, 0x00, // ......G...".....
+ 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, // ..G...$...".....
+ 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, // ..G...$...!.....
+ 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x40, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, // ..G...@.........
+ 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x43, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x01, 0x00, // ..G...C.........
+ 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, // ..G...L.........
+ 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x50, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, // ..G...P.........
+ 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, // ..........!.....
+ 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, // .............. .
+ 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, // ................
+ 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, // ................
+ 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, // .......... .....
+ 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, // ..+.............
+ 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, // ..+.............
+ 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, // ..+.............
+ 0x80, 0x3f, 0x2b, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, // .?+.............
+ 0x00, 0x00, 0x18, 0x00, 0x04, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x04, 0x00, // ................
+ 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, // .......... .....
+ 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x00, // ..+....... ... .
+ 0x00, 0x00, 0x1c, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x20, 0x00, // ......!....... .
+ 0x00, 0x00, 0x1e, 0x00, 0x04, 0x00, 0x22, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x1e, 0x00, // ......"...!.....
+ 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x23, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x22, 0x00, // .. ...#.......".
+ 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x23, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x02, 0x00, // ..;...#...$.....
+ 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x25, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x00, // .. ...%.........
+ 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, // ..+.......-.....
+ 0x00, 0x40, 0x20, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x00, // .@ ...?.........
+ 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x01, 0x00, // ..;...?...@.....
+ 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x01, 0x00, // ..;...?...C.....
+ 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x09, 0x00, // .. ...K.........
+ 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x03, 0x00, // ..;...K...L.....
+ 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x07, 0x00, // .. ...O.........
+ 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x03, 0x00, // ..;...O...P.....
+ 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x07, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x15, 0x00, // ..,.............
+ 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, // ..........6.....
+ 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, // ................
+ 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x41, 0x00, // ......=.......A.
+ 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x44, 0x00, // ..@...=.......D.
+ 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x65, 0x00, // ..C...Q.......e.
+ 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, // ..D.......Q.....
+ 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x51, 0x00, // ..f...D.......Q.
+ 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x02, 0x00, // ......g...D.....
+ 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, 0x09, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x65, 0x00, // ..P.......h...e.
+ 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x41, 0x00, // ..f...g.......A.
+ 0x05, 0x00, 0x25, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x13, 0x00, // ..%...i...$.....
+ 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x69, 0x00, // ..=.......j...i.
+ 0x00, 0x00, 0x90, 0x00, 0x05, 0x00, 0x09, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x68, 0x00, // ..........k...h.
+ 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x6e, 0x00, // ..j...........n.
+ 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, 0x07, 0x00, // ..A...-.........
+ 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x51, 0x00, // ..p...n.......Q.
+ 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, // ......r...p.....
+ 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x70, 0x00, // ..Q.......s...p.
+ 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x74, 0x00, // ......Q.......t.
+ 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, 0x09, 0x00, // ..p.......P.....
+ 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x74, 0x00, // ..u...r...s...t.
+ 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x25, 0x00, 0x00, 0x00, 0x76, 0x00, // ......A...%...v.
+ 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x3d, 0x00, // ..$...........=.
+ 0x04, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x90, 0x00, // ......w...v.....
+ 0x05, 0x00, 0x09, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x77, 0x00, // ......x...u...w.
+ 0x00, 0x00, 0x4f, 0x00, 0x08, 0x00, 0x07, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x78, 0x00, // ..O.......y...x.
+ 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, // ..x.............
+ 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x3e, 0x00, // ..>...L...k...>.
+ 0x03, 0x00, 0x50, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, // ..P...y.......8.
+ 0x01, 0x00, 0x00, 0x02, 0x02, 0x00, 0x01, 0x00, 0x40, 0x08, // ........@.
+};
+static const uint8_t vs_mesh_dx9[471] =
+{
+ 0x56, 0x53, 0x48, 0x0b, 0x00, 0x00, 0x00, 0x00, 0xe3, 0xc2, 0x5c, 0x65, 0x02, 0x00, 0x07, 0x75, // VSH........e...u
+ 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x04, 0x20, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, // _model. ........
+ 0x0f, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, // .u_modelViewProj
+ 0x04, 0x01, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x01, 0x00, 0x00, 0x00, 0x03, // ................
+ 0xfe, 0xff, 0xfe, 0xff, 0x2c, 0x00, 0x43, 0x54, 0x41, 0x42, 0x1c, 0x00, 0x00, 0x00, 0x83, 0x00, // ....,.CTAB......
+ 0x00, 0x00, 0x00, 0x03, 0xfe, 0xff, 0x02, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x91, // ................
+ 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x02, 0x00, 0x04, 0x00, 0x03, 0x00, // ..|...D.........
+ 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x02, 0x00, // ..L.............
+ 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, // ......l.......u_
+ 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x00, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x20, 0x00, // model......... .
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, // ......u_modelVie
+ 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x01, 0x00, // wProj...........
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0x73, 0x5f, 0x33, 0x5f, 0x30, 0x00, 0x4d, 0x69, 0x63, // ......vs_3_0.Mic
+ 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4c, 0x53, 0x4c, 0x20, // rosoft (R) HLSL
+ 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x20, // Shader Compiler
+ 0x31, 0x30, 0x2e, 0x31, 0x00, 0xab, 0x51, 0x00, 0x00, 0x05, 0x07, 0x00, 0x0f, 0xa0, 0x00, 0x00, // 10.1..Q.........
+ 0x00, 0x40, 0x00, 0x00, 0x80, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, // .@..............
+ 0x00, 0x02, 0x03, 0x00, 0x00, 0x80, 0x00, 0x00, 0x0f, 0x90, 0x1f, 0x00, 0x00, 0x02, 0x00, 0x00, // ................
+ 0x00, 0x80, 0x01, 0x00, 0x0f, 0x90, 0x1f, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, // ................
+ 0x0f, 0xe0, 0x1f, 0x00, 0x00, 0x02, 0x03, 0x00, 0x00, 0x80, 0x01, 0x00, 0x07, 0xe0, 0x05, 0x00, // ................
+ 0x00, 0x03, 0x00, 0x00, 0x0f, 0x80, 0x01, 0x00, 0xe4, 0xa0, 0x01, 0x00, 0x55, 0x90, 0x04, 0x00, // ............U...
+ 0x00, 0x04, 0x00, 0x00, 0x0f, 0x80, 0x00, 0x00, 0xe4, 0xa0, 0x01, 0x00, 0x00, 0x90, 0x00, 0x00, // ................
+ 0xe4, 0x80, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x0f, 0x80, 0x02, 0x00, 0xe4, 0xa0, 0x01, 0x00, // ................
+ 0xaa, 0x90, 0x00, 0x00, 0xe4, 0x80, 0x02, 0x00, 0x00, 0x03, 0x00, 0x00, 0x0f, 0xe0, 0x00, 0x00, // ................
+ 0xe4, 0x80, 0x03, 0x00, 0xe4, 0xa0, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, // ................
+ 0xe4, 0x90, 0x07, 0x00, 0x00, 0xa0, 0x07, 0x00, 0x55, 0xa0, 0x05, 0x00, 0x00, 0x03, 0x01, 0x00, // ........U.......
+ 0x07, 0x80, 0x00, 0x00, 0x55, 0x80, 0x05, 0x00, 0xe4, 0xa0, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, // ....U...........
+ 0x0b, 0x80, 0x04, 0x00, 0xa4, 0xa0, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0xa4, 0x80, 0x04, 0x00, // ................
+ 0x00, 0x04, 0x01, 0x00, 0x07, 0xe0, 0x06, 0x00, 0xe4, 0xa0, 0x00, 0x00, 0xaa, 0x80, 0x00, 0x00, // ................
+ 0xf4, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, // .......
+};
+static const uint8_t vs_mesh_dx11[690] =
+{
+ 0x56, 0x53, 0x48, 0x0b, 0x00, 0x00, 0x00, 0x00, 0xe3, 0xc2, 0x5c, 0x65, 0x02, 0x00, 0x07, 0x75, // VSH........e...u
+ 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x04, 0x20, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, // _model. ........
+ 0x0f, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, // .u_modelViewProj
+ 0x04, 0x00, 0x00, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x02, 0x00, 0x00, 0x44, 0x58, // ..........l...DX
+ 0x42, 0x43, 0xb4, 0x48, 0x12, 0xfe, 0xc5, 0x93, 0x9f, 0x35, 0x29, 0x47, 0xbd, 0x09, 0x87, 0xcd, // BC.H.....5)G....
+ 0x71, 0xa2, 0x01, 0x00, 0x00, 0x00, 0x6c, 0x02, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2c, 0x00, // q.....l.......,.
+ 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, 0x49, 0x53, 0x47, 0x4e, 0x48, 0x00, // ..|.......ISGNH.
+ 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, // ..........8.....
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, // ................
+ 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, // ..?.............
+ 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, // ..........NORMAL
+ 0x00, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x00, 0x4f, 0x53, 0x47, 0x4e, 0x4c, 0x00, // .POSITION.OSGNL.
+ 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, // ..........8.....
+ 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, // ................
+ 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, // ..D.............
+ 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x08, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x50, 0x4f, 0x53, // ..........SV_POS
+ 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x00, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x00, 0xab, 0x53, 0x48, // ITION.NORMAL..SH
+ 0x44, 0x52, 0x94, 0x01, 0x00, 0x00, 0x40, 0x00, 0x01, 0x00, 0x65, 0x00, 0x00, 0x00, 0x59, 0x00, // DR....@...e...Y.
+ 0x00, 0x04, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x5f, 0x00, // ..F. ........._.
+ 0x00, 0x03, 0x72, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x03, 0x72, 0x10, // ..r......._...r.
+ 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x04, 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, // ......g.... ....
+ 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x03, 0x72, 0x20, 0x10, 0x00, 0x01, 0x00, // ......e...r ....
+ 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x08, 0xf2, 0x00, // ..h.......8.....
+ 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x15, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x8e, // ......V.......F.
+ 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, 0xf2, 0x00, // .........2.....
+ 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, // ......F. .......
+ 0x00, 0x00, 0x06, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, // ..........F.....
+ 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x8e, // ..2...........F.
+ 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0xa6, 0x1a, 0x10, 0x00, 0x01, 0x00, // ...............
+ 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xf2, 0x20, // ..F............
+ 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x8e, // ......F.......F.
+ 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0f, 0x72, 0x00, // .........2...r.
+ 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x12, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, // ......F........@
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, // .....@...@...@..
+ 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x80, 0xbf, 0x00, 0x00, 0x80, 0xbf, 0x00, 0x00, // ...@............
+ 0x80, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x08, 0x72, 0x00, 0x10, 0x00, 0x01, 0x00, // ......8...r.....
+ 0x00, 0x00, 0x56, 0x05, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x82, 0x20, 0x00, 0x00, 0x00, // ..V.......F. ...
+ 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, 0xb2, 0x00, 0x10, 0x00, 0x00, 0x00, // ......2.........
+ 0x00, 0x00, 0x46, 0x88, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, // ..F. ...........
+ 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x08, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, // ......F.......2.
+ 0x00, 0x0a, 0x72, 0x20, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x82, 0x20, 0x00, 0x00, 0x00, // ..r ......F. ...
+ 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xa6, 0x0a, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x03, // ..............F.
+ 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x01, 0x00, 0x02, 0x02, 0x00, 0x01, 0x00, // ......>.........
+ 0x40, 0x08, // @.
+};
+static const uint8_t vs_mesh_mtl[790] =
+{
+ 0x56, 0x53, 0x48, 0x0b, 0x00, 0x00, 0x00, 0x00, 0xe3, 0xc2, 0x5c, 0x65, 0x02, 0x00, 0x0f, 0x75, // VSH........e...u
+ 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x04, 0x01, // _modelViewProj..
+ 0x00, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, // .........u_model
+ 0x04, 0x01, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x02, 0x00, 0x00, 0x23, 0x69, // ..............#i
+ 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3c, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x74, // nclude <metal_st
+ 0x64, 0x6c, 0x69, 0x62, 0x3e, 0x0a, 0x23, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3c, // dlib>.#include <
+ 0x73, 0x69, 0x6d, 0x64, 0x2f, 0x73, 0x69, 0x6d, 0x64, 0x2e, 0x68, 0x3e, 0x0a, 0x0a, 0x75, 0x73, // simd/simd.h>..us
+ 0x69, 0x6e, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x20, 0x6d, 0x65, // ing namespace me
+ 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x5f, 0x47, 0x6c, // tal;..struct _Gl
+ 0x6f, 0x62, 0x61, 0x6c, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, // obal.{. float
+ 0x34, 0x78, 0x34, 0x20, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5b, 0x33, 0x32, 0x5d, 0x3b, // 4x4 u_model[32];
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x78, 0x34, 0x20, 0x75, 0x5f, // . float4x4 u_
+ 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x3b, 0x0a, 0x7d, // modelViewProj;.}
+ 0x3b, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, // ;..struct xlatMt
+ 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x5f, 0x6f, 0x75, 0x74, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, // lMain_out.{.
+ 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x69, // float3 _entryPoi
+ 0x6e, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x76, 0x5f, 0x6e, 0x6f, 0x72, 0x6d, 0x61, // ntOutput_v_norma
+ 0x6c, 0x20, 0x5b, 0x5b, 0x75, 0x73, 0x65, 0x72, 0x28, 0x6c, 0x6f, 0x63, 0x6e, 0x30, 0x29, 0x5d, // l [[user(locn0)]
+ 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x67, 0x6c, // ];. float4 gl
+ 0x5f, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x5b, 0x5b, 0x70, 0x6f, 0x73, 0x69, // _Position [[posi
+ 0x74, 0x69, 0x6f, 0x6e, 0x5d, 0x5d, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x75, // tion]];.};..stru
+ 0x63, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x5f, 0x69, // ct xlatMtlMain_i
+ 0x6e, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x61, // n.{. float3 a
+ 0x5f, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x5b, 0x5b, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, // _normal [[attrib
+ 0x75, 0x74, 0x65, 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, // ute(0)]];. fl
+ 0x6f, 0x61, 0x74, 0x33, 0x20, 0x61, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, // oat3 a_position
+ 0x5b, 0x5b, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x31, 0x29, 0x5d, 0x5d, // [[attribute(1)]]
+ 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x20, 0x78, 0x6c, 0x61, // ;.};..vertex xla
+ 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x5f, 0x6f, 0x75, 0x74, 0x20, 0x78, 0x6c, 0x61, // tMtlMain_out xla
+ 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x28, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, // tMtlMain(xlatMtl
+ 0x4d, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x5b, 0x5b, 0x73, 0x74, 0x61, // Main_in in [[sta
+ 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x5d, 0x5d, 0x2c, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, // ge_in]], constan
+ 0x74, 0x20, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x26, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, // t _Global& _mtl_
+ 0x75, 0x20, 0x5b, 0x5b, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x29, // u [[buffer(0)]])
+ 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, // .{. xlatMtlMa
+ 0x69, 0x6e, 0x5f, 0x6f, 0x75, 0x74, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x3b, // in_out out = {};
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x2e, 0x67, 0x6c, 0x5f, 0x50, 0x6f, 0x73, 0x69, // . out.gl_Posi
+ 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x2e, 0x75, 0x5f, // tion = _mtl_u.u_
+ 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x20, 0x2a, 0x20, // modelViewProj *
+ 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x28, 0x69, 0x6e, 0x2e, 0x61, 0x5f, 0x70, 0x6f, 0x73, 0x69, // float4(in.a_posi
+ 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, // tion, 1.0);.
+ 0x6f, 0x75, 0x74, 0x2e, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x4f, // out._entryPointO
+ 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x76, 0x5f, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x3d, // utput_v_normal =
+ 0x20, 0x28, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x2e, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, // (_mtl_u.u_model
+ 0x5b, 0x30, 0x5d, 0x20, 0x2a, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x28, 0x28, 0x69, 0x6e, // [0] * float4((in
+ 0x2e, 0x61, 0x5f, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x2a, 0x20, 0x32, 0x2e, 0x30, 0x29, // .a_normal * 2.0)
+ 0x20, 0x2d, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x31, 0x2e, 0x30, 0x29, 0x2c, 0x20, // - float3(1.0),
+ 0x30, 0x2e, 0x30, 0x29, 0x29, 0x2e, 0x78, 0x79, 0x7a, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, // 0.0)).xyz;. r
+ 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6f, 0x75, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x00, 0x02, // eturn out;.}....
+ 0x02, 0x00, 0x01, 0x00, 0x80, 0x00, // ......
+};
+extern const uint8_t* vs_mesh_pssl;
+extern const uint32_t vs_mesh_pssl_size;
diff --git a/3rdparty/bgfx/tools/geometryv/vs_mesh.sc b/3rdparty/bgfx/tools/geometryv/vs_mesh.sc
new file mode 100644
index 00000000000..dba9b532129
--- /dev/null
+++ b/3rdparty/bgfx/tools/geometryv/vs_mesh.sc
@@ -0,0 +1,17 @@
+$input a_position, a_normal
+$output v_normal
+
+/*
+ * Copyright 2019-2019 Attila Kocsis. All rights reserved.
+ * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE
+ */
+
+#include <bgfx_shader.sh>
+
+void main()
+{
+ gl_Position = mul(u_modelViewProj, vec4(a_position, 1.0) );
+
+ vec3 normal = a_normal.xyz*2.0 - 1.0;
+ v_normal = mul(u_model[0], vec4(normal, 0.0) ).xyz;
+}
diff --git a/3rdparty/bgfx/tools/shaderc/shaderc.cpp b/3rdparty/bgfx/tools/shaderc/shaderc.cpp
index bc92f90570d..a8c284c14af 100644
--- a/3rdparty/bgfx/tools/shaderc/shaderc.cpp
+++ b/3rdparty/bgfx/tools/shaderc/shaderc.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright 2011-2018 Branimir Karadzic. All rights reserved.
- * License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause
+ * Copyright 2011-2022 Branimir Karadzic. All rights reserved.
+ * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE
*/
#include "shaderc.h"
@@ -13,18 +13,114 @@ extern "C"
#include <fpp.h>
} // extern "C"
-#define BGFX_SHADER_BIN_VERSION 6
+#define BGFX_SHADER_BIN_VERSION 11
#define BGFX_CHUNK_MAGIC_CSH BX_MAKEFOURCC('C', 'S', 'H', BGFX_SHADER_BIN_VERSION)
#define BGFX_CHUNK_MAGIC_FSH BX_MAKEFOURCC('F', 'S', 'H', BGFX_SHADER_BIN_VERSION)
#define BGFX_CHUNK_MAGIC_VSH BX_MAKEFOURCC('V', 'S', 'H', BGFX_SHADER_BIN_VERSION)
#define BGFX_SHADERC_VERSION_MAJOR 1
-#define BGFX_SHADERC_VERSION_MINOR 16
+#define BGFX_SHADERC_VERSION_MINOR 18
namespace bgfx
{
bool g_verbose = false;
+ struct ShadingLang
+ {
+ enum Enum
+ {
+ ESSL,
+ GLSL,
+ HLSL,
+ Metal,
+ PSSL,
+ SpirV,
+
+ Count
+ };
+ };
+
+ static const char* s_shadingLangName[] =
+ {
+ "OpenGL ES Shading Language / WebGL (ESSL)",
+ "OpenGL Shading Language (GLSL)",
+ "High-Level Shading Language (HLSL)",
+ "Metal Shading Language (MSL)",
+ "PlayStation Shader Language (PSSL)",
+ "Standard Portable Intermediate Representation - V (SPIR-V)",
+
+ "Unknown?!"
+ };
+ BX_STATIC_ASSERT(BX_COUNTOF(s_shadingLangName) == ShadingLang::Count+1, "ShadingLang::Enum and s_shadingLangName mismatch");
+
+ const char* getName(ShadingLang::Enum _lang)
+ {
+ return s_shadingLangName[_lang];
+ }
+
+ // c - compute
+ // d - domain
+ // f - fragment
+ // g - geometry
+ // h - hull
+ // v - vertex
+ //
+ // OpenGL #version Features Direct3D Features Shader Model
+ // 2.1 120 vf 9.0 vf 2.0
+ // 3.0 130
+ // 3.1 140
+ // 3.2 150 vgf
+ // 3.3 330 10.0 vgf 4.0
+ // 4.0 400 vhdgf
+ // 4.1 410
+ // 4.2 420 11.0 vhdgf+c 5.0
+ // 4.3 430 vhdgf+c
+ // 4.4 440
+ //
+ // SPIR-V profile naming convention:
+ // spirv<SPIR-V version>-<Vulkan version>
+ //
+ // SPIR-V version | Vulkan version | shaderc encoding
+ // 1.0 | 1.0 | 1010
+ // 1.3 | 1.1 | 1311
+ // 1.4 | 1.1 | 1411
+ // 1.5 | 1.2 | 1512
+
+ struct Profile
+ {
+ ShadingLang::Enum lang;
+ uint32_t id;
+ const char* name;
+ };
+
+ static const Profile s_profiles[] =
+ {
+ { ShadingLang::ESSL, 100, "100_es" },
+ { ShadingLang::ESSL, 300, "300_es" },
+ { ShadingLang::ESSL, 310, "310_es" },
+ { ShadingLang::ESSL, 320, "320_es" },
+ { ShadingLang::HLSL, 300, "s_3_0" },
+ { ShadingLang::HLSL, 400, "s_4_0" },
+ { ShadingLang::HLSL, 500, "s_5_0" },
+ { ShadingLang::Metal, 1000, "metal" },
+ { ShadingLang::PSSL, 1000, "pssl" },
+ { ShadingLang::SpirV, 1311, "spirv13-11" },
+ { ShadingLang::SpirV, 1411, "spirv14-11" },
+ { ShadingLang::SpirV, 1512, "spirv15-12" },
+ { ShadingLang::SpirV, 1010, "spirv10-10" },
+ { ShadingLang::SpirV, 1010, "spirv" },
+ { ShadingLang::GLSL, 120, "120" },
+ { ShadingLang::GLSL, 130, "130" },
+ { ShadingLang::GLSL, 140, "140" },
+ { ShadingLang::GLSL, 150, "150" },
+ { ShadingLang::GLSL, 330, "330" },
+ { ShadingLang::GLSL, 400, "400" },
+ { ShadingLang::GLSL, 410, "410" },
+ { ShadingLang::GLSL, 420, "420" },
+ { ShadingLang::GLSL, 430, "430" },
+ { ShadingLang::GLSL, 440, "440" },
+ };
+
static const char* s_ARB_shader_texture_lod[] =
{
"texture2DLod",
@@ -87,6 +183,17 @@ namespace bgfx
{
"gl_VertexID",
"gl_InstanceID",
+ "texture2DLodOffset",
+ NULL
+ };
+
+ // To be use from vertex program require:
+ // https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shader_viewport_layer_array.txt
+ // DX11 11_1 feature level
+ static const char* s_ARB_shader_viewport_layer_array[] =
+ {
+ "gl_ViewportIndex",
+ "gl_Layer",
NULL
};
@@ -119,11 +226,13 @@ namespace bgfx
"usampler3D",
"isamplerCube",
"usamplerCube",
+ "textureSize",
NULL
};
static const char* s_textureArray[] =
{
+ "sampler2DArray",
"texture2DArray",
"texture2DArrayLod",
"shadow2DArray",
@@ -145,6 +254,23 @@ namespace bgfx
NULL
};
+ static const char* s_bitsToEncoders[] =
+ {
+ "floatBitsToUint",
+ "floatBitsToInt",
+ "intBitsToFloat",
+ "uintBitsToFloat",
+ NULL
+ };
+
+ static const char* s_unsignedVecs[] =
+ {
+ "uvec2",
+ "uvec3",
+ "uvec4",
+ NULL
+ };
+
const char* s_uniformTypeName[] =
{
"int", "int",
@@ -155,7 +281,59 @@ namespace bgfx
};
BX_STATIC_ASSERT(BX_COUNTOF(s_uniformTypeName) == UniformType::Count*2);
+ static const char* s_allowedVertexShaderInputs[] =
+ {
+ "a_position",
+ "a_normal",
+ "a_tangent",
+ "a_bitangent",
+ "a_color0",
+ "a_color1",
+ "a_color2",
+ "a_color3",
+ "a_indices",
+ "a_weight",
+ "a_texcoord0",
+ "a_texcoord1",
+ "a_texcoord2",
+ "a_texcoord3",
+ "a_texcoord4",
+ "a_texcoord5",
+ "a_texcoord6",
+ "a_texcoord7",
+ "i_data0",
+ "i_data1",
+ "i_data2",
+ "i_data3",
+ "i_data4",
+ NULL
+ };
+
+ void fatal(const char* _filePath, uint16_t _line, Fatal::Enum _code, const char* _format, ...)
+ {
+ BX_UNUSED(_filePath, _line, _code);
+
+ va_list argList;
+ va_start(argList, _format);
+
+ bx::vprintf(_format, argList);
+
+ va_end(argList);
+
+ abort();
+ }
+
+ void trace(const char* _filePath, uint16_t _line, const char* _format, ...)
+ {
+ BX_UNUSED(_filePath, _line);
+
+ va_list argList;
+ va_start(argList, _format);
+ bx::vprintf(_format, argList);
+
+ va_end(argList);
+ }
Options::Options()
: shaderType(' ')
, disasm(false)
@@ -251,7 +429,7 @@ namespace bgfx
const char* getUniformTypeName(UniformType::Enum _enum)
{
- uint32_t idx = _enum & ~(BGFX_UNIFORM_FRAGMENTBIT|BGFX_UNIFORM_SAMPLERBIT);
+ uint32_t idx = _enum & ~(kUniformFragmentBit|kUniformSamplerBit);
if (idx < UniformType::Count)
{
return s_uniformTypeName[idx];
@@ -290,7 +468,7 @@ namespace bgfx
len = bx::vsnprintf(out, len, _format, argList);
}
- len = bx::write(_writer, out, len);
+ len = bx::write(_writer, out, len, bx::ErrorAssert{});
va_end(argList);
@@ -385,15 +563,13 @@ namespace bgfx
len = bx::vsnprintf(out, len, _format, argList);
}
- bx::Error err;
- int32_t size = bx::FileWriter::write(out, len, &err);
+ int32_t size = bx::FileWriter::write(out, len, bx::ErrorAssert{});
va_end(argList);
return size;
}
- std::string m_filePath;
bx::StringView m_name;
typedef std::vector<uint8_t> Buffer;
Buffer m_buffer;
@@ -432,7 +608,7 @@ namespace bgfx
{
m_size = (uint32_t)bx::getSize(&reader);
m_data = new char[m_size+1];
- m_size = (uint32_t)bx::read(&reader, m_data, m_size);
+ m_size = (uint32_t)bx::read(&reader, m_data, m_size, bx::ErrorAssert{});
bx::close(&reader);
if (m_data[0] == '\xef'
@@ -482,7 +658,7 @@ namespace bgfx
}
replace[len] = '\0';
- BX_CHECK(len >= bx::strLen(_replace), "");
+ BX_ASSERT(len >= bx::strLen(_replace), "");
for (bx::StringView ptr = bx::strFind(_str, _find)
; !ptr.isEmpty()
; ptr = bx::strFind(ptr.getPtr() + len, _find)
@@ -500,38 +676,33 @@ namespace bgfx
void printCode(const char* _code, int32_t _line, int32_t _start, int32_t _end, int32_t _column)
{
- fprintf(stderr, "Code:\n---\n");
+ bx::printf("Code:\n---\n");
- bx::Error err;
- LineReader reader(_code);
- for (int32_t line = 1; err.isOk() && line < _end; ++line)
+ bx::LineReader reader(_code);
+ for (int32_t line = 1; !reader.isDone() && line < _end; ++line)
{
- char str[4096];
- int32_t len = bx::read(&reader, str, BX_COUNTOF(str), &err);
+ bx::StringView strLine = reader.next();
- if (err.isOk()
- && line >= _start)
+ if (line >= _start)
{
- std::string strLine(str, len);
-
if (_line == line)
{
- fprintf(stderr, "\n");
- fprintf(stderr, ">>> %3d: %s", line, strLine.c_str() );
+ bx::printf("\n");
+ bx::printf(">>> %3d: %.*s\n", line, strLine.getLength(), strLine.getPtr() );
if (-1 != _column)
{
- fprintf(stderr, ">>> %3d: %*s\n", _column, _column, "^");
+ bx::printf(">>> %3d: %*s\n", _column, _column, "^");
}
- fprintf(stderr, "\n");
+ bx::printf("\n");
}
else
{
- fprintf(stderr, " %3d: %s", line, strLine.c_str() );
+ bx::printf(" %3d: %.*s\n", line, strLine.getLength(), strLine.getPtr() );
}
}
}
- fprintf(stderr, "---\n");
+ bx::printf("---\n");
}
void writeFile(const char* _filePath, const void* _data, int32_t _size)
@@ -539,7 +710,7 @@ namespace bgfx
bx::FileWriter out;
if (bx::open(&out, _filePath) )
{
- bx::write(&out, _data, _size);
+ bx::write(&out, _data, _size, bx::ErrorAssert{});
bx::close(&out);
}
}
@@ -712,7 +883,7 @@ namespace bgfx
static void fppError(void* /*_userData*/, char* _format, va_list _vargs)
{
- vfprintf(stderr, _format, _vargs);
+ bx::vprintf(_format, _vargs);
}
char* scratch(const char* _str)
@@ -738,27 +909,31 @@ namespace bgfx
typedef std::vector<std::string> InOut;
- uint32_t parseInOut(InOut& _inout, const char* _str, const char* _eol)
+ uint32_t parseInOut(InOut& _inout, const bx::StringView& _str)
{
uint32_t hash = 0;
- _str = bx::strLTrimSpace(_str).getPtr();
+ bx::StringView str = bx::strLTrimSpace(_str);
- if (_str < _eol)
+ if (!str.isEmpty() )
{
- const char* delim;
+ bx::StringView delim;
do
{
- delim = strpbrk(_str, " ,");
- if (NULL != delim)
+ delim = bx::strFind(str, ',');
+ if (delim.isEmpty() )
{
- delim = delim > _eol ? _eol : delim;
- std::string token;
- token.assign(_str, delim-_str);
- _inout.push_back(token);
- _str = bx::strLTrimSpace(delim + 1).getPtr();
+ delim = bx::strFind(str, ' ');
+ }
+
+ const bx::StringView token(bx::strRTrim(bx::StringView(str.getPtr(), delim.getPtr() ), " ") );
+
+ if (!token.isEmpty() )
+ {
+ _inout.push_back(std::string(token.getPtr(), token.getTerm() ) );
+ str = bx::strLTrimSpace(bx::StringView(delim.getPtr() + 1, str.getTerm() ) );
}
}
- while (delim < _eol && _str < _eol && NULL != delim);
+ while (!delim.isEmpty() );
std::sort(_inout.begin(), _inout.end() );
@@ -806,51 +981,33 @@ namespace bgfx
return bx::strFind(_filePath, fp.getBaseName() );
}
- // c - compute
- // d - domain
- // f - fragment
- // g - geometry
- // h - hull
- // v - vertex
- //
- // OpenGL #version Features Direct3D Features Shader Model
- // 2.1 120 vf 9.0 vf 2.0
- // 3.0 130
- // 3.1 140
- // 3.2 150 vgf
- // 3.3 330 10.0 vgf 4.0
- // 4.0 400 vhdgf
- // 4.1 410
- // 4.2 420 11.0 vhdgf+c 5.0
- // 4.3 430 vhdgf+c
- // 4.4 440
-
void help(const char* _error = NULL)
{
if (NULL != _error)
{
- fprintf(stderr, "Error:\n%s\n\n", _error);
+ bx::printf("Error:\n%s\n\n", _error);
}
- fprintf(stderr
- , "shaderc, bgfx shader compiler tool, version %d.%d.%d.\n"
- "Copyright 2011-2018 Branimir Karadzic. All rights reserved.\n"
- "License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause\n\n"
+ bx::printf(
+ "shaderc, bgfx shader compiler tool, version %d.%d.%d.\n"
+ "Copyright 2011-2022 Branimir Karadzic. All rights reserved.\n"
+ "License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE\n\n"
, BGFX_SHADERC_VERSION_MAJOR
, BGFX_SHADERC_VERSION_MINOR
, BGFX_API_VERSION
);
- fprintf(stderr
- , "Usage: shaderc -f <in> -o <out> --type <v/f> --platform <platform>\n"
+ bx::printf(
+ "Usage: shaderc -f <in> -o <out> --type <v/f/c> --platform <platform>\n"
"\n"
"Options:\n"
- " -h, --help Help.\n"
- " -v, --version Version information only.\n"
- " -f <file path> Input file path.\n"
- " -i <include path> Include path (for multiple paths use -i multiple times).\n"
- " -o <file path> Output file path.\n"
+ " -h, --help Display this help and exit.\n"
+ " -v, --version Output version information and exit.\n"
+ " -f <file path> Input's file path.\n"
+ " -i <include path> Include path. (for multiple paths use -i multiple times)\n"
+ " -o <file path> Output's file path.\n"
+ " --stdout Output to console.\n"
" --bin2c [array name] Generate C header file. If array name is not specified base file name will be used as name.\n"
" --depends Generate makefile style depends file.\n"
" --platform <platform> Target platform.\n"
@@ -858,24 +1015,46 @@ namespace bgfx
" asm.js\n"
" ios\n"
" linux\n"
- " nacl\n"
+ " orbis\n"
" osx\n"
" windows\n"
- " --preprocess Preprocess only.\n"
- " --define <defines> Add defines to preprocessor (semicolon separated).\n"
- " --raw Do not process shader. No preprocessor, and no glsl-optimizer (GLSL only).\n"
- " --type <type> Shader type (vertex, fragment)\n"
- " --varyingdef <file path> Path to varying.def.sc file.\n"
- " --verbose Verbose.\n"
+ " -p, --profile <profile> Shader model. Defaults to GLSL.\n"
+ );
+
+ {
+ ShadingLang::Enum lang = ShadingLang::Count;
+ for (uint32_t ii = 0; ii < BX_COUNTOF(s_profiles); ++ii)
+ {
+ const Profile& profile = s_profiles[ii];
+ if (lang != profile.lang)
+ {
+ lang = profile.lang;
+ bx::printf("\n");
+ bx::printf(" %-20s %s\n", profile.name, getName(profile.lang) );
+ }
+ else
+ {
+ bx::printf(" %s\n", profile.name);
+ }
+
+ }
+ }
+
+ bx::printf(
+ " --preprocess Only pre-process.\n"
+ " --define <defines> Add defines to preprocessor. (Semicolon-separated)\n"
+ " --raw Do not process shader. No preprocessor, and no glsl-optimizer. (GLSL only)\n"
+ " --type <type> Shader type. Can be 'vertex', 'fragment, or 'compute'.\n"
+ " --varyingdef <file path> varying.def.sc's file path.\n"
+ " --verbose Be verbose.\n"
"\n"
- "Options (DX9 and DX11 only):\n"
+ "(DX9 and DX11 only):\n"
"\n"
" --debug Debug information.\n"
" --disasm Disassemble compiled shader.\n"
- " -p, --profile <profile> Shader model (f.e. ps_3_0).\n"
- " -O <level> Optimization level (0, 1, 2, 3).\n"
+ " -O <level> Set optimization level. Can be 0 to 3.\n"
" --Werror Treat warnings as errors.\n"
"\n"
@@ -890,58 +1069,41 @@ namespace bgfx
return word;
}
- bool compileShader(const char* _varying, const char* _comment, char* _shader, uint32_t _shaderLen, Options& _options, bx::FileWriter* _writer)
+ bool compileShader(const char* _varying, const char* _comment, char* _shader, uint32_t _shaderLen, Options& _options, bx::WriterI* _writer)
{
- uint32_t glsl = 0;
- uint32_t essl = 0;
- uint32_t hlsl = 0;
- uint32_t d3d = 11;
- uint32_t metal = 0;
- uint32_t pssl = 0;
- uint32_t spirv = 0;
- const char* profile = _options.profile.c_str();
- if ('\0' != profile[0])
- {
- if (0 == bx::strCmp(&profile[1], "s_4_0_level", 11) )
- {
- hlsl = 2;
- }
- else if (0 == bx::strCmp(&profile[1], "s_3", 3) )
- {
- hlsl = 3;
- d3d = 9;
- }
- else if (0 == bx::strCmp(&profile[1], "s_4", 3) )
- {
- hlsl = 4;
- }
- else if (0 == bx::strCmp(&profile[1], "s_5", 3) )
- {
- hlsl = 5;
- }
- else if (0 == bx::strCmp(profile, "metal") )
- {
- metal = 1;
- }
- else if (0 == bx::strCmp(profile, "pssl") )
- {
- pssl = 1;
- }
- else if (0 == bx::strCmp(profile, "spirv") )
+ uint32_t profile_id = 0;
+
+ const char* profile_opt = _options.profile.c_str();
+ if ('\0' != profile_opt[0])
+ {
+ const uint32_t count = BX_COUNTOF(s_profiles);
+ for (profile_id=0; profile_id<count; profile_id++ )
{
- spirv = 1;
+ if (0 == bx::strCmp(profile_opt, s_profiles[profile_id].name) )
+ {
+ break;
+ }
+ else if (s_profiles[profile_id].lang == ShadingLang::HLSL
+ && 0 == bx::strCmp(&profile_opt[1], s_profiles[profile_id].name) )
+ {
+ // This test is here to allow hlsl profile names e.g:
+ // cs_4_0, gs_5_0, etc...
+ // There's no check to ensure that the profile name matches the shader type set via the cli.
+ // This means that you can pass `hs_5_0` when compiling a fragment shader.
+ break;
+ }
}
- else
+
+ if (profile_id == count)
{
- bx::fromString(&glsl, profile);
+ bx::printf("Unknown profile: %s\n", profile_opt);
+ return false;
}
}
- else
- {
- essl = 2;
- }
- Preprocessor preprocessor(_options.inputFilePath.c_str(), 0 != essl);
+ const Profile *profile = &s_profiles[profile_id];
+
+ Preprocessor preprocessor(_options.inputFilePath.c_str(), profile->lang != ShadingLang::ESSL);
for (size_t ii = 0; ii < _options.includeDirs.size(); ++ii)
{
@@ -967,7 +1129,6 @@ namespace bgfx
preprocessor.setDefaultDefine("BX_PLATFORM_WINDOWS");
preprocessor.setDefaultDefine("BX_PLATFORM_XBOXONE");
-// preprocessor.setDefaultDefine("BGFX_SHADER_LANGUAGE_ESSL");
preprocessor.setDefaultDefine("BGFX_SHADER_LANGUAGE_GLSL");
preprocessor.setDefaultDefine("BGFX_SHADER_LANGUAGE_HLSL");
preprocessor.setDefaultDefine("BGFX_SHADER_LANGUAGE_METAL");
@@ -979,32 +1140,58 @@ namespace bgfx
preprocessor.setDefaultDefine("BGFX_SHADER_TYPE_VERTEX");
char glslDefine[128];
- bx::snprintf(glslDefine, BX_COUNTOF(glslDefine)
- , "BGFX_SHADER_LANGUAGE_GLSL=%d"
- , essl ? 1 : glsl
- );
+ if (profile->lang == ShadingLang::GLSL
+ || profile->lang == ShadingLang::ESSL)
+ {
+ bx::snprintf(glslDefine, BX_COUNTOF(glslDefine)
+ , "BGFX_SHADER_LANGUAGE_GLSL=%d"
+ , profile->id
+ );
+ }
+
+ char hlslDefine[128];
+ if (profile->lang == ShadingLang::HLSL)
+ {
+ bx::snprintf(hlslDefine, BX_COUNTOF(hlslDefine)
+ , "BGFX_SHADER_LANGUAGE_HLSL=%d"
+ , profile->id);
+ }
const char* platform = _options.platform.c_str();
if (0 == bx::strCmpI(platform, "android") )
{
preprocessor.setDefine("BX_PLATFORM_ANDROID=1");
- preprocessor.setDefine("BGFX_SHADER_LANGUAGE_GLSL=1");
+ if (profile->lang == ShadingLang::SpirV)
+ {
+ preprocessor.setDefine("BGFX_SHADER_LANGUAGE_SPIRV=1");
+ }
+ else
+ {
+ preprocessor.setDefine(glslDefine);
+ }
}
else if (0 == bx::strCmpI(platform, "asm.js") )
{
preprocessor.setDefine("BX_PLATFORM_EMSCRIPTEN=1");
- preprocessor.setDefine("BGFX_SHADER_LANGUAGE_GLSL=1");
+ preprocessor.setDefine(glslDefine);
}
else if (0 == bx::strCmpI(platform, "ios") )
{
preprocessor.setDefine("BX_PLATFORM_IOS=1");
- preprocessor.setDefine("BGFX_SHADER_LANGUAGE_GLSL=1");
+ if (profile->lang == ShadingLang::Metal)
+ {
+ preprocessor.setDefine("BGFX_SHADER_LANGUAGE_METAL=1");
+ }
+ else
+ {
+ preprocessor.setDefine(glslDefine);
+ }
}
else if (0 == bx::strCmpI(platform, "linux") )
{
preprocessor.setDefine("BX_PLATFORM_LINUX=1");
- if (0 != spirv)
+ if (profile->lang == ShadingLang::SpirV)
{
preprocessor.setDefine("BGFX_SHADER_LANGUAGE_SPIRV=1");
}
@@ -1016,17 +1203,35 @@ namespace bgfx
else if (0 == bx::strCmpI(platform, "osx") )
{
preprocessor.setDefine("BX_PLATFORM_OSX=1");
- preprocessor.setDefine(glslDefine);
+ if (profile->lang != ShadingLang::Metal)
+ {
+ preprocessor.setDefine(glslDefine);
+ }
char temp[256];
- bx::snprintf(temp, sizeof(temp), "BGFX_SHADER_LANGUAGE_METAL=%d", metal);
+ bx::snprintf(
+ temp
+ , sizeof(temp)
+ , "BGFX_SHADER_LANGUAGE_METAL=%d"
+ , (profile->lang == ShadingLang::Metal) ? profile->id : 0
+ );
preprocessor.setDefine(temp);
}
else if (0 == bx::strCmpI(platform, "windows") )
{
preprocessor.setDefine("BX_PLATFORM_WINDOWS=1");
- char temp[256];
- bx::snprintf(temp, sizeof(temp), "BGFX_SHADER_LANGUAGE_HLSL=%d", hlsl);
- preprocessor.setDefine(temp);
+ if (profile->lang == ShadingLang::HLSL)
+ {
+ preprocessor.setDefine(hlslDefine);
+ }
+ else if (profile->lang == ShadingLang::GLSL
+ || profile->lang == ShadingLang::ESSL)
+ {
+ preprocessor.setDefine(glslDefine);
+ }
+ else if (profile->lang == ShadingLang::SpirV)
+ {
+ preprocessor.setDefine("BGFX_SHADER_LANGUAGE_SPIRV=1");
+ }
}
else if (0 == bx::strCmpI(platform, "orbis") )
{
@@ -1034,6 +1239,22 @@ namespace bgfx
preprocessor.setDefine("BGFX_SHADER_LANGUAGE_PSSL=1");
preprocessor.setDefine("lit=lit_reserved");
}
+ else
+ {
+ if (profile->lang == ShadingLang::HLSL)
+ {
+ preprocessor.setDefine(hlslDefine);
+ }
+ else if (profile->lang == ShadingLang::GLSL
+ || profile->lang == ShadingLang::ESSL)
+ {
+ preprocessor.setDefine(glslDefine);
+ }
+ else if (profile->lang == ShadingLang::SpirV)
+ {
+ preprocessor.setDefine("BGFX_SHADER_LANGUAGE_SPIRV=1");
+ }
+ }
preprocessor.setDefine("M_PI=3.1415926535897932384626433832795");
@@ -1052,7 +1273,7 @@ namespace bgfx
break;
default:
- fprintf(stderr, "Unknown type: %c?!", _options.shaderType);
+ bx::printf("Unknown type: %c?!", _options.shaderType);
return false;
}
@@ -1094,9 +1315,15 @@ namespace bgfx
|| 0 == bx::strCmp(typen, "noperspective", 13)
|| 0 == bx::strCmp(typen, "centroid", 8) )
{
- interpolation = typen;
+ if ('f' == _options.shaderType
+ || profile->lang == ShadingLang::GLSL
+ || profile->lang == ShadingLang::ESSL)
+ {
+ interpolation = typen;
+ usesInterpolationQualifiers = true;
+ }
+
typen = nextWord(parse);
- usesInterpolationQualifiers = true;
}
bx::StringView name = nextWord(parse);
@@ -1135,7 +1362,8 @@ namespace bgfx
var.m_name.assign(name.getPtr(), name.getTerm() );
var.m_semantics.assign(semantics.getPtr(), semantics.getTerm() );
- if (d3d == 9
+ if (profile->lang == ShadingLang::HLSL
+ && profile->id < 400
&& var.m_semantics == "BITANGENT")
{
var.m_semantics = "BINORMAL";
@@ -1159,6 +1387,7 @@ namespace bgfx
InOut shaderOutputs;
uint32_t inputHash = 0;
uint32_t outputHash = 0;
+ bx::ErrorAssert err;
char* data;
char* input;
@@ -1192,74 +1421,107 @@ namespace bgfx
input = const_cast<char*>(bx::strLTrimSpace(data).getPtr() );
while (input[0] == '$')
{
- const char* str = bx::strLTrimSpace(input+1).getPtr();
+ bx::StringView str = bx::strLTrimSpace(input+1);
bx::StringView eol = bx::strFindEol(str);
bx::StringView nl = bx::strFindNl(eol);
input = const_cast<char*>(nl.getPtr() );
if (0 == bx::strCmp(str, "input", 5) )
{
- str += 5;
+ str = bx::StringView(str.getPtr() + 5, str.getTerm() );
bx::StringView comment = bx::strFind(str, "//");
eol = !comment.isEmpty() && comment.getPtr() < eol.getPtr() ? comment.getPtr() : eol;
- inputHash = parseInOut(shaderInputs, str, eol.getPtr() );
+ inputHash = parseInOut(shaderInputs, bx::StringView(str.getPtr(), eol.getPtr() ) );
}
else if (0 == bx::strCmp(str, "output", 6) )
{
- str += 6;
+ str = bx::StringView(str.getPtr() + 6, str.getTerm() );
bx::StringView comment = bx::strFind(str, "//");
eol = !comment.isEmpty() && comment.getPtr() < eol.getPtr() ? comment.getPtr() : eol;
- outputHash = parseInOut(shaderOutputs, str, eol.getPtr() );
+ outputHash = parseInOut(shaderOutputs, bx::StringView(str.getPtr(), eol.getPtr() ) );
}
else if (0 == bx::strCmp(str, "raw", 3) )
{
raw = true;
- str += 3;
+ str = bx::StringView(str.getPtr() + 3, str.getTerm() );
}
input = const_cast<char*>(bx::strLTrimSpace(input).getPtr() );
}
}
- if (raw)
+ bool invalidShaderAttribute = false;
+ if ('v' == _options.shaderType)
+ {
+ for (InOut::const_iterator it = shaderInputs.begin(), itEnd = shaderInputs.end(); it != itEnd; ++it)
+ {
+ if (bx::findIdentifierMatch(it->c_str(), s_allowedVertexShaderInputs).isEmpty() )
+ {
+ invalidShaderAttribute = true;
+ bx::printf(
+ "Invalid vertex shader input attribute '%s'.\n"
+ "\n"
+ "Valid input attributes:\n"
+ " a_position, a_normal, a_tangent, a_bitangent, a_color0, a_color1, a_color2, a_color3, a_indices, a_weight,\n"
+ " a_texcoord0, a_texcoord1, a_texcoord2, a_texcoord3, a_texcoord4, a_texcoord5, a_texcoord6, a_texcoord7,\n"
+ " i_data0, i_data1, i_data2, i_data3, i_data4.\n"
+ "\n"
+ , it->c_str() );
+ break;
+ }
+ }
+ }
+
+ if (invalidShaderAttribute)
+ {
+ }
+ else if (raw)
{
if ('f' == _options.shaderType)
{
- bx::write(_writer, BGFX_CHUNK_MAGIC_FSH);
- bx::write(_writer, inputHash);
- bx::write(_writer, uint32_t(0) );
+ bx::write(_writer, BGFX_CHUNK_MAGIC_FSH, &err);
}
else if ('v' == _options.shaderType)
{
- bx::write(_writer, BGFX_CHUNK_MAGIC_VSH);
- bx::write(_writer, uint32_t(0) );
- bx::write(_writer, outputHash);
+ bx::write(_writer, BGFX_CHUNK_MAGIC_VSH, &err);
}
else
{
- bx::write(_writer, BGFX_CHUNK_MAGIC_CSH);
- bx::write(_writer, uint32_t(0) );
- bx::write(_writer, outputHash);
+ bx::write(_writer, BGFX_CHUNK_MAGIC_CSH, &err);
}
- if (0 != glsl)
+ bx::write(_writer, inputHash, &err);
+ bx::write(_writer, outputHash, &err);
+ }
+
+ if (raw)
+ {
+ if (profile->lang == ShadingLang::GLSL)
{
- bx::write(_writer, uint16_t(0) );
+ bx::write(_writer, uint16_t(0), &err);
uint32_t shaderSize = (uint32_t)bx::strLen(input);
- bx::write(_writer, shaderSize);
- bx::write(_writer, input, shaderSize);
- bx::write(_writer, uint8_t(0) );
+ bx::write(_writer, shaderSize, &err);
+ bx::write(_writer, input, shaderSize, &err);
+ bx::write(_writer, uint8_t(0), &err);
compiled = true;
}
- else if (0 != pssl)
+ else if (profile->lang == ShadingLang::Metal)
+ {
+ compiled = compileMetalShader(_options, BX_MAKEFOURCC('M', 'T', 'L', 0), input, _writer);
+ }
+ else if (profile->lang == ShadingLang::SpirV)
+ {
+ compiled = compileSPIRVShader(_options, profile->id, input, _writer);
+ }
+ else if (profile->lang == ShadingLang::PSSL)
{
compiled = compilePSSLShader(_options, 0, input, _writer);
}
else
{
- compiled = compileHLSLShader(_options, d3d, input, _writer);
+ compiled = compileHLSLShader(_options, profile->id, input, _writer);
}
}
else if ('c' == _options.shaderType) // Compute
@@ -1267,18 +1529,17 @@ namespace bgfx
bx::StringView entry = bx::strFind(input, "void main()");
if (entry.isEmpty() )
{
- fprintf(stderr, "Shader entry point 'void main()' is not found.\n");
+ bx::printf("Shader entry point 'void main()' is not found.\n");
}
else
{
- if (0 != glsl
- || 0 != essl
- || 0 != metal)
+ if (profile->lang == ShadingLang::GLSL
+ || profile->lang == ShadingLang::ESSL)
{
}
else
{
- if (0 != pssl)
+ if (profile->lang != ShadingLang::PSSL)
{
preprocessor.writef(getPsslPreamble() );
}
@@ -1354,7 +1615,12 @@ namespace bgfx
{
if (_options.preprocessOnly)
{
- bx::write(_writer, preprocessor.m_preprocessed.c_str(), (int32_t)preprocessor.m_preprocessed.size() );
+ bx::write(
+ _writer
+ , preprocessor.m_preprocessed.c_str()
+ , (int32_t)preprocessor.m_preprocessed.size()
+ , &err
+ );
return true;
}
@@ -1362,56 +1628,57 @@ namespace bgfx
{
std::string code;
- bx::write(_writer, BGFX_CHUNK_MAGIC_CSH);
- bx::write(_writer, uint32_t(0) );
- bx::write(_writer, outputHash);
+ bx::write(_writer, BGFX_CHUNK_MAGIC_CSH, &err);
+ bx::write(_writer, uint32_t(0), &err);
+ bx::write(_writer, outputHash, &err);
- if (0 != glsl
- || 0 != essl)
+ if (profile->lang == ShadingLang::GLSL
+ || profile->lang == ShadingLang::ESSL)
{
- if (essl)
+ if (profile->lang == ShadingLang::ESSL)
{
bx::stringPrintf(code, "#version 310 es\n");
}
else
{
- bx::stringPrintf(code, "#version %d\n", glsl == 0 ? 430 : glsl);
+ bx::stringPrintf(
+ code
+ , "#version %d\n"
+ , (profile->lang != ShadingLang::GLSL) ? 430 : profile->id
+ );
}
-#if 1
code += preprocessor.m_preprocessed;
- bx::write(_writer, uint16_t(0) );
+ bx::write(_writer, uint16_t(0), &err);
uint32_t shaderSize = (uint32_t)code.size();
- bx::write(_writer, shaderSize);
- bx::write(_writer, code.c_str(), shaderSize);
- bx::write(_writer, uint8_t(0) );
+ bx::write(_writer, shaderSize, &err);
+ bx::write(_writer, code.c_str(), shaderSize, &err);
+ bx::write(_writer, uint8_t(0), &err);
compiled = true;
-#else
- code += _comment;
- code += preprocessor.m_preprocessed;
-
- compiled = compileGLSLShader(cmdLine, essl, code, writer);
-#endif // 0
}
else
{
code += _comment;
code += preprocessor.m_preprocessed;
- if (0 != spirv)
+ if (profile->lang == ShadingLang::Metal)
{
- compiled = compileSPIRVShader(_options, 0, code, _writer);
+ compiled = compileMetalShader(_options, BX_MAKEFOURCC('M', 'T', 'L', 0), code, _writer);
}
- else if (0 != pssl)
+ else if (profile->lang == ShadingLang::SpirV)
+ {
+ compiled = compileSPIRVShader(_options, profile->id, code, _writer);
+ }
+ else if (profile->lang == ShadingLang::PSSL)
{
compiled = compilePSSLShader(_options, 0, code, _writer);
}
else
{
- compiled = compileHLSLShader(_options, d3d, code, _writer);
+ compiled = compileHLSLShader(_options, profile->id, code, _writer);
}
}
}
@@ -1439,15 +1706,14 @@ namespace bgfx
bx::StringView entry = bx::strFind(shader, "void main()");
if (entry.isEmpty() )
{
- fprintf(stderr, "Shader entry point 'void main()' is not found.\n");
+ bx::printf("Shader entry point 'void main()' is not found.\n");
}
else
{
- if (0 != glsl
- || 0 != essl
- || 0 != metal)
+ if (profile->lang == ShadingLang::GLSL
+ || profile->lang == ShadingLang::ESSL)
{
- if (0 == essl)
+ if (profile->lang != ShadingLang::ESSL)
{
// bgfx shadow2D/Proj behave like EXT_shadow_samplers
// not as GLSL language 1.2 specs shadow2D/Proj.
@@ -1457,6 +1723,32 @@ namespace bgfx
);
}
+ // gl_FragColor and gl_FragData are deprecated for essl > 300
+ if (profile->lang == ShadingLang::ESSL
+ && profile->id >= 300)
+ {
+ const bool hasFragColor = !bx::strFind(input, "gl_FragColor").isEmpty();
+ bool hasFragData[8] = {};
+ uint32_t numFragData = 0;
+ for (uint32_t ii = 0; ii < BX_COUNTOF(hasFragData); ++ii)
+ {
+ char temp[32];
+ bx::snprintf(temp, BX_COUNTOF(temp), "gl_FragData[%d]", ii);
+ hasFragData[ii] = !bx::strFind(input, temp).isEmpty();
+ numFragData += hasFragData[ii];
+ }
+ if (hasFragColor)
+ {
+ preprocessor.writef("#define gl_FragColor bgfx_FragColor\n");
+ preprocessor.writef("out mediump vec4 bgfx_FragColor;\n");
+ }
+ else if (numFragData)
+ {
+ preprocessor.writef("#define gl_FragData bgfx_FragData\n");
+ preprocessor.writef("out mediump vec4 bgfx_FragData[gl_MaxDrawBuffers];\n");
+ }
+ }
+
for (InOut::const_iterator it = shaderInputs.begin(), itEnd = shaderInputs.end(); it != itEnd; ++it)
{
VaryingMap::const_iterator varyingIt = varyingMap.find(*it);
@@ -1468,21 +1760,23 @@ namespace bgfx
if (0 == bx::strCmp(name, "a_", 2)
|| 0 == bx::strCmp(name, "i_", 2) )
{
- preprocessor.writef("attribute %s %s %s %s;\n"
- , var.m_precision.c_str()
- , var.m_interpolation.c_str()
- , var.m_type.c_str()
- , name
- );
+ preprocessor.writef(
+ "attribute %s %s %s %s;\n"
+ , var.m_precision.c_str()
+ , var.m_interpolation.c_str()
+ , var.m_type.c_str()
+ , name
+ );
}
else
{
- preprocessor.writef("%s varying %s %s %s;\n"
- , var.m_interpolation.c_str()
- , var.m_precision.c_str()
- , var.m_type.c_str()
- , name
- );
+ preprocessor.writef(
+ "%s varying %s %s %s;\n"
+ , var.m_interpolation.c_str()
+ , var.m_precision.c_str()
+ , var.m_type.c_str()
+ , name
+ );
}
}
}
@@ -1503,7 +1797,7 @@ namespace bgfx
}
else
{
- if (0 != pssl)
+ if (profile->lang == ShadingLang::PSSL)
{
preprocessor.writef(getPsslPreamble() );
}
@@ -1526,8 +1820,8 @@ namespace bgfx
"#define mat4 float4x4\n"
);
- if (hlsl != 0
- && hlsl < 4)
+ if (profile->lang == ShadingLang::HLSL
+ && profile->id < 400)
{
preprocessor.writef(
"#define centroid\n"
@@ -1548,7 +1842,7 @@ namespace bgfx
}
const bool hasFragColor = !bx::strFind(input, "gl_FragColor").isEmpty();
- const bool hasFragCoord = !bx::strFind(input, "gl_FragCoord").isEmpty() || hlsl > 3 || hlsl == 2;
+ const bool hasFragCoord = !bx::strFind(input, "gl_FragCoord").isEmpty() || profile->id >= 400;
const bool hasFragDepth = !bx::strFind(input, "gl_FragDepth").isEmpty();
const bool hasFrontFacing = !bx::strFind(input, "gl_FrontFacing").isEmpty();
const bool hasPrimitiveId = !bx::strFind(input, "gl_PrimitiveID").isEmpty();
@@ -1572,10 +1866,10 @@ namespace bgfx
// If it has gl_FragData or gl_FragColor, color target at
// index 0 exists, otherwise shader is not modifying color
// targets.
- hasFragData[0] |= hasFragColor || d3d < 11;
+ hasFragData[0] |= hasFragColor || profile->id < 400;
if (!insert.isEmpty()
- && d3d < 11
+ && profile->id < 400
&& !hasFragColor)
{
insert = strInsert(const_cast<char*>(insert.getPtr()+1), "\ngl_FragColor = bgfx_VoidFrag;\n");
@@ -1609,7 +1903,7 @@ namespace bgfx
}
}
- const uint32_t maxRT = d3d > 9 ? BX_COUNTOF(hasFragData) : 4;
+ const uint32_t maxRT = profile->id >= 400 ? BX_COUNTOF(hasFragData) : 4;
for (uint32_t ii = 0; ii < BX_COUNTOF(hasFragData); ++ii)
{
@@ -1636,7 +1930,7 @@ namespace bgfx
if (hasFrontFacing)
{
- if (hlsl == 3)
+ if (profile->id < 400)
{
preprocessor.writef(
" \\\n\t%sfloat __vface : VFACE"
@@ -1654,7 +1948,7 @@ namespace bgfx
if (hasPrimitiveId)
{
- if (hlsl > 3)
+ if (profile->id >= 400)
{
preprocessor.writef(
" \\\n\t%suint gl_PrimitiveID : SV_PrimitiveID"
@@ -1663,7 +1957,7 @@ namespace bgfx
}
else
{
- fprintf(stderr, "gl_PrimitiveID builtin is not supported by this D3D9 HLSL.\n");
+ bx::printf("gl_PrimitiveID builtin is not supported by D3D9 HLSL.\n");
return false;
}
}
@@ -1674,7 +1968,7 @@ namespace bgfx
if (hasFrontFacing)
{
- if (hlsl == 3)
+ if (profile->id < 400)
{
preprocessor.writef(
"#define gl_FrontFacing (__vface >= 0.0)\n"
@@ -1684,8 +1978,10 @@ namespace bgfx
}
else if ('v' == _options.shaderType)
{
- const bool hasVertexId = !bx::strFind(input, "gl_VertexID").isEmpty();
- const bool hasInstanceId = !bx::strFind(input, "gl_InstanceID").isEmpty();
+ const bool hasVertexId = !bx::strFind(input, "gl_VertexID").isEmpty();
+ const bool hasInstanceId = !bx::strFind(input, "gl_InstanceID").isEmpty();
+ const bool hasViewportId = !bx::strFind(input, "gl_ViewportIndex").isEmpty();
+ const bool hasLayerId = !bx::strFind(input, "gl_Layer").isEmpty();
bx::StringView brace = bx::strFind(bx::StringView(entry.getPtr(), shader.getTerm() ), "{");
if (!brace.isEmpty() )
@@ -1703,6 +1999,7 @@ namespace bgfx
"\tvec4 gl_Position : SV_POSITION;\n"
"#define gl_Position _varying_.gl_Position\n"
);
+
for (InOut::const_iterator it = shaderOutputs.begin(), itEnd = shaderOutputs.end(); it != itEnd; ++it)
{
VaryingMap::const_iterator varyingIt = varyingMap.find(*it);
@@ -1723,6 +2020,39 @@ namespace bgfx
);
}
}
+
+ if (hasViewportId)
+ {
+ if (profile->id >= 400)
+ {
+ preprocessor.writef(
+ "\tuint gl_ViewportIndex : SV_ViewportArrayIndex;\n"
+ "#define gl_ViewportIndex _varying_.gl_ViewportIndex\n"
+ );
+ }
+ else
+ {
+ bx::printf("gl_ViewportIndex builtin is not supported by D3D9 HLSL.\n");
+ return false;
+ }
+ }
+
+ if (hasLayerId)
+ {
+ if (profile->id >= 400)
+ {
+ preprocessor.writef(
+ "\tuint gl_Layer : SV_RenderTargetArrayIndex;\n"
+ "#define gl_Layer _varying_.gl_Layer\n"
+ );
+ }
+ else
+ {
+ bx::printf("gl_Layer builtin is not supported by D3D9 HLSL.\n");
+ return false;
+ }
+ }
+
preprocessor.writef(
"};\n"
);
@@ -1748,7 +2078,7 @@ namespace bgfx
if (hasVertexId)
{
- if (d3d > 9)
+ if (profile->id >= 400)
{
preprocessor.writef(
" \\\n\t%suint gl_VertexID : SV_VertexID"
@@ -1757,14 +2087,14 @@ namespace bgfx
}
else
{
- fprintf(stderr, "gl_VertexID builtin is not supported by this D3D9 HLSL.\n");
+ bx::printf("gl_VertexID builtin is not supported by D3D9 HLSL.\n");
return false;
}
}
if (hasInstanceId)
{
- if (d3d > 9)
+ if (profile->id >= 400)
{
preprocessor.writef(
" \\\n\t%suint gl_InstanceID : SV_InstanceID"
@@ -1773,7 +2103,7 @@ namespace bgfx
}
else
{
- fprintf(stderr, "gl_InstanceID builtin is not supported by this D3D9 HLSL.\n");
+ bx::printf("gl_InstanceID builtin is not supported by D3D9 HLSL.\n");
return false;
}
}
@@ -1804,21 +2134,6 @@ namespace bgfx
"\t} \\\n"
);
- if (hlsl != 0
- && hlsl <= 3)
- {
-// preprocessor.writef(
-// "\tgl_Position.xy += u_viewTexel.xy * gl_Position.w; \\\n"
-// );
- }
-
- if (0 != spirv)
- {
- preprocessor.writef(
- "\tgl_Position.y = -gl_Position.y; \\\n"
- );
- }
-
preprocessor.writef(
"\treturn _varying_"
);
@@ -1827,23 +2142,14 @@ namespace bgfx
if (preprocessor.run(input) )
{
- //BX_TRACE("Input file: %s", filePath);
- //BX_TRACE("Output file: %s", outFilePath);
-
if (_options.preprocessOnly)
{
- if (0 != glsl)
- {
- if (essl != 0)
- {
- writef(_writer
- , "#ifdef GL_ES\n"
- "precision highp float;\n"
- "#endif // GL_ES\n\n"
- );
- }
- }
- bx::write(_writer, preprocessor.m_preprocessed.c_str(), (int32_t)preprocessor.m_preprocessed.size() );
+ bx::write(
+ _writer
+ , preprocessor.m_preprocessed.c_str()
+ , (int32_t)preprocessor.m_preprocessed.size()
+ , &err
+ );
return true;
}
@@ -1853,63 +2159,81 @@ namespace bgfx
if ('f' == _options.shaderType)
{
- bx::write(_writer, BGFX_CHUNK_MAGIC_FSH);
- bx::write(_writer, inputHash);
- bx::write(_writer, uint32_t(0) );
+ bx::write(_writer, BGFX_CHUNK_MAGIC_FSH, &err);
+ bx::write(_writer, inputHash, &err);
+ bx::write(_writer, uint32_t(0), &err);
}
else if ('v' == _options.shaderType)
{
- bx::write(_writer, BGFX_CHUNK_MAGIC_VSH);
- bx::write(_writer, uint32_t(0) );
- bx::write(_writer, outputHash);
+ bx::write(_writer, BGFX_CHUNK_MAGIC_VSH, &err);
+ bx::write(_writer, uint32_t(0), &err);
+ bx::write(_writer, outputHash, &err);
}
else
{
- bx::write(_writer, BGFX_CHUNK_MAGIC_CSH);
- bx::write(_writer, uint32_t(0) );
- bx::write(_writer, outputHash);
+ bx::write(_writer, BGFX_CHUNK_MAGIC_CSH, &err);
+ bx::write(_writer, uint32_t(0), &err);
+ bx::write(_writer, outputHash, &err);
}
- if (0 != glsl
- || 0 != essl
- || 0 != metal)
+ if (profile->lang == ShadingLang::GLSL
+ || profile->lang == ShadingLang::ESSL)
{
- if (!bx::strFind(preprocessor.m_preprocessed.c_str(), "layout(std430").isEmpty() )
+ const bx::StringView preprocessedInput(preprocessor.m_preprocessed.c_str() );
+ uint32_t glsl_profile = profile->id;
+
+ const bool usesBitsToEncoders = true
+ && _options.shaderType == 'f'
+ && !bx::findIdentifierMatch(preprocessedInput, s_bitsToEncoders).isEmpty()
+ ;
+
+ if (!bx::strFind(preprocessedInput, "layout(std430").isEmpty()
+ || !bx::strFind(preprocessedInput, "image2D").isEmpty()
+ || usesBitsToEncoders)
{
- glsl = 430;
+ if (profile->lang == ShadingLang::GLSL
+ && glsl_profile < 430)
+ {
+ glsl_profile = 430;
+ }
+ else if (glsl_profile < 310)
+ {
+ glsl_profile = 310;
+ }
}
- if (glsl < 400)
+ if (glsl_profile < 400)
{
const bool usesTextureLod = false
|| !bx::findIdentifierMatch(input, s_ARB_shader_texture_lod).isEmpty()
|| !bx::findIdentifierMatch(input, s_EXT_shader_texture_lod).isEmpty()
;
- const bool usesInstanceID = !bx::findIdentifierMatch(input, "gl_InstanceID").isEmpty();
- const bool usesGpuShader4 = !bx::findIdentifierMatch(input, s_EXT_gpu_shader4).isEmpty();
- const bool usesGpuShader5 = !bx::findIdentifierMatch(input, s_ARB_gpu_shader5).isEmpty();
- const bool usesTexelFetch = !bx::findIdentifierMatch(input, s_texelFetch).isEmpty();
- const bool usesTextureMS = !bx::findIdentifierMatch(input, s_ARB_texture_multisample).isEmpty();
- const bool usesTextureArray = !bx::findIdentifierMatch(input, s_textureArray).isEmpty();
- const bool usesPacking = !bx::findIdentifierMatch(input, s_ARB_shading_language_packing).isEmpty();
-
- if (0 == essl)
+
+ const bool usesGpuShader5 = true
+ && _options.shaderType != 'f'
+ && !bx::findIdentifierMatch(input, s_ARB_gpu_shader5).isEmpty()
+ ;
+
+ const bool usesInstanceID = !bx::findIdentifierMatch(input, "gl_InstanceID").isEmpty();
+ const bool usesGpuShader4 = !bx::findIdentifierMatch(input, s_EXT_gpu_shader4).isEmpty();
+ const bool usesTexelFetch = !bx::findIdentifierMatch(input, s_texelFetch).isEmpty();
+ const bool usesTextureMS = !bx::findIdentifierMatch(input, s_ARB_texture_multisample).isEmpty();
+ const bool usesTextureArray = !bx::findIdentifierMatch(input, s_textureArray).isEmpty();
+ const bool usesPacking = !bx::findIdentifierMatch(input, s_ARB_shading_language_packing).isEmpty();
+ const bool usesViewportLayerArray = !bx::findIdentifierMatch(input, s_ARB_shader_viewport_layer_array).isEmpty();
+ const bool usesUnsignedVecs = !bx::findIdentifierMatch(preprocessedInput, s_unsignedVecs).isEmpty();
+
+ if (profile->lang != ShadingLang::ESSL)
{
- const bool need130 = 120 == glsl && (false
+ const bool need130 = (120 == glsl_profile && (false
|| !bx::findIdentifierMatch(input, s_130).isEmpty()
|| usesInterpolationQualifiers
|| usesTexelFetch
- );
+ || usesUnsignedVecs
+ ) );
- if (0 != metal)
- {
- bx::stringPrintf(code, "#version 120\n");
- }
- else
- {
- bx::stringPrintf(code, "#version %s\n", need130 ? "130" : _options.profile.c_str());
- glsl = 130;
- }
+ bx::stringPrintf(code, "#version %d\n", need130 ? 130 : glsl_profile);
+ glsl_profile = 130;
if (need130)
{
@@ -1925,6 +2249,13 @@ namespace bgfx
);
}
+ if (usesViewportLayerArray)
+ {
+ bx::stringPrintf(code
+ , "#extension GL_ARB_shader_viewport_layer_array : enable\n"
+ );
+ }
+
if (usesGpuShader4)
{
bx::stringPrintf(code
@@ -1981,7 +2312,7 @@ namespace bgfx
);
}
- if (130 > glsl)
+ if (130 > glsl_profile)
{
bx::stringPrintf(code,
"#define ivec2 vec2\n"
@@ -2009,7 +2340,7 @@ namespace bgfx
);
}
- if (need130)
+ if (need130 || (glsl_profile >= 130))
{
bx::stringPrintf(code
, "#define bgfxShadow2D(_sampler, _coord) vec4_splat(texture(_sampler, _coord))\n"
@@ -2020,62 +2351,31 @@ namespace bgfx
{
bx::stringPrintf(code
, "#define bgfxShadow2D shadow2D\n"
- "#define bgfxShadow2DProj shadow2DProj\n"
+ "#define bgfxShadow2DProj shader2DProj\n"
);
}
}
else
{
- if (usesInterpolationQualifiers)
+ if ((glsl_profile < 300) && usesUnsignedVecs)
+ {
+ glsl_profile = 300;
+ }
+
+ if (glsl_profile > 100)
{
- bx::stringPrintf(code, "#version 300 es\n");
+ bx::stringPrintf(code, "#version %d es\n", glsl_profile);
bx::stringPrintf(code, "#define attribute in\n");
bx::stringPrintf(code, "#define varying %s\n"
, 'f' == _options.shaderType ? "in" : "out"
);
+ bx::stringPrintf(code, "precision highp float;\n");
+ bx::stringPrintf(code, "precision highp int;\n");
}
- else if (essl == 2)
+
+ if (glsl_profile >= 300)
{
- code +=
- "mat2 transpose(mat2 _mtx)\n"
- "{\n"
- " vec2 v0 = _mtx[0];\n"
- " vec2 v1 = _mtx[1];\n"
- "\n"
- " return mat2(\n"
- " vec2(v0.x, v1.x)\n"
- " , vec2(v0.y, v1.y)\n"
- " );\n"
- "}\n"
- "\n"
- "mat3 transpose(mat3 _mtx)\n"
- "{\n"
- " vec3 v0 = _mtx[0];\n"
- " vec3 v1 = _mtx[1];\n"
- " vec3 v2 = _mtx[2];\n"
- "\n"
- " return mat3(\n"
- " vec3(v0.x, v1.x, v2.x)\n"
- " , vec3(v0.y, v1.y, v2.y)\n"
- " , vec3(v0.z, v1.z, v2.z)\n"
- " );\n"
- "}\n"
- "\n"
- "mat4 transpose(mat4 _mtx)\n"
- "{\n"
- " vec4 v0 = _mtx[0];\n"
- " vec4 v1 = _mtx[1];\n"
- " vec4 v2 = _mtx[2];\n"
- " vec4 v3 = _mtx[3];\n"
- "\n"
- " return mat4(\n"
- " vec4(v0.x, v1.x, v2.x, v3.x)\n"
- " , vec4(v0.y, v1.y, v2.y, v3.y)\n"
- " , vec4(v0.z, v1.z, v2.z, v3.z)\n"
- " , vec4(v0.w, v1.w, v2.w, v3.w)\n"
- " );\n"
- "}\n"
- ;
+ bx::stringPrintf(code, "precision highp sampler2DArray;\n");
}
// Pretend that all extensions are available.
@@ -2103,7 +2403,7 @@ namespace bgfx
bx::stringPrintf(code, "#extension GL_OES_texture_3D : enable\n");
}
- if (!bx::findIdentifierMatch(input, s_EXT_shadow_samplers).isEmpty() )
+ if ((glsl_profile < 300) && (!bx::findIdentifierMatch(input, s_EXT_shadow_samplers).isEmpty()))
{
bx::stringPrintf(code
, "#extension GL_EXT_shadow_samplers : enable\n"
@@ -2111,6 +2411,13 @@ namespace bgfx
"#define shadow2DProj shadow2DProjEXT\n"
);
}
+ else
+ {
+ bx::stringPrintf(code
+ , "#define shadow2D(_sampler, _coord) texture(_sampler, _coord)\n"
+ "#define shadow2DProj(_sampler, _coord) textureProj(_sampler, _coord)\n"
+ );
+ }
if (usesGpuShader5)
{
@@ -2126,7 +2433,7 @@ namespace bgfx
);
}
- if (!bx::findIdentifierMatch(input, "gl_FragDepth").isEmpty() )
+ if ((glsl_profile < 300) && (!bx::findIdentifierMatch(input, "gl_FragDepth").isEmpty() ))
{
bx::stringPrintf(code
, "#extension GL_EXT_frag_depth : enable\n"
@@ -2141,25 +2448,76 @@ namespace bgfx
);
}
- bx::stringPrintf(code
- , "#define ivec2 vec2\n"
- "#define ivec3 vec3\n"
- "#define ivec4 vec4\n"
- );
+ if (glsl_profile == 100)
+ {
+ code +=
+ "mat2 transpose(mat2 _mtx)\n"
+ "{\n"
+ " vec2 v0 = _mtx[0];\n"
+ " vec2 v1 = _mtx[1];\n"
+ "\n"
+ " return mat2(\n"
+ " vec2(v0.x, v1.x)\n"
+ " , vec2(v0.y, v1.y)\n"
+ " );\n"
+ "}\n"
+ "\n"
+ "mat3 transpose(mat3 _mtx)\n"
+ "{\n"
+ " vec3 v0 = _mtx[0];\n"
+ " vec3 v1 = _mtx[1];\n"
+ " vec3 v2 = _mtx[2];\n"
+ "\n"
+ " return mat3(\n"
+ " vec3(v0.x, v1.x, v2.x)\n"
+ " , vec3(v0.y, v1.y, v2.y)\n"
+ " , vec3(v0.z, v1.z, v2.z)\n"
+ " );\n"
+ "}\n"
+ "\n"
+ "mat4 transpose(mat4 _mtx)\n"
+ "{\n"
+ " vec4 v0 = _mtx[0];\n"
+ " vec4 v1 = _mtx[1];\n"
+ " vec4 v2 = _mtx[2];\n"
+ " vec4 v3 = _mtx[3];\n"
+ "\n"
+ " return mat4(\n"
+ " vec4(v0.x, v1.x, v2.x, v3.x)\n"
+ " , vec4(v0.y, v1.y, v2.y, v3.y)\n"
+ " , vec4(v0.z, v1.z, v2.z, v3.z)\n"
+ " , vec4(v0.w, v1.w, v2.w, v3.w)\n"
+ " );\n"
+ "}\n"
+ ;
+ }
}
}
else
{
- bx::stringPrintf(code, "#version %d\n", glsl);
+ bx::stringPrintf(code, "#version %d\n", glsl_profile);
+
+ if (120 < glsl_profile)
+ {
+ if (!bx::findIdentifierMatch(input, "gl_FragColor").isEmpty() )
+ {
+ bx::stringPrintf(code
+ , "out vec4 bgfx_FragColor;\n"
+ "#define gl_FragColor bgfx_FragColor\n"
+ );
+ }
+ }
bx::stringPrintf(code
- , "#define texture2DLod textureLod\n"
- "#define texture2DGrad textureGrad\n"
- "#define texture2DProjLod textureProjLod\n"
- "#define texture2DProjGrad textureProjGrad\n"
- "#define textureCubeLod textureLod\n"
- "#define textureCubeGrad textureGrad\n"
- "#define texture3D texture\n"
+ , "#define texture2D texture\n"
+ "#define texture2DLod textureLod\n"
+ "#define texture2DGrad textureGrad\n"
+ "#define texture2DProjLod textureProjLod\n"
+ "#define texture2DProjGrad textureProjGrad\n"
+ "#define textureCubeLod textureLod\n"
+ "#define textureCubeGrad textureGrad\n"
+ "#define texture3D texture\n"
+ "#define texture2DLodOffset textureLodOffset\n"
);
bx::stringPrintf(code, "#define attribute in\n");
@@ -2173,16 +2531,17 @@ namespace bgfx
);
}
- if (glsl > 400)
+ if ( (profile->lang == ShadingLang::GLSL && glsl_profile > 400)
+ || (profile->lang == ShadingLang::ESSL && glsl_profile > 300) )
{
code += preprocessor.m_preprocessed;
- bx::write(_writer, uint16_t(0) );
+ bx::write(_writer, uint16_t(0), &err);
uint32_t shaderSize = (uint32_t)code.size();
- bx::write(_writer, shaderSize);
- bx::write(_writer, code.c_str(), shaderSize);
- bx::write(_writer, uint8_t(0) );
+ bx::write(_writer, shaderSize, &err);
+ bx::write(_writer, code.c_str(), shaderSize, &err);
+ bx::write(_writer, uint8_t(0), &err);
compiled = true;
}
@@ -2191,7 +2550,12 @@ namespace bgfx
code += _comment;
code += preprocessor.m_preprocessed;
- compiled = compileGLSLShader(_options, metal ? BX_MAKEFOURCC('M', 'T', 'L', 0) : essl, code, _writer);
+ if (profile->lang == ShadingLang::ESSL)
+ {
+ glsl_profile |= 0x80000000;
+ }
+
+ compiled = compileGLSLShader(_options, glsl_profile, code, _writer);
}
}
else
@@ -2199,17 +2563,21 @@ namespace bgfx
code += _comment;
code += preprocessor.m_preprocessed;
- if (0 != spirv)
+ if (profile->lang == ShadingLang::Metal)
+ {
+ compiled = compileMetalShader(_options, BX_MAKEFOURCC('M', 'T', 'L', 0), code, _writer);
+ }
+ else if (profile->lang == ShadingLang::SpirV)
{
- compiled = compileSPIRVShader(_options, 0, code, _writer);
+ compiled = compileSPIRVShader(_options, profile->id, code, _writer);
}
- else if (0 != pssl)
+ else if (profile->lang == ShadingLang::PSSL)
{
compiled = compilePSSLShader(_options, 0, code, _writer);
}
else
{
- compiled = compileHLSLShader(_options, d3d, code, _writer);
+ compiled = compileHLSLShader(_options, profile->id, code, _writer);
}
}
}
@@ -2242,8 +2610,8 @@ namespace bgfx
if (cmdLine.hasArg('v', "version") )
{
- fprintf(stderr
- , "shaderc, bgfx shader compiler tool, version %d.%d.%d.\n"
+ bx::printf(
+ "shaderc, bgfx shader compiler tool, version %d.%d.%d.\n"
, BGFX_SHADERC_VERSION_MAJOR
, BGFX_SHADERC_VERSION_MINOR
, BGFX_API_VERSION
@@ -2266,10 +2634,11 @@ namespace bgfx
return bx::kExitFailure;
}
+ bool consoleOut = cmdLine.hasArg("stdout");
const char* outFilePath = cmdLine.findOption('o');
- if (NULL == outFilePath)
+ if (NULL == outFilePath && !consoleOut)
{
- help("Output file name must be specified.");
+ help("Output file name must be specified or use \"--stdout\" to output to stdout.");
return bx::kExitFailure;
}
@@ -2282,7 +2651,7 @@ namespace bgfx
Options options;
options.inputFilePath = filePath;
- options.outputFilePath = outFilePath;
+ options.outputFilePath = consoleOut ? "" : outFilePath;
options.shaderType = bx::toLower(type[0]);
options.disasm = cmdLine.hasArg('\0', "disasm");
@@ -2403,7 +2772,7 @@ namespace bgfx
bx::FileReader reader;
if (!bx::open(&reader, filePath) )
{
- fprintf(stderr, "Unable to open file '%s'.\n", filePath);
+ bx::printf("Unable to open file '%s'.\n", filePath);
}
else
{
@@ -2423,14 +2792,14 @@ namespace bgfx
}
else
{
- fprintf(stderr, "ERROR: Failed to parse varying def file: \"%s\" No input/output semantics will be generated in the code!\n", varyingdef);
+ bx::printf("ERROR: Failed to parse varying def file: \"%s\" No input/output semantics will be generated in the code!\n", varyingdef);
}
}
const size_t padding = 16384;
uint32_t size = (uint32_t)bx::getSize(&reader);
char* data = new char[size+padding+1];
- size = (uint32_t)bx::read(&reader, data, size);
+ size = (uint32_t)bx::read(&reader, data, size, bx::ErrorAssert{});
if (data[0] == '\xef'
&& data[1] == '\xbb'
@@ -2448,25 +2817,31 @@ namespace bgfx
bx::FileWriter* writer = NULL;
- if (!bin2c.isEmpty() )
+ if (!consoleOut)
{
- writer = new Bin2cWriter(bin2c);
- }
- else
- {
- writer = new bx::FileWriter;
- }
+ if (!bin2c.isEmpty())
+ {
+ writer = new Bin2cWriter(bin2c);
+ }
+ else
+ {
+ writer = new bx::FileWriter;
+ }
- if (!bx::open(writer, outFilePath) )
- {
- fprintf(stderr, "Unable to open output file '%s'.", outFilePath);
- return bx::kExitFailure;
+ if (!bx::open(writer, outFilePath))
+ {
+ bx::printf("Unable to open output file '%s'.\n", outFilePath);
+ return bx::kExitFailure;
+ }
}
- compiled = compileShader(varying, commandLineComment.c_str(), data, size, options, writer);
+ compiled = compileShader(varying, commandLineComment.c_str(), data, size, options, consoleOut ? bx::getStdOut() : writer);
- bx::close(writer);
- delete writer;
+ if (!consoleOut)
+ {
+ bx::close(writer);
+ delete writer;
+ }
}
if (compiled)
@@ -2474,9 +2849,9 @@ namespace bgfx
return bx::kExitSuccess;
}
- remove(outFilePath);
+ bx::remove(outFilePath);
- fprintf(stderr, "Failed to build shader.\n");
+ bx::printf("Failed to build shader.\n");
return bx::kExitFailure;
}
diff --git a/3rdparty/bgfx/tools/shaderc/shaderc.h b/3rdparty/bgfx/tools/shaderc/shaderc.h
index 1a2c78f12c8..0da24d24bde 100644
--- a/3rdparty/bgfx/tools/shaderc/shaderc.h
+++ b/3rdparty/bgfx/tools/shaderc/shaderc.h
@@ -1,6 +1,6 @@
/*
- * Copyright 2011-2018 Branimir Karadzic. All rights reserved.
- * License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause
+ * Copyright 2011-2022 Branimir Karadzic. All rights reserved.
+ * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE
*/
#ifndef SHADERC_H_HEADER_GUARD
@@ -11,35 +11,6 @@ namespace bgfx
extern bool g_verbose;
}
-#define _BX_TRACE(_format, ...) \
- BX_MACRO_BLOCK_BEGIN \
- if (bgfx::g_verbose) \
- { \
- fprintf(stdout, BX_FILE_LINE_LITERAL "" _format "\n", ##__VA_ARGS__); \
- } \
- BX_MACRO_BLOCK_END
-
-#define _BX_WARN(_condition, _format, ...) \
- BX_MACRO_BLOCK_BEGIN \
- if (!(_condition) ) \
- { \
- BX_TRACE("WARN " _format, ##__VA_ARGS__); \
- } \
- BX_MACRO_BLOCK_END
-
-#define _BX_CHECK(_condition, _format, ...) \
- BX_MACRO_BLOCK_BEGIN \
- if (!(_condition) ) \
- { \
- BX_TRACE("CHECK " _format, ##__VA_ARGS__); \
- bx::debugBreak(); \
- } \
- BX_MACRO_BLOCK_END
-
-#define BX_TRACE _BX_TRACE
-#define BX_WARN _BX_WARN
-#define BX_CHECK _BX_CHECK
-
#ifndef SHADERC_CONFIG_HLSL
# define SHADERC_CONFIG_HLSL BX_PLATFORM_WINDOWS
#endif // SHADERC_CONFIG_HLSL
@@ -60,66 +31,49 @@ namespace bgfx
#include <bx/string.h>
#include <bx/hash.h>
#include <bx/file.h>
-#include "../../src/vertexdecl.h"
+#include "../../src/vertexlayout.h"
namespace bgfx
{
extern bool g_verbose;
- class LineReader : public bx::ReaderI
- {
- public:
- LineReader(const char* _str)
- : m_str(_str)
- , m_pos(0)
- , m_size(bx::strLen(_str) )
- {
- }
-
- virtual int32_t read(void* _data, int32_t _size, bx::Error* _err) override
- {
- if (m_str[m_pos] == '\0'
- || m_pos == m_size)
- {
- BX_ERROR_SET(_err, BX_ERROR_READERWRITER_EOF, "LineReader: EOF.");
- return 0;
- }
-
- uint32_t pos = m_pos;
- const char* str = &m_str[pos];
- const char* nl = bx::strFindNl(str).getPtr();
- pos += (uint32_t)(nl - str);
-
- const char* eol = &m_str[pos];
-
- uint32_t size = bx::uint32_min(uint32_t(eol - str), _size);
-
- bx::memCopy(_data, str, size);
- m_pos += size;
-
- return size;
- }
-
- const char* m_str;
- uint32_t m_pos;
- uint32_t m_size;
- };
-
bx::StringView nextWord(bx::StringView& _parse);
-#define BGFX_UNIFORM_FRAGMENTBIT UINT8_C(0x10)
-#define BGFX_UNIFORM_SAMPLERBIT UINT8_C(0x20)
+ constexpr uint8_t kUniformFragmentBit = 0x10;
+ constexpr uint8_t kUniformSamplerBit = 0x20;
+ constexpr uint8_t kUniformReadOnlyBit = 0x40;
+ constexpr uint8_t kUniformCompareBit = 0x80;
+ constexpr uint8_t kUniformMask = 0
+ | kUniformFragmentBit
+ | kUniformSamplerBit
+ | kUniformReadOnlyBit
+ | kUniformCompareBit
+ ;
const char* getUniformTypeName(UniformType::Enum _enum);
UniformType::Enum nameToUniformTypeEnum(const char* _name);
struct Uniform
{
+ Uniform()
+ : type(UniformType::Count)
+ , num(0)
+ , regIndex(0)
+ , regCount(0)
+ , texComponent(0)
+ , texDimension(0)
+ , texFormat(0)
+ {
+ }
+
std::string name;
UniformType::Enum type;
uint8_t num;
uint16_t regIndex;
uint16_t regCount;
+ uint8_t texComponent;
+ uint8_t texDimension;
+ uint16_t texFormat;
};
struct Options
@@ -167,6 +121,7 @@ namespace bgfx
bool compileGLSLShader(const Options& _options, uint32_t _version, const std::string& _code, bx::WriterI* _writer);
bool compileHLSLShader(const Options& _options, uint32_t _version, const std::string& _code, bx::WriterI* _writer);
+ bool compileMetalShader(const Options& _options, uint32_t _version, const std::string& _code, bx::WriterI* _writer);
bool compilePSSLShader(const Options& _options, uint32_t _version, const std::string& _code, bx::WriterI* _writer);
bool compileSPIRVShader(const Options& _options, uint32_t _version, const std::string& _code, bx::WriterI* _writer);
diff --git a/3rdparty/bgfx/tools/shaderc/shaderc_glsl.cpp b/3rdparty/bgfx/tools/shaderc/shaderc_glsl.cpp
index 1547b3beab5..269c58fd07f 100644
--- a/3rdparty/bgfx/tools/shaderc/shaderc_glsl.cpp
+++ b/3rdparty/bgfx/tools/shaderc/shaderc_glsl.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright 2011-2018 Branimir Karadzic. All rights reserved.
- * License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause
+ * Copyright 2011-2022 Branimir Karadzic. All rights reserved.
+ * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE
*/
#include "shaderc.h"
@@ -16,23 +16,15 @@ namespace bgfx { namespace glsl
: (ch == 'c' ? kGlslOptShaderCompute : kGlslOptShaderVertex);
glslopt_target target = kGlslTargetOpenGL;
- switch (_version)
+ if(_version == BX_MAKEFOURCC('M', 'T', 'L', 0))
{
- case BX_MAKEFOURCC('M', 'T', 'L', 0):
target = kGlslTargetMetal;
- break;
-
- case 2:
- target = kGlslTargetOpenGLES20;
- break;
-
- case 3:
- target = kGlslTargetOpenGLES30;
- break;
-
- default:
+ } else if(_version < 0x80000000) {
target = kGlslTargetOpenGL;
- break;
+ }
+ else {
+ _version &= ~0x80000000;
+ target = (_version >= 300) ? kGlslTargetOpenGLES30 : kGlslTargetOpenGLES20;
}
glslopt_ctx* ctx = glslopt_initialize(target);
@@ -61,7 +53,7 @@ namespace bgfx { namespace glsl
}
printCode(_code.c_str(), line, start, end, column);
- fprintf(stderr, "Error: %s\n", log);
+ bx::printf("Error: %s\n", log);
glslopt_shader_delete(shader);
glslopt_cleanup(ctx);
return false;
@@ -69,16 +61,23 @@ namespace bgfx { namespace glsl
const char* optimizedShader = glslopt_get_output(shader);
+ std::string out;
// Trim all directives.
while ('#' == *optimizedShader)
{
optimizedShader = bx::strFindNl(optimizedShader).getPtr();
}
+ out.append(optimizedShader, strlen(optimizedShader));
+ optimizedShader = out.c_str();
+
{
char* code = const_cast<char*>(optimizedShader);
strReplace(code, "gl_FragDepthEXT", "gl_FragDepth");
+ strReplace(code, "textureLodEXT", "texture2DLod");
+ strReplace(code, "textureGradEXT", "texture2DGrad");
+
strReplace(code, "texture2DLodARB", "texture2DLod");
strReplace(code, "texture2DLodEXT", "texture2DLod");
strReplace(code, "texture2DGradARB", "texture2DGrad");
@@ -114,6 +113,13 @@ namespace bgfx { namespace glsl
{
bx::StringView qualifier = nextWord(parse);
+ if (0 == bx::strCmp(qualifier, "precision", 9) )
+ {
+ // skip precision
+ parse.set(eol.getPtr() + 1, parse.getTerm() );
+ continue;
+ }
+
if (0 == bx::strCmp(qualifier, "attribute", 9)
|| 0 == bx::strCmp(qualifier, "varying", 7)
|| 0 == bx::strCmp(qualifier, "in", 2)
@@ -125,6 +131,17 @@ namespace bgfx { namespace glsl
continue;
}
+ if (0 == bx::strCmp(qualifier, "flat", 4)
+ || 0 == bx::strCmp(qualifier, "smooth", 6)
+ || 0 == bx::strCmp(qualifier, "noperspective", 13)
+ || 0 == bx::strCmp(qualifier, "centroid", 8)
+ )
+ {
+ // skip interpolation qualifiers
+ parse.set(eol.getPtr() + 1, parse.getTerm() );
+ continue;
+ }
+
if (0 == bx::strCmp(parse, "tmpvar", 6) )
{
// skip temporaries
@@ -154,7 +171,9 @@ namespace bgfx { namespace glsl
char uniformType[256];
- if (0 == bx::strCmp(typen, "sampler", 7) )
+ if (0 == bx::strCmp(typen, "sampler", 7)
+ || 0 == bx::strCmp(typen, "isampler", 8)
+ || 0 == bx::strCmp(typen, "usampler", 8) )
{
bx::strCopy(uniformType, BX_COUNTOF(uniformType), "int");
}
@@ -188,6 +207,18 @@ namespace bgfx { namespace glsl
un.num = num;
un.regIndex = 0;
un.regCount = num;
+ switch (un.type)
+ {
+ case UniformType::Mat3:
+ un.regCount *= 3;
+ break;
+ case UniformType::Mat4:
+ un.regCount *= 4;
+ break;
+ default:
+ break;
+ }
+
uniforms.push_back(un);
}
@@ -216,8 +247,9 @@ namespace bgfx { namespace glsl
const char* typen = parse.getPtr();
char uniformType[256];
- parse = bx::strWord(parse).getPtr();
- bx::strCopy(uniformType, int32_t(parse.getPtr()-typen+1), typen);
+ parse = bx::strWord(parse);
+ bx::strCopy(uniformType, parse.getLength()+1, typen);
+ parse.set(parse.getPtr()+parse.getLength(),optShader.getTerm());
const char* name = bx::strLTrimSpace(parse).getPtr();
parse.set(name, optShader.getTerm() );
@@ -257,22 +289,81 @@ namespace bgfx { namespace glsl
parse = eol.getPtr() + 1;
}
}
+
+ bx::StringView mainEntry("xlatMtlShaderOutput xlatMtlMain (");
+ parse = bx::strFind(optimizedShader, mainEntry);
+ end = parse;
+ if (!parse.isEmpty())
+ {
+ parse.set(parse.getPtr() + mainEntry.getLength(), optShader.getTerm());
+ end = bx::strFind(parse, "{");
+ }
+
+ while (parse.getPtr() < end.getPtr()
+ && !parse.isEmpty())
+ {
+ parse.set(bx::strLTrimSpace(parse).getPtr(), optShader.getTerm());
+ const bx::StringView textureNameMark("[[texture(");
+ const bx::StringView textureName = bx::strFind(parse, textureNameMark);
+
+ if (!textureName.isEmpty())
+ {
+ Uniform un;
+ un.type = nameToUniformTypeEnum("int"); // int for sampler
+ const char* varNameEnd = textureName.getPtr() - 1;
+ parse.set(parse.getPtr(), varNameEnd - 1);
+ const char* varNameBeg = parse.getPtr();
+ for (int ii = parse.getLength() - 1; 0 <= ii; --ii)
+ {
+ if (varNameBeg[ii] == ' ')
+ {
+ parse.set(varNameBeg + ii + 1, varNameEnd);
+ break;
+ }
+ }
+ char uniformName[256];
+ bx::strCopy(uniformName, parse.getLength() + 1, parse);
+ un.name = uniformName;
+ const char* regIndexBeg = textureName.getPtr() + textureNameMark.getLength();
+ bx::StringView regIndex = bx::strFind(regIndexBeg, ")");
+
+ regIndex.set(regIndexBeg, regIndex.getPtr());
+ uint32_t tmp;
+ bx::fromString(&tmp, regIndex);
+ un.regIndex = uint16_t(tmp);
+ un.num = 1;
+ un.regCount = 1;
+
+ uniforms.push_back(un);
+
+ parse = regIndex.getPtr() + 1;
+ }
+ else
+ {
+ parse = textureName;
+ }
+ }
}
+ bx::ErrorAssert err;
+
uint16_t count = (uint16_t)uniforms.size();
- bx::write(_writer, count);
+ bx::write(_writer, count, &err);
for (UniformArray::const_iterator it = uniforms.begin(); it != uniforms.end(); ++it)
{
const Uniform& un = *it;
uint8_t nameSize = (uint8_t)un.name.size();
- bx::write(_writer, nameSize);
- bx::write(_writer, un.name.c_str(), nameSize);
+ bx::write(_writer, nameSize, &err);
+ bx::write(_writer, un.name.c_str(), nameSize, &err);
uint8_t uniformType = uint8_t(un.type);
- bx::write(_writer, uniformType);
- bx::write(_writer, un.num);
- bx::write(_writer, un.regIndex);
- bx::write(_writer, un.regCount);
+ bx::write(_writer, uniformType, &err);
+ bx::write(_writer, un.num, &err);
+ bx::write(_writer, un.regIndex, &err);
+ bx::write(_writer, un.regCount, &err);
+ bx::write(_writer, un.texComponent, &err);
+ bx::write(_writer, un.texDimension, &err);
+ bx::write(_writer, un.texFormat, &err);
BX_TRACE("%s, %s, %d, %d, %d"
, un.name.c_str()
@@ -284,10 +375,10 @@ namespace bgfx { namespace glsl
}
uint32_t shaderSize = (uint32_t)bx::strLen(optimizedShader);
- bx::write(_writer, shaderSize);
- bx::write(_writer, optimizedShader, shaderSize);
+ bx::write(_writer, shaderSize, &err);
+ bx::write(_writer, optimizedShader, shaderSize, &err);
uint8_t nul = 0;
- bx::write(_writer, nul);
+ bx::write(_writer, nul, &err);
if (_options.disasm )
{
diff --git a/3rdparty/bgfx/tools/shaderc/shaderc_hlsl.cpp b/3rdparty/bgfx/tools/shaderc/shaderc_hlsl.cpp
index 82b7c1e2068..7671c03f38b 100644
--- a/3rdparty/bgfx/tools/shaderc/shaderc_hlsl.cpp
+++ b/3rdparty/bgfx/tools/shaderc/shaderc_hlsl.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright 2011-2018 Branimir Karadzic. All rights reserved.
- * License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause
+ * Copyright 2011-2022 Branimir Karadzic. All rights reserved.
+ * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE
*/
#include "shaderc.h"
@@ -107,7 +107,7 @@ namespace bgfx { namespace hlsl
if (g_verbose)
{
- char filePath[MAX_PATH];
+ char filePath[bx::kMaxFilePath];
GetModuleFileNameA( (HMODULE)s_d3dcompilerdll, filePath, sizeof(filePath) );
BX_TRACE("Loaded %s compiler (%s).", compiler->fileName, filePath);
}
@@ -115,7 +115,7 @@ namespace bgfx { namespace hlsl
return compiler;
}
- fprintf(stderr, "Error: Unable to open D3DCompiler_*.dll shader compiler.\n");
+ bx::printf("Error: Unable to open D3DCompiler_*.dll shader compiler.\n");
return NULL;
}
@@ -213,14 +213,14 @@ namespace bgfx { namespace hlsl
static const UniformRemap s_uniformRemap[] =
{
- { UniformType::Int1, D3D_SVC_SCALAR, D3D_SVT_INT, 0, 0 },
+ { UniformType::Sampler, D3D_SVC_SCALAR, D3D_SVT_INT, 0, 0 },
{ UniformType::Vec4, D3D_SVC_VECTOR, D3D_SVT_FLOAT, 0, 0 },
{ UniformType::Mat3, D3D_SVC_MATRIX_COLUMNS, D3D_SVT_FLOAT, 3, 3 },
{ UniformType::Mat4, D3D_SVC_MATRIX_COLUMNS, D3D_SVT_FLOAT, 4, 4 },
- { UniformType::Int1, D3D_SVC_OBJECT, D3D_SVT_SAMPLER, 0, 0 },
- { UniformType::Int1, D3D_SVC_OBJECT, D3D_SVT_SAMPLER2D, 0, 0 },
- { UniformType::Int1, D3D_SVC_OBJECT, D3D_SVT_SAMPLER3D, 0, 0 },
- { UniformType::Int1, D3D_SVC_OBJECT, D3D_SVT_SAMPLERCUBE, 0, 0 },
+ { UniformType::Sampler, D3D_SVC_OBJECT, D3D_SVT_SAMPLER, 0, 0 },
+ { UniformType::Sampler, D3D_SVC_OBJECT, D3D_SVT_SAMPLER2D, 0, 0 },
+ { UniformType::Sampler, D3D_SVC_OBJECT, D3D_SVT_SAMPLER3D, 0, 0 },
+ { UniformType::Sampler, D3D_SVC_OBJECT, D3D_SVT_SAMPLERCUBE, 0, 0 },
};
UniformType::Enum findUniformType(const D3D11_SHADER_TYPE_DESC& constDesc)
@@ -311,7 +311,7 @@ namespace bgfx { namespace hlsl
uint32_t tableSize = (commentSize - 1) * 4;
if (tableSize < sizeof(CTHeader) || header->Size != sizeof(CTHeader) )
{
- fprintf(stderr, "Error: Invalid constant table data\n");
+ bx::printf("Error: Invalid constant table data\n");
return false;
}
break;
@@ -323,12 +323,13 @@ namespace bgfx { namespace hlsl
if (!header)
{
- fprintf(stderr, "Error: Could not find constant table data\n");
+ bx::printf("Error: Could not find constant table data\n");
return false;
}
const uint8_t* headerBytePtr = (const uint8_t*)header;
const char* creator = (const char*)(headerBytePtr + header->Creator);
+ BX_UNUSED(creator);
BX_TRACE("Creator: %s 0x%08x", creator, header->Version);
BX_TRACE("Num constants: %d", header->Constants);
@@ -366,7 +367,7 @@ namespace bgfx { namespace hlsl
Uniform un;
un.name = '$' == name[0] ? name + 1 : name;
un.type = isSampler(desc.Type)
- ? UniformType::Enum(BGFX_UNIFORM_SAMPLERBIT | type)
+ ? UniformType::Enum(kUniformSamplerBit | type)
: type
;
un.num = (uint8_t)ctType.Elements;
@@ -390,7 +391,7 @@ namespace bgfx { namespace hlsl
);
if (FAILED(hr) )
{
- fprintf(stderr, "Error: D3DReflect failed 0x%08x\n", (uint32_t)hr);
+ bx::printf("Error: D3DReflect failed 0x%08x\n", (uint32_t)hr);
return false;
}
@@ -398,7 +399,7 @@ namespace bgfx { namespace hlsl
hr = reflect->GetDesc(&desc);
if (FAILED(hr) )
{
- fprintf(stderr, "Error: ID3D11ShaderReflection::GetDesc failed 0x%08x\n", (uint32_t)hr);
+ bx::printf("Error: ID3D11ShaderReflection::GetDesc failed 0x%08x\n", (uint32_t)hr);
return false;
}
@@ -479,7 +480,7 @@ namespace bgfx { namespace hlsl
un.type = uniformType;
un.num = uint8_t(constDesc.Elements);
un.regIndex = uint16_t(varDesc.StartOffset);
- un.regCount = BX_ALIGN_16(varDesc.Size) / 16;
+ un.regCount = uint16_t(bx::alignUp(varDesc.Size, 16) / 16);
_uniforms.push_back(un);
BX_TRACE("\t%s, %d, size %d, flags 0x%08x, %d (used)"
@@ -513,7 +514,7 @@ namespace bgfx { namespace hlsl
hr = reflect->GetResourceBindingDesc(ii, &bindDesc);
if (SUCCEEDED(hr) )
{
- if (D3D_SIT_SAMPLER == bindDesc.Type)
+ if (D3D_SIT_SAMPLER == bindDesc.Type || D3D_SIT_TEXTURE == bindDesc.Type)
{
BX_TRACE("\t%s, %d, %d, %d"
, bindDesc.Name
@@ -523,17 +524,24 @@ namespace bgfx { namespace hlsl
);
bx::StringView end = bx::strFind(bindDesc.Name, "Sampler");
- if (!end.isEmpty() )
+ if (end.isEmpty())
+ end = bx::strFind(bindDesc.Name, "Texture");
+
+ if (!end.isEmpty())
{
Uniform un;
un.name.assign(bindDesc.Name, (end.getPtr() - bindDesc.Name) );
- un.type = UniformType::Enum(BGFX_UNIFORM_SAMPLERBIT | UniformType::Int1);
+ un.type = UniformType::Enum(kUniformSamplerBit | UniformType::Sampler);
un.num = 1;
un.regIndex = uint16_t(bindDesc.BindPoint);
un.regCount = uint16_t(bindDesc.BindCount);
_uniforms.push_back(un);
}
}
+ else
+ {
+ BX_TRACE("\t%s, unknown bind data", bindDesc.Name);
+ }
}
}
@@ -551,7 +559,7 @@ namespace bgfx { namespace hlsl
if (profile[0] == '\0')
{
- fprintf(stderr, "Error: Shader profile must be specified.\n");
+ bx::printf("Error: Shader profile must be specified.\n");
return false;
}
@@ -602,6 +610,8 @@ namespace bgfx { namespace hlsl
writeFile(hlslfp.c_str(), _code.c_str(), (int32_t)_code.size() );
}
+ bx::ErrorAssert err;
+
HRESULT hr = D3DCompile(_code.c_str()
, _code.size()
, hlslfp.c_str()
@@ -646,7 +656,7 @@ namespace bgfx { namespace hlsl
}
printCode(_code.c_str(), line, start, end, column);
- fprintf(stderr, "Error: D3DCompile failed 0x%08x %s\n", (uint32_t)hr, log);
+ bx::printf("Error: D3DCompile failed 0x%08x %s\n", (uint32_t)hr, log);
errorMsg->Release();
return false;
}
@@ -656,11 +666,11 @@ namespace bgfx { namespace hlsl
uint16_t attrs[bgfx::Attrib::Count];
uint16_t size = 0;
- if (_version == 9)
+ if (_version < 400)
{
if (!getReflectionDataD3D9(code, uniforms) )
{
- fprintf(stderr, "Error: Unable to get D3D9 reflection data.\n");
+ bx::printf("Error: Unable to get D3D9 reflection data.\n");
goto error;
}
}
@@ -669,49 +679,51 @@ namespace bgfx { namespace hlsl
UniformNameList unusedUniforms;
if (!getReflectionDataD3D11(code, profile[0] == 'v', uniforms, numAttrs, attrs, size, unusedUniforms) )
{
- fprintf(stderr, "Error: Unable to get D3D11 reflection data.\n");
+ bx::printf("Error: Unable to get D3D11 reflection data.\n");
goto error;
}
if (_firstPass
&& unusedUniforms.size() > 0)
{
- const size_t strLength = bx::strLen("uniform");
-
// first time through, we just find unused uniforms and get rid of them
std::string output;
- bx::Error err;
- LineReader reader(_code.c_str() );
- while (err.isOk() )
+ bx::LineReader reader(_code.c_str() );
+ while (!reader.isDone() )
{
- char str[4096];
- int32_t len = bx::read(&reader, str, BX_COUNTOF(str), &err);
- if (err.isOk() )
- {
- std::string strLine(str, len);
+ bx::StringView strLine = reader.next();
+ bool found = false;
- for (UniformNameList::iterator it = unusedUniforms.begin(), itEnd = unusedUniforms.end(); it != itEnd; ++it)
+ for (UniformNameList::iterator it = unusedUniforms.begin(), itEnd = unusedUniforms.end(); it != itEnd; ++it)
+ {
+ bx::StringView str = strFind(strLine, "uniform ");
+ if (str.isEmpty() )
{
- size_t index = strLine.find("uniform ");
- if (index == std::string::npos)
- {
- continue;
- }
+ continue;
+ }
- // matching lines like: uniform u_name;
- // we want to replace "uniform" with "static" so that it's no longer
- // included in the uniform blob that the application must upload
- // we can't just remove them, because unused functions might still reference
- // them and cause a compile error when they're gone
- if (!bx::findIdentifierMatch(strLine.c_str(), it->c_str() ).isEmpty() )
- {
- strLine = strLine.replace(index, strLength, "static");
- unusedUniforms.erase(it);
- break;
- }
+ // matching lines like: uniform u_name;
+ // we want to replace "uniform" with "static" so that it's no longer
+ // included in the uniform blob that the application must upload
+ // we can't just remove them, because unused functions might still reference
+ // them and cause a compile error when they're gone
+ if (!bx::findIdentifierMatch(strLine, it->c_str() ).isEmpty() )
+ {
+ output.append(strLine.getPtr(), str.getPtr() );
+ output += "static ";
+ output.append(str.getTerm(), strLine.getTerm() );
+ output += "\n";
+ found = true;
+
+ unusedUniforms.erase(it);
+ break;
}
+ }
- output += strLine;
+ if (!found)
+ {
+ output.append(strLine.getPtr(), strLine.getTerm() );
+ output += "\n";
}
}
@@ -722,24 +734,27 @@ namespace bgfx { namespace hlsl
{
uint16_t count = (uint16_t)uniforms.size();
- bx::write(_writer, count);
+ bx::write(_writer, count, &err);
- uint32_t fragmentBit = profile[0] == 'p' ? BGFX_UNIFORM_FRAGMENTBIT : 0;
+ uint32_t fragmentBit = profile[0] == 'p' ? kUniformFragmentBit : 0;
for (UniformArray::const_iterator it = uniforms.begin(); it != uniforms.end(); ++it)
{
const Uniform& un = *it;
uint8_t nameSize = (uint8_t)un.name.size();
- bx::write(_writer, nameSize);
- bx::write(_writer, un.name.c_str(), nameSize);
+ bx::write(_writer, nameSize, &err);
+ bx::write(_writer, un.name.c_str(), nameSize, &err);
uint8_t type = uint8_t(un.type | fragmentBit);
- bx::write(_writer, type);
- bx::write(_writer, un.num);
- bx::write(_writer, un.regIndex);
- bx::write(_writer, un.regCount);
+ bx::write(_writer, type, &err);
+ bx::write(_writer, un.num, &err);
+ bx::write(_writer, un.regIndex, &err);
+ bx::write(_writer, un.regCount, &err);
+ bx::write(_writer, un.texComponent, &err);
+ bx::write(_writer, un.texDimension, &err);
+ bx::write(_writer, un.texFormat, &err);
BX_TRACE("%s, %s, %d, %d, %d"
, un.name.c_str()
- , getUniformTypeName(un.type)
+ , getUniformTypeName(UniformType::Enum(un.type & ~kUniformMask))
, un.num
, un.regIndex
, un.regCount
@@ -765,18 +780,18 @@ namespace bgfx { namespace hlsl
{
uint32_t shaderSize = uint32_t(code->GetBufferSize() );
- bx::write(_writer, shaderSize);
- bx::write(_writer, code->GetBufferPointer(), shaderSize);
+ bx::write(_writer, shaderSize, &err);
+ bx::write(_writer, code->GetBufferPointer(), shaderSize, &err);
uint8_t nul = 0;
- bx::write(_writer, nul);
+ bx::write(_writer, nul, &err);
}
- if (_version > 9)
+ if (_version >= 400)
{
- bx::write(_writer, numAttrs);
- bx::write(_writer, attrs, numAttrs*sizeof(uint16_t) );
+ bx::write(_writer, numAttrs, &err);
+ bx::write(_writer, attrs, numAttrs*sizeof(uint16_t), &err);
- bx::write(_writer, size);
+ bx::write(_writer, size, &err);
}
if (_options.disasm )
@@ -827,7 +842,7 @@ namespace bgfx
bool compileHLSLShader(const Options& _options, uint32_t _version, const std::string& _code, bx::WriterI* _writer)
{
BX_UNUSED(_options, _version, _code, _writer);
- fprintf(stderr, "HLSL compiler is not supported on this platform.\n");
+ bx::printf("HLSL compiler is not supported on this platform.\n");
return false;
}
diff --git a/3rdparty/bgfx/tools/shaderc/shaderc_metal.cpp b/3rdparty/bgfx/tools/shaderc/shaderc_metal.cpp
new file mode 100644
index 00000000000..edb3e6a5a45
--- /dev/null
+++ b/3rdparty/bgfx/tools/shaderc/shaderc_metal.cpp
@@ -0,0 +1,700 @@
+/*
+ * Copyright 2011-2022 Branimir Karadzic. All rights reserved.
+ * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE
+ */
+
+#include "shaderc.h"
+
+BX_PRAGMA_DIAGNOSTIC_PUSH()
+BX_PRAGMA_DIAGNOSTIC_IGNORED_MSVC(4100) // error C4100: 'inclusionDepth' : unreferenced formal parameter
+BX_PRAGMA_DIAGNOSTIC_IGNORED_MSVC(4265) // error C4265: 'spv::spirvbin_t': class has virtual functions, but destructor is not virtual
+BX_PRAGMA_DIAGNOSTIC_IGNORED_CLANG_GCC("-Wattributes") // warning: attribute ignored
+BX_PRAGMA_DIAGNOSTIC_IGNORED_CLANG_GCC("-Wdeprecated-declarations") // warning: ‘MSLVertexAttr’ is deprecated
+BX_PRAGMA_DIAGNOSTIC_IGNORED_CLANG_GCC("-Wtype-limits") // warning: comparison of unsigned expression in ‘< 0’ is always false
+BX_PRAGMA_DIAGNOSTIC_IGNORED_CLANG_GCC("-Wshadow") // warning: declaration of 'userData' shadows a member of 'glslang::TShader::Includer::IncludeResult'
+#define ENABLE_OPT 1
+#include <ShaderLang.h>
+#include <ResourceLimits.h>
+#include <SPIRV/SPVRemapper.h>
+#include <SPIRV/GlslangToSpv.h>
+#define SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS
+#include <spirv_msl.hpp>
+#include <spirv_reflect.hpp>
+#include <spirv-tools/optimizer.hpp>
+BX_PRAGMA_DIAGNOSTIC_POP()
+
+namespace bgfx
+{
+ struct TinyStlAllocator
+ {
+ static void* static_allocate(size_t _bytes);
+ static void static_deallocate(void* _ptr, size_t /*_bytes*/);
+ };
+
+} // namespace bgfx
+
+#define TINYSTL_ALLOCATOR bgfx::TinyStlAllocator
+#include <tinystl/allocator.h>
+#include <tinystl/string.h>
+#include <tinystl/unordered_map.h>
+#include <tinystl/vector.h>
+namespace stl = tinystl;
+
+#include "../../src/shader.h"
+
+namespace bgfx { namespace metal
+{
+ const TBuiltInResource resourceLimits =
+ {
+ 32, // MaxLights
+ 6, // MaxClipPlanes
+ 32, // MaxTextureUnits
+ 32, // MaxTextureCoords
+ 64, // MaxVertexAttribs
+ 4096, // MaxVertexUniformComponents
+ 64, // MaxVaryingFloats
+ 32, // MaxVertexTextureImageUnits
+ 80, // MaxCombinedTextureImageUnits
+ 32, // MaxTextureImageUnits
+ 4096, // MaxFragmentUniformComponents
+ 32, // MaxDrawBuffers
+ 128, // MaxVertexUniformVectors
+ 8, // MaxVaryingVectors
+ 16, // MaxFragmentUniformVectors
+ 16, // MaxVertexOutputVectors
+ 15, // MaxFragmentInputVectors
+ -8, // MinProgramTexelOffset
+ 7, // MaxProgramTexelOffset
+ 8, // MaxClipDistances
+ 65535, // MaxComputeWorkGroupCountX
+ 65535, // MaxComputeWorkGroupCountY
+ 65535, // MaxComputeWorkGroupCountZ
+ 1024, // MaxComputeWorkGroupSizeX
+ 1024, // MaxComputeWorkGroupSizeY
+ 64, // MaxComputeWorkGroupSizeZ
+ 1024, // MaxComputeUniformComponents
+ 16, // MaxComputeTextureImageUnits
+ 8, // MaxComputeImageUniforms
+ 8, // MaxComputeAtomicCounters
+ 1, // MaxComputeAtomicCounterBuffers
+ 60, // MaxVaryingComponents
+ 64, // MaxVertexOutputComponents
+ 64, // MaxGeometryInputComponents
+ 128, // MaxGeometryOutputComponents
+ 128, // MaxFragmentInputComponents
+ 8, // MaxImageUnits
+ 8, // MaxCombinedImageUnitsAndFragmentOutputs
+ 8, // MaxCombinedShaderOutputResources
+ 0, // MaxImageSamples
+ 0, // MaxVertexImageUniforms
+ 0, // MaxTessControlImageUniforms
+ 0, // MaxTessEvaluationImageUniforms
+ 0, // MaxGeometryImageUniforms
+ 8, // MaxFragmentImageUniforms
+ 8, // MaxCombinedImageUniforms
+ 16, // MaxGeometryTextureImageUnits
+ 256, // MaxGeometryOutputVertices
+ 1024, // MaxGeometryTotalOutputComponents
+ 1024, // MaxGeometryUniformComponents
+ 64, // MaxGeometryVaryingComponents
+ 128, // MaxTessControlInputComponents
+ 128, // MaxTessControlOutputComponents
+ 16, // MaxTessControlTextureImageUnits
+ 1024, // MaxTessControlUniformComponents
+ 4096, // MaxTessControlTotalOutputComponents
+ 128, // MaxTessEvaluationInputComponents
+ 128, // MaxTessEvaluationOutputComponents
+ 16, // MaxTessEvaluationTextureImageUnits
+ 1024, // MaxTessEvaluationUniformComponents
+ 120, // MaxTessPatchComponents
+ 32, // MaxPatchVertices
+ 64, // MaxTessGenLevel
+ 16, // MaxViewports
+ 0, // MaxVertexAtomicCounters
+ 0, // MaxTessControlAtomicCounters
+ 0, // MaxTessEvaluationAtomicCounters
+ 0, // MaxGeometryAtomicCounters
+ 8, // MaxFragmentAtomicCounters
+ 8, // MaxCombinedAtomicCounters
+ 1, // MaxAtomicCounterBindings
+ 0, // MaxVertexAtomicCounterBuffers
+ 0, // MaxTessControlAtomicCounterBuffers
+ 0, // MaxTessEvaluationAtomicCounterBuffers
+ 0, // MaxGeometryAtomicCounterBuffers
+ 1, // MaxFragmentAtomicCounterBuffers
+ 1, // MaxCombinedAtomicCounterBuffers
+ 16384, // MaxAtomicCounterBufferSize
+ 4, // MaxTransformFeedbackBuffers
+ 64, // MaxTransformFeedbackInterleavedComponents
+ 8, // MaxCullDistances
+ 8, // MaxCombinedClipAndCullDistances
+ 4, // MaxSamples
+ 0, // maxMeshOutputVerticesNV
+ 0, // maxMeshOutputPrimitivesNV
+ 0, // maxMeshWorkGroupSizeX_NV
+ 0, // maxMeshWorkGroupSizeY_NV
+ 0, // maxMeshWorkGroupSizeZ_NV
+ 0, // maxTaskWorkGroupSizeX_NV
+ 0, // maxTaskWorkGroupSizeY_NV
+ 0, // maxTaskWorkGroupSizeZ_NV
+ 0, // maxMeshViewCountNV
+ 0, // maxMeshOutputVerticesEXT
+ 0, // maxMeshOutputPrimitivesEXT
+ 0, // maxMeshWorkGroupSizeX_EXT
+ 0, // maxMeshWorkGroupSizeY_EXT
+ 0, // maxMeshWorkGroupSizeZ_EXT
+ 0, // maxTaskWorkGroupSizeX_EXT
+ 0, // maxTaskWorkGroupSizeY_EXT
+ 0, // maxTaskWorkGroupSizeZ_EXT
+ 0, // maxMeshViewCountEXT
+ 0, // maxDualSourceDrawBuffersEXT
+
+ { // limits
+ true, // nonInductiveForLoops
+ true, // whileLoops
+ true, // doWhileLoops
+ true, // generalUniformIndexing
+ true, // generalAttributeMatrixVectorIndexing
+ true, // generalVaryingIndexing
+ true, // generalSamplerIndexing
+ true, // generalVariableIndexing
+ true, // generalConstantMatrixVectorIndexing
+ },
+ };
+
+ static EShLanguage getLang(char _p)
+ {
+ switch (_p)
+ {
+ case 'c': return EShLangCompute;
+ case 'f': return EShLangFragment;
+ case 'v': return EShLangVertex;
+ default: return EShLangCount;
+ }
+ }
+
+ static const char* s_attribName[] =
+ {
+ "a_position",
+ "a_normal",
+ "a_tangent",
+ "a_bitangent",
+ "a_color0",
+ "a_color1",
+ "a_color2",
+ "a_color3",
+ "a_indices",
+ "a_weight",
+ "a_texcoord0",
+ "a_texcoord1",
+ "a_texcoord2",
+ "a_texcoord3",
+ "a_texcoord4",
+ "a_texcoord5",
+ "a_texcoord6",
+ "a_texcoord7",
+ };
+ BX_STATIC_ASSERT(bgfx::Attrib::Count == BX_COUNTOF(s_attribName) );
+
+ bgfx::Attrib::Enum toAttribEnum(const bx::StringView& _name)
+ {
+ for (uint8_t ii = 0; ii < Attrib::Count; ++ii)
+ {
+ if (0 == bx::strCmp(s_attribName[ii], _name) )
+ {
+ return bgfx::Attrib::Enum(ii);
+ }
+ }
+
+ return bgfx::Attrib::Count;
+ }
+
+ static const char* s_samplerTypes[] =
+ {
+ "BgfxSampler2D",
+ "BgfxISampler2D",
+ "BgfxUSampler2D",
+ "BgfxSampler2DArray",
+ "BgfxSampler2DShadow",
+ "BgfxSampler2DArrayShadow",
+ "BgfxSampler3D",
+ "BgfxISampler3D",
+ "BgfxUSampler3D",
+ "BgfxSamplerCube",
+ "BgfxSamplerCubeShadow",
+ "BgfxSampler2DMS",
+ };
+
+ static uint16_t writeUniformArray(bx::WriterI* _writer, const UniformArray& uniforms, bool isFragmentShader)
+ {
+ uint16_t size = 0;
+
+ bx::ErrorAssert err;
+
+ uint16_t count = uint16_t(uniforms.size());
+ bx::write(_writer, count, &err);
+
+ uint32_t fragmentBit = isFragmentShader ? kUniformFragmentBit : 0;
+ for (uint16_t ii = 0; ii < count; ++ii)
+ {
+ const Uniform& un = uniforms[ii];
+
+ size += un.regCount*16;
+
+ uint8_t nameSize = (uint8_t)un.name.size();
+ bx::write(_writer, nameSize, &err);
+ bx::write(_writer, un.name.c_str(), nameSize, &err);
+ bx::write(_writer, uint8_t(un.type | fragmentBit), &err);
+ bx::write(_writer, un.num, &err);
+ bx::write(_writer, un.regIndex, &err);
+ bx::write(_writer, un.regCount, &err);
+ bx::write(_writer, un.texComponent, &err);
+ bx::write(_writer, un.texDimension, &err);
+ bx::write(_writer, un.texFormat, &err);
+
+ BX_TRACE("%s, %s, %d, %d, %d"
+ , un.name.c_str()
+ , getUniformTypeName(un.type)
+ , un.num
+ , un.regIndex
+ , un.regCount
+ );
+ }
+ return size;
+ }
+
+ static bool compile(const Options& _options, uint32_t _version, const std::string& _code, bx::WriterI* _writer, bool _firstPass)
+ {
+ BX_UNUSED(_version);
+
+ glslang::InitializeProcess();
+
+ EShLanguage stage = getLang(_options.shaderType);
+ if (EShLangCount == stage)
+ {
+ bx::printf("Error: Unknown shader type '%c'.\n", _options.shaderType);
+ return false;
+ }
+
+ glslang::TProgram* program = new glslang::TProgram;
+ glslang::TShader* shader = new glslang::TShader(stage);
+
+ EShMessages messages = EShMessages(0
+ | EShMsgDefault
+ | EShMsgReadHlsl
+ | EShMsgVulkanRules
+ | EShMsgSpvRules
+ );
+
+ shader->setEntryPoint("main");
+ shader->setAutoMapBindings(true);
+ const int textureBindingOffset = 16;
+ shader->setShiftBinding(glslang::EResTexture, textureBindingOffset);
+ shader->setShiftBinding(glslang::EResSampler, textureBindingOffset);
+ shader->setShiftBinding(glslang::EResImage, textureBindingOffset);
+
+ const char* shaderStrings[] = { _code.c_str() };
+ shader->setStrings(
+ shaderStrings
+ , BX_COUNTOF(shaderStrings)
+ );
+ bool compiled = shader->parse(&resourceLimits
+ , 110
+ , false
+ , messages
+ );
+ bool linked = false;
+ bool validated = true;
+
+ if (!compiled)
+ {
+ const char* log = shader->getInfoLog();
+ if (NULL != log)
+ {
+ int32_t source = 0;
+ int32_t line = 0;
+ int32_t column = 0;
+ int32_t start = 0;
+ int32_t end = INT32_MAX;
+
+ bx::StringView err = bx::strFind(log, "ERROR:");
+
+ bool found = false;
+
+ if (!err.isEmpty() )
+ {
+ found = 2 == sscanf(err.getPtr(), "ERROR: %u:%u: '", &source, &line);
+ if (found)
+ {
+ ++line;
+ }
+ }
+
+ if (found)
+ {
+ start = bx::uint32_imax(1, line-10);
+ end = start + 20;
+ }
+
+ printCode(_code.c_str(), line, start, end, column);
+
+ bx::printf("%s\n", log);
+ }
+ }
+ else
+ {
+ program->addShader(shader);
+ linked = true
+ && program->link(messages)
+ && program->mapIO()
+ ;
+
+ if (!linked)
+ {
+ const char* log = program->getInfoLog();
+ if (NULL != log)
+ {
+ bx::printf("%s\n", log);
+ }
+ }
+ else
+ {
+ program->buildReflection();
+
+ if (_firstPass)
+ {
+ // first time through, we just find unused uniforms and get rid of them
+ std::string output;
+ bx::Error err;
+ bx::LineReader reader(_code.c_str() );
+ while (!reader.isDone() )
+ {
+ bx::StringView strLine = reader.next();
+ bx::StringView str = strFind(strLine, "uniform ");
+
+ if (!str.isEmpty() )
+ {
+ // If the line declares a uniform, merge all next
+ // lines until we encounter a semicolon.
+ bx::StringView lineEnd = strFind(strLine, ";");
+ while (lineEnd.isEmpty() && !reader.isDone()) {
+ bx::StringView nextLine = reader.next();
+ strLine.set(strLine.getPtr(), nextLine.getTerm());
+ lineEnd = strFind(nextLine, ";");
+ }
+
+ bool found = false;
+
+ for (uint32_t ii = 0; ii < BX_COUNTOF(s_samplerTypes); ++ii)
+ {
+ if (!bx::findIdentifierMatch(strLine, s_samplerTypes[ii]).isEmpty() )
+ {
+ found = true;
+ break;
+ }
+ }
+
+ if (!found)
+ {
+ for (int32_t ii = 0, num = program->getNumLiveUniformVariables(); ii < num; ++ii)
+ {
+ // matching lines like: uniform u_name;
+ // we want to replace "uniform" with "static" so that it's no longer
+ // included in the uniform blob that the application must upload
+ // we can't just remove them, because unused functions might still reference
+ // them and cause a compile error when they're gone
+ if (!bx::findIdentifierMatch(strLine, program->getUniformName(ii) ).isEmpty() )
+ {
+ found = true;
+ break;
+ }
+ }
+ }
+
+ if (!found)
+ {
+ output.append(strLine.getPtr(), str.getPtr() );
+ output += "static ";
+ output.append(str.getTerm(), strLine.getTerm() );
+ output += "\n";
+ }
+ else
+ {
+ output.append(strLine.getPtr(), strLine.getTerm() );
+ output += "\n";
+ }
+ }
+ else
+ {
+ output.append(strLine.getPtr(), strLine.getTerm() );
+ output += "\n";
+ }
+ }
+
+ // recompile with the unused uniforms converted to statics
+ delete program;
+ delete shader;
+ return compile(_options, _version, output.c_str(), _writer, false);
+ }
+
+ UniformArray uniforms;
+
+ {
+ uint16_t count = (uint16_t)program->getNumLiveUniformVariables();
+
+ for (uint16_t ii = 0; ii < count; ++ii)
+ {
+ Uniform un;
+ un.name = program->getUniformName(ii);
+
+ if (bx::hasSuffix(un.name.c_str(), ".@data") )
+ {
+ continue;
+ }
+
+ un.num = uint8_t(program->getUniformArraySize(ii) );
+ const uint32_t offset = program->getUniformBufferOffset(ii);
+ un.regIndex = uint16_t(offset);
+ un.regCount = un.num;
+
+ switch (program->getUniformType(ii) )
+ {
+ case 0x1404: // GL_INT:
+ un.type = UniformType::Sampler;
+ break;
+ case 0x8B52: // GL_FLOAT_VEC4:
+ un.type = UniformType::Vec4;
+ break;
+ case 0x8B5B: // GL_FLOAT_MAT3:
+ un.type = UniformType::Mat3;
+ un.regCount *= 3;
+ break;
+ case 0x8B5C: // GL_FLOAT_MAT4:
+ un.type = UniformType::Mat4;
+ un.regCount *= 4;
+ break;
+ default:
+ un.type = UniformType::End;
+ break;
+ }
+
+ uniforms.push_back(un);
+ }
+ }
+ if (g_verbose)
+ {
+ program->dumpReflection();
+ }
+
+ BX_UNUSED(spv::MemorySemanticsAllMemory);
+
+ glslang::TIntermediate* intermediate = program->getIntermediate(stage);
+ std::vector<uint32_t> spirv;
+
+ glslang::SpvOptions options;
+ options.disableOptimizer = false;
+
+ glslang::GlslangToSpv(*intermediate, spirv, &options);
+
+ spvtools::Optimizer opt(SPV_ENV_VULKAN_1_0);
+
+ auto print_msg_to_stderr = [](
+ spv_message_level_t
+ , const char*
+ , const spv_position_t&
+ , const char* m
+ )
+ {
+ bx::printf("Error: %s\n", m);
+ };
+
+ opt.SetMessageConsumer(print_msg_to_stderr);
+
+ opt.RegisterLegalizationPasses();
+
+ spvtools::ValidatorOptions validatorOptions;
+ validatorOptions.SetBeforeHlslLegalization(true);
+
+ if (!opt.Run(
+ spirv.data()
+ , spirv.size()
+ , &spirv
+ , validatorOptions
+ , false
+ ) )
+ {
+ compiled = false;
+ }
+ else
+ {
+ if (g_verbose)
+ {
+ glslang::SpirvToolsDisassemble(std::cout, spirv, SPV_ENV_VULKAN_1_0);
+ }
+
+ spirv_cross::CompilerReflection refl(spirv);
+ spirv_cross::ShaderResources resourcesrefl = refl.get_shader_resources();
+
+ // Loop through the separate_images, and extract the uniform names:
+ for (auto &resource : resourcesrefl.separate_images)
+ {
+ std::string name = refl.get_name(resource.id);
+ if (name.size() > 7 && 0 == bx::strCmp(name.c_str() + name.length() - 7, "Texture"))
+ {
+ name = name.substr(0, name.length() - 7);
+ }
+
+ Uniform un;
+ un.name = name;
+ un.type = UniformType::Sampler;
+
+ un.num = 0; // needed?
+ un.regIndex = 0; // needed?
+ un.regCount = 0; // needed?
+
+ uniforms.push_back(un);
+ }
+ uint16_t size = writeUniformArray( _writer, uniforms, _options.shaderType == 'f');
+
+ bx::Error err;
+
+ if (_version == BX_MAKEFOURCC('M', 'T', 'L', 0) )
+ {
+ spirv_cross::CompilerMSL msl(std::move(spirv) );
+
+ auto executionModel = msl.get_execution_model();
+ spirv_cross::MSLResourceBinding newBinding;
+ newBinding.stage = executionModel;
+
+ spirv_cross::ShaderResources resources = msl.get_shader_resources();
+
+ spirv_cross::SmallVector<spirv_cross::EntryPoint> entryPoints = msl.get_entry_points_and_stages();
+ if (!entryPoints.empty() )
+ msl.rename_entry_point(entryPoints[0].name, "xlatMtlMain", entryPoints[0].execution_model);
+
+ for (auto &resource : resources.uniform_buffers)
+ {
+ unsigned set = msl.get_decoration( resource.id, spv::DecorationDescriptorSet );
+ unsigned binding = msl.get_decoration( resource.id, spv::DecorationBinding );
+ newBinding.desc_set = set;
+ newBinding.binding = binding;
+ newBinding.msl_buffer = 0;
+ msl.add_msl_resource_binding( newBinding );
+
+ msl.set_name(resource.id, "_mtl_u");
+ }
+
+ for (auto &resource : resources.storage_buffers)
+ {
+ unsigned set = msl.get_decoration( resource.id, spv::DecorationDescriptorSet );
+ unsigned binding = msl.get_decoration( resource.id, spv::DecorationBinding );
+ newBinding.desc_set = set;
+ newBinding.binding = binding;
+ newBinding.msl_buffer = binding + 1;
+ msl.add_msl_resource_binding( newBinding );
+ }
+
+ for (auto &resource : resources.separate_samplers)
+ {
+ unsigned set = msl.get_decoration( resource.id, spv::DecorationDescriptorSet );
+ unsigned binding = msl.get_decoration( resource.id, spv::DecorationBinding );
+ newBinding.desc_set = set;
+ newBinding.binding = binding;
+ newBinding.msl_texture = binding - textureBindingOffset;
+ newBinding.msl_sampler = binding - textureBindingOffset;
+ msl.add_msl_resource_binding( newBinding );
+ }
+
+ for (auto &resource : resources.separate_images)
+ {
+ std::string name = msl.get_name(resource.id);
+ if (name.size() > 7 && 0 == bx::strCmp(name.c_str() + name.length() - 7, "Texture") )
+ {
+ msl.set_name(resource.id, name.substr(0, name.length() - 7) );
+ }
+
+ unsigned set = msl.get_decoration( resource.id, spv::DecorationDescriptorSet );
+ unsigned binding = msl.get_decoration( resource.id, spv::DecorationBinding );
+ newBinding.desc_set = set;
+ newBinding.binding = binding;
+ newBinding.msl_texture = binding - textureBindingOffset;
+ newBinding.msl_sampler = binding - textureBindingOffset;
+ msl.add_msl_resource_binding( newBinding );
+ }
+
+ for (auto &resource : resources.storage_images)
+ {
+ std::string name = msl.get_name(resource.id);
+
+ unsigned set = msl.get_decoration( resource.id, spv::DecorationDescriptorSet );
+ unsigned binding = msl.get_decoration( resource.id, spv::DecorationBinding );
+ newBinding.desc_set = set;
+ newBinding.binding = binding;
+ newBinding.msl_texture = binding - textureBindingOffset;
+ newBinding.msl_sampler = binding - textureBindingOffset;
+ msl.add_msl_resource_binding( newBinding );
+ }
+
+ std::string source = msl.compile();
+
+ if ('c' == _options.shaderType)
+ {
+ for (int i = 0; i < 3; ++i)
+ {
+ uint16_t dim = (uint16_t)msl.get_execution_mode_argument(spv::ExecutionMode::ExecutionModeLocalSize, i);
+ bx::write(_writer, dim, &err);
+ }
+ }
+
+ uint32_t shaderSize = (uint32_t)source.size();
+ bx::write(_writer, shaderSize, &err);
+ bx::write(_writer, source.c_str(), shaderSize, &err);
+ uint8_t nul = 0;
+ bx::write(_writer, nul, &err);
+ }
+ else
+ {
+ uint32_t shaderSize = (uint32_t)spirv.size() * sizeof(uint32_t);
+ bx::write(_writer, shaderSize, &err);
+ bx::write(_writer, spirv.data(), shaderSize, &err);
+ uint8_t nul = 0;
+ bx::write(_writer, nul, &err);
+ }
+ //
+ const uint8_t numAttr = (uint8_t)program->getNumLiveAttributes();
+ bx::write(_writer, numAttr, &err);
+
+ for (uint8_t ii = 0; ii < numAttr; ++ii)
+ {
+ bgfx::Attrib::Enum attr = toAttribEnum(program->getAttributeName(ii) );
+ if (bgfx::Attrib::Count != attr)
+ {
+ bx::write(_writer, bgfx::attribToId(attr), &err);
+ }
+ else
+ {
+ bx::write(_writer, uint16_t(UINT16_MAX), &err);
+ }
+ }
+
+ bx::write(_writer, size, &err);
+ }
+ }
+ }
+
+ delete program;
+ delete shader;
+
+ glslang::FinalizeProcess();
+
+ return compiled && linked && validated;
+ }
+
+} // namespace metal
+
+ bool compileMetalShader(const Options& _options, uint32_t _version, const std::string& _code, bx::WriterI* _writer)
+ {
+ return metal::compile(_options, _version, _code, _writer, true);
+ }
+
+} // namespace bgfx
diff --git a/3rdparty/bgfx/tools/shaderc/shaderc_pssl.cpp b/3rdparty/bgfx/tools/shaderc/shaderc_pssl.cpp
index 1b103624ae7..20e45bb215e 100644
--- a/3rdparty/bgfx/tools/shaderc/shaderc_pssl.cpp
+++ b/3rdparty/bgfx/tools/shaderc/shaderc_pssl.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright 2011-2018 Branimir Karadzic. All rights reserved.
- * License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause
+ * Copyright 2011-2022 Branimir Karadzic. All rights reserved.
+ * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE
*/
#include "shaderc.h"
@@ -10,7 +10,7 @@ namespace bgfx
bool compilePSSLShader(const Options& _options, uint32_t _version, const std::string& _code, bx::WriterI* _writer)
{
BX_UNUSED(_options, _version, _code, _writer);
- fprintf(stderr, "PSSL compiler is not supported.\n");
+ bx::printf("PSSL compiler is not supported.\n");
return false;
}
diff --git a/3rdparty/bgfx/tools/shaderc/shaderc_spirv.cpp b/3rdparty/bgfx/tools/shaderc/shaderc_spirv.cpp
index 1f2e165de0b..657cb1015cf 100644
--- a/3rdparty/bgfx/tools/shaderc/shaderc_spirv.cpp
+++ b/3rdparty/bgfx/tools/shaderc/shaderc_spirv.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright 2011-2018 Branimir Karadzic. All rights reserved.
- * License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause
+ * Copyright 2011-2022 Branimir Karadzic. All rights reserved.
+ * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE
*/
#include "shaderc.h"
@@ -8,12 +8,20 @@
BX_PRAGMA_DIAGNOSTIC_PUSH()
BX_PRAGMA_DIAGNOSTIC_IGNORED_MSVC(4100) // error C4100: 'inclusionDepth' : unreferenced formal parameter
BX_PRAGMA_DIAGNOSTIC_IGNORED_MSVC(4265) // error C4265: 'spv::spirvbin_t': class has virtual functions, but destructor is not virtual
+BX_PRAGMA_DIAGNOSTIC_IGNORED_CLANG_GCC("-Wattributes") // warning: attribute ignored
+BX_PRAGMA_DIAGNOSTIC_IGNORED_CLANG_GCC("-Wdeprecated-declarations") // warning: ‘MSLVertexAttr’ is deprecated
+BX_PRAGMA_DIAGNOSTIC_IGNORED_CLANG_GCC("-Wtype-limits") // warning: comparison of unsigned expression in ‘< 0’ is always false
BX_PRAGMA_DIAGNOSTIC_IGNORED_CLANG_GCC("-Wshadow") // warning: declaration of 'userData' shadows a member of 'glslang::TShader::Includer::IncludeResult'
#define ENABLE_OPT 1
#include <ShaderLang.h>
#include <ResourceLimits.h>
#include <SPIRV/SPVRemapper.h>
#include <SPIRV/GlslangToSpv.h>
+#include <webgpu/webgpu_cpp.h>
+#define SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS
+#include <spirv_msl.hpp>
+#include <spirv_reflect.hpp>
+#include <spirv-tools/optimizer.hpp>
BX_PRAGMA_DIAGNOSTIC_POP()
namespace bgfx
@@ -48,7 +56,9 @@ namespace bgfx
#include <tinystl/vector.h>
namespace stl = tinystl;
+#include "../../src/shader.h"
#include "../../src/shader_spirv.h"
+#include "../../3rdparty/khronos/vulkan-local/vulkan.h"
namespace bgfx { namespace spirv
{
@@ -137,15 +147,25 @@ namespace bgfx { namespace spirv
8, // MaxCullDistances
8, // MaxCombinedClipAndCullDistances
4, // MaxSamples
- 0, // maxMeshOutputVerticesNV;
- 0, // maxMeshOutputPrimitivesNV;
- 0, // maxMeshWorkGroupSizeX_NV;
- 0, // maxMeshWorkGroupSizeY_NV;
- 0, // maxMeshWorkGroupSizeZ_NV;
- 0, // maxTaskWorkGroupSizeX_NV;
- 0, // maxTaskWorkGroupSizeY_NV;
- 0, // maxTaskWorkGroupSizeZ_NV;
+ 0, // maxMeshOutputVerticesNV
+ 0, // maxMeshOutputPrimitivesNV
+ 0, // maxMeshWorkGroupSizeX_NV
+ 0, // maxMeshWorkGroupSizeY_NV
+ 0, // maxMeshWorkGroupSizeZ_NV
+ 0, // maxTaskWorkGroupSizeX_NV
+ 0, // maxTaskWorkGroupSizeY_NV
+ 0, // maxTaskWorkGroupSizeZ_NV
0, // maxMeshViewCountNV
+ 0, // maxMeshOutputVerticesEXT
+ 0, // maxMeshOutputPrimitivesEXT
+ 0, // maxMeshWorkGroupSizeX_EXT
+ 0, // maxMeshWorkGroupSizeY_EXT
+ 0, // maxMeshWorkGroupSizeZ_EXT
+ 0, // maxTaskWorkGroupSizeX_EXT
+ 0, // maxTaskWorkGroupSizeY_EXT
+ 0, // maxTaskWorkGroupSizeZ_EXT
+ 0, // maxMeshViewCountEXT
+ 0, // maxDualSourceDrawBuffersEXT
{ // limits
true, // nonInductiveForLoops
@@ -160,373 +180,93 @@ namespace bgfx { namespace spirv
},
};
- bool printAsm(uint32_t _offset, const SpvInstruction& _instruction, void* _userData)
+ bgfx::TextureComponentType::Enum SpirvCrossBaseTypeToFormatType(spirv_cross::SPIRType::BaseType spirvBaseType, bool depth)
{
- BX_UNUSED(_userData);
- char temp[512];
- toString(temp, sizeof(temp), _instruction);
- BX_TRACE("%5d: %s", _offset, temp);
- return true;
- }
-
- struct SpvReflection
- {
- struct TypeId
- {
- enum Enum
- {
- Void,
- Bool,
- Int32,
- Int64,
- Uint32,
- Uint64,
- Float,
- Double,
-
- Vector,
- Matrix,
-
- Count
- };
-
- TypeId()
- : baseType(Enum::Count)
- , type(Enum::Count)
- , numComponents(0)
- {
- }
-
- Enum baseType;
- Enum type;
- uint32_t numComponents;
-
- stl::string toString()
- {
- stl::string result;
-
- switch (type)
- {
- case Float:
- result.append("float");
- break;
-
- case Vector:
- bx::stringPrintf(result, "vec%d"
- , numComponents
- );
- break;
-
- case Matrix:
- bx::stringPrintf(result, "mat%d"
- , numComponents
- );
-
- default:
- break;
- }
-
- return result;
- }
- };
-
- struct Id
- {
- struct Variable
- {
- Variable()
- : decoration(SpvDecoration::Count)
- , builtin(SpvBuiltin::Count)
- , storageClass(SpvStorageClass::Count)
- , location(UINT32_MAX)
- , offset(UINT32_MAX)
- , type(UINT32_MAX)
- {
- }
-
- stl::string name;
- SpvDecoration::Enum decoration;
- SpvBuiltin::Enum builtin;
- SpvStorageClass::Enum storageClass;
- uint32_t location;
- uint32_t offset;
- uint32_t type;
- };
-
- typedef stl::vector<Variable> MemberArray;
-
- Variable var;
- MemberArray members;
- };
-
- typedef stl::unordered_map<uint32_t, TypeId> TypeIdMap;
- typedef stl::unordered_map<uint32_t, Id> IdMap;
-
- TypeIdMap typeIdMap;
- IdMap idMap;
-
- stl::string getTypeName(uint32_t _typeId)
- {
- return getTypeId(_typeId).toString();
- }
-
- Id& getId(uint32_t _id)
- {
- IdMap::iterator it = idMap.find(_id);
- if (it == idMap.end() )
- {
- Id id;
- stl::pair<IdMap::iterator, bool> result = idMap.insert(stl::make_pair(_id, id) );
- it = result.first;
- }
-
- return it->second;
- }
-
- Id::Variable& get(uint32_t _id, uint32_t _idx)
- {
- Id& id = getId(_id);
- id.members.resize(bx::uint32_max(_idx+1, uint32_t(id.members.size() ) ) );
- return id.members[_idx];
- }
-
- TypeId& getTypeId(uint32_t _id)
- {
- TypeIdMap::iterator it = typeIdMap.find(_id);
- if (it == typeIdMap.end() )
- {
- TypeId id;
- stl::pair<TypeIdMap::iterator, bool> result = typeIdMap.insert(stl::make_pair(_id, id) );
- it = result.first;
- }
-
- return it->second;
- }
-
- void update(uint32_t _id, const stl::string& _name)
- {
- getId(_id).var.name = _name;
- }
-
- BX_NO_INLINE void update(Id::Variable& _variable, SpvDecoration::Enum _decoration, uint32_t _literal)
- {
- _variable.decoration = _decoration;
- switch (_decoration)
- {
- case SpvDecoration::Location:
- _variable.location = _literal;
- break;
-
- case SpvDecoration::Offset:
- _variable.offset = _literal;
- break;
-
- case SpvDecoration::BuiltIn:
- _variable.builtin = SpvBuiltin::Enum(_literal);
- break;
-
- default:
- break;
- }
- }
-
- BX_NO_INLINE void update(Id::Variable& _variable, uint32_t _type, SpvStorageClass::Enum _storageClass)
- {
- _variable.type = _type;
- _variable.storageClass = _storageClass;
- }
-
- void update(uint32_t _id, SpvDecoration::Enum _decoration, uint32_t _literal)
- {
- update(getId(_id).var, _decoration, _literal);
- }
-
- void update(uint32_t _id, uint32_t _type, SpvStorageClass::Enum _storageClass)
- {
- update(getId(_id).var, _type, _storageClass);
- }
-
- void update(uint32_t _id, uint32_t _idx, const stl::string& _name)
- {
- Id::Variable& var = get(_id, _idx);
- var.name = _name;
- }
-
- BX_NO_INLINE void update(uint32_t _id, uint32_t _idx, SpvDecoration::Enum _decoration, uint32_t _literal)
- {
- update(get(_id, _idx), _decoration, _literal);
- }
-
- void update(uint32_t _id, TypeId::Enum _type)
- {
- TypeId& type = getTypeId(_id);
- type.type = _type;
- }
+ if (depth)
+ return bgfx::TextureComponentType::Depth;
- void update(uint32_t _id, TypeId::Enum _type, uint32_t _baseTypeId, uint32_t _numComonents)
+ switch (spirvBaseType)
{
- TypeId& type = getTypeId(_id);
- type.type = _type;
-
- type.baseType = getTypeId(_baseTypeId).type;
- type.numComponents = _numComonents;
+ case spirv_cross::SPIRType::Float:
+ return bgfx::TextureComponentType::Float;
+ case spirv_cross::SPIRType::Int:
+ return bgfx::TextureComponentType::Int;
+ case spirv_cross::SPIRType::UInt:
+ return bgfx::TextureComponentType::Uint;
+ default:
+ return bgfx::TextureComponentType::Float;
}
- };
+ }
- bool spvParse(uint32_t _offset, const SpvInstruction& _instruction, void* _userData)
+ bgfx::TextureDimension::Enum SpirvDimToTextureViewDimension(spv::Dim _dim, bool _arrayed)
{
- BX_UNUSED(_offset);
- SpvReflection* spv = (SpvReflection*)_userData;
-
- switch (_instruction.opcode)
+ switch (_dim)
{
- case SpvOpcode::Name:
- spv->update(_instruction.result
- , _instruction.operand[0].literalString
- );
- break;
-
- case SpvOpcode::Decorate:
- spv->update(_instruction.operand[0].data
- , SpvDecoration::Enum(_instruction.operand[1].data)
- , _instruction.operand[2].data
- );
- break;
-
- case SpvOpcode::MemberName:
- spv->update(_instruction.result
- , _instruction.operand[0].data
- , _instruction.operand[1].literalString
- );
- break;
-
- case SpvOpcode::MemberDecorate:
- spv->update(_instruction.operand[0].data
- , _instruction.operand[1].data
- , SpvDecoration::Enum(_instruction.operand[2].data)
- , _instruction.operand[3].data
- );
- break;
-
- case SpvOpcode::Variable:
- spv->update(_instruction.result
- , _instruction.type
- , SpvStorageClass::Enum(_instruction.operand[0].data)
- );
- break;
-
- case SpvOpcode::TypeVoid:
- spv->update(_instruction.result, SpvReflection::TypeId::Void);
- break;
-
- case SpvOpcode::TypeBool:
- spv->update(_instruction.result, SpvReflection::TypeId::Bool);
- break;
-
- case SpvOpcode::TypeInt:
- spv->update(_instruction.result
- , 32 == _instruction.operand[0].data
- ? 0 == _instruction.operand[1].data
- ? SpvReflection::TypeId::Uint32
- : SpvReflection::TypeId::Int32
- : 0 == _instruction.operand[1].data
- ? SpvReflection::TypeId::Uint64
- : SpvReflection::TypeId::Int64
- );
- break;
-
- case SpvOpcode::TypeFloat:
- spv->update(_instruction.result
- , 32 == _instruction.operand[0].data
- ? SpvReflection::TypeId::Float
- : SpvReflection::TypeId::Double
- );
- break;
-
- case SpvOpcode::TypeVector:
- spv->update(_instruction.result
- , SpvReflection::TypeId::Vector
- , _instruction.operand[0].data
- , _instruction.operand[1].data
- );
- break;
-
- case SpvOpcode::TypeMatrix:
- spv->update(_instruction.result
- , SpvReflection::TypeId::Matrix
- , _instruction.operand[0].data
- , _instruction.operand[1].data
- );
- break;
-
- case SpvOpcode::TypeImage:
- case SpvOpcode::TypeSampler:
- case SpvOpcode::TypeSampledImage:
- break;
-
- case SpvOpcode::TypeStruct:
- for (uint32_t ii = 0, num = _instruction.numOperands; ii < num; ++ii)
- {
- SpvReflection::Id::Variable& var = spv->get(_instruction.result, ii);
- var.type = _instruction.operand[ii].data;
- }
- break;
-
+ case spv::Dim::Dim1D:
+ return bgfx::TextureDimension::Dimension1D;
+ case spv::Dim::Dim2D:
+ return _arrayed
+ ? bgfx::TextureDimension::Dimension2DArray
+ : bgfx::TextureDimension::Dimension2D
+ ;
+ case spv::Dim::Dim3D:
+ return bgfx::TextureDimension::Dimension3D;
+ case spv::Dim::DimCube:
+ return _arrayed
+ ? bgfx::TextureDimension::DimensionCubeArray
+ : bgfx::TextureDimension::DimensionCube
+ ;
default:
- break;
+ BX_ASSERT(false, "Unknown texture dimension %d", _dim);
+ return bgfx::TextureDimension::Dimension2D;
}
-
- return true;
}
-#define DBG(...) // bx::debugPrintf(__VA_ARGS__)
-
- void disassemble(bx::WriterI* _writer, bx::ReaderSeekerI* _reader, bx::Error* _err)
+ static bgfx::TextureFormat::Enum s_textureFormats[] =
{
- BX_UNUSED(_writer);
-
- uint32_t magic;
- bx::peek(_reader, magic);
-
- SpvReflection spvx;
-
- if (magic == SPV_CHUNK_HEADER)
- {
- SpirV spirv;
- read(_reader, spirv, _err);
- parse(spirv.shader, spvParse, &spvx, _err);
-
- for (SpvReflection::IdMap::const_iterator it = spvx.idMap.begin(), itEnd = spvx.idMap.end(); it != itEnd; ++it)
- {
- const SpvReflection::Id& id = it->second;
- uint32_t num = uint32_t(id.members.size() );
- if (0 < num
- && 0 != bx::strCmp(id.var.name.c_str(), "gl_PerVertex") )
- {
- DBG("%3d: %s %d %s\n"
- , it->first
- , id.var.name.c_str()
- , id.var.location
- , getName(id.var.storageClass)
- );
- DBG("{\n");
- for (uint32_t ii = 0; ii < num; ++ii)
- {
- const SpvReflection::Id::Variable& var = id.members[ii];
- DBG("\t\t%s %s %d %s\n"
- , spvx.getTypeName(var.type).c_str()
- , var.name.c_str()
- , var.offset
- , getName(var.storageClass)
- );
- BX_UNUSED(var);
- }
- DBG("}\n");
- }
- }
-
- }
- }
+ bgfx::TextureFormat::Unknown, // spv::ImageFormatUnknown = 0
+ bgfx::TextureFormat::RGBA32F, // spv::ImageFormatRgba32f = 1
+ bgfx::TextureFormat::RGBA16F, // spv::ImageFormatRgba16f = 2
+ bgfx::TextureFormat::R32F, // spv::ImageFormatR32f = 3
+ bgfx::TextureFormat::RGBA8, // spv::ImageFormatRgba8 = 4
+ bgfx::TextureFormat::RGBA8S, // spv::ImageFormatRgba8Snorm = 5
+ bgfx::TextureFormat::RG32F, // spv::ImageFormatRg32f = 6
+ bgfx::TextureFormat::RG16F, // spv::ImageFormatRg16f = 7
+ bgfx::TextureFormat::RG11B10F, // spv::ImageFormatR11fG11fB10f = 8
+ bgfx::TextureFormat::R16F, // spv::ImageFormatR16f = 9
+ bgfx::TextureFormat::RGBA16, // spv::ImageFormatRgba16 = 10
+ bgfx::TextureFormat::RGB10A2, // spv::ImageFormatRgb10A2 = 11
+ bgfx::TextureFormat::RG16, // spv::ImageFormatRg16 = 12
+ bgfx::TextureFormat::RG8, // spv::ImageFormatRg8 = 13
+ bgfx::TextureFormat::R16, // spv::ImageFormatR16 = 14
+ bgfx::TextureFormat::R8, // spv::ImageFormatR8 = 15
+ bgfx::TextureFormat::RGBA16S, // spv::ImageFormatRgba16Snorm = 16
+ bgfx::TextureFormat::RG16S, // spv::ImageFormatRg16Snorm = 17
+ bgfx::TextureFormat::RG8S, // spv::ImageFormatRg8Snorm = 18
+ bgfx::TextureFormat::R16S, // spv::ImageFormatR16Snorm = 19
+ bgfx::TextureFormat::R8S, // spv::ImageFormatR8Snorm = 20
+ bgfx::TextureFormat::RGBA32I, // spv::ImageFormatRgba32i = 21
+ bgfx::TextureFormat::RGBA16I, // spv::ImageFormatRgba16i = 22
+ bgfx::TextureFormat::RGBA8I, // spv::ImageFormatRgba8i = 23
+ bgfx::TextureFormat::R32I, // spv::ImageFormatR32i = 24
+ bgfx::TextureFormat::RG32I, // spv::ImageFormatRg32i = 25
+ bgfx::TextureFormat::RG16I, // spv::ImageFormatRg16i = 26
+ bgfx::TextureFormat::RG8I, // spv::ImageFormatRg8i = 27
+ bgfx::TextureFormat::R16I, // spv::ImageFormatR16i = 28
+ bgfx::TextureFormat::R8I, // spv::ImageFormatR8i = 29
+ bgfx::TextureFormat::RGBA32U, // spv::ImageFormatRgba32ui = 30
+ bgfx::TextureFormat::RGBA16U, // spv::ImageFormatRgba16ui = 31
+ bgfx::TextureFormat::RGBA8U, // spv::ImageFormatRgba8ui = 32
+ bgfx::TextureFormat::R32U, // spv::ImageFormatR32ui = 33
+ bgfx::TextureFormat::Unknown, // spv::ImageFormatRgb10a2ui = 34
+ bgfx::TextureFormat::RG32U, // spv::ImageFormatRg32ui = 35
+ bgfx::TextureFormat::RG16U, // spv::ImageFormatRg16ui = 36
+ bgfx::TextureFormat::RG8U, // spv::ImageFormatRg8ui = 37
+ bgfx::TextureFormat::R16U, // spv::ImageFormatR16ui = 38
+ bgfx::TextureFormat::R8U, // spv::ImageFormatR8ui = 39
+ bgfx::TextureFormat::Unknown, // spv::ImageFormatR64ui = 40
+ bgfx::TextureFormat::Unknown, // spv::ImageFormatR64i = 41
+ };
static EShLanguage getLang(char _p)
{
@@ -539,11 +279,6 @@ namespace bgfx { namespace spirv
}
}
-// static void printError(spv_message_level_t, const char*, const spv_position_t&, const char* _message)
-// {
-// fprintf(stderr, "%s\n", _message);
-// }
-
static const char* s_attribName[] =
{
"a_position",
@@ -580,21 +315,138 @@ namespace bgfx { namespace spirv
return bgfx::Attrib::Count;
}
+ static const char* s_samplerTypes[] =
+ {
+ "BgfxSampler2D",
+ "BgfxISampler2D",
+ "BgfxUSampler2D",
+ "BgfxSampler2DArray",
+ "BgfxSampler2DShadow",
+ "BgfxSampler2DArrayShadow",
+ "BgfxSampler3D",
+ "BgfxISampler3D",
+ "BgfxUSampler3D",
+ "BgfxSamplerCube",
+ "BgfxSamplerCubeShadow",
+ "BgfxSampler2DMS",
+ };
+
+ static uint16_t writeUniformArray(bx::WriterI* _writer, const UniformArray& uniforms, bool isFragmentShader)
+ {
+ uint16_t size = 0;
+
+ bx::ErrorAssert err;
+
+ uint16_t count = uint16_t(uniforms.size());
+ bx::write(_writer, count, &err);
+
+ uint32_t fragmentBit = isFragmentShader ? kUniformFragmentBit : 0;
+
+ for (uint16_t ii = 0; ii < count; ++ii)
+ {
+ const Uniform& un = uniforms[ii];
+
+ if ( (un.type & ~kUniformMask) > UniformType::End)
+ {
+ size = bx::max(size, (uint16_t)(un.regIndex + un.regCount*16) );
+ }
+
+ uint8_t nameSize = (uint8_t)un.name.size();
+ bx::write(_writer, nameSize, &err);
+ bx::write(_writer, un.name.c_str(), nameSize, &err);
+ bx::write(_writer, uint8_t(un.type | fragmentBit), &err);
+ bx::write(_writer, un.num, &err);
+ bx::write(_writer, un.regIndex, &err);
+ bx::write(_writer, un.regCount, &err);
+ bx::write(_writer, un.texComponent, &err);
+ bx::write(_writer, un.texDimension, &err);
+ bx::write(_writer, un.texFormat, &err);
+
+ BX_TRACE("%s, %s, %d, %d, %d"
+ , un.name.c_str()
+ , getUniformTypeName(UniformType::Enum(un.type & ~kUniformMask))
+ , un.num
+ , un.regIndex
+ , un.regCount
+ );
+ }
+ return size;
+ }
+
+ static spv_target_env getSpirvTargetVersion(uint32_t version)
+ {
+ switch (version)
+ {
+ case 1010:
+ return SPV_ENV_VULKAN_1_0;
+ case 1311:
+ return SPV_ENV_VULKAN_1_1;
+ case 1411:
+ return SPV_ENV_VULKAN_1_1_SPIRV_1_4;
+ case 1512:
+ return SPV_ENV_VULKAN_1_2;
+ default:
+ BX_ASSERT(0, "Unknown SPIR-V version requested. Returning SPV_ENV_VULKAN_1_0 as default.");
+ return SPV_ENV_VULKAN_1_0;
+ }
+ }
+
+ static glslang::EShTargetClientVersion getGlslangTargetVulkanVersion(uint32_t version)
+ {
+ switch (version)
+ {
+ case 1010:
+ return glslang::EShTargetVulkan_1_0;
+ case 1311:
+ case 1411:
+ return glslang::EShTargetVulkan_1_1;
+ case 1512:
+ return glslang::EShTargetVulkan_1_2;
+ default:
+ BX_ASSERT(0, "Unknown SPIR-V version requested. Returning EShTargetVulkan_1_0 as default.");
+ return glslang::EShTargetVulkan_1_0;
+ }
+ }
+
+ static glslang::EShTargetLanguageVersion getGlslangTargetSpirvVersion(uint32_t version)
+ {
+ switch (version)
+ {
+ case 1010:
+ return glslang::EShTargetSpv_1_0;
+ case 1311:
+ return glslang::EShTargetSpv_1_3;
+ case 1411:
+ return glslang::EShTargetSpv_1_4;
+ case 1512:
+ return glslang::EShTargetSpv_1_5;
+ default:
+ BX_ASSERT(0, "Unknown SPIR-V version requested. Returning EShTargetSpv_1_0 as default.");
+ return glslang::EShTargetSpv_1_0;
+ }
+ }
+
+ /// This is the value used to fill out GLSLANG's SpvVersion object.
+ /// The required value is that which is defined by GL_KHR_vulkan_glsl, which is defined here:
+ /// https://github.com/KhronosGroup/GLSL/blob/master/extensions/khr/GL_KHR_vulkan_glsl.txt
+ /// The value is 100.
+ constexpr int s_GLSL_VULKAN_CLIENT_VERSION = 100;
+
static bool compile(const Options& _options, uint32_t _version, const std::string& _code, bx::WriterI* _writer, bool _firstPass)
{
BX_UNUSED(_version);
glslang::InitializeProcess();
- glslang::TProgram* program = new glslang::TProgram;
-
EShLanguage stage = getLang(_options.shaderType);
if (EShLangCount == stage)
{
- fprintf(stderr, "Error: Unknown shader type '%c'.\n", _options.shaderType);
+ bx::printf("Error: Unknown shader type '%c'.\n", _options.shaderType);
return false;
}
- glslang::TShader* shader = new glslang::TShader(stage);
+
+ glslang::TProgram* program = new glslang::TProgram;
+ glslang::TShader* shader = new glslang::TShader(stage);
EShMessages messages = EShMessages(0
| EShMsgDefault
@@ -604,6 +456,17 @@ namespace bgfx { namespace spirv
);
shader->setEntryPoint("main");
+ shader->setAutoMapBindings(true);
+ shader->setEnvInput(glslang::EShSourceHlsl, stage, glslang::EShClientVulkan, s_GLSL_VULKAN_CLIENT_VERSION);
+ shader->setEnvClient(glslang::EShClientVulkan, getGlslangTargetVulkanVersion(_version));
+ shader->setEnvTarget(glslang::EShTargetSpv, getGlslangTargetSpirvVersion(_version));
+
+ // Reserve two spots for the stage UBOs
+ shader->setShiftBinding(glslang::EResUbo, (stage == EShLanguage::EShLangFragment ? kSpirvFragmentBinding : kSpirvVertexBinding));
+ shader->setShiftBinding(glslang::EResTexture, kSpirvBindShift);
+ shader->setShiftBinding(glslang::EResSampler, kSpirvBindShift + kSpirvSamplerShift);
+ shader->setShiftBinding(glslang::EResSsbo, kSpirvBindShift);
+ shader->setShiftBinding(glslang::EResImage, kSpirvBindShift);
const char* shaderStrings[] = { _code.c_str() };
shader->setStrings(
@@ -650,7 +513,7 @@ namespace bgfx { namespace spirv
printCode(_code.c_str(), line, start, end, column);
- fprintf(stderr, "%s\n", log);
+ bx::printf("%s\n", log);
}
}
else
@@ -666,36 +529,53 @@ namespace bgfx { namespace spirv
const char* log = program->getInfoLog();
if (NULL != log)
{
- fprintf(stderr, "%s\n", log);
+ bx::printf("%s\n", log);
}
}
else
{
- uint16_t size = 0;
-
program->buildReflection();
if (_firstPass)
{
- const size_t strLength = bx::strLen("uniform");
-
// first time through, we just find unused uniforms and get rid of them
std::string output;
- bx::Error err;
- LineReader reader(_code.c_str() );
- while (err.isOk() )
+
+ struct Uniform
+ {
+ std::string name;
+ std::string decl;
+ };
+ std::vector<Uniform> uniforms;
+
+ bx::LineReader reader(_code.c_str() );
+ while (!reader.isDone() )
{
- char str[4096];
- int32_t len = bx::read(&reader, str, BX_COUNTOF(str), &err);
- if (err.isOk() )
+ bx::StringView strLine = reader.next();
+
+ bool moved = false;
+
+ bx::StringView str = strFind(strLine, "uniform ");
+ if (!str.isEmpty() )
{
- std::string strLine(str, len);
+ bool found = false;
+ bool sampler = false;
+ std::string name = "";
+
+ // add to samplers
- size_t index = strLine.find("uniform ");
- if (index != std::string::npos)
+ for (uint32_t ii = 0; ii < BX_COUNTOF(s_samplerTypes); ++ii)
{
- bool found = false;
+ if (!bx::findIdentifierMatch(strLine, s_samplerTypes[ii]).isEmpty() )
+ {
+ found = true;
+ sampler = true;
+ break;
+ }
+ }
+ if (!found)
+ {
for (int32_t ii = 0, num = program->getNumLiveUniformVariables(); ii < num; ++ii)
{
// matching lines like: uniform u_name;
@@ -703,82 +583,108 @@ namespace bgfx { namespace spirv
// included in the uniform blob that the application must upload
// we can't just remove them, because unused functions might still reference
// them and cause a compile error when they're gone
- if (!bx::findIdentifierMatch(strLine.c_str(), program->getUniformName(ii) ).isEmpty() )
+ if (!bx::findIdentifierMatch(strLine, program->getUniformName(ii) ).isEmpty() )
{
found = true;
+ name = program->getUniformName(ii);
break;
}
}
+ }
- if (!found)
- {
- strLine = strLine.replace(index, strLength, "static");
- }
+ if (!found)
+ {
+ output.append(strLine.getPtr(), str.getPtr() );
+ output += "static ";
+ output.append(str.getTerm(), strLine.getTerm() );
+ output += "\n";
+ moved = true;
+ }
+ else if (!sampler)
+ {
+ Uniform uniform;
+ uniform.name = name;
+ uniform.decl = std::string(strLine.getPtr(), strLine.getTerm() );
+ uniforms.push_back(uniform);
+ moved = true;
}
+ }
- output += strLine;
+ if (!moved)
+ {
+ output.append(strLine.getPtr(), strLine.getTerm() );
+ output += "\n";
}
}
+ std::string uniformBlock;
+ uniformBlock += "cbuffer UniformBlock\n";
+ uniformBlock += "{\n";
+
+ for (const Uniform& uniform : uniforms)
+ {
+ uniformBlock += uniform.decl.substr(7 /* uniform */);
+ uniformBlock += "\n";
+ }
+
+ uniformBlock += "};\n";
+
+ output = uniformBlock + output;
+
// recompile with the unused uniforms converted to statics
+ delete program;
+ delete shader;
return compile(_options, _version, output.c_str(), _writer, false);
}
+ UniformArray uniforms;
+
{
uint16_t count = (uint16_t)program->getNumLiveUniformVariables();
- bx::write(_writer, count);
- uint32_t fragmentBit = _options.shaderType == 'f' ? BGFX_UNIFORM_FRAGMENTBIT : 0;
for (uint16_t ii = 0; ii < count; ++ii)
{
Uniform un;
un.name = program->getUniformName(ii);
+ if (bx::hasSuffix(un.name.c_str(), ".@data") )
+ {
+ continue;
+ }
+
un.num = uint8_t(program->getUniformArraySize(ii) );
const uint32_t offset = program->getUniformBufferOffset(ii);
un.regIndex = uint16_t(offset);
un.regCount = un.num;
- switch (program->getUniformType(ii))
+ switch (program->getUniformType(ii) )
{
case 0x1404: // GL_INT:
- un.type = UniformType::Int1;
+ un.type = UniformType::Sampler;
break;
+
case 0x8B52: // GL_FLOAT_VEC4:
un.type = UniformType::Vec4;
break;
+
case 0x8B5B: // GL_FLOAT_MAT3:
un.type = UniformType::Mat3;
un.regCount *= 3;
break;
+
case 0x8B5C: // GL_FLOAT_MAT4:
un.type = UniformType::Mat4;
un.regCount *= 4;
break;
+
default:
- un.type = UniformType::End;
- break;
+ continue;
}
- size += un.regCount*16;
-
- uint8_t nameSize = (uint8_t)un.name.size();
- bx::write(_writer, nameSize);
- bx::write(_writer, un.name.c_str(), nameSize);
- bx::write(_writer, uint8_t(un.type | fragmentBit));
- bx::write(_writer, un.num);
- bx::write(_writer, un.regIndex);
- bx::write(_writer, un.regCount);
-
- BX_TRACE("%s, %s, %d, %d, %d"
- , un.name.c_str()
- , getUniformTypeName(un.type)
- , un.num
- , un.regIndex
- , un.regCount
- );
+ uniforms.push_back(un);
}
}
+
if (g_verbose)
{
program->dumpReflection();
@@ -794,35 +700,168 @@ namespace bgfx { namespace spirv
glslang::GlslangToSpv(*intermediate, spirv, &options);
- bx::Error err;
- bx::WriterI* writer = bx::getDebugOut();
- bx::MemoryReader reader(spirv.data(), uint32_t(spirv.size()*4) );
- disassemble(writer, &reader, &err);
+ spvtools::Optimizer opt(getSpirvTargetVersion(_version));
+
+ auto print_msg_to_stderr = [](
+ spv_message_level_t
+ , const char*
+ , const spv_position_t&
+ , const char* m
+ )
+ {
+ bx::printf("Error: %s\n", m);
+ };
+
+ opt.SetMessageConsumer(print_msg_to_stderr);
- uint32_t shaderSize = (uint32_t)spirv.size()*sizeof(uint32_t);
- bx::write(_writer, shaderSize);
- bx::write(_writer, spirv.data(), shaderSize);
- uint8_t nul = 0;
- bx::write(_writer, nul);
+ opt.RegisterLegalizationPasses();
- //
- const uint8_t numAttr = (uint8_t)program->getNumLiveAttributes();
- bx::write(_writer, numAttr);
+ spvtools::ValidatorOptions validatorOptions;
+ validatorOptions.SetBeforeHlslLegalization(true);
- for (uint8_t ii = 0; ii < numAttr; ++ii)
+ if (!opt.Run(
+ spirv.data()
+ , spirv.size()
+ , &spirv
+ , validatorOptions
+ , false
+ ) )
+ {
+ compiled = false;
+ }
+ else
{
- bgfx::Attrib::Enum attr = toAttribEnum(program->getAttributeName(ii) );
- if (bgfx::Attrib::Count != attr)
+ if (g_verbose)
{
- bx::write(_writer, bgfx::attribToId(attr) );
+ glslang::SpirvToolsDisassemble(std::cout, spirv, getSpirvTargetVersion(_version));
}
- else
+
+ spirv_cross::CompilerReflection refl(spirv);
+ spirv_cross::ShaderResources resourcesrefl = refl.get_shader_resources();
+
+ // Loop through the separate_images, and extract the uniform names:
+ for (auto &resource : resourcesrefl.separate_images)
{
- bx::write(_writer, uint16_t(UINT16_MAX) );
+ std::string name = refl.get_name(resource.id);
+
+ if (name.size() > 7
+ && 0 == bx::strCmp(name.c_str() + name.length() - 7, "Texture") )
+ {
+ name = name.substr(0, name.length() - 7);
+ }
+
+ uint32_t binding_index = refl.get_decoration(resource.id, spv::Decoration::DecorationBinding);
+
+ auto imageType = refl.get_type(resource.base_type_id).image;
+ auto componentType = refl.get_type(imageType.type).basetype;
+
+ bool isCompareSampler = false;
+ for (auto& sampler : resourcesrefl.separate_samplers)
+ {
+ if (binding_index + 16 == refl.get_decoration(sampler.id, spv::Decoration::DecorationBinding) )
+ {
+ std::string samplerName = refl.get_name(sampler.id);
+ isCompareSampler = refl.variable_is_depth_or_compare(sampler.id) || samplerName.find("Comparison") != std::string::npos;
+ break;
+ }
+ }
+
+ Uniform un;
+ un.name = name;
+ un.type = UniformType::Enum(UniformType::Sampler
+ | kUniformSamplerBit
+ | (isCompareSampler ? kUniformCompareBit : 0)
+ );
+
+ un.texComponent = textureComponentTypeToId(SpirvCrossBaseTypeToFormatType(componentType, imageType.depth) );
+ un.texDimension = textureDimensionToId(SpirvDimToTextureViewDimension(imageType.dim, imageType.arrayed) );
+ un.texFormat = uint16_t(s_textureFormats[imageType.format]);
+
+ un.regIndex = uint16_t(binding_index);
+ un.regCount = 0; // unused
+
+ uniforms.push_back(un);
}
- }
- bx::write(_writer, size);
+ // Loop through the storage_images, and extract the uniform names:
+ for (auto &resource : resourcesrefl.storage_images)
+ {
+ std::string name = refl.get_name(resource.id);
+
+ uint32_t binding_index = refl.get_decoration(resource.id, spv::Decoration::DecorationBinding);
+
+ auto imageType = refl.get_type(resource.base_type_id).image;
+ auto componentType = refl.get_type(imageType.type).basetype;
+
+ spirv_cross::Bitset flags = refl.get_decoration_bitset(resource.id);
+ UniformType::Enum type = flags.get(spv::DecorationNonWritable)
+ ? UniformType::Enum(kUniformReadOnlyBit | UniformType::End)
+ : UniformType::End;
+
+ Uniform un;
+ un.name = name;
+ un.type = type;
+
+ un.texComponent = textureComponentTypeToId(SpirvCrossBaseTypeToFormatType(componentType, imageType.depth) );
+ un.texDimension = textureDimensionToId(SpirvDimToTextureViewDimension(imageType.dim, imageType.arrayed) );
+ un.texFormat = uint16_t(s_textureFormats[imageType.format]);
+
+ un.regIndex = uint16_t(binding_index);
+ un.regCount = descriptorTypeToId(DescriptorType::StorageImage);
+
+ uniforms.push_back(un);
+ }
+
+ bx::Error err;
+
+ // Loop through the storage buffer, and extract the uniform names:
+ for (auto& resource : resourcesrefl.storage_buffers)
+ {
+ std::string name = refl.get_name(resource.id);
+
+ uint32_t binding_index = refl.get_decoration(resource.id, spv::Decoration::DecorationBinding);
+
+ spirv_cross::Bitset flags = refl.get_buffer_block_flags(resource.id);
+ UniformType::Enum type = flags.get(spv::DecorationNonWritable)
+ ? UniformType::Enum(kUniformReadOnlyBit | UniformType::End)
+ : UniformType::End;
+
+ Uniform un;
+ un.name = name;
+ un.type = type;
+ un.num = 0;
+ un.regIndex = uint16_t(binding_index);
+ un.regCount = descriptorTypeToId(DescriptorType::StorageBuffer);
+
+ uniforms.push_back(un);
+ }
+
+ uint16_t size = writeUniformArray( _writer, uniforms, _options.shaderType == 'f');
+
+ uint32_t shaderSize = (uint32_t)spirv.size() * sizeof(uint32_t);
+ bx::write(_writer, shaderSize, &err);
+ bx::write(_writer, spirv.data(), shaderSize, &err);
+ uint8_t nul = 0;
+ bx::write(_writer, nul, &err);
+
+ const uint8_t numAttr = (uint8_t)program->getNumLiveAttributes();
+ bx::write(_writer, numAttr, &err);
+
+ for (uint8_t ii = 0; ii < numAttr; ++ii)
+ {
+ bgfx::Attrib::Enum attr = toAttribEnum(program->getAttributeName(ii) );
+ if (bgfx::Attrib::Count != attr)
+ {
+ bx::write(_writer, bgfx::attribToId(attr), &err);
+ }
+ else
+ {
+ bx::write(_writer, uint16_t(UINT16_MAX), &err);
+ }
+ }
+
+ bx::write(_writer, size, &err);
+ }
}
}
diff --git a/3rdparty/bgfx/tools/texturev/common.sh b/3rdparty/bgfx/tools/texturev/common.sh
index 8518cd143c2..7f91a6efdce 100644
--- a/3rdparty/bgfx/tools/texturev/common.sh
+++ b/3rdparty/bgfx/tools/texturev/common.sh
@@ -1,15 +1,19 @@
/*
- * Copyright 2011-2018 Branimir Karadzic. All rights reserved.
- * License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause
+ * Copyright 2011-2022 Branimir Karadzic. All rights reserved.
+ * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE
*/
#include <bgfx_shader.sh>
-uniform vec4 u_params;
-#define u_textureLod u_params.x
-#define u_textureLayer u_params.y
-#define u_inLinear u_params.z
-#define u_ev u_params.w
+uniform vec4 u_params0;
+#define u_textureLod u_params0.x
+#define u_textureLayer u_params0.y
+#define u_inLinear u_params0.z
+#define u_ev u_params0.w
+
+uniform vec4 u_params1;
+#define u_outputFormat u_params1.x
+#define u_sdrWhiteNits u_params1.y
vec3 toLinear(vec3 _rgb)
{
@@ -21,8 +25,107 @@ vec3 toGamma(vec3 _rgb)
return pow(abs(_rgb), vec3_splat(1.0/2.2) );
}
+vec3 applyExposure(vec3 _rgb)
+{
+ vec3 rgb = mix(toLinear(_rgb.xyz), _rgb.xyz, u_inLinear);
+ return (rgb * pow(2.0, u_ev) );
+}
+
vec4 toEv(vec4 _color)
{
- vec3 rgb = mix(toLinear(_color.xyz), _color.xyz, u_inLinear);
- return vec4(toGamma(rgb * pow(2.0, u_ev) ), _color.w);
+ return vec4(toGamma(applyExposure(_color.xyz) ), _color.w);
+}
+
+float toSrgbGamma(float _val)
+{
+ if (_val <= 0.0031308)
+ {
+ return 12.92 * _val;
+ }
+ else
+ {
+ return 1.055 * pow(_val, (1.0/2.4) ) - 0.055;
+ }
+}
+
+vec3 toSrgbGamma(vec3 _rgb)
+{
+ _rgb.x = toSrgbGamma(_rgb.x);
+ _rgb.y = toSrgbGamma(_rgb.y);
+ _rgb.z = toSrgbGamma(_rgb.z);
+ return _rgb;
+}
+
+vec3 toXyzFromSrgb(vec3 _rgb)
+{
+ mat3 toXYZ = mat3(
+ 0.4125564, 0.3575761, 0.1804375,
+ 0.2126729, 0.7151522, 0.0721750,
+ 0.0193339, 0.1191920, 0.9503041
+ );
+ return mul(toXYZ, _rgb);
+}
+
+vec3 toRec2020FromXyz(vec3 _xyz)
+{
+ mat3 toRec2020 = mat3(
+ 1.7166512, -0.3556708, -0.2533663,
+ -0.6666844, 1.6164812, 0.0157685,
+ 0.0176399, -0.0427706, 0.9421031
+ );
+ return mul(toRec2020, _xyz);
+}
+
+
+vec3 toPqOetf(vec3 _color)
+{
+ // reference PQ OETF will yield reference OOTF when
+ // displayed on a reference monitor employing EOTF
+
+ float m1 = 0.1593017578125;
+ float m2 = 78.84375;
+ float c1 = 0.8359375;
+ float c2 = 18.8515625;
+ float c3 = 18.6875;
+
+ vec3 Ym1 = pow(_color.xyz * (1.0/10000.0), vec3_splat(m1) );
+ _color = pow((c1 + c2*Ym1) / (vec3_splat(1.0) + c3*Ym1), vec3_splat(m2) );
+
+ return _color;
+}
+
+vec4 toOutput(vec4 _color, float _outputFormat, float _sdrWhiteNits)
+{
+ // assumed that _color is linear with sRGB/rec709 primaries
+ // and 1.0 is SDR white point
+
+ vec3 outColor = vec3_splat(0.0);
+
+ if (_outputFormat < 0.5)
+ {
+ // output == 0 -> sRGB/rec709, apply gamma
+ // values over 1.0 will saturate
+ outColor = toSrgbGamma(saturate(_color.xyz));
+ }
+ else if (_outputFormat < 1.5)
+ {
+ // output == 1 -> scRGB, remains linear.
+ // values over 1.0 will appear as HDR
+ outColor = _color.xyz;
+ }
+ else if (_outputFormat < 2.5)
+ {
+ // output == 2 -> PQ
+
+ // change primaries from sRGB/rec709 to rec2020
+ vec3 _xyz = toXyzFromSrgb(_color.xyz);
+ outColor = toRec2020FromXyz(_xyz);
+
+ // if 1.0 is SDR white, should map to 80 nits
+ // but that could lead to dim results as SDR
+ // monitors tend to be brighter than standard
+ outColor = toPqOetf(outColor * _sdrWhiteNits);
+ }
+
+ return vec4(outColor, _color.w);
}
diff --git a/3rdparty/bgfx/tools/texturev/fs_texture.bin.h b/3rdparty/bgfx/tools/texturev/fs_texture.bin.h
index cd641968a53..d231fd392eb 100644
--- a/3rdparty/bgfx/tools/texturev/fs_texture.bin.h
+++ b/3rdparty/bgfx/tools/texturev/fs_texture.bin.h
@@ -1,320 +1,1035 @@
-static const uint8_t fs_texture_glsl[522] =
+static const uint8_t fs_texture_glsl[2334] =
{
- 0x46, 0x53, 0x48, 0x06, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x08, 0x75, // FSH............u
- 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x02, 0x01, 0x00, 0x00, 0x01, 0x00, 0x0a, 0x73, 0x5f, // _params.......s_
- 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0xd7, 0x01, // texColor........
- 0x00, 0x00, 0x76, 0x61, 0x72, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x76, // ..varying vec4 v
- 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x76, 0x61, 0x72, 0x79, 0x69, 0x6e, 0x67, // _color0;.varying
- 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, // vec3 v_texcoord
- 0x30, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, // 0;.uniform vec4
- 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, // u_params;.unifor
- 0x6d, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x32, 0x44, 0x20, 0x73, 0x5f, 0x74, 0x65, // m sampler2D s_te
- 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x3b, 0x0a, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x6d, 0x61, 0x69, // xColor;.void mai
- 0x6e, 0x20, 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x5f, 0x63, // n ().{. vec4 _c
- 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, // olor_1;. _color
- 0x5f, 0x31, 0x20, 0x3d, 0x20, 0x28, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x32, 0x44, 0x4c, // _1 = (texture2DL
- 0x6f, 0x64, 0x20, 0x28, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x2c, 0x20, // od (s_texColor,
- 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x2e, 0x78, 0x79, 0x2c, 0x20, // v_texcoord0.xy,
- 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x78, 0x29, 0x20, 0x2a, 0x20, 0x76, 0x5f, // u_params.x) * v_
- 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, // color0);. vec4
- 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, // tmpvar_2;. tmpv
- 0x61, 0x72, 0x5f, 0x32, 0x2e, 0x78, 0x79, 0x7a, 0x20, 0x3d, 0x20, 0x70, 0x6f, 0x77, 0x20, 0x28, // ar_2.xyz = pow (
- 0x61, 0x62, 0x73, 0x28, 0x28, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x78, 0x20, 0x28, 0x70, // abs((. mix (p
- 0x6f, 0x77, 0x20, 0x28, 0x61, 0x62, 0x73, 0x28, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, // ow (abs(_color_1
- 0x2e, 0x78, 0x79, 0x7a, 0x29, 0x2c, 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x32, 0x2e, 0x32, 0x2c, // .xyz), vec3(2.2,
- 0x20, 0x32, 0x2e, 0x32, 0x2c, 0x20, 0x32, 0x2e, 0x32, 0x29, 0x29, 0x2c, 0x20, 0x5f, 0x63, 0x6f, // 2.2, 2.2)), _co
- 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x2c, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, // lor_1.xyz, u_par
- 0x61, 0x6d, 0x73, 0x2e, 0x7a, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x2a, 0x20, 0x0a, 0x20, 0x20, 0x20, // ams.z). * .
- 0x20, 0x65, 0x78, 0x70, 0x32, 0x28, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x77, // exp2(u_params.w
- 0x29, 0x0a, 0x20, 0x20, 0x29, 0x29, 0x2c, 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x30, 0x2e, 0x34, // ). )), vec3(0.4
- 0x35, 0x34, 0x35, 0x34, 0x35, 0x34, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x35, 0x34, 0x35, 0x34, 0x35, // 545454, 0.454545
- 0x34, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x35, 0x34, 0x35, 0x34, 0x35, 0x34, 0x29, 0x29, 0x3b, 0x0a, // 4, 0.4545454));.
- 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x2e, 0x77, 0x20, 0x3d, 0x20, 0x5f, // tmpvar_2.w = _
- 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x2e, 0x77, 0x3b, 0x0a, 0x20, 0x20, 0x67, 0x6c, 0x5f, // color_1.w;. gl_
- 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, // FragColor = tmpv
- 0x61, 0x72, 0x5f, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x00, // ar_2;.}...
+ 0x46, 0x53, 0x48, 0x0b, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x09, 0x75, // FSH............u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x02, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // _params0........
+ 0x00, 0x00, 0x09, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x02, 0x01, 0x00, 0x00, // ...u_params1....
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, // .......s_texColo
+ 0x72, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xce, 0x08, 0x00, 0x00, 0x76, // r..............v
+ 0x61, 0x72, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x76, 0x5f, 0x63, 0x6f, // arying vec4 v_co
+ 0x6c, 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x76, 0x61, 0x72, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x76, 0x65, // lor0;.varying ve
+ 0x63, 0x33, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, 0x0a, // c3 v_texcoord0;.
+ 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x75, 0x5f, 0x70, // uniform vec4 u_p
+ 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, // arams0;.uniform
+ 0x76, 0x65, 0x63, 0x34, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x3b, 0x0a, // vec4 u_params1;.
+ 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x32, // uniform sampler2
+ 0x44, 0x20, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x3b, 0x0a, 0x76, 0x6f, // D s_texColor;.vo
+ 0x69, 0x64, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x76, // id main ().{. v
+ 0x65, 0x63, 0x34, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x76, // ec4 color_1;. v
+ 0x65, 0x63, 0x34, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x3b, 0x0a, 0x20, 0x20, // ec4 tmpvar_2;.
+ 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x20, 0x3d, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, // tmpvar_2 = textu
+ 0x72, 0x65, 0x32, 0x44, 0x4c, 0x6f, 0x64, 0x20, 0x28, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, // re2DLod (s_texCo
+ 0x6c, 0x6f, 0x72, 0x2c, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, // lor, v_texcoord0
+ 0x2e, 0x78, 0x79, 0x2c, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x2e, 0x78, // .xy, u_params0.x
+ 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x2e, 0x77, 0x20, 0x3d, // );. color_1.w =
+ 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x2e, 0x77, 0x3b, 0x0a, 0x20, 0x20, 0x63, // tmpvar_2.w;. c
+ 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x20, 0x3d, 0x20, 0x28, 0x6d, 0x69, // olor_1.xyz = (mi
+ 0x78, 0x20, 0x28, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x62, 0x73, // x (pow (. abs
+ 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x2e, 0x78, 0x79, 0x7a, 0x29, 0x0a, 0x20, // (tmpvar_2.xyz).
+ 0x20, 0x2c, 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x32, 0x2e, 0x32, 0x2c, 0x20, 0x32, 0x2e, 0x32, // , vec3(2.2, 2.2
+ 0x2c, 0x20, 0x32, 0x2e, 0x32, 0x29, 0x29, 0x2c, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // , 2.2)), tmpvar_
+ 0x32, 0x2e, 0x78, 0x79, 0x7a, 0x2c, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, // 2.xyz, u_params0
+ 0x2e, 0x7a, 0x29, 0x20, 0x2a, 0x20, 0x65, 0x78, 0x70, 0x32, 0x28, 0x75, 0x5f, 0x70, 0x61, 0x72, // .z) * exp2(u_par
+ 0x61, 0x6d, 0x73, 0x30, 0x2e, 0x77, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, // ams0.w));. colo
+ 0x72, 0x5f, 0x31, 0x20, 0x3d, 0x20, 0x28, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x20, 0x2a, // r_1 = (color_1 *
+ 0x20, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x65, // v_color0);. ve
+ 0x63, 0x33, 0x20, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x33, 0x3b, 0x0a, 0x20, // c3 outColor_3;.
+ 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x34, 0x3b, 0x0a, // vec3 tmpvar_4;.
+ 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x34, 0x2e, 0x78, 0x20, 0x3d, 0x20, 0x30, // tmpvar_4.x = 0
+ 0x2e, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x34, 0x2e, 0x79, // .0;. tmpvar_4.y
+ 0x20, 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // = 0.0;. tmpvar
+ 0x5f, 0x34, 0x2e, 0x7a, 0x20, 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x6f, 0x75, // _4.z = 0.0;. ou
+ 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x33, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, // tColor_3 = tmpva
+ 0x72, 0x5f, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x28, 0x75, 0x5f, 0x70, 0x61, // r_4;. if ((u_pa
+ 0x72, 0x61, 0x6d, 0x73, 0x31, 0x2e, 0x78, 0x20, 0x3c, 0x20, 0x30, 0x2e, 0x35, 0x29, 0x29, 0x20, // rams1.x < 0.5))
+ 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, // {. vec3 tmpva
+ 0x72, 0x5f, 0x35, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // r_5;. tmpvar_
+ 0x35, 0x20, 0x3d, 0x20, 0x63, 0x6c, 0x61, 0x6d, 0x70, 0x20, 0x28, 0x63, 0x6f, 0x6c, 0x6f, 0x72, // 5 = clamp (color
+ 0x5f, 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, // _1.xyz, 0.0, 1.0
+ 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x5f, 0x72, 0x67, 0x62, // );. vec3 _rgb
+ 0x5f, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x72, 0x67, 0x62, 0x5f, 0x36, 0x20, 0x3d, // _6;. _rgb_6 =
+ 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x35, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, // tmpvar_5;. f
+ 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x37, 0x3b, 0x0a, 0x20, // loat tmpvar_7;.
+ 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x35, // if ((tmpvar_5
+ 0x2e, 0x78, 0x20, 0x3c, 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x30, 0x33, 0x31, 0x33, 0x30, 0x38, 0x29, // .x <= 0.0031308)
+ 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // ) {. tmpvar
+ 0x5f, 0x37, 0x20, 0x3d, 0x20, 0x28, 0x31, 0x32, 0x2e, 0x39, 0x32, 0x20, 0x2a, 0x20, 0x74, 0x6d, // _7 = (12.92 * tm
+ 0x70, 0x76, 0x61, 0x72, 0x5f, 0x35, 0x2e, 0x78, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, // pvar_5.x);. }
+ 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, // else {. tm
+ 0x70, 0x76, 0x61, 0x72, 0x5f, 0x37, 0x20, 0x3d, 0x20, 0x28, 0x28, 0x31, 0x2e, 0x30, 0x35, 0x35, // pvar_7 = ((1.055
+ 0x20, 0x2a, 0x20, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x35, // * pow (tmpvar_5
+ 0x2e, 0x78, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x31, 0x36, 0x36, 0x36, 0x36, 0x37, 0x29, 0x29, 0x20, // .x, 0.4166667))
+ 0x2d, 0x20, 0x30, 0x2e, 0x30, 0x35, 0x35, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x3b, // - 0.055);. };
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x72, 0x67, 0x62, 0x5f, 0x36, 0x2e, 0x78, 0x20, 0x3d, 0x20, // . _rgb_6.x =
+ 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x37, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, // tmpvar_7;. fl
+ 0x6f, 0x61, 0x74, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x38, 0x3b, 0x0a, 0x20, 0x20, // oat tmpvar_8;.
+ 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x35, 0x2e, // if ((tmpvar_5.
+ 0x79, 0x20, 0x3c, 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x30, 0x33, 0x31, 0x33, 0x30, 0x38, 0x29, 0x29, // y <= 0.0031308))
+ 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // {. tmpvar_
+ 0x38, 0x20, 0x3d, 0x20, 0x28, 0x31, 0x32, 0x2e, 0x39, 0x32, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, // 8 = (12.92 * tmp
+ 0x76, 0x61, 0x72, 0x5f, 0x35, 0x2e, 0x79, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x20, // var_5.y);. }
+ 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, // else {. tmp
+ 0x76, 0x61, 0x72, 0x5f, 0x38, 0x20, 0x3d, 0x20, 0x28, 0x28, 0x31, 0x2e, 0x30, 0x35, 0x35, 0x20, // var_8 = ((1.055
+ 0x2a, 0x20, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x35, 0x2e, // * pow (tmpvar_5.
+ 0x79, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x31, 0x36, 0x36, 0x36, 0x36, 0x37, 0x29, 0x29, 0x20, 0x2d, // y, 0.4166667)) -
+ 0x20, 0x30, 0x2e, 0x30, 0x35, 0x35, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x3b, 0x0a, // 0.055);. };.
+ 0x20, 0x20, 0x20, 0x20, 0x5f, 0x72, 0x67, 0x62, 0x5f, 0x36, 0x2e, 0x79, 0x20, 0x3d, 0x20, 0x74, // _rgb_6.y = t
+ 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, // mpvar_8;. flo
+ 0x61, 0x74, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x39, 0x3b, 0x0a, 0x20, 0x20, 0x20, // at tmpvar_9;.
+ 0x20, 0x69, 0x66, 0x20, 0x28, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x35, 0x2e, 0x7a, // if ((tmpvar_5.z
+ 0x20, 0x3c, 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x30, 0x33, 0x31, 0x33, 0x30, 0x38, 0x29, 0x29, 0x20, // <= 0.0031308))
+ 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x39, // {. tmpvar_9
+ 0x20, 0x3d, 0x20, 0x28, 0x31, 0x32, 0x2e, 0x39, 0x32, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, // = (12.92 * tmpv
+ 0x61, 0x72, 0x5f, 0x35, 0x2e, 0x7a, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x20, 0x65, // ar_5.z);. } e
+ 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, // lse {. tmpv
+ 0x61, 0x72, 0x5f, 0x39, 0x20, 0x3d, 0x20, 0x28, 0x28, 0x31, 0x2e, 0x30, 0x35, 0x35, 0x20, 0x2a, // ar_9 = ((1.055 *
+ 0x20, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x35, 0x2e, 0x7a, // pow (tmpvar_5.z
+ 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x31, 0x36, 0x36, 0x36, 0x36, 0x37, 0x29, 0x29, 0x20, 0x2d, 0x20, // , 0.4166667)) -
+ 0x30, 0x2e, 0x30, 0x35, 0x35, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x3b, 0x0a, 0x20, // 0.055);. };.
+ 0x20, 0x20, 0x20, 0x5f, 0x72, 0x67, 0x62, 0x5f, 0x36, 0x2e, 0x7a, 0x20, 0x3d, 0x20, 0x74, 0x6d, // _rgb_6.z = tm
+ 0x70, 0x76, 0x61, 0x72, 0x5f, 0x39, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x43, // pvar_9;. outC
+ 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x33, 0x20, 0x3d, 0x20, 0x5f, 0x72, 0x67, 0x62, 0x5f, 0x36, 0x3b, // olor_3 = _rgb_6;
+ 0x0a, 0x20, 0x20, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, // . } else {.
+ 0x69, 0x66, 0x20, 0x28, 0x28, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x2e, 0x78, // if ((u_params1.x
+ 0x20, 0x3c, 0x20, 0x31, 0x2e, 0x35, 0x29, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, // < 1.5)) {.
+ 0x20, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x33, 0x20, 0x3d, 0x20, 0x63, 0x6f, // outColor_3 = co
+ 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, // lor_1.xyz;. }
+ 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, // else {. if
+ 0x20, 0x28, 0x28, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x2e, 0x78, 0x20, 0x3c, // ((u_params1.x <
+ 0x20, 0x32, 0x2e, 0x35, 0x29, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // 2.5)) {.
+ 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x30, 0x3b, // vec3 _color_10;
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, // . _color_
+ 0x31, 0x30, 0x20, 0x3d, 0x20, 0x28, 0x28, 0x6d, 0x61, 0x74, 0x33, 0x28, 0x31, 0x2e, 0x37, 0x31, // 10 = ((mat3(1.71
+ 0x36, 0x36, 0x35, 0x31, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x33, 0x35, 0x35, 0x36, 0x37, 0x30, 0x38, // 6651, -0.3556708
+ 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x33, 0x33, 0x36, 0x36, 0x33, 0x2c, 0x20, 0x2d, 0x30, // , -0.2533663, -0
+ 0x2e, 0x36, 0x36, 0x36, 0x36, 0x38, 0x34, 0x34, 0x2c, 0x20, 0x31, 0x2e, 0x36, 0x31, 0x36, 0x34, // .6666844, 1.6164
+ 0x38, 0x31, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x31, 0x35, 0x37, 0x36, 0x38, 0x35, 0x2c, 0x20, 0x30, // 81, 0.0157685, 0
+ 0x2e, 0x30, 0x31, 0x37, 0x36, 0x33, 0x39, 0x39, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x30, 0x34, 0x32, // .0176399, -0.042
+ 0x37, 0x37, 0x30, 0x36, 0x2c, 0x20, 0x30, 0x2e, 0x39, 0x34, 0x32, 0x31, 0x30, 0x33, 0x31, 0x29, // 7706, 0.9421031)
+ 0x20, 0x2a, 0x20, 0x28, 0x6d, 0x61, 0x74, 0x33, 0x28, 0x30, 0x2e, 0x34, 0x31, 0x32, 0x35, 0x35, // * (mat3(0.41255
+ 0x36, 0x34, 0x2c, 0x20, 0x30, 0x2e, 0x33, 0x35, 0x37, 0x35, 0x37, 0x36, 0x31, 0x2c, 0x20, 0x30, // 64, 0.3575761, 0
+ 0x2e, 0x31, 0x38, 0x30, 0x34, 0x33, 0x37, 0x35, 0x2c, 0x20, 0x30, 0x2e, 0x32, 0x31, 0x32, 0x36, // .1804375, 0.2126
+ 0x37, 0x32, 0x39, 0x2c, 0x20, 0x30, 0x2e, 0x37, 0x31, 0x35, 0x31, 0x35, 0x32, 0x32, 0x2c, 0x20, // 729, 0.7151522,
+ 0x30, 0x2e, 0x30, 0x37, 0x32, 0x31, 0x37, 0x35, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x31, 0x39, 0x33, // 0.072175, 0.0193
+ 0x33, 0x33, 0x39, 0x2c, 0x20, 0x30, 0x2e, 0x31, 0x31, 0x39, 0x31, 0x39, 0x32, 0x2c, 0x20, 0x30, // 339, 0.119192, 0
+ 0x2e, 0x39, 0x35, 0x30, 0x33, 0x30, 0x34, 0x31, 0x29, 0x20, 0x2a, 0x20, 0x63, 0x6f, 0x6c, 0x6f, // .9503041) * colo
+ 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x29, 0x29, 0x20, 0x2a, 0x20, 0x75, 0x5f, 0x70, 0x61, // r_1.xyz)) * u_pa
+ 0x72, 0x61, 0x6d, 0x73, 0x31, 0x2e, 0x79, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // rams1.y);.
+ 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x31, // vec3 tmpvar_11
+ 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // ;. tmpvar
+ 0x5f, 0x31, 0x31, 0x20, 0x3d, 0x20, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x28, 0x5f, 0x63, 0x6f, 0x6c, // _11 = pow ((_col
+ 0x6f, 0x72, 0x5f, 0x31, 0x30, 0x20, 0x2a, 0x20, 0x30, 0x2e, 0x30, 0x30, 0x30, 0x31, 0x29, 0x2c, // or_10 * 0.0001),
+ 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x30, 0x2e, 0x31, 0x35, 0x39, 0x33, 0x30, 0x31, 0x38, 0x2c, // vec3(0.1593018,
+ 0x20, 0x30, 0x2e, 0x31, 0x35, 0x39, 0x33, 0x30, 0x31, 0x38, 0x2c, 0x20, 0x30, 0x2e, 0x31, 0x35, // 0.1593018, 0.15
+ 0x39, 0x33, 0x30, 0x31, 0x38, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // 93018));.
+ 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x32, 0x3b, // vec3 tmpvar_12;
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // . tmpvar_
+ 0x31, 0x32, 0x20, 0x3d, 0x20, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x28, 0x28, 0x30, 0x2e, 0x38, 0x33, // 12 = pow (((0.83
+ 0x35, 0x39, 0x33, 0x37, 0x35, 0x20, 0x2b, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // 59375 + .
+ 0x20, 0x20, 0x20, 0x28, 0x31, 0x38, 0x2e, 0x38, 0x35, 0x31, 0x35, 0x36, 0x20, 0x2a, 0x20, 0x74, // (18.85156 * t
+ 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x31, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // mpvar_11).
+ 0x20, 0x20, 0x29, 0x20, 0x2f, 0x20, 0x28, 0x76, 0x65, 0x63, 0x33, 0x28, 0x31, 0x2e, 0x30, 0x2c, // ) / (vec3(1.0,
+ 0x20, 0x31, 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x20, 0x2b, 0x20, 0x0a, 0x20, 0x20, // 1.0, 1.0) + .
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x38, 0x2e, 0x36, 0x38, 0x37, 0x35, // (18.6875
+ 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x31, 0x29, 0x0a, 0x20, 0x20, // * tmpvar_11).
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x29, 0x29, 0x2c, 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x37, // )), vec3(7
+ 0x38, 0x2e, 0x38, 0x34, 0x33, 0x37, 0x35, 0x2c, 0x20, 0x37, 0x38, 0x2e, 0x38, 0x34, 0x33, 0x37, // 8.84375, 78.8437
+ 0x35, 0x2c, 0x20, 0x37, 0x38, 0x2e, 0x38, 0x34, 0x33, 0x37, 0x35, 0x29, 0x29, 0x3b, 0x0a, 0x20, // 5, 78.84375));.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x30, // _color_10
+ 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x32, 0x3b, 0x0a, 0x20, 0x20, // = tmpvar_12;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x33, // outColor_3
+ 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x32, 0x3b, 0x0a, 0x20, 0x20, // = tmpvar_12;.
+ 0x20, 0x20, 0x20, 0x20, 0x7d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x3b, 0x0a, 0x20, 0x20, // };. };.
+ 0x7d, 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // };. vec4 tmpvar
+ 0x5f, 0x31, 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x33, // _13;. tmpvar_13
+ 0x2e, 0x78, 0x79, 0x7a, 0x20, 0x3d, 0x20, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, // .xyz = outColor_
+ 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x33, 0x2e, 0x77, // 3;. tmpvar_13.w
+ 0x20, 0x3d, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x2e, 0x77, 0x3b, 0x0a, 0x20, 0x20, // = color_1.w;.
+ 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x74, // gl_FragColor = t
+ 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x33, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x00, // mpvar_13;.}...
};
-static const uint8_t fs_texture_spv[1957] =
+static const uint8_t fs_texture_essl[2478] =
{
- 0x46, 0x53, 0x48, 0x06, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x75, // FSH............u
- 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x01, 0x00, 0x00, 0x01, 0x00, 0x80, 0x07, 0x00, // _params.........
- 0x00, 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x07, 0x00, 0x08, 0x00, 0x31, 0x01, 0x00, // ...#.........1..
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, // ................
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, // .....GLSL.std.45
- 0x30, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // 0...............
- 0x00, 0x0f, 0x00, 0x08, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, // .............mai
- 0x6e, 0x00, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, // n...............
- 0x00, 0x10, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, // ................
- 0x00, 0x05, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, // ................
- 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x09, 0x00, 0x00, // .main...........
- 0x00, 0x42, 0x67, 0x66, 0x78, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x32, 0x44, 0x00, 0x00, // .BgfxSampler2D..
- 0x00, 0x06, 0x00, 0x06, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6d, 0x5f, 0x73, // .............m_s
- 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x09, 0x00, 0x00, // ampler..........
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x6d, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x00, 0x00, // .....m_texture..
- 0x00, 0x05, 0x00, 0x05, 0x00, 0x38, 0x00, 0x00, 0x00, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, // .....8...s_texCo
- 0x6c, 0x6f, 0x72, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x73, 0x5f, 0x74, // lor......:...s_t
- 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x00, 0x00, // exColorSampler..
- 0x00, 0x05, 0x00, 0x07, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, // .....=...s_texCo
- 0x6c, 0x6f, 0x72, 0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, // lorTexture......
- 0x00, 0x78, 0x00, 0x00, 0x00, 0x24, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x00, 0x06, 0x00, 0x06, // .x...$Global....
- 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, // .x.......u_param
- 0x73, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // s........z......
- 0x00, 0x05, 0x00, 0x05, 0x00, 0xae, 0x00, 0x00, 0x00, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, // .........v_color
- 0x30, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0xb2, 0x00, 0x00, 0x00, 0x76, 0x5f, 0x74, // 0............v_t
- 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x00, 0x05, 0x00, 0x06, 0x00, 0xbd, 0x00, 0x00, // excoord0........
- 0x00, 0x62, 0x67, 0x66, 0x78, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x44, 0x61, 0x74, 0x61, 0x30, 0x00, // .bgfx_FragData0.
- 0x00, 0x47, 0x00, 0x04, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .G...=..."......
- 0x00, 0x47, 0x00, 0x04, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .G...=...!......
- 0x00, 0x48, 0x00, 0x05, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, // .H...x.......#..
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x78, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, // .....G...x......
- 0x00, 0x47, 0x00, 0x04, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .G...z..."......
- 0x00, 0x47, 0x00, 0x04, 0x00, 0xae, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .G..............
- 0x00, 0x47, 0x00, 0x04, 0x00, 0xb2, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // .G..............
- 0x00, 0x47, 0x00, 0x04, 0x00, 0xbd, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .G..............
- 0x00, 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, // .........!......
- 0x00, 0x02, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x02, 0x00, 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, // ................
- 0x00, 0x07, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x08, 0x00, 0x00, // ..... ..........
- 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x04, // ................
- 0x00, 0x09, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, // ................
- 0x00, 0x0b, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, // ................
- 0x00, 0x0e, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, // ................
- 0x00, 0x15, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, // ............. ..
- 0x00, 0x37, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, // .7...........;..
- 0x00, 0x37, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, // .7...8....... ..
- 0x00, 0x39, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, // .9...........;..
- 0x00, 0x39, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, // .9...:....... ..
- 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, // .<...........;..
- 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, // .<...=..........
- 0x00, 0x40, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, // .@... .......+..
- 0x00, 0x40, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, // .@...E..........
- 0x00, 0x49, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, // .I.......+......
- 0x00, 0x65, 0x00, 0x00, 0x00, 0xcd, 0xcc, 0x0c, 0x40, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, // .e......@+......
- 0x00, 0x6d, 0x00, 0x00, 0x00, 0x2f, 0xba, 0xe8, 0x3e, 0x1e, 0x00, 0x03, 0x00, 0x78, 0x00, 0x00, // .m.../..>....x..
- 0x00, 0x0e, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x79, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, // ..... ...y......
- 0x00, 0x78, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x79, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, // .x...;...y...z..
- 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, // .........{... ..
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, // .....+...{...|..
- 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, // ..... ...}......
- 0x00, 0x07, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, // .....+..........
- 0x00, 0x00, 0x00, 0x00, 0x40, 0x2b, 0x00, 0x04, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, // ....@+...{......
- 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x7b, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, // .....+...{......
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0xad, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // ..... ..........
- 0x00, 0x0e, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0xad, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, // .....;..........
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0xb1, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // ..... ..........
- 0x00, 0x15, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0xb1, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, // .....;..........
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0xbc, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, // ..... ..........
- 0x00, 0x0e, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0xbc, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, // .....;..........
- 0x00, 0x03, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x15, 0x00, 0x00, 0x00, 0x2f, 0x01, 0x00, // .....,......./..
- 0x00, 0x65, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, // .e...e...e...,..
- 0x00, 0x15, 0x00, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, // .....0...m...m..
- 0x00, 0x6d, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, // .m...6..........
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, // ................
- 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, // .=.......;...:..
- 0x00, 0x3d, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, // .=.......>...=..
- 0x00, 0x50, 0x00, 0x05, 0x00, 0x09, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, // .P.......?...;..
- 0x00, 0x3e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x38, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, // .>...>...8...?..
- 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, // .=..............
- 0x00, 0x3d, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, // .=..............
- 0x00, 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, // .=...........8..
- 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2b, 0x01, 0x00, 0x00, 0xd9, 0x00, 0x00, // .Q.......+......
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, 0x2c, 0x01, 0x00, // .....Q.......,..
- 0x00, 0xd9, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, // .........O......
- 0x00, 0xdb, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x7d, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, // .....A...}......
- 0x00, 0x7a, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, // .z...E.......=..
- 0x00, 0x07, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, 0x56, 0x00, 0x05, // .............V..
- 0x00, 0x49, 0x00, 0x00, 0x00, 0xee, 0x00, 0x00, 0x00, 0x2c, 0x01, 0x00, 0x00, 0x2b, 0x01, 0x00, // .I.......,...+..
- 0x00, 0x58, 0x00, 0x07, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xf1, 0x00, 0x00, 0x00, 0xee, 0x00, 0x00, // .X..............
- 0x00, 0xdb, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, // ................
- 0x00, 0x0e, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0xf1, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, // ................
- 0x00, 0x4f, 0x00, 0x08, 0x00, 0x15, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, // .O..............
- 0x00, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, // ................
- 0x00, 0x0c, 0x00, 0x06, 0x00, 0x15, 0x00, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, // ................
- 0x00, 0x04, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x15, 0x00, 0x00, // ................
- 0x00, 0x13, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x11, 0x01, 0x00, // ................
- 0x00, 0x2f, 0x01, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x7d, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, // ./...A...}......
- 0x00, 0x7a, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, // .z...E...|...=..
- 0x00, 0x07, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x50, 0x00, 0x06, // .............P..
- 0x00, 0x15, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x00, // ................
- 0x00, 0xfd, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x08, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, // .....O..........
- 0x00, 0xe1, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // ................
- 0x00, 0x02, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x15, 0x00, 0x00, 0x00, 0x1d, 0x01, 0x00, // ................
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x13, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, // ................
- 0x00, 0xfe, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x03, 0x01, 0x00, // .....A...}......
- 0x00, 0x7a, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, // .z...E.......=..
- 0x00, 0x07, 0x00, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x07, // ................
- 0x00, 0x07, 0x00, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, // ................
- 0x00, 0x88, 0x00, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, // ................
- 0x00, 0x06, 0x01, 0x00, 0x00, 0x1d, 0x01, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x06, // ................
- 0x00, 0x15, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, // .....!..........
- 0x00, 0x06, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x15, 0x00, 0x00, 0x00, 0x23, 0x01, 0x00, // .............#..
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x30, 0x01, 0x00, // .........!...0..
- 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, 0xe1, 0x00, 0x00, // .Q..............
- 0x00, 0x03, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0a, 0x01, 0x00, // .....Q..........
- 0x00, 0x23, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, // .#.......Q......
- 0x00, 0x0b, 0x01, 0x00, 0x00, 0x23, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, // .....#.......Q..
- 0x00, 0x07, 0x00, 0x00, 0x00, 0x0c, 0x01, 0x00, 0x00, 0x23, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, // .........#......
- 0x00, 0x50, 0x00, 0x07, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x01, 0x00, 0x00, 0x0a, 0x01, 0x00, // .P..............
- 0x00, 0x0b, 0x01, 0x00, 0x00, 0x0c, 0x01, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, 0x3e, 0x00, 0x03, // .............>..
- 0x00, 0xbd, 0x00, 0x00, 0x00, 0x0d, 0x01, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, // .............8..
- 0x00, 0x00, 0x00, 0x10, 0x00, // .....
+ 0x46, 0x53, 0x48, 0x0b, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x09, 0x75, // FSH............u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x02, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // _params0........
+ 0x00, 0x00, 0x09, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x02, 0x01, 0x00, 0x00, // ...u_params1....
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, // .......s_texColo
+ 0x72, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5e, 0x09, 0x00, 0x00, 0x76, // r..........^...v
+ 0x61, 0x72, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, // arying highp vec
+ 0x34, 0x20, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x76, 0x61, 0x72, 0x79, // 4 v_color0;.vary
+ 0x69, 0x6e, 0x67, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x76, // ing highp vec3 v
+ 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, // _texcoord0;.unif
+ 0x6f, 0x72, 0x6d, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x75, // orm highp vec4 u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, // _params0;.unifor
+ 0x6d, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x75, 0x5f, 0x70, // m highp vec4 u_p
+ 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, // arams1;.uniform
+ 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x32, 0x44, 0x20, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, // sampler2D s_texC
+ 0x6f, 0x6c, 0x6f, 0x72, 0x3b, 0x0a, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, // olor;.void main
+ 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x76, 0x65, 0x63, 0x34, // ().{. lowp vec4
+ 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, // color_1;. lowp
+ 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x3b, 0x0a, // vec4 tmpvar_2;.
+ 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x20, 0x3d, 0x20, 0x74, 0x65, 0x78, // tmpvar_2 = tex
+ 0x74, 0x75, 0x72, 0x65, 0x32, 0x44, 0x4c, 0x6f, 0x64, 0x20, 0x20, 0x20, 0x20, 0x28, 0x73, 0x5f, // ture2DLod (s_
+ 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x2c, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, // texColor, v_texc
+ 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x2e, 0x78, 0x79, 0x2c, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, // oord0.xy, u_para
+ 0x6d, 0x73, 0x30, 0x2e, 0x78, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, // ms0.x);. color_
+ 0x31, 0x2e, 0x77, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x2e, 0x77, // 1.w = tmpvar_2.w
+ 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x20, // ;. color_1.xyz
+ 0x3d, 0x20, 0x28, 0x6d, 0x69, 0x78, 0x20, 0x28, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x0a, 0x20, 0x20, // = (mix (pow (.
+ 0x20, 0x20, 0x61, 0x62, 0x73, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x2e, 0x78, // abs(tmpvar_2.x
+ 0x79, 0x7a, 0x29, 0x0a, 0x20, 0x20, 0x2c, 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x32, 0x2e, 0x32, // yz). , vec3(2.2
+ 0x2c, 0x20, 0x32, 0x2e, 0x32, 0x2c, 0x20, 0x32, 0x2e, 0x32, 0x29, 0x29, 0x2c, 0x20, 0x74, 0x6d, // , 2.2, 2.2)), tm
+ 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x2e, 0x78, 0x79, 0x7a, 0x2c, 0x20, 0x75, 0x5f, 0x70, 0x61, // pvar_2.xyz, u_pa
+ 0x72, 0x61, 0x6d, 0x73, 0x30, 0x2e, 0x7a, 0x29, 0x20, 0x2a, 0x20, 0x65, 0x78, 0x70, 0x32, 0x28, // rams0.z) * exp2(
+ 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x2e, 0x77, 0x29, 0x29, 0x3b, 0x0a, 0x20, // u_params0.w));.
+ 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x20, 0x3d, 0x20, 0x28, 0x63, 0x6f, 0x6c, 0x6f, // color_1 = (colo
+ 0x72, 0x5f, 0x31, 0x20, 0x2a, 0x20, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x29, 0x3b, // r_1 * v_color0);
+ 0x0a, 0x20, 0x20, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x70, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, // . mediump vec4
+ 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, // tmpvar_3;. lowp
+ 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x34, // vec3 outColor_4
+ 0x3b, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x74, 0x6d, // ;. lowp vec3 tm
+ 0x70, 0x76, 0x61, 0x72, 0x5f, 0x35, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // pvar_5;. tmpvar
+ 0x5f, 0x35, 0x2e, 0x78, 0x20, 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, // _5.x = 0.0;. tm
+ 0x70, 0x76, 0x61, 0x72, 0x5f, 0x35, 0x2e, 0x79, 0x20, 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x3b, 0x0a, // pvar_5.y = 0.0;.
+ 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x35, 0x2e, 0x7a, 0x20, 0x3d, 0x20, 0x30, // tmpvar_5.z = 0
+ 0x2e, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x34, // .0;. outColor_4
+ 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x35, 0x3b, 0x0a, 0x20, 0x20, 0x69, // = tmpvar_5;. i
+ 0x66, 0x20, 0x28, 0x28, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x2e, 0x78, 0x20, // f ((u_params1.x
+ 0x3c, 0x20, 0x30, 0x2e, 0x35, 0x29, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, // < 0.5)) {. lo
+ 0x77, 0x70, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x36, // wp vec3 tmpvar_6
+ 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x36, 0x20, 0x3d, // ;. tmpvar_6 =
+ 0x20, 0x63, 0x6c, 0x61, 0x6d, 0x70, 0x20, 0x28, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x2e, // clamp (color_1.
+ 0x78, 0x79, 0x7a, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x3b, 0x0a, // xyz, 0.0, 1.0);.
+ 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x5f, 0x72, // lowp vec3 _r
+ 0x67, 0x62, 0x5f, 0x37, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x72, 0x67, 0x62, 0x5f, 0x37, // gb_7;. _rgb_7
+ 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x20, // = tmpvar_6;.
+ 0x20, 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x74, 0x6d, 0x70, 0x76, // lowp float tmpv
+ 0x61, 0x72, 0x5f, 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x28, 0x74, // ar_8;. if ((t
+ 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x36, 0x2e, 0x78, 0x20, 0x3c, 0x3d, 0x20, 0x30, 0x2e, 0x30, // mpvar_6.x <= 0.0
+ 0x30, 0x33, 0x31, 0x33, 0x30, 0x38, 0x29, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, // 031308)) {.
+ 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x38, 0x20, 0x3d, 0x20, 0x28, 0x31, 0x32, 0x2e, // tmpvar_8 = (12.
+ 0x39, 0x32, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x36, 0x2e, 0x78, 0x29, // 92 * tmpvar_6.x)
+ 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x0a, 0x20, // ;. } else {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x38, 0x20, 0x3d, 0x20, // tmpvar_8 =
+ 0x28, 0x28, 0x31, 0x2e, 0x30, 0x35, 0x35, 0x20, 0x2a, 0x20, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x74, // ((1.055 * pow (t
+ 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x36, 0x2e, 0x78, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x31, 0x36, // mpvar_6.x, 0.416
+ 0x36, 0x36, 0x36, 0x37, 0x29, 0x29, 0x20, 0x2d, 0x20, 0x30, 0x2e, 0x30, 0x35, 0x35, 0x29, 0x3b, // 6667)) - 0.055);
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x72, 0x67, 0x62, // . };. _rgb
+ 0x5f, 0x37, 0x2e, 0x78, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x38, 0x3b, // _7.x = tmpvar_8;
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, // . lowp float
+ 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x39, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, // tmpvar_9;. if
+ 0x20, 0x28, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x36, 0x2e, 0x79, 0x20, 0x3c, 0x3d, // ((tmpvar_6.y <=
+ 0x20, 0x30, 0x2e, 0x30, 0x30, 0x33, 0x31, 0x33, 0x30, 0x38, 0x29, 0x29, 0x20, 0x7b, 0x0a, 0x20, // 0.0031308)) {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x39, 0x20, 0x3d, 0x20, // tmpvar_9 =
+ 0x28, 0x31, 0x32, 0x2e, 0x39, 0x32, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // (12.92 * tmpvar_
+ 0x36, 0x2e, 0x79, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, // 6.y);. } else
+ 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // {. tmpvar_
+ 0x39, 0x20, 0x3d, 0x20, 0x28, 0x28, 0x31, 0x2e, 0x30, 0x35, 0x35, 0x20, 0x2a, 0x20, 0x70, 0x6f, // 9 = ((1.055 * po
+ 0x77, 0x20, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x36, 0x2e, 0x79, 0x2c, 0x20, 0x30, // w (tmpvar_6.y, 0
+ 0x2e, 0x34, 0x31, 0x36, 0x36, 0x36, 0x36, 0x37, 0x29, 0x29, 0x20, 0x2d, 0x20, 0x30, 0x2e, 0x30, // .4166667)) - 0.0
+ 0x35, 0x35, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, // 55);. };.
+ 0x5f, 0x72, 0x67, 0x62, 0x5f, 0x37, 0x2e, 0x79, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, // _rgb_7.y = tmpva
+ 0x72, 0x5f, 0x39, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x66, 0x6c, // r_9;. lowp fl
+ 0x6f, 0x61, 0x74, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x30, 0x3b, 0x0a, 0x20, // oat tmpvar_10;.
+ 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x36, // if ((tmpvar_6
+ 0x2e, 0x7a, 0x20, 0x3c, 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x30, 0x33, 0x31, 0x33, 0x30, 0x38, 0x29, // .z <= 0.0031308)
+ 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // ) {. tmpvar
+ 0x5f, 0x31, 0x30, 0x20, 0x3d, 0x20, 0x28, 0x31, 0x32, 0x2e, 0x39, 0x32, 0x20, 0x2a, 0x20, 0x74, // _10 = (12.92 * t
+ 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x36, 0x2e, 0x7a, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, // mpvar_6.z);.
+ 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, // } else {. t
+ 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x30, 0x20, 0x3d, 0x20, 0x28, 0x28, 0x31, 0x2e, 0x30, // mpvar_10 = ((1.0
+ 0x35, 0x35, 0x20, 0x2a, 0x20, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // 55 * pow (tmpvar
+ 0x5f, 0x36, 0x2e, 0x7a, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x31, 0x36, 0x36, 0x36, 0x36, 0x37, 0x29, // _6.z, 0.4166667)
+ 0x29, 0x20, 0x2d, 0x20, 0x30, 0x2e, 0x30, 0x35, 0x35, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, // ) - 0.055);.
+ 0x7d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x72, 0x67, 0x62, 0x5f, 0x37, 0x2e, 0x7a, 0x20, // };. _rgb_7.z
+ 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, // = tmpvar_10;.
+ 0x20, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x34, 0x20, 0x3d, 0x20, 0x5f, 0x72, // outColor_4 = _r
+ 0x67, 0x62, 0x5f, 0x37, 0x3b, 0x0a, 0x20, 0x20, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, // gb_7;. } else {
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x28, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, // . if ((u_para
+ 0x6d, 0x73, 0x31, 0x2e, 0x78, 0x20, 0x3c, 0x20, 0x31, 0x2e, 0x35, 0x29, 0x29, 0x20, 0x7b, 0x0a, // ms1.x < 1.5)) {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x34, // outColor_4
+ 0x20, 0x3d, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x3b, 0x0a, // = color_1.xyz;.
+ 0x20, 0x20, 0x20, 0x20, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, // } else {.
+ 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x28, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, // if ((u_params
+ 0x31, 0x2e, 0x78, 0x20, 0x3c, 0x20, 0x32, 0x2e, 0x35, 0x29, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, // 1.x < 2.5)) {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, // lowp vec3
+ 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, // _color_11;.
+ 0x20, 0x20, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x31, 0x20, 0x3d, 0x20, 0x28, // _color_11 = (
+ 0x28, 0x6d, 0x61, 0x74, 0x33, 0x28, 0x31, 0x2e, 0x37, 0x31, 0x36, 0x36, 0x35, 0x31, 0x2c, 0x20, // (mat3(1.716651,
+ 0x2d, 0x30, 0x2e, 0x33, 0x35, 0x35, 0x36, 0x37, 0x30, 0x38, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x32, // -0.3556708, -0.2
+ 0x35, 0x33, 0x33, 0x36, 0x36, 0x33, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x36, 0x36, 0x36, 0x36, 0x38, // 533663, -0.66668
+ 0x34, 0x34, 0x2c, 0x20, 0x31, 0x2e, 0x36, 0x31, 0x36, 0x34, 0x38, 0x31, 0x2c, 0x20, 0x30, 0x2e, // 44, 1.616481, 0.
+ 0x30, 0x31, 0x35, 0x37, 0x36, 0x38, 0x35, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x31, 0x37, 0x36, 0x33, // 0157685, 0.01763
+ 0x39, 0x39, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x30, 0x34, 0x32, 0x37, 0x37, 0x30, 0x36, 0x2c, 0x20, // 99, -0.0427706,
+ 0x30, 0x2e, 0x39, 0x34, 0x32, 0x31, 0x30, 0x33, 0x31, 0x29, 0x20, 0x2a, 0x20, 0x28, 0x6d, 0x61, // 0.9421031) * (ma
+ 0x74, 0x33, 0x28, 0x30, 0x2e, 0x34, 0x31, 0x32, 0x35, 0x35, 0x36, 0x34, 0x2c, 0x20, 0x30, 0x2e, // t3(0.4125564, 0.
+ 0x33, 0x35, 0x37, 0x35, 0x37, 0x36, 0x31, 0x2c, 0x20, 0x30, 0x2e, 0x31, 0x38, 0x30, 0x34, 0x33, // 3575761, 0.18043
+ 0x37, 0x35, 0x2c, 0x20, 0x30, 0x2e, 0x32, 0x31, 0x32, 0x36, 0x37, 0x32, 0x39, 0x2c, 0x20, 0x30, // 75, 0.2126729, 0
+ 0x2e, 0x37, 0x31, 0x35, 0x31, 0x35, 0x32, 0x32, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x37, 0x32, 0x31, // .7151522, 0.0721
+ 0x37, 0x35, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x31, 0x39, 0x33, 0x33, 0x33, 0x39, 0x2c, 0x20, 0x30, // 75, 0.0193339, 0
+ 0x2e, 0x31, 0x31, 0x39, 0x31, 0x39, 0x32, 0x2c, 0x20, 0x30, 0x2e, 0x39, 0x35, 0x30, 0x33, 0x30, // .119192, 0.95030
+ 0x34, 0x31, 0x29, 0x20, 0x2a, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x79, // 41) * color_1.xy
+ 0x7a, 0x29, 0x29, 0x20, 0x2a, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x2e, // z)) * u_params1.
+ 0x79, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, // y);. lowp
+ 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x32, 0x3b, // vec3 tmpvar_12;
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // . tmpvar_
+ 0x31, 0x32, 0x20, 0x3d, 0x20, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x28, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, // 12 = pow ((_colo
+ 0x72, 0x5f, 0x31, 0x31, 0x20, 0x2a, 0x20, 0x30, 0x2e, 0x30, 0x30, 0x30, 0x31, 0x29, 0x2c, 0x20, // r_11 * 0.0001),
+ 0x76, 0x65, 0x63, 0x33, 0x28, 0x30, 0x2e, 0x31, 0x35, 0x39, 0x33, 0x30, 0x31, 0x38, 0x2c, 0x20, // vec3(0.1593018,
+ 0x30, 0x2e, 0x31, 0x35, 0x39, 0x33, 0x30, 0x31, 0x38, 0x2c, 0x20, 0x30, 0x2e, 0x31, 0x35, 0x39, // 0.1593018, 0.159
+ 0x33, 0x30, 0x31, 0x38, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // 3018));.
+ 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // lowp vec3 tmpvar
+ 0x5f, 0x31, 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, // _13;. tmp
+ 0x76, 0x61, 0x72, 0x5f, 0x31, 0x33, 0x20, 0x3d, 0x20, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x28, 0x28, // var_13 = pow (((
+ 0x30, 0x2e, 0x38, 0x33, 0x35, 0x39, 0x33, 0x37, 0x35, 0x20, 0x2b, 0x20, 0x0a, 0x20, 0x20, 0x20, // 0.8359375 + .
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x38, 0x2e, 0x38, 0x35, 0x31, 0x35, 0x36, // (18.85156
+ 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x32, 0x29, 0x0a, 0x20, 0x20, // * tmpvar_12).
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x29, 0x20, 0x2f, 0x20, 0x28, 0x76, 0x65, 0x63, 0x33, 0x28, // ) / (vec3(
+ 0x31, 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x20, 0x2b, // 1.0, 1.0, 1.0) +
+ 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x38, 0x2e, // . (18.
+ 0x36, 0x38, 0x37, 0x35, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x32, // 6875 * tmpvar_12
+ 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x29, 0x29, 0x2c, 0x20, 0x76, 0x65, // ). )), ve
+ 0x63, 0x33, 0x28, 0x37, 0x38, 0x2e, 0x38, 0x34, 0x33, 0x37, 0x35, 0x2c, 0x20, 0x37, 0x38, 0x2e, // c3(78.84375, 78.
+ 0x38, 0x34, 0x33, 0x37, 0x35, 0x2c, 0x20, 0x37, 0x38, 0x2e, 0x38, 0x34, 0x33, 0x37, 0x35, 0x29, // 84375, 78.84375)
+ 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, // );. _colo
+ 0x72, 0x5f, 0x31, 0x31, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x33, // r_11 = tmpvar_13
+ 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6c, // ;. outCol
+ 0x6f, 0x72, 0x5f, 0x34, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x33, // or_4 = tmpvar_13
+ 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, // ;. };. }
+ 0x3b, 0x0a, 0x20, 0x20, 0x7d, 0x3b, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x76, 0x65, // ;. };. lowp ve
+ 0x63, 0x34, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x34, 0x3b, 0x0a, 0x20, 0x20, // c4 tmpvar_14;.
+ 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x34, 0x2e, 0x78, 0x79, 0x7a, 0x20, 0x3d, 0x20, // tmpvar_14.xyz =
+ 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, // outColor_4;. tm
+ 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x34, 0x2e, 0x77, 0x20, 0x3d, 0x20, 0x63, 0x6f, 0x6c, 0x6f, // pvar_14.w = colo
+ 0x72, 0x5f, 0x31, 0x2e, 0x77, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // r_1.w;. tmpvar_
+ 0x33, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x34, 0x3b, 0x0a, 0x20, // 3 = tmpvar_14;.
+ 0x20, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, // gl_FragColor =
+ 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x33, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x00, // tmpvar_3;.}...
};
-static const uint8_t fs_texture_dx9[615] =
+static const uint8_t fs_texture_spv[4427] =
{
- 0x46, 0x53, 0x48, 0x06, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0a, 0x73, // FSH............s
- 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x01, 0x00, 0x00, 0x01, 0x00, 0x08, // _texColor0......
- 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x01, 0x00, 0x00, 0x01, 0x00, 0x34, 0x02, // u_params......4.
- 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xfe, 0xff, 0x2c, 0x00, 0x43, 0x54, 0x41, 0x42, 0x1c, 0x00, // ........,.CTAB..
- 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0x02, 0x00, 0x00, 0x00, 0x1c, 0x00, // ................
- 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x03, 0x00, // ......|...D.....
- 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, // ......P.......`.
- 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, // ..........l.....
- 0x00, 0x00, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x00, 0xab, 0x04, 0x00, // ..s_texColor....
- 0x0c, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, // ..............u_
- 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x00, 0xab, 0xab, 0xab, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, // params..........
- 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x73, 0x5f, 0x33, 0x5f, 0x30, // ..........ps_3_0
- 0x00, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, // .Microsoft (R) H
- 0x4c, 0x53, 0x4c, 0x20, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x69, // LSL Shader Compi
- 0x6c, 0x65, 0x72, 0x20, 0x31, 0x30, 0x2e, 0x31, 0x00, 0xab, 0x51, 0x00, 0x00, 0x05, 0x01, 0x00, // ler 10.1..Q.....
- 0x0f, 0xa0, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xcd, 0xcc, 0x0c, 0x40, 0x2f, 0xba, // .....?.......@/.
- 0xe8, 0x3e, 0x1f, 0x00, 0x00, 0x02, 0x0a, 0x00, 0x00, 0x80, 0x00, 0x00, 0x0f, 0x90, 0x1f, 0x00, // .>..............
- 0x00, 0x02, 0x05, 0x00, 0x00, 0x80, 0x01, 0x00, 0x03, 0x90, 0x1f, 0x00, 0x00, 0x02, 0x00, 0x00, // ................
- 0x00, 0x90, 0x00, 0x08, 0x0f, 0xa0, 0x05, 0x00, 0x00, 0x03, 0x00, 0x00, 0x07, 0x80, 0x01, 0x00, // ................
- 0xd0, 0xa0, 0x01, 0x00, 0xc4, 0x90, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x08, 0x80, 0x00, 0x00, // ................
- 0x00, 0xa0, 0x5f, 0x00, 0x00, 0x03, 0x00, 0x00, 0x0f, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x00, 0x08, // .._.............
- 0xe4, 0xa0, 0x05, 0x00, 0x00, 0x03, 0x01, 0x00, 0x0f, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x00, 0x00, // ................
- 0xe4, 0x90, 0x0f, 0x00, 0x00, 0x02, 0x02, 0x00, 0x01, 0x80, 0x01, 0x00, 0x00, 0x8b, 0x0f, 0x00, // ................
- 0x00, 0x02, 0x02, 0x00, 0x02, 0x80, 0x01, 0x00, 0x55, 0x8b, 0x0f, 0x00, 0x00, 0x02, 0x02, 0x00, // ........U.......
- 0x04, 0x80, 0x01, 0x00, 0xaa, 0x8b, 0x01, 0x00, 0x00, 0x02, 0x00, 0x08, 0x08, 0x80, 0x01, 0x00, // ................
- 0xff, 0x80, 0x05, 0x00, 0x00, 0x03, 0x01, 0x00, 0x07, 0x80, 0x02, 0x00, 0xe4, 0x80, 0x01, 0x00, // ................
- 0xaa, 0xa0, 0x0e, 0x00, 0x00, 0x02, 0x02, 0x00, 0x01, 0x80, 0x01, 0x00, 0x00, 0x80, 0x0e, 0x00, // ................
- 0x00, 0x02, 0x02, 0x00, 0x02, 0x80, 0x01, 0x00, 0x55, 0x80, 0x0e, 0x00, 0x00, 0x02, 0x02, 0x00, // ........U.......
- 0x04, 0x80, 0x01, 0x00, 0xaa, 0x80, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, // ................
- 0xe4, 0x80, 0x00, 0x00, 0xe4, 0x90, 0x02, 0x00, 0xe4, 0x81, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, // ................
- 0x07, 0x80, 0x00, 0x00, 0xaa, 0xa0, 0x00, 0x00, 0xe4, 0x80, 0x02, 0x00, 0xe4, 0x80, 0x0e, 0x00, // ................
- 0x00, 0x02, 0x00, 0x00, 0x08, 0x80, 0x00, 0x00, 0xff, 0xa0, 0x05, 0x00, 0x00, 0x03, 0x00, 0x00, // ................
- 0x07, 0x80, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x0f, 0x00, 0x00, 0x02, 0x01, 0x00, // ................
- 0x01, 0x80, 0x00, 0x00, 0x00, 0x8b, 0x0f, 0x00, 0x00, 0x02, 0x01, 0x00, 0x02, 0x80, 0x00, 0x00, // ................
- 0x55, 0x8b, 0x0f, 0x00, 0x00, 0x02, 0x01, 0x00, 0x04, 0x80, 0x00, 0x00, 0xaa, 0x8b, 0x05, 0x00, // U...............
- 0x00, 0x03, 0x00, 0x00, 0x07, 0x80, 0x01, 0x00, 0xe4, 0x80, 0x01, 0x00, 0xff, 0xa0, 0x0e, 0x00, // ................
- 0x00, 0x02, 0x00, 0x08, 0x01, 0x80, 0x00, 0x00, 0x00, 0x80, 0x0e, 0x00, 0x00, 0x02, 0x00, 0x08, // ................
- 0x02, 0x80, 0x00, 0x00, 0x55, 0x80, 0x0e, 0x00, 0x00, 0x02, 0x00, 0x08, 0x04, 0x80, 0x00, 0x00, // ....U...........
- 0xaa, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, // .......
+ 0x46, 0x53, 0x48, 0x0b, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x09, 0x75, // FSH............u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // _params0........
+ 0xfd, 0x7f, 0x09, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x12, 0x00, 0x10, 0x00, // ...u_params1....
+ 0x01, 0x00, 0x00, 0x00, 0xfd, 0x7f, 0x0a, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, // .......s_texColo
+ 0x72, 0x30, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x1a, 0x00, 0xf8, 0x10, 0x00, 0x00, 0x03, // r0..............
+ 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0a, 0x00, 0x08, 0x00, 0xc9, 0x02, 0x00, 0x00, 0x00, // .#..............
+ 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, // ................
+ 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, // ...GLSL.std.450.
+ 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, // ................
+ 0x00, 0x09, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, // ...........main.
+ 0x00, 0x00, 0x00, 0x65, 0x01, 0x00, 0x00, 0x68, 0x01, 0x00, 0x00, 0x6c, 0x01, 0x00, 0x00, 0x79, // ...e...h...l...y
+ 0x01, 0x00, 0x00, 0x10, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, // ................
+ 0x00, 0x03, 0x00, 0x05, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, // ................
+ 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x4d, // ...main........M
+ 0x00, 0x00, 0x00, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x61, 0x6d, // ...s_texColorSam
+ 0x70, 0x6c, 0x65, 0x72, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x50, 0x00, 0x00, 0x00, 0x73, // pler.......P...s
+ 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, // _texColorTexture
+ 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x82, 0x00, 0x00, 0x00, 0x55, 0x6e, 0x69, 0x66, 0x6f, // ...........Unifo
+ 0x72, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x82, // rmBlock.........
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, // .......u_params0
+ 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x82, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x75, // ...............u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x84, // _params1........
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x65, 0x01, 0x00, 0x00, 0x67, // ...........e...g
+ 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x00, 0x00, 0x00, 0x00, 0x05, // l_FragCoord.....
+ 0x00, 0x05, 0x00, 0x68, 0x01, 0x00, 0x00, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x00, // ...h...v_color0.
+ 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x6c, 0x01, 0x00, 0x00, 0x76, 0x5f, 0x74, 0x65, 0x78, // .......l...v_tex
+ 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x00, 0x05, 0x00, 0x06, 0x00, 0x79, 0x01, 0x00, 0x00, 0x62, // coord0.....y...b
+ 0x67, 0x66, 0x78, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x44, 0x61, 0x74, 0x61, 0x30, 0x00, 0x00, 0x47, // gfx_FragData0..G
+ 0x00, 0x04, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, // ...M...".......G
+ 0x00, 0x04, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x47, // ...M...!.......G
+ 0x00, 0x04, 0x00, 0x50, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, // ...P...".......G
+ 0x00, 0x04, 0x00, 0x50, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x48, // ...P...!.......H
+ 0x00, 0x05, 0x00, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, // ...........#....
+ 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x82, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x23, // ...H...........#
+ 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x82, 0x00, 0x00, 0x00, 0x02, // .......G........
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x84, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, // ...G......."....
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x84, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, // ...G.......!....
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x65, 0x01, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0f, // ...G...e........
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x68, 0x01, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, // ...G...h........
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x6c, 0x01, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x01, // ...G...l........
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x79, 0x01, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, // ...G...y........
+ 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, // ...........!....
+ 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x02, 0x00, 0x06, 0x00, 0x00, 0x00, 0x16, // ................
+ 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x08, // ....... ........
+ 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, // ................
+ 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x17, // ................
+ 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x17, // ................
+ 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, // ...............
+ 0x00, 0x04, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3b, // ...L...........;
+ 0x00, 0x04, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, // ...L...M.......
+ 0x00, 0x04, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x3b, // ...O...........;
+ 0x00, 0x04, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, // ...O...P........
+ 0x00, 0x04, 0x00, 0x53, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, // ...S... .......+
+ 0x00, 0x04, 0x00, 0x53, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, // ...S...T.......+
+ 0x00, 0x04, 0x00, 0x53, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, // ...S...X........
+ 0x00, 0x03, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, // ...........+....
+ 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0xcd, 0xcc, 0x0c, 0x40, 0x1e, 0x00, 0x04, 0x00, 0x82, // ...x......@.....
+ 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x83, // ........... ....
+ 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x83, // ...........;....
+ 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x85, // ................
+ 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x85, // ... .......+....
+ 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x87, // ........... ....
+ 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, // ...........+....
+ 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x2b, 0x00, 0x04, 0x00, 0x85, // ..........@+....
+ 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, // ...........+....
+ 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, 0x1c, 0x2e, 0x4d, 0x3b, 0x14, 0x00, 0x02, 0x00, 0x9b, // .........M;.....
+ 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x52, // ...+...........R
+ 0xb8, 0x4e, 0x41, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x3d, // .NA+...........=
+ 0x0a, 0x87, 0x3f, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0x55, // ..?+...........U
+ 0x55, 0xd5, 0x3e, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, 0xae, // U.>+............
+ 0x47, 0x61, 0x3d, 0x2b, 0x00, 0x04, 0x00, 0x85, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, 0x00, // Ga=+............
+ 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x85, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x01, // ...+............
+ 0x00, 0x00, 0x00, 0x18, 0x00, 0x04, 0x00, 0xc1, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x03, // ................
+ 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0x98, // ...+............
+ 0x3a, 0xd3, 0x3e, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, 0x37, // :.>+...........7
+ 0x14, 0xb7, 0x3e, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, 0x9c, // ..>+............
+ 0xc4, 0x38, 0x3e, 0x2c, 0x00, 0x06, 0x00, 0x15, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, 0xc4, // .8>,............
+ 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, // ...........+....
+ 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0xed, 0xc6, 0x59, 0x3e, 0x2b, 0x00, 0x04, 0x00, 0x07, // .........Y>+....
+ 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, 0x37, 0x14, 0x37, 0x3f, 0x2b, 0x00, 0x04, 0x00, 0x07, // .......7.7?+....
+ 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, 0x7d, 0xd0, 0x93, 0x3d, 0x2c, 0x00, 0x06, 0x00, 0x15, // .......}..=,....
+ 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, 0xca, // ................
+ 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0x21, // ...+...........!
+ 0x62, 0x9e, 0x3c, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xcd, 0x00, 0x00, 0x00, 0xef, // b.<+............
+ 0x1a, 0xf4, 0x3d, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, 0x21, // ..=+...........!
+ 0x47, 0x73, 0x3f, 0x2c, 0x00, 0x06, 0x00, 0x15, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, 0xcc, // Gs?,............
+ 0x00, 0x00, 0x00, 0xcd, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0xc1, // ...........,....
+ 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, 0xcf, // ................
+ 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, 0x3a, // ...+...........:
+ 0xbb, 0xdb, 0x3f, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0x7c, // ..?+...........|
+ 0x1a, 0xb6, 0xbe, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, 0x3a, // ...+...........:
+ 0xb9, 0x81, 0xbe, 0x2c, 0x00, 0x06, 0x00, 0x15, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, 0xd7, // ...,............
+ 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, // ...........+....
+ 0x00, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, 0xd4, 0xab, 0x2a, 0xbf, 0x2b, 0x00, 0x04, 0x00, 0x07, // .........*.+....
+ 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, 0xdb, 0xe8, 0xce, 0x3f, 0x2b, 0x00, 0x04, 0x00, 0x07, // ..........?+....
+ 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0xf1, 0x2c, 0x81, 0x3c, 0x2c, 0x00, 0x06, 0x00, 0x15, // ........,.<,....
+ 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, 0xdd, // ................
+ 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, 0x8d, // ...+............
+ 0x81, 0x90, 0x3c, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x3a, // ..<+...........:
+ 0x30, 0x2f, 0xbd, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0xab, // 0/.+............
+ 0x2d, 0x71, 0x3f, 0x2c, 0x00, 0x06, 0x00, 0x15, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0xdf, // -q?,............
+ 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0xc1, // ...........,....
+ 0x00, 0x00, 0x00, 0xe3, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, 0xe2, // ................
+ 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x00, // ...+............
+ 0x20, 0x23, 0x3e, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, 0x00, // #>+............
+ 0xb0, 0x9d, 0x42, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xee, 0x00, 0x00, 0x00, 0x00, // ..B+............
+ 0x00, 0x56, 0x3f, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, // .V?+............
+ 0xd0, 0x96, 0x41, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x00, 0x00, 0x00, // ..A+............
+ 0x80, 0x95, 0x41, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, 0x17, // ..A+............
+ 0xb7, 0xd1, 0x38, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, // ..8+............
+ 0x00, 0x80, 0x3f, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x00, // ..?+............
+ 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x15, 0x01, 0x00, 0x00, 0x00, // ...+............
+ 0x00, 0x00, 0x3f, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x22, 0x01, 0x00, 0x00, 0x00, // ..?+......."....
+ 0x00, 0xc0, 0x3f, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x2a, 0x01, 0x00, 0x00, 0x00, // ..?+.......*....
+ 0x00, 0x20, 0x40, 0x20, 0x00, 0x04, 0x00, 0x64, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0e, // . @ ...d........
+ 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x64, 0x01, 0x00, 0x00, 0x65, 0x01, 0x00, 0x00, 0x01, // ...;...d...e....
+ 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x64, 0x01, 0x00, 0x00, 0x68, 0x01, 0x00, 0x00, 0x01, // ...;...d...h....
+ 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x6b, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x15, // ... ...k........
+ 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x6b, 0x01, 0x00, 0x00, 0x6c, 0x01, 0x00, 0x00, 0x01, // ...;...k...l....
+ 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x78, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0e, // ... ...x........
+ 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x78, 0x01, 0x00, 0x00, 0x79, 0x01, 0x00, 0x00, 0x03, // ...;...x...y....
+ 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x15, 0x00, 0x00, 0x00, 0xb7, 0x02, 0x00, 0x00, 0x78, // ...,...........x
+ 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x15, // ...x...x...,....
+ 0x00, 0x00, 0x00, 0xb8, 0x02, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x11, // ................
+ 0x01, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x15, 0x00, 0x00, 0x00, 0xb9, 0x02, 0x00, 0x00, 0xea, // ...,............
+ 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x15, // ...........,....
+ 0x00, 0x00, 0x00, 0xba, 0x02, 0x00, 0x00, 0xee, 0x00, 0x00, 0x00, 0xee, 0x00, 0x00, 0x00, 0xee, // ................
+ 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x15, 0x00, 0x00, 0x00, 0xbb, 0x02, 0x00, 0x00, 0x01, // ...,............
+ 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x15, // ...........,....
+ 0x00, 0x00, 0x00, 0xbc, 0x02, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, 0xec, // ................
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, 0xc8, 0x02, 0x00, 0x00, 0x36, // ...............6
+ 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, // ................
+ 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, // ...........=....
+ 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x08, // ...N...M...=....
+ 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0e, // ...Q...P...=....
+ 0x00, 0x00, 0x00, 0x69, 0x01, 0x00, 0x00, 0x68, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x15, // ...i...h...=....
+ 0x00, 0x00, 0x00, 0x6d, 0x01, 0x00, 0x00, 0x6c, 0x01, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x0b, // ...m...l...O....
+ 0x00, 0x00, 0x00, 0xa3, 0x01, 0x00, 0x00, 0x6d, 0x01, 0x00, 0x00, 0x6d, 0x01, 0x00, 0x00, 0x00, // .......m...m....
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x87, 0x00, 0x00, 0x00, 0xa4, // .......A........
+ 0x01, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, 0x3d, // .......X.......=
+ 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xa5, 0x01, 0x00, 0x00, 0xa4, 0x01, 0x00, 0x00, 0x56, // ...............V
+ 0x00, 0x05, 0x00, 0x5c, 0x00, 0x00, 0x00, 0xc2, 0x01, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x4e, // ...........Q...N
+ 0x00, 0x00, 0x00, 0x58, 0x00, 0x07, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xc5, 0x01, 0x00, 0x00, 0xc2, // ...X............
+ 0x01, 0x00, 0x00, 0xa3, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xa5, 0x01, 0x00, 0x00, 0x4f, // ...............O
+ 0x00, 0x08, 0x00, 0x15, 0x00, 0x00, 0x00, 0xa8, 0x01, 0x00, 0x00, 0xc5, 0x01, 0x00, 0x00, 0xc5, // ................
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0c, // ................
+ 0x00, 0x06, 0x00, 0x15, 0x00, 0x00, 0x00, 0xdd, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, // ................
+ 0x00, 0x00, 0x00, 0xa8, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x15, 0x00, 0x00, 0x00, 0xdf, // ................
+ 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0xdd, 0x01, 0x00, 0x00, 0xb7, // ................
+ 0x02, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x87, 0x00, 0x00, 0x00, 0xcf, 0x01, 0x00, 0x00, 0x84, // ...A............
+ 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, // ...X.......=....
+ 0x00, 0x00, 0x00, 0xd0, 0x01, 0x00, 0x00, 0xcf, 0x01, 0x00, 0x00, 0x50, 0x00, 0x06, 0x00, 0x15, // ...........P....
+ 0x00, 0x00, 0x00, 0xd1, 0x01, 0x00, 0x00, 0xd0, 0x01, 0x00, 0x00, 0xd0, 0x01, 0x00, 0x00, 0xd0, // ................
+ 0x01, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x15, 0x00, 0x00, 0x00, 0xeb, 0x01, 0x00, 0x00, 0x01, // ................
+ 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0xdf, 0x01, 0x00, 0x00, 0xa8, 0x01, 0x00, 0x00, 0xd1, // ................
+ 0x01, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x87, 0x00, 0x00, 0x00, 0xd5, 0x01, 0x00, 0x00, 0x84, // ...A............
+ 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, // ...X.......=....
+ 0x00, 0x00, 0x00, 0xd6, 0x01, 0x00, 0x00, 0xd5, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x07, // ................
+ 0x00, 0x00, 0x00, 0xd7, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x91, // ................
+ 0x00, 0x00, 0x00, 0xd6, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0xd8, // ................
+ 0x01, 0x00, 0x00, 0xeb, 0x01, 0x00, 0x00, 0xd7, 0x01, 0x00, 0x00, 0x4f, 0x00, 0x09, 0x00, 0x0e, // ...........O....
+ 0x00, 0x00, 0x00, 0xab, 0x01, 0x00, 0x00, 0xc5, 0x01, 0x00, 0x00, 0xd8, 0x01, 0x00, 0x00, 0x04, // ................
+ 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x85, // ................
+ 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xae, 0x01, 0x00, 0x00, 0xab, 0x01, 0x00, 0x00, 0x69, // ...............i
+ 0x01, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x87, 0x00, 0x00, 0x00, 0xb0, 0x01, 0x00, 0x00, 0x84, // ...A............
+ 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, // ...T.......=....
+ 0x00, 0x00, 0x00, 0xb1, 0x01, 0x00, 0x00, 0xb0, 0x01, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x87, // ...........A....
+ 0x00, 0x00, 0x00, 0xb2, 0x01, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0xb4, // ...........T....
+ 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xb3, 0x01, 0x00, 0x00, 0xb2, // ...=............
+ 0x01, 0x00, 0x00, 0xb8, 0x00, 0x05, 0x00, 0x9b, 0x00, 0x00, 0x00, 0xf7, 0x01, 0x00, 0x00, 0xb1, // ................
+ 0x01, 0x00, 0x00, 0x15, 0x01, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x14, 0x02, 0x00, 0x00, 0x00, // ................
+ 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0xf7, 0x01, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0xff, // ................
+ 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xff, 0x01, 0x00, 0x00, 0xb8, 0x00, 0x05, 0x00, 0x9b, // ................
+ 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xb1, 0x01, 0x00, 0x00, 0x22, 0x01, 0x00, 0x00, 0xf7, // ..........."....
+ 0x00, 0x03, 0x00, 0x13, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x01, // ................
+ 0x02, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x05, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, // ................
+ 0x02, 0x00, 0x00, 0xb8, 0x00, 0x05, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0xb1, // ................
+ 0x01, 0x00, 0x00, 0x2a, 0x01, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x12, 0x02, 0x00, 0x00, 0x00, // ...*............
+ 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x07, 0x02, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x12, // ................
+ 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x08, 0x02, 0x00, 0x00, 0x4f, 0x00, 0x08, 0x00, 0x15, // ...........O....
+ 0x00, 0x00, 0x00, 0x0a, 0x02, 0x00, 0x00, 0xae, 0x01, 0x00, 0x00, 0xae, 0x01, 0x00, 0x00, 0x00, // ................
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x90, 0x00, 0x05, 0x00, 0x15, // ................
+ 0x00, 0x00, 0x00, 0x6f, 0x02, 0x00, 0x00, 0x0a, 0x02, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, 0x90, // ...o............
+ 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x75, 0x02, 0x00, 0x00, 0x6f, 0x02, 0x00, 0x00, 0xe3, // .......u...o....
+ 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x10, 0x02, 0x00, 0x00, 0x75, // ...............u
+ 0x02, 0x00, 0x00, 0xb3, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x82, // ................
+ 0x02, 0x00, 0x00, 0x10, 0x02, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x15, // ................
+ 0x00, 0x00, 0x00, 0x85, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x82, // ................
+ 0x02, 0x00, 0x00, 0xb9, 0x02, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x89, // ................
+ 0x02, 0x00, 0x00, 0x85, 0x02, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x15, // ................
+ 0x00, 0x00, 0x00, 0x8b, 0x02, 0x00, 0x00, 0xba, 0x02, 0x00, 0x00, 0x89, 0x02, 0x00, 0x00, 0x8e, // ................
+ 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x8f, 0x02, 0x00, 0x00, 0x85, 0x02, 0x00, 0x00, 0xf2, // ................
+ 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x90, 0x02, 0x00, 0x00, 0xbb, // ................
+ 0x02, 0x00, 0x00, 0x8f, 0x02, 0x00, 0x00, 0x88, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x91, // ................
+ 0x02, 0x00, 0x00, 0x8b, 0x02, 0x00, 0x00, 0x90, 0x02, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x15, // ................
+ 0x00, 0x00, 0x00, 0x94, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x91, // ................
+ 0x02, 0x00, 0x00, 0xbc, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x12, 0x02, 0x00, 0x00, 0xf8, // ................
+ 0x00, 0x02, 0x00, 0x12, 0x02, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x15, 0x00, 0x00, 0x00, 0xc5, // ................
+ 0x02, 0x00, 0x00, 0xb8, 0x02, 0x00, 0x00, 0x05, 0x02, 0x00, 0x00, 0x94, 0x02, 0x00, 0x00, 0x08, // ................
+ 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x13, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x02, // ................
+ 0x02, 0x00, 0x00, 0x4f, 0x00, 0x08, 0x00, 0x15, 0x00, 0x00, 0x00, 0x04, 0x02, 0x00, 0x00, 0xae, // ...O............
+ 0x01, 0x00, 0x00, 0xae, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, // ................
+ 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x13, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x13, // ................
+ 0x02, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x15, 0x00, 0x00, 0x00, 0xc4, 0x02, 0x00, 0x00, 0xc5, // ................
+ 0x02, 0x00, 0x00, 0x12, 0x02, 0x00, 0x00, 0x04, 0x02, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0xf9, // ................
+ 0x00, 0x02, 0x00, 0x14, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x4f, // ...............O
+ 0x00, 0x08, 0x00, 0x15, 0x00, 0x00, 0x00, 0xfa, 0x01, 0x00, 0x00, 0xae, 0x01, 0x00, 0x00, 0xae, // ................
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0c, // ................
+ 0x00, 0x08, 0x00, 0x15, 0x00, 0x00, 0x00, 0xfd, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, // ...............+
+ 0x00, 0x00, 0x00, 0xfa, 0x01, 0x00, 0x00, 0xb8, 0x02, 0x00, 0x00, 0xbb, 0x02, 0x00, 0x00, 0x51, // ...............Q
+ 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x28, 0x02, 0x00, 0x00, 0xfd, 0x01, 0x00, 0x00, 0x00, // .......(........
+ 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x44, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, // .......D........
+ 0x00, 0x03, 0x00, 0xae, 0x00, 0x00, 0x00, 0x38, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x38, // .......8.......8
+ 0x02, 0x00, 0x00, 0xbc, 0x00, 0x05, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x3a, 0x02, 0x00, 0x00, 0x28, // ...........:...(
+ 0x02, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x43, 0x02, 0x00, 0x00, 0x00, // ...........C....
+ 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x3a, 0x02, 0x00, 0x00, 0x3b, 0x02, 0x00, 0x00, 0x3e, // .......:...;...>
+ 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x3e, 0x02, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x07, // .......>........
+ 0x00, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x28, // ...@...........(
+ 0x02, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x41, // ...............A
+ 0x02, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, 0x07, // .......@........
+ 0x00, 0x00, 0x00, 0x42, 0x02, 0x00, 0x00, 0x41, 0x02, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, 0xf9, // ...B...A........
+ 0x00, 0x02, 0x00, 0x44, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x3b, 0x02, 0x00, 0x00, 0x85, // ...D.......;....
+ 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3d, 0x02, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x28, // .......=.......(
+ 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x44, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x43, // .......D.......C
+ 0x02, 0x00, 0x00, 0xff, 0x00, 0x01, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x44, 0x02, 0x00, 0x00, 0xf5, // ...........D....
+ 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00, 0xbd, 0x02, 0x00, 0x00, 0x42, 0x02, 0x00, 0x00, 0x3e, // ...........B...>
+ 0x02, 0x00, 0x00, 0x3d, 0x02, 0x00, 0x00, 0x3b, 0x02, 0x00, 0x00, 0x52, 0x00, 0x06, 0x00, 0x15, // ...=...;...R....
+ 0x00, 0x00, 0x00, 0xae, 0x02, 0x00, 0x00, 0xbd, 0x02, 0x00, 0x00, 0xc8, 0x02, 0x00, 0x00, 0x00, // ................
+ 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x2c, 0x02, 0x00, 0x00, 0xfd, // ...Q.......,....
+ 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x56, 0x02, 0x00, 0x00, 0x00, // ...........V....
+ 0x00, 0x00, 0x00, 0xfb, 0x00, 0x03, 0x00, 0xae, 0x00, 0x00, 0x00, 0x4a, 0x02, 0x00, 0x00, 0xf8, // ...........J....
+ 0x00, 0x02, 0x00, 0x4a, 0x02, 0x00, 0x00, 0xbc, 0x00, 0x05, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x4c, // ...J...........L
+ 0x02, 0x00, 0x00, 0x2c, 0x02, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x55, // ...,...........U
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x4c, 0x02, 0x00, 0x00, 0x4d, // ...........L...M
+ 0x02, 0x00, 0x00, 0x50, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x50, 0x02, 0x00, 0x00, 0x0c, // ...P.......P....
+ 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00, 0x52, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1a, // .......R........
+ 0x00, 0x00, 0x00, 0x2c, 0x02, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x07, // ...,............
+ 0x00, 0x00, 0x00, 0x53, 0x02, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x52, 0x02, 0x00, 0x00, 0x83, // ...S.......R....
+ 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x54, 0x02, 0x00, 0x00, 0x53, 0x02, 0x00, 0x00, 0xa9, // .......T...S....
+ 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x56, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x4d, // .......V.......M
+ 0x02, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x4f, 0x02, 0x00, 0x00, 0x9f, // ...........O....
+ 0x00, 0x00, 0x00, 0x2c, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x56, 0x02, 0x00, 0x00, 0xf8, // ...,.......V....
+ 0x00, 0x02, 0x00, 0x55, 0x02, 0x00, 0x00, 0xff, 0x00, 0x01, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x56, // ...U...........V
+ 0x02, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00, 0xbf, 0x02, 0x00, 0x00, 0x54, // ...............T
+ 0x02, 0x00, 0x00, 0x50, 0x02, 0x00, 0x00, 0x4f, 0x02, 0x00, 0x00, 0x4d, 0x02, 0x00, 0x00, 0x52, // ...P...O...M...R
+ 0x00, 0x06, 0x00, 0x15, 0x00, 0x00, 0x00, 0xb1, 0x02, 0x00, 0x00, 0xbf, 0x02, 0x00, 0x00, 0xae, // ................
+ 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x30, // .......Q.......0
+ 0x02, 0x00, 0x00, 0xfd, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x68, // ...............h
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x03, 0x00, 0xae, 0x00, 0x00, 0x00, 0x5c, // ................
+ 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x5c, 0x02, 0x00, 0x00, 0xbc, 0x00, 0x05, 0x00, 0x9b, // ................
+ 0x00, 0x00, 0x00, 0x5e, 0x02, 0x00, 0x00, 0x30, 0x02, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, 0xf7, // ...^...0........
+ 0x00, 0x03, 0x00, 0x67, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x5e, // ...g...........^
+ 0x02, 0x00, 0x00, 0x5f, 0x02, 0x00, 0x00, 0x62, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x62, // ..._...b.......b
+ 0x02, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00, 0x64, 0x02, 0x00, 0x00, 0x01, // ...........d....
+ 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x30, 0x02, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0x85, // .......0........
+ 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x65, 0x02, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x64, // .......e.......d
+ 0x02, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x66, 0x02, 0x00, 0x00, 0x65, // ...........f...e
+ 0x02, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x68, 0x02, 0x00, 0x00, 0xf8, // ...........h....
+ 0x00, 0x02, 0x00, 0x5f, 0x02, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x61, // ..._...........a
+ 0x02, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x30, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x68, // .......0.......h
+ 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x67, 0x02, 0x00, 0x00, 0xff, 0x00, 0x01, 0x00, 0xf8, // .......g........
+ 0x00, 0x02, 0x00, 0x68, 0x02, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00, 0xc1, // ...h............
+ 0x02, 0x00, 0x00, 0x66, 0x02, 0x00, 0x00, 0x62, 0x02, 0x00, 0x00, 0x61, 0x02, 0x00, 0x00, 0x5f, // ...f...b...a..._
+ 0x02, 0x00, 0x00, 0x52, 0x00, 0x06, 0x00, 0x15, 0x00, 0x00, 0x00, 0xb4, 0x02, 0x00, 0x00, 0xc1, // ...R............
+ 0x02, 0x00, 0x00, 0xb1, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x14, // ................
+ 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x14, 0x02, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x15, // ................
+ 0x00, 0x00, 0x00, 0xc3, 0x02, 0x00, 0x00, 0xc4, 0x02, 0x00, 0x00, 0x13, 0x02, 0x00, 0x00, 0xb4, // ................
+ 0x02, 0x00, 0x00, 0x68, 0x02, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x17, // ...h...Q........
+ 0x02, 0x00, 0x00, 0xae, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, // ...........Q....
+ 0x00, 0x00, 0x00, 0x18, 0x02, 0x00, 0x00, 0xc3, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, // ...............Q
+ 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x19, 0x02, 0x00, 0x00, 0xc3, 0x02, 0x00, 0x00, 0x01, // ................
+ 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x1a, 0x02, 0x00, 0x00, 0xc3, // ...Q............
+ 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x1b, // .......P........
+ 0x02, 0x00, 0x00, 0x18, 0x02, 0x00, 0x00, 0x19, 0x02, 0x00, 0x00, 0x1a, 0x02, 0x00, 0x00, 0x17, // ................
+ 0x02, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x79, 0x01, 0x00, 0x00, 0x1b, 0x02, 0x00, 0x00, 0xfd, // ...>...y........
+ 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, // ...8..... .
};
-static const uint8_t fs_texture_dx11[770] =
+static const uint8_t fs_texture_dx9[1452] =
{
- 0x46, 0x53, 0x48, 0x06, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x08, 0x75, // FSH............u
- 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0a, 0x73, 0x5f, // _params.......s_
- 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x01, 0x00, 0x00, 0x01, 0x00, 0xcc, 0x02, // texColor0.......
- 0x00, 0x00, 0x44, 0x58, 0x42, 0x43, 0xab, 0xa0, 0x24, 0x5b, 0x96, 0x54, 0x64, 0xb7, 0x42, 0xe5, // ..DXBC..$[.Td.B.
- 0xe8, 0xdd, 0xe9, 0x4c, 0x84, 0x1c, 0x01, 0x00, 0x00, 0x00, 0xcc, 0x02, 0x00, 0x00, 0x03, 0x00, // ...L............
- 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, 0x49, 0x53, // ..,...........IS
- 0x47, 0x4e, 0x6c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x50, 0x00, // GNl...........P.
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
- 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
- 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x62, 0x00, // ..............b.
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, // ................
- 0x00, 0x00, 0x07, 0x03, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, // ......SV_POSITIO
- 0x4e, 0x00, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, // N.COLOR.TEXCOORD
- 0x00, 0xab, 0x4f, 0x53, 0x47, 0x4e, 0x2c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, // ..OSGN,.........
- 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, // .. .............
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x54, 0x41, 0x52, // ..........SV_TAR
- 0x47, 0x45, 0x54, 0x00, 0xab, 0xab, 0x53, 0x48, 0x44, 0x52, 0xf0, 0x01, 0x00, 0x00, 0x40, 0x00, // GET...SHDR....@.
- 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x04, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, // ..|...Y...F. ...
- 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x03, 0x00, 0x60, 0x10, 0x00, 0x00, 0x00, // ......Z....`....
- 0x00, 0x00, 0x58, 0x18, 0x00, 0x04, 0x00, 0x70, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, // ..X....p......UU
- 0x00, 0x00, 0x62, 0x10, 0x00, 0x03, 0xf2, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x62, 0x10, // ..b...........b.
- 0x00, 0x03, 0x32, 0x10, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x03, 0xf2, 0x20, // ..2.......e....
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x48, 0x00, // ......h.......H.
- 0x00, 0x0c, 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x10, 0x10, 0x00, 0x02, 0x00, // ..........F.....
- 0x00, 0x00, 0x46, 0x7e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x00, 0x00, // ..F~.......`....
- 0x00, 0x00, 0x0a, 0x80, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, // .... .........8.
- 0x00, 0x07, 0xf2, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, // ..........F.....
- 0x00, 0x00, 0x46, 0x1e, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x06, 0x72, 0x00, // ..F......./...r.
- 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x80, 0x81, 0x00, 0x00, 0x00, 0x01, 0x00, // ......F.........
- 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0x82, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x00, // ..6.... ......:.
- 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x0a, 0x72, 0x00, 0x10, 0x00, 0x01, 0x00, // ......8...r.....
- 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0xcd, 0xcc, // ..F........@....
- 0x0c, 0x40, 0xcd, 0xcc, 0x0c, 0x40, 0xcd, 0xcc, 0x0c, 0x40, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, // .@...@...@......
- 0x00, 0x05, 0x72, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x01, 0x00, // ..r.......F.....
- 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, 0x72, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, // ..2...r.......F.
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x12, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x02, // ......F.......F.
- 0x10, 0x80, 0x41, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, 0x72, 0x00, // ..A.......2...r.
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0x8a, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........ .......
- 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x01, 0x00, // ..F.......F.....
- 0x00, 0x00, 0x19, 0x00, 0x00, 0x06, 0x82, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x80, // ..............:.
- 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x07, 0x72, 0x00, // .........8...r.
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0x0f, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, // ..............F.
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x06, 0x72, 0x00, 0x10, 0x00, 0x00, 0x00, // ....../...r.....
- 0x00, 0x00, 0x46, 0x02, 0x10, 0x80, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, // ..F...........8.
- 0x00, 0x0a, 0x72, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, // ..r.......F.....
- 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x2f, 0xba, 0xe8, 0x3e, 0x2f, 0xba, 0xe8, 0x3e, 0x2f, 0xba, // ...@../..>/..>/.
- 0xe8, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x05, 0x72, 0x20, 0x10, 0x00, 0x00, 0x00, // .>........r ....
- 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x01, 0x00, 0x00, // ..F.......>.....
- 0x10, 0x00, // ..
+ 0x46, 0x53, 0x48, 0x0b, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x0a, 0x73, // FSH............s
+ 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, // _texColor0......
+ 0x00, 0x00, 0x00, 0x09, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x12, 0x01, 0x00, // ....u_params0...
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, // ........u_params
+ 0x31, 0x12, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x05, 0x00, 0x00, 0x00, // 1...............
+ 0x03, 0xff, 0xff, 0xfe, 0xff, 0x34, 0x00, 0x43, 0x54, 0x41, 0x42, 0x1c, 0x00, 0x00, 0x00, 0xa1, // .....4.CTAB.....
+ 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, // ................
+ 0x91, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, // .......X........
+ 0x00, 0x02, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x02, // ...d.......t....
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, // ................
+ 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, // ................
+ 0x00, 0x00, 0x00, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x00, 0xab, 0x04, // ...s_texColor...
+ 0x00, 0x0c, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, // ...............u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x00, 0xab, 0xab, 0x01, 0x00, 0x03, 0x00, 0x01, // _params0........
+ 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x70, 0x61, 0x72, // ...........u_par
+ 0x61, 0x6d, 0x73, 0x31, 0x00, 0x70, 0x73, 0x5f, 0x33, 0x5f, 0x30, 0x00, 0x4d, 0x69, 0x63, 0x72, // ams1.ps_3_0.Micr
+ 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4c, 0x53, 0x4c, 0x20, 0x53, // osoft (R) HLSL S
+ 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x20, 0x31, // hader Compiler 1
+ 0x30, 0x2e, 0x31, 0x00, 0xab, 0xab, 0xab, 0x51, 0x00, 0x00, 0x05, 0x02, 0x00, 0x0f, 0xa0, 0x1c, // 0.1....Q........
+ 0x2e, 0x4d, 0x3b, 0x52, 0xb8, 0x4e, 0x41, 0x55, 0x55, 0xd5, 0x3e, 0x17, 0xb7, 0xd1, 0x38, 0x51, // .M;R.NAUU.>...8Q
+ 0x00, 0x00, 0x05, 0x03, 0x00, 0x0f, 0xa0, 0x3d, 0x0a, 0x87, 0x3f, 0xae, 0x47, 0x61, 0xbd, 0x00, // .......=..?.Ga..
+ 0x00, 0xc0, 0xbf, 0x00, 0x00, 0x20, 0xc0, 0x51, 0x00, 0x00, 0x05, 0x04, 0x00, 0x0f, 0xa0, 0x00, // ..... .Q........
+ 0xd0, 0x96, 0x41, 0x00, 0x00, 0x56, 0x3f, 0x00, 0x80, 0x95, 0x41, 0x00, 0x00, 0x80, 0x3f, 0x51, // ..A..V?...A...?Q
+ 0x00, 0x00, 0x05, 0x05, 0x00, 0x0f, 0xa0, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xcd, // ..........?.....
+ 0xcc, 0x0c, 0x40, 0x00, 0x00, 0x00, 0x3f, 0x51, 0x00, 0x00, 0x05, 0x06, 0x00, 0x0f, 0xa0, 0xed, // ..@...?Q........
+ 0xc6, 0x59, 0x3e, 0x37, 0x14, 0x37, 0x3f, 0x7d, 0xd0, 0x93, 0x3d, 0x00, 0xb0, 0x9d, 0x42, 0x51, // .Y>7.7?}..=...BQ
+ 0x00, 0x00, 0x05, 0x07, 0x00, 0x0f, 0xa0, 0x98, 0x3a, 0xd3, 0x3e, 0x37, 0x14, 0xb7, 0x3e, 0x9c, // ........:.>7..>.
+ 0xc4, 0x38, 0x3e, 0x00, 0x20, 0x23, 0x3e, 0x51, 0x00, 0x00, 0x05, 0x08, 0x00, 0x0f, 0xa0, 0x21, // .8>. #>Q.......!
+ 0x62, 0x9e, 0x3c, 0xef, 0x1a, 0xf4, 0x3d, 0x21, 0x47, 0x73, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x51, // b.<...=!Gs?....Q
+ 0x00, 0x00, 0x05, 0x09, 0x00, 0x0f, 0xa0, 0x3a, 0xbb, 0xdb, 0x3f, 0x7c, 0x1a, 0xb6, 0xbe, 0x3a, // .......:..?|...:
+ 0xb9, 0x81, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x05, 0x0a, 0x00, 0x0f, 0xa0, 0xd4, // .......Q........
+ 0xab, 0x2a, 0xbf, 0xdb, 0xe8, 0xce, 0x3f, 0xf1, 0x2c, 0x81, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x51, // .*....?.,.<....Q
+ 0x00, 0x00, 0x05, 0x0b, 0x00, 0x0f, 0xa0, 0x8d, 0x81, 0x90, 0x3c, 0x3a, 0x30, 0x2f, 0xbd, 0xab, // ..........<:0/..
+ 0x2d, 0x71, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x02, 0x0a, 0x00, 0x00, 0x80, 0x00, // -q?.............
+ 0x00, 0x0f, 0x90, 0x1f, 0x00, 0x00, 0x02, 0x05, 0x00, 0x00, 0x80, 0x01, 0x00, 0x03, 0x90, 0x1f, // ................
+ 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x90, 0x00, 0x08, 0x0f, 0xa0, 0x01, 0x00, 0x00, 0x02, 0x00, // ................
+ 0x00, 0x08, 0x80, 0x00, 0x00, 0x00, 0xa0, 0x05, 0x00, 0x00, 0x03, 0x00, 0x00, 0x07, 0x80, 0x05, // ................
+ 0x00, 0xd0, 0xa0, 0x01, 0x00, 0xc4, 0x90, 0x5f, 0x00, 0x00, 0x03, 0x00, 0x00, 0x0f, 0x80, 0x00, // ......._........
+ 0x00, 0xe4, 0x80, 0x00, 0x08, 0xe4, 0xa0, 0x0f, 0x00, 0x00, 0x02, 0x01, 0x00, 0x01, 0x80, 0x00, // ................
+ 0x00, 0x00, 0x8b, 0x0f, 0x00, 0x00, 0x02, 0x01, 0x00, 0x02, 0x80, 0x00, 0x00, 0x55, 0x8b, 0x0f, // .............U..
+ 0x00, 0x00, 0x02, 0x01, 0x00, 0x04, 0x80, 0x00, 0x00, 0xaa, 0x8b, 0x05, 0x00, 0x00, 0x03, 0x01, // ................
+ 0x00, 0x07, 0x80, 0x01, 0x00, 0xe4, 0x80, 0x05, 0x00, 0xaa, 0xa0, 0x0e, 0x00, 0x00, 0x02, 0x02, // ................
+ 0x00, 0x01, 0x80, 0x01, 0x00, 0x00, 0x80, 0x0e, 0x00, 0x00, 0x02, 0x02, 0x00, 0x02, 0x80, 0x01, // ................
+ 0x00, 0x55, 0x80, 0x0e, 0x00, 0x00, 0x02, 0x02, 0x00, 0x04, 0x80, 0x01, 0x00, 0xaa, 0x80, 0x12, // .U..............
+ 0x00, 0x00, 0x04, 0x01, 0x00, 0x07, 0x80, 0x00, 0x00, 0xaa, 0xa0, 0x00, 0x00, 0xe4, 0x80, 0x02, // ................
+ 0x00, 0xe4, 0x80, 0x0e, 0x00, 0x00, 0x02, 0x01, 0x00, 0x08, 0x80, 0x00, 0x00, 0xff, 0xa0, 0x05, // ................
+ 0x00, 0x00, 0x03, 0x00, 0x00, 0x07, 0x80, 0x01, 0x00, 0xff, 0x80, 0x01, 0x00, 0xe4, 0x80, 0x05, // ................
+ 0x00, 0x00, 0x03, 0x00, 0x00, 0x0f, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x00, 0x00, 0xe4, 0x90, 0x01, // ................
+ 0x00, 0x00, 0x02, 0x01, 0x00, 0x08, 0x80, 0x05, 0x00, 0xff, 0xa0, 0x29, 0x00, 0x04, 0x02, 0x01, // ...........)....
+ 0x00, 0x00, 0xa0, 0x01, 0x00, 0xff, 0x80, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x17, 0x80, 0x00, // ................
+ 0x00, 0xe4, 0x80, 0x20, 0x00, 0x00, 0x03, 0x01, 0x00, 0x01, 0x80, 0x00, 0x00, 0xaa, 0x80, 0x02, // ... ............
+ 0x00, 0xaa, 0xa0, 0x04, 0x00, 0x00, 0x04, 0x01, 0x00, 0x01, 0x80, 0x01, 0x00, 0x00, 0x80, 0x03, // ................
+ 0x00, 0x00, 0xa0, 0x03, 0x00, 0x55, 0xa0, 0x20, 0x00, 0x00, 0x03, 0x01, 0x00, 0x02, 0x80, 0x00, // .....U. ........
+ 0x00, 0x00, 0x80, 0x02, 0x00, 0xaa, 0xa0, 0x04, 0x00, 0x00, 0x04, 0x01, 0x00, 0x02, 0x80, 0x01, // ................
+ 0x00, 0x55, 0x80, 0x03, 0x00, 0x00, 0xa0, 0x03, 0x00, 0x55, 0xa0, 0x20, 0x00, 0x00, 0x03, 0x01, // .U.......U. ....
+ 0x00, 0x04, 0x80, 0x00, 0x00, 0x55, 0x80, 0x02, 0x00, 0xaa, 0xa0, 0x04, 0x00, 0x00, 0x04, 0x01, // .....U..........
+ 0x00, 0x04, 0x80, 0x01, 0x00, 0xaa, 0x80, 0x03, 0x00, 0x00, 0xa0, 0x03, 0x00, 0x55, 0xa0, 0x02, // .............U..
+ 0x00, 0x00, 0x03, 0x02, 0x00, 0x07, 0x80, 0x00, 0x00, 0xe4, 0x81, 0x02, 0x00, 0x00, 0xa0, 0x05, // ................
+ 0x00, 0x00, 0x03, 0x03, 0x00, 0x07, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x02, 0x00, 0x55, 0xa0, 0x58, // .............U.X
+ 0x00, 0x00, 0x04, 0x00, 0x00, 0x07, 0x80, 0x02, 0x00, 0xe4, 0x80, 0x03, 0x00, 0xe4, 0x80, 0x01, // ................
+ 0x00, 0xc9, 0x80, 0x2a, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x03, 0x01, 0x00, 0x01, 0x80, 0x07, // ...*............
+ 0x00, 0xe4, 0xa0, 0x00, 0x00, 0xe4, 0x80, 0x08, 0x00, 0x00, 0x03, 0x01, 0x00, 0x02, 0x80, 0x06, // ................
+ 0x00, 0xe4, 0xa0, 0x00, 0x00, 0xe4, 0x80, 0x08, 0x00, 0x00, 0x03, 0x01, 0x00, 0x04, 0x80, 0x08, // ................
+ 0x00, 0xe4, 0xa0, 0x00, 0x00, 0xe4, 0x80, 0x08, 0x00, 0x00, 0x03, 0x02, 0x00, 0x04, 0x80, 0x0b, // ................
+ 0x00, 0xe4, 0xa0, 0x01, 0x00, 0xe4, 0x80, 0x08, 0x00, 0x00, 0x03, 0x02, 0x00, 0x01, 0x80, 0x09, // ................
+ 0x00, 0xe4, 0xa0, 0x01, 0x00, 0xe4, 0x80, 0x08, 0x00, 0x00, 0x03, 0x02, 0x00, 0x02, 0x80, 0x0a, // ................
+ 0x00, 0xe4, 0xa0, 0x01, 0x00, 0xe4, 0x80, 0x05, 0x00, 0x00, 0x03, 0x01, 0x00, 0x07, 0x80, 0x02, // ................
+ 0x00, 0xe4, 0x80, 0x01, 0x00, 0x55, 0xa0, 0x05, 0x00, 0x00, 0x03, 0x01, 0x00, 0x07, 0x80, 0x01, // .....U..........
+ 0x00, 0xe4, 0x80, 0x02, 0x00, 0xff, 0xa0, 0x0f, 0x00, 0x00, 0x02, 0x02, 0x00, 0x01, 0x80, 0x01, // ................
+ 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x02, 0x02, 0x00, 0x02, 0x80, 0x01, 0x00, 0x55, 0x80, 0x0f, // .............U..
+ 0x00, 0x00, 0x02, 0x02, 0x00, 0x04, 0x80, 0x01, 0x00, 0xaa, 0x80, 0x05, 0x00, 0x00, 0x03, 0x01, // ................
+ 0x00, 0x07, 0x80, 0x02, 0x00, 0xe4, 0x80, 0x07, 0x00, 0xff, 0xa0, 0x0e, 0x00, 0x00, 0x02, 0x02, // ................
+ 0x00, 0x01, 0x80, 0x01, 0x00, 0x00, 0x80, 0x0e, 0x00, 0x00, 0x02, 0x02, 0x00, 0x02, 0x80, 0x01, // ................
+ 0x00, 0x55, 0x80, 0x0e, 0x00, 0x00, 0x02, 0x02, 0x00, 0x04, 0x80, 0x01, 0x00, 0xaa, 0x80, 0x04, // .U..............
+ 0x00, 0x00, 0x04, 0x01, 0x00, 0x07, 0x80, 0x02, 0x00, 0xe4, 0x80, 0x04, 0x00, 0xaa, 0xa0, 0x04, // ................
+ 0x00, 0xff, 0xa0, 0x06, 0x00, 0x00, 0x02, 0x03, 0x00, 0x01, 0x80, 0x01, 0x00, 0x00, 0x80, 0x06, // ................
+ 0x00, 0x00, 0x02, 0x03, 0x00, 0x02, 0x80, 0x01, 0x00, 0x55, 0x80, 0x06, 0x00, 0x00, 0x02, 0x03, // .........U......
+ 0x00, 0x04, 0x80, 0x01, 0x00, 0xaa, 0x80, 0x01, 0x00, 0x00, 0x02, 0x01, 0x00, 0x0c, 0x80, 0x03, // ................
+ 0x00, 0xe4, 0xa0, 0x02, 0x00, 0x00, 0x03, 0x01, 0x00, 0x03, 0x80, 0x01, 0x00, 0xee, 0x80, 0x01, // ................
+ 0x00, 0x00, 0xa0, 0x04, 0x00, 0x00, 0x04, 0x02, 0x00, 0x07, 0x80, 0x02, 0x00, 0xe4, 0x80, 0x04, // ................
+ 0x00, 0x00, 0xa0, 0x04, 0x00, 0x55, 0xa0, 0x05, 0x00, 0x00, 0x03, 0x02, 0x00, 0x07, 0x80, 0x03, // .....U..........
+ 0x00, 0xe4, 0x80, 0x02, 0x00, 0xe4, 0x80, 0x0f, 0x00, 0x00, 0x02, 0x03, 0x00, 0x01, 0x80, 0x02, // ................
+ 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x02, 0x03, 0x00, 0x02, 0x80, 0x02, 0x00, 0x55, 0x80, 0x0f, // .............U..
+ 0x00, 0x00, 0x02, 0x03, 0x00, 0x04, 0x80, 0x02, 0x00, 0xaa, 0x80, 0x05, 0x00, 0x00, 0x03, 0x02, // ................
+ 0x00, 0x07, 0x80, 0x03, 0x00, 0xe4, 0x80, 0x06, 0x00, 0xff, 0xa0, 0x0e, 0x00, 0x00, 0x02, 0x03, // ................
+ 0x00, 0x01, 0x80, 0x02, 0x00, 0x00, 0x80, 0x0e, 0x00, 0x00, 0x02, 0x03, 0x00, 0x02, 0x80, 0x02, // ................
+ 0x00, 0x55, 0x80, 0x0e, 0x00, 0x00, 0x02, 0x03, 0x00, 0x04, 0x80, 0x02, 0x00, 0xaa, 0x80, 0x58, // .U.............X
+ 0x00, 0x00, 0x04, 0x01, 0x00, 0x0e, 0x80, 0x01, 0x00, 0x55, 0x80, 0x05, 0x00, 0x55, 0xa0, 0x03, // .........U...U..
+ 0x00, 0x90, 0x80, 0x58, 0x00, 0x00, 0x04, 0x00, 0x00, 0x07, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, // ...X............
+ 0x00, 0xf9, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x2b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x02, 0x00, // .......+........
+ 0x08, 0x0f, 0x80, 0x00, 0x00, 0xe4, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, // ............
};
-static const uint8_t fs_texture_mtl[938] =
+static const uint8_t fs_texture_dx11[1784] =
{
- 0x46, 0x53, 0x48, 0x06, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x97, 0x03, // FSH.............
- 0x00, 0x00, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, // ..using namespac
- 0x65, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, // e metal;.struct
- 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x70, // xlatMtlShaderInp
- 0x75, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x76, 0x5f, // ut {. float4 v_
- 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, // color0;. float3
- 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, 0x0a, 0x7d, 0x3b, // v_texcoord0;.};
- 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, // .struct xlatMtlS
- 0x68, 0x61, 0x64, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, // haderOutput {.
- 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, // float4 gl_FragCo
- 0x6c, 0x6f, 0x72, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x78, // lor;.};.struct x
- 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x55, 0x6e, 0x69, 0x66, // latMtlShaderUnif
- 0x6f, 0x72, 0x6d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x75, // orm {. float4 u
- 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x66, 0x72, 0x61, 0x67, // _params;.};.frag
- 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, // ment xlatMtlShad
- 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, // erOutput xlatMtl
- 0x4d, 0x61, 0x69, 0x6e, 0x20, 0x28, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, // Main (xlatMtlSha
- 0x64, 0x65, 0x72, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x69, 0x20, // derInput _mtl_i
- 0x5b, 0x5b, 0x73, 0x74, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x5d, 0x5d, 0x2c, 0x20, 0x63, 0x6f, // [[stage_in]], co
- 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, // nstant xlatMtlSh
- 0x61, 0x64, 0x65, 0x72, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x26, 0x20, 0x5f, 0x6d, 0x74, // aderUniform& _mt
- 0x6c, 0x5f, 0x75, 0x20, 0x5b, 0x5b, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x28, 0x30, 0x29, 0x5d, // l_u [[buffer(0)]
- 0x5d, 0x0a, 0x20, 0x20, 0x2c, 0x20, 0x20, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x32, // ]. , texture2
- 0x64, 0x3c, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x20, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, // d<float> s_texCo
- 0x6c, 0x6f, 0x72, 0x20, 0x5b, 0x5b, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x28, 0x30, 0x29, // lor [[texture(0)
- 0x5d, 0x5d, 0x2c, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x20, 0x5f, 0x6d, 0x74, 0x6c, // ]], sampler _mtl
- 0x73, 0x6d, 0x70, 0x5f, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x5b, // smp_s_texColor [
- 0x5b, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x29, 0x0a, 0x7b, // [sampler(0)]]).{
- 0x0a, 0x20, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, // . xlatMtlShader
- 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x6f, 0x3b, 0x0a, 0x20, // Output _mtl_o;.
- 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, // float4 _color_1
- 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, // = 0;. _color_1
- 0x20, 0x3d, 0x20, 0x28, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x2e, 0x73, // = (s_texColor.s
- 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x28, 0x5f, 0x6d, 0x74, 0x6c, 0x73, 0x6d, 0x70, 0x5f, 0x73, 0x5f, // ample(_mtlsmp_s_
- 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x2c, 0x20, 0x28, 0x66, 0x6c, 0x6f, 0x61, 0x74, // texColor, (float
- 0x32, 0x29, 0x28, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x69, 0x2e, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, // 2)(_mtl_i.v_texc
- 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x2e, 0x78, 0x79, 0x29, 0x2c, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, // oord0.xy), level
- 0x28, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x2e, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, // (_mtl_u.u_params
- 0x2e, 0x78, 0x29, 0x29, 0x20, 0x2a, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x69, 0x2e, 0x76, 0x5f, // .x)) * _mtl_i.v_
- 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, // color0);. float
- 0x34, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x0a, // 4 tmpvar_2 = 0;.
- 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x2e, 0x78, 0x79, 0x7a, 0x20, 0x3d, // tmpvar_2.xyz =
- 0x20, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x61, 0x62, 0x73, 0x28, 0x28, 0x0a, 0x20, 0x20, 0x20, 0x20, // pow (abs((.
- 0x6d, 0x69, 0x78, 0x20, 0x28, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x61, 0x62, 0x73, 0x28, 0x5f, 0x63, // mix (pow (abs(_c
- 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, // olor_1.xyz), flo
- 0x61, 0x74, 0x33, 0x28, 0x32, 0x2e, 0x32, 0x2c, 0x20, 0x32, 0x2e, 0x32, 0x2c, 0x20, 0x32, 0x2e, // at3(2.2, 2.2, 2.
- 0x32, 0x29, 0x29, 0x2c, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x79, // 2)), _color_1.xy
- 0x7a, 0x2c, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x2e, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, // z, _mtl_u.u_para
- 0x6d, 0x73, 0x2e, 0x7a, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x2a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, // ms.z). * .
- 0x65, 0x78, 0x70, 0x32, 0x28, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x2e, 0x75, 0x5f, 0x70, 0x61, // exp2(_mtl_u.u_pa
- 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x29, 0x29, 0x2c, 0x20, 0x66, 0x6c, // rams.w). )), fl
- 0x6f, 0x61, 0x74, 0x33, 0x28, 0x30, 0x2e, 0x34, 0x35, 0x34, 0x35, 0x34, 0x35, 0x34, 0x2c, 0x20, // oat3(0.4545454,
- 0x30, 0x2e, 0x34, 0x35, 0x34, 0x35, 0x34, 0x35, 0x34, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x35, 0x34, // 0.4545454, 0.454
- 0x35, 0x34, 0x35, 0x34, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // 5454));. tmpvar
- 0x5f, 0x32, 0x2e, 0x77, 0x20, 0x3d, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x2e, // _2.w = _color_1.
- 0x77, 0x3b, 0x0a, 0x20, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x6f, 0x2e, 0x67, 0x6c, 0x5f, 0x46, // w;. _mtl_o.gl_F
- 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, // ragColor = tmpva
- 0x72, 0x5f, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x5f, 0x6d, // r_2;. return _m
- 0x74, 0x6c, 0x5f, 0x6f, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x00, // tl_o;.}...
+ 0x46, 0x53, 0x48, 0x0b, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x09, 0x75, // FSH............u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // _params0........
+ 0x00, 0x00, 0x09, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x12, 0x00, 0x10, 0x00, // ...u_params1....
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, // .......s_texColo
+ 0x72, 0x30, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x73, 0x5f, 0x74, 0x65, // r0..........s_te
+ 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // xColor0.........
+ 0x90, 0x06, 0x00, 0x00, 0x44, 0x58, 0x42, 0x43, 0xa5, 0xc9, 0xc1, 0xcf, 0xd2, 0xcf, 0x2f, 0xfe, // ....DXBC....../.
+ 0xbc, 0x1f, 0x61, 0x29, 0x3e, 0x1c, 0x0d, 0x81, 0x01, 0x00, 0x00, 0x00, 0x90, 0x06, 0x00, 0x00, // ..a)>...........
+ 0x03, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, // ....,...........
+ 0x49, 0x53, 0x47, 0x4e, 0x6c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, // ISGNl...........
+ 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, // P...............
+ 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, // ................
+ 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, // b...............
+ 0x02, 0x00, 0x00, 0x00, 0x07, 0x03, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, // ........SV_POSIT
+ 0x49, 0x4f, 0x4e, 0x00, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, // ION.COLOR.TEXCOO
+ 0x52, 0x44, 0x00, 0xab, 0x4f, 0x53, 0x47, 0x4e, 0x2c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // RD..OSGN,.......
+ 0x08, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .... ...........
+ 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x54, // ............SV_T
+ 0x41, 0x52, 0x47, 0x45, 0x54, 0x00, 0xab, 0xab, 0x53, 0x48, 0x44, 0x52, 0xb4, 0x05, 0x00, 0x00, // ARGET...SHDR....
+ 0x40, 0x00, 0x00, 0x00, 0x6d, 0x01, 0x00, 0x00, 0x59, 0x00, 0x00, 0x04, 0x46, 0x8e, 0x20, 0x00, // @...m...Y...F. .
+ 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x03, 0x00, 0x60, 0x10, 0x00, // ........Z....`..
+ 0x00, 0x00, 0x00, 0x00, 0x58, 0x18, 0x00, 0x04, 0x00, 0x70, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ....X....p......
+ 0x55, 0x55, 0x00, 0x00, 0x62, 0x10, 0x00, 0x03, 0xf2, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, // UU..b...........
+ 0x62, 0x10, 0x00, 0x03, 0x32, 0x10, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x03, // b...2.......e...
+ 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, // . ......h.......
+ 0x48, 0x00, 0x00, 0x0c, 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x10, 0x10, 0x00, // H...........F...
+ 0x02, 0x00, 0x00, 0x00, 0x46, 0x7e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, // ....F~.......`..
+ 0x00, 0x00, 0x00, 0x00, 0x0a, 0x80, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ...... .........
+ 0x2f, 0x00, 0x00, 0x06, 0x72, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x80, // /...r.......F...
+ 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x0a, 0x72, 0x00, 0x10, 0x00, // ........8...r...
+ 0x01, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, // ....F........@..
+ 0xcd, 0xcc, 0x0c, 0x40, 0xcd, 0xcc, 0x0c, 0x40, 0xcd, 0xcc, 0x0c, 0x40, 0x00, 0x00, 0x00, 0x00, // ...@...@...@....
+ 0x19, 0x00, 0x00, 0x05, 0x72, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, // ....r.......F...
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x72, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, // ........r.......
+ 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x80, 0x41, 0x00, 0x00, 0x00, // F.......F...A...
+ 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, 0x72, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, // ....2...r.......
+ 0xa6, 0x8a, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, // .. .........F...
+ 0x02, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x06, // ....F...........
+ 0x82, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3a, 0x80, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, // ........:. .....
+ 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x07, 0x72, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ....8...r.......
+ 0xf6, 0x0f, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, // ........F.......
+ 0x38, 0x00, 0x00, 0x07, 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, // 8...........F...
+ 0x00, 0x00, 0x00, 0x00, 0x46, 0x1e, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x08, // ....F.......1...
+ 0x12, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0a, 0x80, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, // .......... .....
+ 0x01, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x1f, 0x00, 0x04, 0x03, // .....@.....?....
+ 0x0a, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x36, 0x20, 0x00, 0x05, 0x72, 0x00, 0x10, 0x00, // ........6 ..r...
+ 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x0a, // ....F...........
+ 0x72, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x1c, 0x2e, 0x4d, 0x3b, // r........@....M;
+ 0x1c, 0x2e, 0x4d, 0x3b, 0x1c, 0x2e, 0x4d, 0x3b, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, // ..M;..M;....F...
+ 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x0a, 0x72, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, // ....8...r.......
+ 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x52, 0xb8, 0x4e, 0x41, // F........@..R.NA
+ 0x52, 0xb8, 0x4e, 0x41, 0x52, 0xb8, 0x4e, 0x41, 0x00, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x05, // R.NAR.NA..../...
+ 0x72, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // r.......F.......
+ 0x38, 0x00, 0x00, 0x0a, 0x72, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, // 8...r.......F...
+ 0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x55, 0x55, 0xd5, 0x3e, 0x55, 0x55, 0xd5, 0x3e, // .....@..UU.>UU.>
+ 0x55, 0x55, 0xd5, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x05, 0x72, 0x00, 0x10, 0x00, // UU.>........r...
+ 0x03, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0f, // ....F.......2...
+ 0x72, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, // r.......F.......
+ 0x02, 0x40, 0x00, 0x00, 0x3d, 0x0a, 0x87, 0x3f, 0x3d, 0x0a, 0x87, 0x3f, 0x3d, 0x0a, 0x87, 0x3f, // .@..=..?=..?=..?
+ 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0xae, 0x47, 0x61, 0xbd, 0xae, 0x47, 0x61, 0xbd, // .....@...Ga..Ga.
+ 0xae, 0x47, 0x61, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x09, 0x72, 0x00, 0x10, 0x00, // .Ga.....7...r...
+ 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, // ....F.......F...
+ 0x02, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x01, // ....F...........
+ 0x31, 0x00, 0x00, 0x0b, 0x32, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x80, 0x20, 0x00, // 1...2......... .
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f, // .........@.....?
+ 0x00, 0x00, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x0a, // .. @............
+ 0x12, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x98, 0x3a, 0xd3, 0x3e, // .........@...:.>
+ 0x37, 0x14, 0xb7, 0x3e, 0x9c, 0xc4, 0x38, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, // 7..>..8>....F...
+ 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x0a, 0x22, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, // ........".......
+ 0x02, 0x40, 0x00, 0x00, 0xed, 0xc6, 0x59, 0x3e, 0x37, 0x14, 0x37, 0x3f, 0x7d, 0xd0, 0x93, 0x3d, // .@....Y>7.7?}..=
+ 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x0a, // ....F...........
+ 0x42, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x21, 0x62, 0x9e, 0x3c, // B........@..!b.<
+ 0xef, 0x1a, 0xf4, 0x3d, 0x21, 0x47, 0x73, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, // ...=!Gs?....F...
+ 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x0a, 0x12, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, // ................
+ 0x02, 0x40, 0x00, 0x00, 0x3a, 0xbb, 0xdb, 0x3f, 0x7c, 0x1a, 0xb6, 0xbe, 0x3a, 0xb9, 0x81, 0xbe, // .@..:..?|...:...
+ 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x0a, // ....F...........
+ 0x22, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0xd4, 0xab, 0x2a, 0xbf, // "........@....*.
+ 0xdb, 0xe8, 0xce, 0x3f, 0xf1, 0x2c, 0x81, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, // ...?.,.<....F...
+ 0x02, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x0a, 0x42, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, // ........B.......
+ 0x02, 0x40, 0x00, 0x00, 0x8d, 0x81, 0x90, 0x3c, 0x3a, 0x30, 0x2f, 0xbd, 0xab, 0x2d, 0x71, 0x3f, // .@.....<:0/..-q?
+ 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x08, // ....F.......8...
+ 0x72, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, // r.......F.......
+ 0x56, 0x85, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x0a, // V. .........8...
+ 0x72, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, // r.......F.......
+ 0x02, 0x40, 0x00, 0x00, 0x17, 0xb7, 0xd1, 0x38, 0x17, 0xb7, 0xd1, 0x38, 0x17, 0xb7, 0xd1, 0x38, // .@.....8...8...8
+ 0x00, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x05, 0x72, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, // ..../...r.......
+ 0x46, 0x02, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x0a, 0x72, 0x00, 0x10, 0x00, // F.......8...r...
+ 0x02, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, // ....F........@..
+ 0x00, 0x20, 0x23, 0x3e, 0x00, 0x20, 0x23, 0x3e, 0x00, 0x20, 0x23, 0x3e, 0x00, 0x00, 0x00, 0x00, // . #>. #>. #>....
+ 0x19, 0x00, 0x00, 0x05, 0x72, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, // ....r.......F...
+ 0x02, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0f, 0x72, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, // ....2...r.......
+ 0x46, 0x02, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0xd0, 0x96, 0x41, // F........@.....A
+ 0x00, 0xd0, 0x96, 0x41, 0x00, 0xd0, 0x96, 0x41, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, // ...A...A.....@..
+ 0x00, 0x00, 0x56, 0x3f, 0x00, 0x00, 0x56, 0x3f, 0x00, 0x00, 0x56, 0x3f, 0x00, 0x00, 0x00, 0x00, // ..V?..V?..V?....
+ 0x32, 0x00, 0x00, 0x0f, 0x72, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, // 2...r.......F...
+ 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x80, 0x95, 0x41, 0x00, 0x80, 0x95, 0x41, // .....@.....A...A
+ 0x00, 0x80, 0x95, 0x41, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, // ...A.....@.....?
+ 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x07, // ...?...?........
+ 0x72, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, // r.......F.......
+ 0x46, 0x02, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x05, 0x72, 0x00, 0x10, 0x00, // F......./...r...
+ 0x02, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x0a, // ....F.......8...
+ 0x72, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, // r.......F.......
+ 0x02, 0x40, 0x00, 0x00, 0x00, 0xb0, 0x9d, 0x42, 0x00, 0xb0, 0x9d, 0x42, 0x00, 0xb0, 0x9d, 0x42, // .@.....B...B...B
+ 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x05, 0x72, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, // ........r.......
+ 0x46, 0x02, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x07, 0xe2, 0x00, 0x10, 0x00, // F...............
+ 0x01, 0x00, 0x00, 0x00, 0x56, 0x05, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x09, 0x10, 0x00, // ....V...........
+ 0x02, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x09, 0x72, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ....7...r.......
+ 0x06, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ........F.......
+ 0x96, 0x07, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x01, 0x36, 0x00, 0x00, 0x05, // ............6...
+ 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // . ......F.......
+ 0x3e, 0x00, 0x00, 0x01, 0x00, 0x00, 0x20, 0x00, // >..... .
+};
+static const uint8_t fs_texture_mtl[3729] =
+{
+ 0x46, 0x53, 0x48, 0x0b, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x09, 0x75, // FSH............u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x12, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // _params0........
+ 0x00, 0x00, 0x11, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x61, 0x6d, // ...s_texColorSam
+ 0x70, 0x6c, 0x65, 0x72, 0x11, 0x01, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x73, // pler...........s
+ 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, // _texColorTexture
+ 0x11, 0x01, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x75, 0x5f, 0x70, 0x61, 0x72, // ...........u_par
+ 0x61, 0x6d, 0x73, 0x31, 0x12, 0x01, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x73, // ams1...........s
+ 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // _texColor.......
+ 0x00, 0x00, 0x00, 0x06, 0x0e, 0x00, 0x00, 0x23, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, // .......#include
+ 0x3c, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x64, 0x6c, 0x69, 0x62, 0x3e, 0x0a, 0x23, // <metal_stdlib>.#
+ 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3c, 0x73, 0x69, 0x6d, 0x64, 0x2f, 0x73, 0x69, // include <simd/si
+ 0x6d, 0x64, 0x2e, 0x68, 0x3e, 0x0a, 0x0a, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6e, 0x61, 0x6d, // md.h>..using nam
+ 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x0a, 0x73, // espace metal;..s
+ 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x0a, 0x7b, 0x0a, // truct _Global.{.
+ 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, // float4 u_par
+ 0x61, 0x6d, 0x73, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, // ams0;. float4
+ 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, // u_params1;.};..
+ 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, // constant float3
+ 0x5f, 0x37, 0x31, 0x32, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x3b, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x75, // _712 = {};..stru
+ 0x63, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x5f, 0x6f, // ct xlatMtlMain_o
+ 0x75, 0x74, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, // ut.{. float4
+ 0x62, 0x67, 0x66, 0x78, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x44, 0x61, 0x74, 0x61, 0x30, 0x20, 0x5b, // bgfx_FragData0 [
+ 0x5b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, // [color(0)]];.};.
+ 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, // .struct xlatMtlM
+ 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x6e, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, // ain_in.{. flo
+ 0x61, 0x74, 0x34, 0x20, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x20, 0x5b, 0x5b, 0x75, // at4 v_color0 [[u
+ 0x73, 0x65, 0x72, 0x28, 0x6c, 0x6f, 0x63, 0x6e, 0x30, 0x29, 0x5d, 0x5d, 0x3b, 0x0a, 0x20, 0x20, // ser(locn0)]];.
+ 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, // float3 v_texco
+ 0x6f, 0x72, 0x64, 0x30, 0x20, 0x5b, 0x5b, 0x75, 0x73, 0x65, 0x72, 0x28, 0x6c, 0x6f, 0x63, 0x6e, // ord0 [[user(locn
+ 0x31, 0x29, 0x5d, 0x5d, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, // 1)]];.};..fragme
+ 0x6e, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x5f, 0x6f, // nt xlatMtlMain_o
+ 0x75, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x28, 0x78, // ut xlatMtlMain(x
+ 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x6e, 0x20, 0x69, 0x6e, // latMtlMain_in in
+ 0x20, 0x5b, 0x5b, 0x73, 0x74, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x5d, 0x5d, 0x2c, 0x20, 0x63, // [[stage_in]], c
+ 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x20, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x26, // onstant _Global&
+ 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x20, 0x5b, 0x5b, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, // _mtl_u [[buffer
+ 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x2c, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x32, 0x64, // (0)]], texture2d
+ 0x3c, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x20, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, // <float> s_texCol
+ 0x6f, 0x72, 0x20, 0x5b, 0x5b, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x28, 0x30, 0x29, 0x5d, // or [[texture(0)]
+ 0x5d, 0x2c, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x20, 0x73, 0x5f, 0x74, 0x65, 0x78, // ], sampler s_tex
+ 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x20, 0x5b, 0x5b, 0x73, // ColorSampler [[s
+ 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x29, 0x0a, 0x7b, 0x0a, 0x20, // ampler(0)]]).{.
+ 0x20, 0x20, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x5f, 0x6f, // xlatMtlMain_o
+ 0x75, 0x74, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x3b, 0x0a, 0x20, 0x20, 0x20, // ut out = {};.
+ 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x5f, 0x34, 0x35, 0x33, 0x20, 0x3d, 0x20, 0x73, // float4 _453 = s
+ 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x2e, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, // _texColor.sample
+ 0x28, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x61, 0x6d, 0x70, 0x6c, // (s_texColorSampl
+ 0x65, 0x72, 0x2c, 0x20, 0x69, 0x6e, 0x2e, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, // er, in.v_texcoor
+ 0x64, 0x30, 0x2e, 0x78, 0x79, 0x2c, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x28, 0x5f, 0x6d, 0x74, // d0.xy, level(_mt
+ 0x6c, 0x5f, 0x75, 0x2e, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x2e, 0x78, 0x29, // l_u.u_params0.x)
+ 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x5f, 0x34, // );. float3 _4
+ 0x32, 0x34, 0x20, 0x3d, 0x20, 0x5f, 0x34, 0x35, 0x33, 0x2e, 0x78, 0x79, 0x7a, 0x3b, 0x0a, 0x20, // 24 = _453.xyz;.
+ 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x5f, 0x34, 0x37, 0x32, 0x20, 0x3d, // float3 _472 =
+ 0x20, 0x6d, 0x69, 0x78, 0x28, 0x70, 0x6f, 0x77, 0x28, 0x61, 0x62, 0x73, 0x28, 0x5f, 0x34, 0x32, // mix(pow(abs(_42
+ 0x34, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x32, 0x2e, 0x32, 0x30, 0x30, // 4), float3(2.200
+ 0x30, 0x30, 0x30, 0x30, 0x34, 0x37, 0x36, 0x38, 0x33, 0x37, 0x31, 0x35, 0x38, 0x29, 0x29, 0x2c, // 0000476837158)),
+ 0x20, 0x5f, 0x34, 0x32, 0x34, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x5f, 0x6d, // _424, float3(_m
+ 0x74, 0x6c, 0x5f, 0x75, 0x2e, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x2e, 0x7a, // tl_u.u_params0.z
+ 0x29, 0x29, 0x20, 0x2a, 0x20, 0x70, 0x6f, 0x77, 0x28, 0x32, 0x2e, 0x30, 0x2c, 0x20, 0x5f, 0x6d, // )) * pow(2.0, _m
+ 0x74, 0x6c, 0x5f, 0x75, 0x2e, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x2e, 0x77, // tl_u.u_params0.w
+ 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x5f, 0x34, // );. float4 _4
+ 0x33, 0x30, 0x20, 0x3d, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x28, 0x5f, 0x34, 0x37, 0x32, // 30 = float4(_472
+ 0x2e, 0x78, 0x2c, 0x20, 0x5f, 0x34, 0x37, 0x32, 0x2e, 0x79, 0x2c, 0x20, 0x5f, 0x34, 0x37, 0x32, // .x, _472.y, _472
+ 0x2e, 0x7a, 0x2c, 0x20, 0x5f, 0x34, 0x35, 0x33, 0x2e, 0x77, 0x29, 0x20, 0x2a, 0x20, 0x69, 0x6e, // .z, _453.w) * in
+ 0x2e, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, // .v_color0;. f
+ 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x5f, 0x37, 0x30, 0x37, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, // loat3 _707;.
+ 0x69, 0x66, 0x20, 0x28, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x2e, 0x75, 0x5f, 0x70, 0x61, 0x72, // if (_mtl_u.u_par
+ 0x61, 0x6d, 0x73, 0x31, 0x2e, 0x78, 0x20, 0x3c, 0x20, 0x30, 0x2e, 0x35, 0x29, 0x0a, 0x20, 0x20, // ams1.x < 0.5).
+ 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, // {. floa
+ 0x74, 0x33, 0x20, 0x5f, 0x35, 0x30, 0x39, 0x20, 0x3d, 0x20, 0x66, 0x61, 0x73, 0x74, 0x3a, 0x3a, // t3 _509 = fast::
+ 0x63, 0x6c, 0x61, 0x6d, 0x70, 0x28, 0x5f, 0x34, 0x33, 0x30, 0x2e, 0x78, 0x79, 0x7a, 0x2c, 0x20, // clamp(_430.xyz,
+ 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x30, 0x2e, 0x30, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, // float3(0.0), flo
+ 0x61, 0x74, 0x33, 0x28, 0x31, 0x2e, 0x30, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, // at3(1.0));.
+ 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x5f, 0x35, 0x35, 0x32, 0x20, 0x3d, 0x20, // float _552 =
+ 0x5f, 0x35, 0x30, 0x39, 0x2e, 0x78, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // _509.x;.
+ 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x5f, 0x37, 0x30, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, // float _701;.
+ 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, // do. {
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, // . if
+ 0x28, 0x5f, 0x35, 0x35, 0x32, 0x20, 0x3c, 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x30, 0x33, 0x31, 0x33, // (_552 <= 0.00313
+ 0x30, 0x38, 0x30, 0x30, 0x30, 0x39, 0x30, 0x37, 0x33, 0x30, 0x31, 0x39, 0x30, 0x33, 0x29, 0x0a, // 08000907301903).
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, // {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x37, // _7
+ 0x30, 0x31, 0x20, 0x3d, 0x20, 0x31, 0x32, 0x2e, 0x39, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x37, // 01 = 12.92000007
+ 0x36, 0x32, 0x39, 0x33, 0x39, 0x34, 0x35, 0x20, 0x2a, 0x20, 0x5f, 0x35, 0x35, 0x32, 0x3b, 0x0a, // 6293945 * _552;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //
+ 0x62, 0x72, 0x65, 0x61, 0x6b, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // break;.
+ 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // }.
+ 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // else.
+ 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // {.
+ 0x20, 0x20, 0x20, 0x20, 0x5f, 0x37, 0x30, 0x31, 0x20, 0x3d, 0x20, 0x28, 0x31, 0x2e, 0x30, 0x35, // _701 = (1.05
+ 0x34, 0x39, 0x39, 0x39, 0x39, 0x34, 0x37, 0x35, 0x34, 0x37, 0x39, 0x31, 0x32, 0x36, 0x20, 0x2a, // 49999475479126 *
+ 0x20, 0x70, 0x6f, 0x77, 0x28, 0x5f, 0x35, 0x35, 0x32, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x31, 0x36, // pow(_552, 0.416
+ 0x36, 0x36, 0x36, 0x36, 0x35, 0x36, 0x37, 0x33, 0x32, 0x35, 0x35, 0x39, 0x32, 0x29, 0x29, 0x20, // 6666567325592))
+ 0x2d, 0x20, 0x30, 0x2e, 0x30, 0x35, 0x34, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x37, 0x30, 0x31, // - 0.054999999701
+ 0x39, 0x37, 0x36, 0x37, 0x37, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // 976776;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x3b, 0x0a, 0x20, // break;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, // }.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x28, 0x66, 0x61, 0x6c, // } while(fal
+ 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, // se);. flo
+ 0x61, 0x74, 0x33, 0x20, 0x5f, 0x36, 0x38, 0x36, 0x20, 0x3d, 0x20, 0x5f, 0x37, 0x31, 0x32, 0x3b, // at3 _686 = _712;
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x36, 0x38, 0x36, 0x2e, 0x78, 0x20, // . _686.x
+ 0x3d, 0x20, 0x5f, 0x37, 0x30, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // = _701;.
+ 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x5f, 0x35, 0x35, 0x36, 0x20, 0x3d, 0x20, 0x5f, 0x35, 0x30, // float _556 = _50
+ 0x39, 0x2e, 0x79, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, // 9.y;. flo
+ 0x61, 0x74, 0x20, 0x5f, 0x37, 0x30, 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // at _703;.
+ 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, // do. {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x5f, 0x35, // if (_5
+ 0x35, 0x36, 0x20, 0x3c, 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x30, 0x33, 0x31, 0x33, 0x30, 0x38, 0x30, // 56 <= 0.00313080
+ 0x30, 0x30, 0x39, 0x30, 0x37, 0x33, 0x30, 0x31, 0x39, 0x30, 0x33, 0x29, 0x0a, 0x20, 0x20, 0x20, // 00907301903).
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, // {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x37, 0x30, 0x33, 0x20, // _703
+ 0x3d, 0x20, 0x31, 0x32, 0x2e, 0x39, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x37, 0x36, 0x32, 0x39, // = 12.92000007629
+ 0x33, 0x39, 0x34, 0x35, 0x20, 0x2a, 0x20, 0x5f, 0x35, 0x35, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x20, // 3945 * _556;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x72, 0x65, // bre
+ 0x61, 0x6b, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // ak;.
+ 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, // }. el
+ 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, // se. {
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // .
+ 0x20, 0x5f, 0x37, 0x30, 0x33, 0x20, 0x3d, 0x20, 0x28, 0x31, 0x2e, 0x30, 0x35, 0x34, 0x39, 0x39, // _703 = (1.05499
+ 0x39, 0x39, 0x34, 0x37, 0x35, 0x34, 0x37, 0x39, 0x31, 0x32, 0x36, 0x20, 0x2a, 0x20, 0x70, 0x6f, // 99475479126 * po
+ 0x77, 0x28, 0x5f, 0x35, 0x35, 0x36, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x31, 0x36, 0x36, 0x36, 0x36, // w(_556, 0.416666
+ 0x36, 0x35, 0x36, 0x37, 0x33, 0x32, 0x35, 0x35, 0x39, 0x32, 0x29, 0x29, 0x20, 0x2d, 0x20, 0x30, // 6567325592)) - 0
+ 0x2e, 0x30, 0x35, 0x34, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x37, 0x30, 0x31, 0x39, 0x37, 0x36, // .054999999701976
+ 0x37, 0x37, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // 776;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, // break;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // }.
+ 0x20, 0x20, 0x7d, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x28, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, // } while(false)
+ 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, // ;. float3
+ 0x20, 0x5f, 0x36, 0x38, 0x39, 0x20, 0x3d, 0x20, 0x5f, 0x36, 0x38, 0x36, 0x3b, 0x0a, 0x20, 0x20, // _689 = _686;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x36, 0x38, 0x39, 0x2e, 0x79, 0x20, 0x3d, 0x20, 0x5f, // _689.y = _
+ 0x37, 0x30, 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, // 703;. flo
+ 0x61, 0x74, 0x20, 0x5f, 0x35, 0x36, 0x30, 0x20, 0x3d, 0x20, 0x5f, 0x35, 0x30, 0x39, 0x2e, 0x7a, // at _560 = _509.z
+ 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, // ;. float
+ 0x5f, 0x37, 0x30, 0x35, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, // _705;. do
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, // . {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x5f, 0x35, 0x36, 0x30, 0x20, // if (_560
+ 0x3c, 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x30, 0x33, 0x31, 0x33, 0x30, 0x38, 0x30, 0x30, 0x30, 0x39, // <= 0.00313080009
+ 0x30, 0x37, 0x33, 0x30, 0x31, 0x39, 0x30, 0x33, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // 07301903).
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x37, 0x30, 0x35, 0x20, 0x3d, 0x20, 0x31, // _705 = 1
+ 0x32, 0x2e, 0x39, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x37, 0x36, 0x32, 0x39, 0x33, 0x39, 0x34, // 2.92000007629394
+ 0x35, 0x20, 0x2a, 0x20, 0x5f, 0x35, 0x36, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // 5 * _560;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x3b, // break;
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, // . }.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, // else.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, // {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x37, // _7
+ 0x30, 0x35, 0x20, 0x3d, 0x20, 0x28, 0x31, 0x2e, 0x30, 0x35, 0x34, 0x39, 0x39, 0x39, 0x39, 0x34, // 05 = (1.05499994
+ 0x37, 0x35, 0x34, 0x37, 0x39, 0x31, 0x32, 0x36, 0x20, 0x2a, 0x20, 0x70, 0x6f, 0x77, 0x28, 0x5f, // 75479126 * pow(_
+ 0x35, 0x36, 0x30, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x31, 0x36, 0x36, 0x36, 0x36, 0x36, 0x35, 0x36, // 560, 0.416666656
+ 0x37, 0x33, 0x32, 0x35, 0x35, 0x39, 0x32, 0x29, 0x29, 0x20, 0x2d, 0x20, 0x30, 0x2e, 0x30, 0x35, // 7325592)) - 0.05
+ 0x34, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x37, 0x30, 0x31, 0x39, 0x37, 0x36, 0x37, 0x37, 0x36, // 4999999701976776
+ 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // ;.
+ 0x20, 0x20, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // break;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, // }. }
+ 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x28, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x20, // while(false);.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x5f, 0x36, // float3 _6
+ 0x39, 0x32, 0x20, 0x3d, 0x20, 0x5f, 0x36, 0x38, 0x39, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, // 92 = _689;.
+ 0x20, 0x20, 0x20, 0x5f, 0x36, 0x39, 0x32, 0x2e, 0x7a, 0x20, 0x3d, 0x20, 0x5f, 0x37, 0x30, 0x35, // _692.z = _705
+ 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x37, 0x30, 0x37, 0x20, 0x3d, // ;. _707 =
+ 0x20, 0x5f, 0x36, 0x39, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, // _692;. }.
+ 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, // else. {.
+ 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x5f, 0x37, 0x30, 0x38, 0x3b, // float3 _708;
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x5f, 0x6d, 0x74, // . if (_mt
+ 0x6c, 0x5f, 0x75, 0x2e, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x2e, 0x78, 0x20, // l_u.u_params1.x
+ 0x3c, 0x20, 0x31, 0x2e, 0x35, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, // < 1.5). {
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x37, 0x30, // . _70
+ 0x38, 0x20, 0x3d, 0x20, 0x5f, 0x34, 0x33, 0x30, 0x2e, 0x78, 0x79, 0x7a, 0x3b, 0x0a, 0x20, 0x20, // 8 = _430.xyz;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // }.
+ 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, // else. {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, // float
+ 0x33, 0x20, 0x5f, 0x37, 0x30, 0x39, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // 3 _709;.
+ 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x2e, 0x75, // if (_mtl_u.u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x2e, 0x78, 0x20, 0x3c, 0x20, 0x32, 0x2e, 0x35, // _params1.x < 2.5
+ 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, // ). {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //
+ 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x5f, 0x36, 0x34, 0x35, 0x20, 0x3d, 0x20, 0x70, 0x6f, // float3 _645 = po
+ 0x77, 0x28, 0x28, 0x28, 0x28, 0x5f, 0x34, 0x33, 0x30, 0x2e, 0x78, 0x79, 0x7a, 0x20, 0x2a, 0x20, // w((((_430.xyz *
+ 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x78, 0x33, 0x28, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, // float3x3(float3(
+ 0x30, 0x2e, 0x34, 0x31, 0x32, 0x35, 0x35, 0x36, 0x34, 0x30, 0x39, 0x38, 0x33, 0x35, 0x38, 0x31, // 0.41255640983581
+ 0x35, 0x34, 0x33, 0x2c, 0x20, 0x30, 0x2e, 0x33, 0x35, 0x37, 0x35, 0x37, 0x36, 0x31, 0x30, 0x32, // 543, 0.357576102
+ 0x30, 0x31, 0x38, 0x33, 0x35, 0x36, 0x33, 0x32, 0x2c, 0x20, 0x30, 0x2e, 0x31, 0x38, 0x30, 0x34, // 01835632, 0.1804
+ 0x33, 0x37, 0x35, 0x30, 0x35, 0x32, 0x34, 0x35, 0x32, 0x30, 0x38, 0x37, 0x34, 0x29, 0x2c, 0x20, // 3750524520874),
+ 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x30, 0x2e, 0x32, 0x31, 0x32, 0x36, 0x37, 0x32, 0x39, // float3(0.2126729
+ 0x30, 0x34, 0x31, 0x33, 0x33, 0x37, 0x39, 0x36, 0x36, 0x39, 0x2c, 0x20, 0x30, 0x2e, 0x37, 0x31, // 0413379669, 0.71
+ 0x35, 0x31, 0x35, 0x32, 0x32, 0x30, 0x34, 0x30, 0x33, 0x36, 0x37, 0x31, 0x32, 0x36, 0x35, 0x2c, // 515220403671265,
+ 0x20, 0x30, 0x2e, 0x30, 0x37, 0x32, 0x31, 0x37, 0x35, 0x30, 0x30, 0x33, 0x35, 0x38, 0x38, 0x31, // 0.0721750035881
+ 0x39, 0x39, 0x36, 0x31, 0x35, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x30, // 99615), float3(0
+ 0x2e, 0x30, 0x31, 0x39, 0x33, 0x33, 0x33, 0x39, 0x30, 0x30, 0x38, 0x38, 0x33, 0x37, 0x39, 0x33, // .019333900883793
+ 0x38, 0x33, 0x31, 0x2c, 0x20, 0x30, 0x2e, 0x31, 0x31, 0x39, 0x31, 0x39, 0x31, 0x39, 0x39, 0x36, // 831, 0.119191996
+ 0x37, 0x35, 0x33, 0x32, 0x31, 0x35, 0x37, 0x39, 0x2c, 0x20, 0x30, 0x2e, 0x39, 0x35, 0x30, 0x33, // 75321579, 0.9503
+ 0x30, 0x34, 0x30, 0x39, 0x30, 0x39, 0x37, 0x36, 0x37, 0x31, 0x35, 0x30, 0x39, 0x29, 0x29, 0x29, // 0409097671509)))
+ 0x20, 0x2a, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x78, 0x33, 0x28, 0x66, 0x6c, 0x6f, 0x61, // * float3x3(floa
+ 0x74, 0x33, 0x28, 0x31, 0x2e, 0x37, 0x31, 0x36, 0x36, 0x35, 0x31, 0x32, 0x30, 0x31, 0x32, 0x34, // t3(1.71665120124
+ 0x38, 0x31, 0x36, 0x38, 0x39, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x33, 0x35, 0x35, 0x36, 0x37, 0x30, // 81689, -0.355670
+ 0x38, 0x30, 0x39, 0x37, 0x34, 0x35, 0x37, 0x38, 0x38, 0x35, 0x37, 0x2c, 0x20, 0x2d, 0x30, 0x2e, // 80974578857, -0.
+ 0x32, 0x35, 0x33, 0x33, 0x36, 0x36, 0x32, 0x39, 0x31, 0x35, 0x32, 0x32, 0x39, 0x37, 0x39, 0x37, // 2533662915229797
+ 0x34, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x2d, 0x30, 0x2e, 0x36, 0x36, // 4), float3(-0.66
+ 0x36, 0x36, 0x38, 0x34, 0x33, 0x38, 0x39, 0x31, 0x31, 0x34, 0x33, 0x37, 0x39, 0x38, 0x38, 0x2c, // 668438911437988,
+ 0x20, 0x31, 0x2e, 0x36, 0x31, 0x36, 0x34, 0x38, 0x31, 0x31, 0x38, 0x34, 0x39, 0x35, 0x39, 0x34, // 1.6164811849594
+ 0x31, 0x31, 0x36, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x31, 0x35, 0x37, 0x36, 0x38, 0x35, 0x30, 0x30, // 116, 0.015768500
+ 0x30, 0x34, 0x34, 0x39, 0x34, 0x31, 0x39, 0x30, 0x32, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, // 044941902), floa
+ 0x74, 0x33, 0x28, 0x30, 0x2e, 0x30, 0x31, 0x37, 0x36, 0x33, 0x39, 0x38, 0x39, 0x39, 0x36, 0x32, // t3(0.01763989962
+ 0x36, 0x33, 0x37, 0x34, 0x32, 0x34, 0x35, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x30, 0x34, 0x32, 0x37, // 6374245, -0.0427
+ 0x37, 0x30, 0x36, 0x30, 0x31, 0x38, 0x30, 0x39, 0x30, 0x32, 0x34, 0x38, 0x31, 0x31, 0x2c, 0x20, // 70601809024811,
+ 0x30, 0x2e, 0x39, 0x34, 0x32, 0x31, 0x30, 0x33, 0x30, 0x38, 0x37, 0x39, 0x30, 0x32, 0x30, 0x36, // 0.94210308790206
+ 0x39, 0x30, 0x39, 0x29, 0x29, 0x29, 0x20, 0x2a, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x2e, // 909))) * _mtl_u.
+ 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x2e, 0x79, 0x29, 0x20, 0x2a, 0x20, 0x39, // u_params1.y) * 9
+ 0x2e, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x37, 0x34, 0x37, 0x33, 0x37, 0x38, 0x37, 0x35, 0x31, // .999999747378751
+ 0x36, 0x65, 0x2d, 0x30, 0x30, 0x35, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x30, // 6e-005, float3(0
+ 0x2e, 0x31, 0x35, 0x39, 0x33, 0x30, 0x31, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x29, 0x29, // .1593017578125))
+ 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // ;.
+ 0x20, 0x20, 0x5f, 0x37, 0x30, 0x39, 0x20, 0x3d, 0x20, 0x70, 0x6f, 0x77, 0x28, 0x28, 0x66, 0x6c, // _709 = pow((fl
+ 0x6f, 0x61, 0x74, 0x33, 0x28, 0x30, 0x2e, 0x38, 0x33, 0x35, 0x39, 0x33, 0x37, 0x35, 0x29, 0x20, // oat3(0.8359375)
+ 0x2b, 0x20, 0x28, 0x5f, 0x36, 0x34, 0x35, 0x20, 0x2a, 0x20, 0x31, 0x38, 0x2e, 0x38, 0x35, 0x31, // + (_645 * 18.851
+ 0x35, 0x36, 0x32, 0x35, 0x29, 0x29, 0x20, 0x2f, 0x20, 0x28, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, // 5625)) / (float3
+ 0x28, 0x31, 0x2e, 0x30, 0x29, 0x20, 0x2b, 0x20, 0x28, 0x5f, 0x36, 0x34, 0x35, 0x20, 0x2a, 0x20, // (1.0) + (_645 *
+ 0x31, 0x38, 0x2e, 0x36, 0x38, 0x37, 0x35, 0x29, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, // 18.6875)), float
+ 0x33, 0x28, 0x37, 0x38, 0x2e, 0x38, 0x34, 0x33, 0x37, 0x35, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, // 3(78.84375));.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, // }.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, // else.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, // {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x37, 0x30, 0x39, 0x20, // _709
+ 0x3d, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x30, 0x2e, 0x30, 0x29, 0x3b, 0x0a, 0x20, // = float3(0.0);.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, // }.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x37, 0x30, 0x38, 0x20, 0x3d, 0x20, // _708 =
+ 0x5f, 0x37, 0x30, 0x39, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, // _709;. }.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x37, 0x30, 0x37, 0x20, 0x3d, 0x20, 0x5f, // _707 = _
+ 0x37, 0x30, 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, // 708;. }. o
+ 0x75, 0x74, 0x2e, 0x62, 0x67, 0x66, 0x78, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x44, 0x61, 0x74, 0x61, // ut.bgfx_FragData
+ 0x30, 0x20, 0x3d, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x28, 0x5f, 0x37, 0x30, 0x37, 0x2c, // 0 = float4(_707,
+ 0x20, 0x5f, 0x34, 0x33, 0x30, 0x2e, 0x77, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, // _430.w);. re
+ 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6f, 0x75, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x00, 0x00, 0x40, // turn out;.}....@
+ 0x00, // .
};
extern const uint8_t* fs_texture_pssl;
extern const uint32_t fs_texture_pssl_size;
diff --git a/3rdparty/bgfx/tools/texturev/fs_texture.sc b/3rdparty/bgfx/tools/texturev/fs_texture.sc
index 07994ca9f6c..c4211343ff0 100644
--- a/3rdparty/bgfx/tools/texturev/fs_texture.sc
+++ b/3rdparty/bgfx/tools/texturev/fs_texture.sc
@@ -1,8 +1,8 @@
$input v_texcoord0, v_color0
/*
- * Copyright 2011-2018 Branimir Karadzic. All rights reserved.
- * License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause
+ * Copyright 2011-2022 Branimir Karadzic. All rights reserved.
+ * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE
*/
#include "common.sh"
@@ -12,5 +12,8 @@ SAMPLER2D(s_texColor, 0);
void main()
{
vec4 color = texture2DLod(s_texColor, v_texcoord0.xy, u_textureLod);
- gl_FragColor = toEv(color * v_color0);
+ color.xyz = applyExposure(color.xyz);
+ color *= v_color0;
+
+ gl_FragColor = toOutput(color, u_outputFormat, u_sdrWhiteNits);
}
diff --git a/3rdparty/bgfx/tools/texturev/fs_texture_3d.bin.h b/3rdparty/bgfx/tools/texturev/fs_texture_3d.bin.h
index 4c5339dc3b1..f54b675e37c 100644
--- a/3rdparty/bgfx/tools/texturev/fs_texture_3d.bin.h
+++ b/3rdparty/bgfx/tools/texturev/fs_texture_3d.bin.h
@@ -1,336 +1,1054 @@
-static const uint8_t fs_texture_3d_glsl[592] =
+static const uint8_t fs_texture_3d_glsl[2409] =
{
- 0x46, 0x53, 0x48, 0x06, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x08, 0x75, // FSH............u
- 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x02, 0x01, 0x00, 0x00, 0x01, 0x00, 0x0a, 0x73, 0x5f, // _params.......s_
- 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x1d, 0x02, // texColor........
- 0x00, 0x00, 0x76, 0x61, 0x72, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x76, // ..varying vec4 v
- 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x76, 0x61, 0x72, 0x79, 0x69, 0x6e, 0x67, // _color0;.varying
- 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, // vec3 v_texcoord
- 0x30, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, // 0;.uniform vec4
- 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, // u_params;.unifor
- 0x6d, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x33, 0x44, 0x20, 0x73, 0x5f, 0x74, 0x65, // m sampler3D s_te
- 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x3b, 0x0a, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x6d, 0x61, 0x69, // xColor;.void mai
- 0x6e, 0x20, 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x74, 0x6d, // n ().{. vec3 tm
- 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // pvar_1;. tmpvar
- 0x5f, 0x31, 0x2e, 0x78, 0x79, 0x20, 0x3d, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, // _1.xy = v_texcoo
- 0x72, 0x64, 0x30, 0x2e, 0x78, 0x79, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // rd0.xy;. tmpvar
- 0x5f, 0x31, 0x2e, 0x7a, 0x20, 0x3d, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, // _1.z = u_params.
- 0x79, 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, // y;. vec4 _color
- 0x5f, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x32, 0x20, 0x3d, // _2;. _color_2 =
- 0x20, 0x28, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x33, 0x44, 0x4c, 0x6f, 0x64, 0x20, 0x28, // (texture3DLod (
- 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x2c, 0x20, 0x74, 0x6d, 0x70, 0x76, // s_texColor, tmpv
- 0x61, 0x72, 0x5f, 0x31, 0x2c, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x78, // ar_1, u_params.x
- 0x29, 0x20, 0x2a, 0x20, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x29, 0x3b, 0x0a, 0x20, // ) * v_color0);.
- 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x33, 0x3b, 0x0a, // vec4 tmpvar_3;.
- 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x33, 0x2e, 0x78, 0x79, 0x7a, 0x20, 0x3d, // tmpvar_3.xyz =
- 0x20, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x61, 0x62, 0x73, 0x28, 0x28, 0x0a, 0x20, 0x20, 0x20, 0x20, // pow (abs((.
- 0x6d, 0x69, 0x78, 0x20, 0x28, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x61, 0x62, 0x73, 0x28, 0x5f, 0x63, // mix (pow (abs(_c
- 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x32, 0x2e, 0x78, 0x79, 0x7a, 0x29, 0x2c, 0x20, 0x76, 0x65, 0x63, // olor_2.xyz), vec
- 0x33, 0x28, 0x32, 0x2e, 0x32, 0x2c, 0x20, 0x32, 0x2e, 0x32, 0x2c, 0x20, 0x32, 0x2e, 0x32, 0x29, // 3(2.2, 2.2, 2.2)
- 0x29, 0x2c, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x32, 0x2e, 0x78, 0x79, 0x7a, 0x2c, // ), _color_2.xyz,
- 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x7a, 0x29, 0x0a, 0x20, 0x20, 0x20, // u_params.z).
- 0x2a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x70, 0x32, 0x28, 0x75, 0x5f, 0x70, 0x61, // * . exp2(u_pa
- 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x29, 0x29, 0x2c, 0x20, 0x76, 0x65, // rams.w). )), ve
- 0x63, 0x33, 0x28, 0x30, 0x2e, 0x34, 0x35, 0x34, 0x35, 0x34, 0x35, 0x34, 0x2c, 0x20, 0x30, 0x2e, // c3(0.4545454, 0.
- 0x34, 0x35, 0x34, 0x35, 0x34, 0x35, 0x34, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x35, 0x34, 0x35, 0x34, // 4545454, 0.45454
- 0x35, 0x34, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x33, // 54));. tmpvar_3
- 0x2e, 0x77, 0x20, 0x3d, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x32, 0x2e, 0x77, 0x3b, // .w = _color_2.w;
- 0x0a, 0x20, 0x20, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, // . gl_FragColor
- 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x33, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x00, // = tmpvar_3;.}...
+ 0x46, 0x53, 0x48, 0x0b, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x09, 0x75, // FSH............u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x02, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // _params0........
+ 0x00, 0x00, 0x09, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x02, 0x01, 0x00, 0x00, // ...u_params1....
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, // .......s_texColo
+ 0x72, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x09, 0x00, 0x00, 0x76, // r..............v
+ 0x61, 0x72, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x76, 0x5f, 0x63, 0x6f, // arying vec4 v_co
+ 0x6c, 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x76, 0x61, 0x72, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x76, 0x65, // lor0;.varying ve
+ 0x63, 0x33, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, 0x0a, // c3 v_texcoord0;.
+ 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x75, 0x5f, 0x70, // uniform vec4 u_p
+ 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, // arams0;.uniform
+ 0x76, 0x65, 0x63, 0x34, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x3b, 0x0a, // vec4 u_params1;.
+ 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x33, // uniform sampler3
+ 0x44, 0x20, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x3b, 0x0a, 0x76, 0x6f, // D s_texColor;.vo
+ 0x69, 0x64, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x76, // id main ().{. v
+ 0x65, 0x63, 0x34, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x76, // ec4 color_1;. v
+ 0x65, 0x63, 0x33, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x3b, 0x0a, 0x20, 0x20, // ec3 tmpvar_2;.
+ 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x2e, 0x78, 0x79, 0x20, 0x3d, 0x20, 0x76, 0x5f, // tmpvar_2.xy = v_
+ 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x2e, 0x78, 0x79, 0x3b, 0x0a, 0x20, 0x20, // texcoord0.xy;.
+ 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x2e, 0x7a, 0x20, 0x3d, 0x20, 0x75, 0x5f, 0x70, // tmpvar_2.z = u_p
+ 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x2e, 0x79, 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x65, 0x63, 0x34, // arams0.y;. vec4
+ 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, // tmpvar_3;. tmp
+ 0x76, 0x61, 0x72, 0x5f, 0x33, 0x20, 0x3d, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x33, // var_3 = texture3
+ 0x44, 0x4c, 0x6f, 0x64, 0x20, 0x28, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, // DLod (s_texColor
+ 0x2c, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x2c, 0x20, 0x75, 0x5f, 0x70, 0x61, // , tmpvar_2, u_pa
+ 0x72, 0x61, 0x6d, 0x73, 0x30, 0x2e, 0x78, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, // rams0.x);. colo
+ 0x72, 0x5f, 0x31, 0x2e, 0x77, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x33, // r_1.w = tmpvar_3
+ 0x2e, 0x77, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x79, // .w;. color_1.xy
+ 0x7a, 0x20, 0x3d, 0x20, 0x28, 0x6d, 0x69, 0x78, 0x20, 0x28, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x0a, // z = (mix (pow (.
+ 0x20, 0x20, 0x20, 0x20, 0x61, 0x62, 0x73, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x33, // abs(tmpvar_3
+ 0x2e, 0x78, 0x79, 0x7a, 0x29, 0x0a, 0x20, 0x20, 0x2c, 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x32, // .xyz). , vec3(2
+ 0x2e, 0x32, 0x2c, 0x20, 0x32, 0x2e, 0x32, 0x2c, 0x20, 0x32, 0x2e, 0x32, 0x29, 0x29, 0x2c, 0x20, // .2, 2.2, 2.2)),
+ 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x33, 0x2e, 0x78, 0x79, 0x7a, 0x2c, 0x20, 0x75, 0x5f, // tmpvar_3.xyz, u_
+ 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x2e, 0x7a, 0x29, 0x20, 0x2a, 0x20, 0x65, 0x78, 0x70, // params0.z) * exp
+ 0x32, 0x28, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x2e, 0x77, 0x29, 0x29, 0x3b, // 2(u_params0.w));
+ 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x20, 0x3d, 0x20, 0x28, 0x63, 0x6f, // . color_1 = (co
+ 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x20, 0x2a, 0x20, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, // lor_1 * v_color0
+ 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6c, // );. vec3 outCol
+ 0x6f, 0x72, 0x5f, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x74, 0x6d, 0x70, // or_4;. vec3 tmp
+ 0x76, 0x61, 0x72, 0x5f, 0x35, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // var_5;. tmpvar_
+ 0x35, 0x2e, 0x78, 0x20, 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, // 5.x = 0.0;. tmp
+ 0x76, 0x61, 0x72, 0x5f, 0x35, 0x2e, 0x79, 0x20, 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x3b, 0x0a, 0x20, // var_5.y = 0.0;.
+ 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x35, 0x2e, 0x7a, 0x20, 0x3d, 0x20, 0x30, 0x2e, // tmpvar_5.z = 0.
+ 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x34, 0x20, // 0;. outColor_4
+ 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x35, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x66, // = tmpvar_5;. if
+ 0x20, 0x28, 0x28, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x2e, 0x78, 0x20, 0x3c, // ((u_params1.x <
+ 0x20, 0x30, 0x2e, 0x35, 0x29, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, // 0.5)) {. vec
+ 0x33, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, // 3 tmpvar_6;.
+ 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x36, 0x20, 0x3d, 0x20, 0x63, 0x6c, 0x61, 0x6d, 0x70, // tmpvar_6 = clamp
+ 0x20, 0x28, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x2c, 0x20, 0x30, // (color_1.xyz, 0
+ 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, // .0, 1.0);. ve
+ 0x63, 0x33, 0x20, 0x5f, 0x72, 0x67, 0x62, 0x5f, 0x37, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x5f, // c3 _rgb_7;. _
+ 0x72, 0x67, 0x62, 0x5f, 0x37, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x36, // rgb_7 = tmpvar_6
+ 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x74, 0x6d, 0x70, 0x76, // ;. float tmpv
+ 0x61, 0x72, 0x5f, 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x28, 0x74, // ar_8;. if ((t
+ 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x36, 0x2e, 0x78, 0x20, 0x3c, 0x3d, 0x20, 0x30, 0x2e, 0x30, // mpvar_6.x <= 0.0
+ 0x30, 0x33, 0x31, 0x33, 0x30, 0x38, 0x29, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, // 031308)) {.
+ 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x38, 0x20, 0x3d, 0x20, 0x28, 0x31, 0x32, 0x2e, // tmpvar_8 = (12.
+ 0x39, 0x32, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x36, 0x2e, 0x78, 0x29, // 92 * tmpvar_6.x)
+ 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x0a, 0x20, // ;. } else {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x38, 0x20, 0x3d, 0x20, // tmpvar_8 =
+ 0x28, 0x28, 0x31, 0x2e, 0x30, 0x35, 0x35, 0x20, 0x2a, 0x20, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x74, // ((1.055 * pow (t
+ 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x36, 0x2e, 0x78, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x31, 0x36, // mpvar_6.x, 0.416
+ 0x36, 0x36, 0x36, 0x37, 0x29, 0x29, 0x20, 0x2d, 0x20, 0x30, 0x2e, 0x30, 0x35, 0x35, 0x29, 0x3b, // 6667)) - 0.055);
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x72, 0x67, 0x62, // . };. _rgb
+ 0x5f, 0x37, 0x2e, 0x78, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x38, 0x3b, // _7.x = tmpvar_8;
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, // . float tmpva
+ 0x72, 0x5f, 0x39, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x28, 0x74, 0x6d, // r_9;. if ((tm
+ 0x70, 0x76, 0x61, 0x72, 0x5f, 0x36, 0x2e, 0x79, 0x20, 0x3c, 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x30, // pvar_6.y <= 0.00
+ 0x33, 0x31, 0x33, 0x30, 0x38, 0x29, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // 31308)) {.
+ 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x39, 0x20, 0x3d, 0x20, 0x28, 0x31, 0x32, 0x2e, 0x39, // tmpvar_9 = (12.9
+ 0x32, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x36, 0x2e, 0x79, 0x29, 0x3b, // 2 * tmpvar_6.y);
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, // . } else {.
+ 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x39, 0x20, 0x3d, 0x20, 0x28, // tmpvar_9 = (
+ 0x28, 0x31, 0x2e, 0x30, 0x35, 0x35, 0x20, 0x2a, 0x20, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x74, 0x6d, // (1.055 * pow (tm
+ 0x70, 0x76, 0x61, 0x72, 0x5f, 0x36, 0x2e, 0x79, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x31, 0x36, 0x36, // pvar_6.y, 0.4166
+ 0x36, 0x36, 0x37, 0x29, 0x29, 0x20, 0x2d, 0x20, 0x30, 0x2e, 0x30, 0x35, 0x35, 0x29, 0x3b, 0x0a, // 667)) - 0.055);.
+ 0x20, 0x20, 0x20, 0x20, 0x7d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x72, 0x67, 0x62, 0x5f, // };. _rgb_
+ 0x37, 0x2e, 0x79, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x39, 0x3b, 0x0a, // 7.y = tmpvar_9;.
+ 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // float tmpvar
+ 0x5f, 0x31, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x28, 0x74, 0x6d, // _10;. if ((tm
+ 0x70, 0x76, 0x61, 0x72, 0x5f, 0x36, 0x2e, 0x7a, 0x20, 0x3c, 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x30, // pvar_6.z <= 0.00
+ 0x33, 0x31, 0x33, 0x30, 0x38, 0x29, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // 31308)) {.
+ 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x30, 0x20, 0x3d, 0x20, 0x28, 0x31, 0x32, 0x2e, // tmpvar_10 = (12.
+ 0x39, 0x32, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x36, 0x2e, 0x7a, 0x29, // 92 * tmpvar_6.z)
+ 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x0a, 0x20, // ;. } else {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x30, 0x20, 0x3d, // tmpvar_10 =
+ 0x20, 0x28, 0x28, 0x31, 0x2e, 0x30, 0x35, 0x35, 0x20, 0x2a, 0x20, 0x70, 0x6f, 0x77, 0x20, 0x28, // ((1.055 * pow (
+ 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x36, 0x2e, 0x7a, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x31, // tmpvar_6.z, 0.41
+ 0x36, 0x36, 0x36, 0x36, 0x37, 0x29, 0x29, 0x20, 0x2d, 0x20, 0x30, 0x2e, 0x30, 0x35, 0x35, 0x29, // 66667)) - 0.055)
+ 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x72, 0x67, // ;. };. _rg
+ 0x62, 0x5f, 0x37, 0x2e, 0x7a, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, // b_7.z = tmpvar_1
+ 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, // 0;. outColor_
+ 0x34, 0x20, 0x3d, 0x20, 0x5f, 0x72, 0x67, 0x62, 0x5f, 0x37, 0x3b, 0x0a, 0x20, 0x20, 0x7d, 0x20, // 4 = _rgb_7;. }
+ 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x28, // else {. if ((
+ 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x2e, 0x78, 0x20, 0x3c, 0x20, 0x31, 0x2e, // u_params1.x < 1.
+ 0x35, 0x29, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x43, // 5)) {. outC
+ 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x34, 0x20, 0x3d, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, // olor_4 = color_1
+ 0x2e, 0x78, 0x79, 0x7a, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, // .xyz;. } else
+ 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x28, 0x75, 0x5f, // {. if ((u_
+ 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x2e, 0x78, 0x20, 0x3c, 0x20, 0x32, 0x2e, 0x35, 0x29, // params1.x < 2.5)
+ 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, // ) {. vec3
+ 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, // _color_11;.
+ 0x20, 0x20, 0x20, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x31, 0x20, 0x3d, 0x20, // _color_11 =
+ 0x28, 0x28, 0x6d, 0x61, 0x74, 0x33, 0x28, 0x31, 0x2e, 0x37, 0x31, 0x36, 0x36, 0x35, 0x31, 0x2c, // ((mat3(1.716651,
+ 0x20, 0x2d, 0x30, 0x2e, 0x33, 0x35, 0x35, 0x36, 0x37, 0x30, 0x38, 0x2c, 0x20, 0x2d, 0x30, 0x2e, // -0.3556708, -0.
+ 0x32, 0x35, 0x33, 0x33, 0x36, 0x36, 0x33, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x36, 0x36, 0x36, 0x36, // 2533663, -0.6666
+ 0x38, 0x34, 0x34, 0x2c, 0x20, 0x31, 0x2e, 0x36, 0x31, 0x36, 0x34, 0x38, 0x31, 0x2c, 0x20, 0x30, // 844, 1.616481, 0
+ 0x2e, 0x30, 0x31, 0x35, 0x37, 0x36, 0x38, 0x35, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x31, 0x37, 0x36, // .0157685, 0.0176
+ 0x33, 0x39, 0x39, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x30, 0x34, 0x32, 0x37, 0x37, 0x30, 0x36, 0x2c, // 399, -0.0427706,
+ 0x20, 0x30, 0x2e, 0x39, 0x34, 0x32, 0x31, 0x30, 0x33, 0x31, 0x29, 0x20, 0x2a, 0x20, 0x28, 0x6d, // 0.9421031) * (m
+ 0x61, 0x74, 0x33, 0x28, 0x30, 0x2e, 0x34, 0x31, 0x32, 0x35, 0x35, 0x36, 0x34, 0x2c, 0x20, 0x30, // at3(0.4125564, 0
+ 0x2e, 0x33, 0x35, 0x37, 0x35, 0x37, 0x36, 0x31, 0x2c, 0x20, 0x30, 0x2e, 0x31, 0x38, 0x30, 0x34, // .3575761, 0.1804
+ 0x33, 0x37, 0x35, 0x2c, 0x20, 0x30, 0x2e, 0x32, 0x31, 0x32, 0x36, 0x37, 0x32, 0x39, 0x2c, 0x20, // 375, 0.2126729,
+ 0x30, 0x2e, 0x37, 0x31, 0x35, 0x31, 0x35, 0x32, 0x32, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x37, 0x32, // 0.7151522, 0.072
+ 0x31, 0x37, 0x35, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x31, 0x39, 0x33, 0x33, 0x33, 0x39, 0x2c, 0x20, // 175, 0.0193339,
+ 0x30, 0x2e, 0x31, 0x31, 0x39, 0x31, 0x39, 0x32, 0x2c, 0x20, 0x30, 0x2e, 0x39, 0x35, 0x30, 0x33, // 0.119192, 0.9503
+ 0x30, 0x34, 0x31, 0x29, 0x20, 0x2a, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x2e, 0x78, // 041) * color_1.x
+ 0x79, 0x7a, 0x29, 0x29, 0x20, 0x2a, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, // yz)) * u_params1
+ 0x2e, 0x79, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, // .y);. vec
+ 0x33, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x20, // 3 tmpvar_12;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x32, 0x20, 0x3d, // tmpvar_12 =
+ 0x20, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x28, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x31, // pow ((_color_11
+ 0x20, 0x2a, 0x20, 0x30, 0x2e, 0x30, 0x30, 0x30, 0x31, 0x29, 0x2c, 0x20, 0x76, 0x65, 0x63, 0x33, // * 0.0001), vec3
+ 0x28, 0x30, 0x2e, 0x31, 0x35, 0x39, 0x33, 0x30, 0x31, 0x38, 0x2c, 0x20, 0x30, 0x2e, 0x31, 0x35, // (0.1593018, 0.15
+ 0x39, 0x33, 0x30, 0x31, 0x38, 0x2c, 0x20, 0x30, 0x2e, 0x31, 0x35, 0x39, 0x33, 0x30, 0x31, 0x38, // 93018, 0.1593018
+ 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, // ));. vec3
+ 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, // tmpvar_13;.
+ 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x33, 0x20, 0x3d, 0x20, // tmpvar_13 =
+ 0x70, 0x6f, 0x77, 0x20, 0x28, 0x28, 0x28, 0x30, 0x2e, 0x38, 0x33, 0x35, 0x39, 0x33, 0x37, 0x35, // pow (((0.8359375
+ 0x20, 0x2b, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, // + . (1
+ 0x38, 0x2e, 0x38, 0x35, 0x31, 0x35, 0x36, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // 8.85156 * tmpvar
+ 0x5f, 0x31, 0x32, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x29, 0x20, 0x2f, // _12). ) /
+ 0x20, 0x28, 0x76, 0x65, 0x63, 0x33, 0x28, 0x31, 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x2c, // (vec3(1.0, 1.0,
+ 0x20, 0x31, 0x2e, 0x30, 0x29, 0x20, 0x2b, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // 1.0) + .
+ 0x20, 0x20, 0x20, 0x28, 0x31, 0x38, 0x2e, 0x36, 0x38, 0x37, 0x35, 0x20, 0x2a, 0x20, 0x74, 0x6d, // (18.6875 * tm
+ 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x32, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // pvar_12).
+ 0x20, 0x29, 0x29, 0x2c, 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x37, 0x38, 0x2e, 0x38, 0x34, 0x33, // )), vec3(78.843
+ 0x37, 0x35, 0x2c, 0x20, 0x37, 0x38, 0x2e, 0x38, 0x34, 0x33, 0x37, 0x35, 0x2c, 0x20, 0x37, 0x38, // 75, 78.84375, 78
+ 0x2e, 0x38, 0x34, 0x33, 0x37, 0x35, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // .84375));.
+ 0x20, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x31, 0x20, 0x3d, 0x20, 0x74, 0x6d, // _color_11 = tm
+ 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // pvar_13;.
+ 0x20, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x34, 0x20, 0x3d, 0x20, 0x74, 0x6d, // outColor_4 = tm
+ 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, // pvar_13;. }
+ 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x3b, 0x0a, 0x20, 0x20, 0x7d, 0x3b, 0x0a, 0x20, 0x20, // ;. };. };.
+ 0x76, 0x65, 0x63, 0x34, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x34, 0x3b, 0x0a, // vec4 tmpvar_14;.
+ 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x34, 0x2e, 0x78, 0x79, 0x7a, 0x20, // tmpvar_14.xyz
+ 0x3d, 0x20, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x34, 0x3b, 0x0a, 0x20, 0x20, // = outColor_4;.
+ 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x34, 0x2e, 0x77, 0x20, 0x3d, 0x20, 0x63, 0x6f, // tmpvar_14.w = co
+ 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x2e, 0x77, 0x3b, 0x0a, 0x20, 0x20, 0x67, 0x6c, 0x5f, 0x46, 0x72, // lor_1.w;. gl_Fr
+ 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // agColor = tmpvar
+ 0x5f, 0x31, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x00, // _14;.}...
};
-static const uint8_t fs_texture_3d_spv[2033] =
+static const uint8_t fs_texture_3d_essl[2564] =
{
- 0x46, 0x53, 0x48, 0x06, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x75, // FSH............u
- 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x01, 0x00, 0x00, 0x01, 0x00, 0xcc, 0x07, 0x00, // _params.........
- 0x00, 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x07, 0x00, 0x08, 0x00, 0x3b, 0x01, 0x00, // ...#.........;..
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, // ................
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, // .....GLSL.std.45
- 0x30, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // 0...............
- 0x00, 0x0f, 0x00, 0x08, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, // .............mai
- 0x6e, 0x00, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, // n...............
- 0x00, 0x10, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, // ................
- 0x00, 0x05, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, // ................
- 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x09, 0x00, 0x00, // .main...........
- 0x00, 0x42, 0x67, 0x66, 0x78, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x33, 0x44, 0x00, 0x00, // .BgfxSampler3D..
- 0x00, 0x06, 0x00, 0x06, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6d, 0x5f, 0x73, // .............m_s
- 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x09, 0x00, 0x00, // ampler..........
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x6d, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x00, 0x00, // .....m_texture..
- 0x00, 0x05, 0x00, 0x05, 0x00, 0x36, 0x00, 0x00, 0x00, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, // .....6...s_texCo
- 0x6c, 0x6f, 0x72, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x38, 0x00, 0x00, 0x00, 0x73, 0x5f, 0x74, // lor......8...s_t
- 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x00, 0x00, // exColorSampler..
- 0x00, 0x05, 0x00, 0x07, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, // .....;...s_texCo
- 0x6c, 0x6f, 0x72, 0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, // lorTexture......
- 0x00, 0x76, 0x00, 0x00, 0x00, 0x24, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x00, 0x06, 0x00, 0x06, // .v...$Global....
- 0x00, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, // .v.......u_param
- 0x73, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // s........x......
- 0x00, 0x05, 0x00, 0x05, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, // .........v_color
- 0x30, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0xb7, 0x00, 0x00, 0x00, 0x76, 0x5f, 0x74, // 0............v_t
- 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x00, 0x05, 0x00, 0x06, 0x00, 0xc2, 0x00, 0x00, // excoord0........
- 0x00, 0x62, 0x67, 0x66, 0x78, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x44, 0x61, 0x74, 0x61, 0x30, 0x00, // .bgfx_FragData0.
- 0x00, 0x47, 0x00, 0x04, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .G...;..."......
- 0x00, 0x47, 0x00, 0x04, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .G...;...!......
- 0x00, 0x48, 0x00, 0x05, 0x00, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, // .H...v.......#..
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x76, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, // .....G...v......
- 0x00, 0x47, 0x00, 0x04, 0x00, 0x78, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .G...x..."......
- 0x00, 0x47, 0x00, 0x04, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .G..............
- 0x00, 0x47, 0x00, 0x04, 0x00, 0xb7, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // .G..............
- 0x00, 0x47, 0x00, 0x04, 0x00, 0xc2, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .G..............
- 0x00, 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, // .........!......
- 0x00, 0x02, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x02, 0x00, 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, // ................
- 0x00, 0x07, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x08, 0x00, 0x00, // ..... ..........
- 0x00, 0x07, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x04, // ................
- 0x00, 0x09, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, // ................
- 0x00, 0x0b, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, // ................
- 0x00, 0x0e, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, // ............. ..
- 0x00, 0x35, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, // .5...........;..
- 0x00, 0x35, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, // .5...6....... ..
- 0x00, 0x37, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, // .7...........;..
- 0x00, 0x37, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, // .7...8....... ..
- 0x00, 0x3a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, // .:...........;..
- 0x00, 0x3a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, // .:...;..........
- 0x00, 0x3e, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, // .>... .......+..
- 0x00, 0x3e, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, // .>...C..........
- 0x00, 0x47, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, // .G.......+......
- 0x00, 0x63, 0x00, 0x00, 0x00, 0xcd, 0xcc, 0x0c, 0x40, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, // .c......@+......
- 0x00, 0x6b, 0x00, 0x00, 0x00, 0x2f, 0xba, 0xe8, 0x3e, 0x1e, 0x00, 0x03, 0x00, 0x76, 0x00, 0x00, // .k.../..>....v..
- 0x00, 0x0e, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x77, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, // ..... ...w......
- 0x00, 0x76, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x77, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, // .v...;...w...x..
- 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x79, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, // .........y... ..
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x79, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, // .....+...y...z..
- 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, // ..... ...{......
- 0x00, 0x07, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, // .....+..........
- 0x00, 0x00, 0x00, 0x00, 0x40, 0x2b, 0x00, 0x04, 0x00, 0x79, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, // ....@+...y......
- 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x79, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, // .....+...y......
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x79, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, // .....+...y......
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0xb2, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // ..... ..........
- 0x00, 0x0e, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0xb2, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, // .....;..........
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0xb6, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // ..... ..........
- 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0xb6, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, // .....;..........
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0xc1, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, // ..... ..........
- 0x00, 0x0e, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0xc1, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, // .....;..........
- 0x00, 0x03, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x39, 0x01, 0x00, // .....,.......9..
- 0x00, 0x63, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, // .c...c...c...,..
- 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3a, 0x01, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, // .....:...k...k..
- 0x00, 0x6b, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, // .k...6..........
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, // ................
- 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, // .=.......9...8..
- 0x00, 0x3d, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, // .=.......<...;..
- 0x00, 0x50, 0x00, 0x05, 0x00, 0x09, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, // .P.......=...9..
- 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x36, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, // .<...>...6...=..
- 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, // .=..............
- 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, // .=..............
- 0x00, 0x41, 0x00, 0x06, 0x00, 0x7b, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, // .A...{.......x..
- 0x00, 0x43, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, // .C.......=......
- 0x00, 0xe1, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, // .........Q......
- 0x00, 0xe2, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, // .............Q..
- 0x00, 0x07, 0x00, 0x00, 0x00, 0xe3, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // ................
- 0x00, 0x50, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, // .P..............
- 0x00, 0xe3, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, // .........=......
- 0x00, 0xe5, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, // .....6...Q......
- 0x00, 0x35, 0x01, 0x00, 0x00, 0xe5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, // .5...........Q..
- 0x00, 0x08, 0x00, 0x00, 0x00, 0x36, 0x01, 0x00, 0x00, 0xe5, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // .....6..........
- 0x00, 0x41, 0x00, 0x06, 0x00, 0x7b, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, // .A...{.......x..
- 0x00, 0x43, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, // .C.......=......
- 0x00, 0xe7, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, 0x56, 0x00, 0x05, 0x00, 0x47, 0x00, 0x00, // .........V...G..
- 0x00, 0xf8, 0x00, 0x00, 0x00, 0x36, 0x01, 0x00, 0x00, 0x35, 0x01, 0x00, 0x00, 0x58, 0x00, 0x07, // .....6...5...X..
- 0x00, 0x0e, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, // ................
- 0x00, 0x02, 0x00, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, // ................
- 0x00, 0xeb, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x08, // .............O..
- 0x00, 0x0b, 0x00, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, // ................
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, // ................
- 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1b, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, // ................
- 0x00, 0x04, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1d, 0x01, 0x00, // ................
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1b, 0x01, 0x00, 0x00, 0x39, 0x01, 0x00, // .............9..
- 0x00, 0x41, 0x00, 0x06, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x06, 0x01, 0x00, 0x00, 0x78, 0x00, 0x00, // .A...{.......x..
- 0x00, 0x43, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, // .C...z...=......
- 0x00, 0x07, 0x01, 0x00, 0x00, 0x06, 0x01, 0x00, 0x00, 0x50, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, // .........P......
- 0x00, 0x08, 0x01, 0x00, 0x00, 0x07, 0x01, 0x00, 0x00, 0x07, 0x01, 0x00, 0x00, 0x07, 0x01, 0x00, // ................
- 0x00, 0x4f, 0x00, 0x08, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x00, 0xeb, 0x00, 0x00, // .O..............
- 0x00, 0xeb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, // ................
- 0x00, 0x0c, 0x00, 0x08, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x27, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, // .........'......
- 0x00, 0x2e, 0x00, 0x00, 0x00, 0x1d, 0x01, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x00, 0x08, 0x01, 0x00, // ................
- 0x00, 0x41, 0x00, 0x06, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x0d, 0x01, 0x00, 0x00, 0x78, 0x00, 0x00, // .A...{.......x..
- 0x00, 0x43, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, // .C.......=......
- 0x00, 0x0e, 0x01, 0x00, 0x00, 0x0d, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, // ................
- 0x00, 0x0f, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, // ................
- 0x00, 0x0e, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, // ................
- 0x00, 0x27, 0x01, 0x00, 0x00, 0x0f, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, // .'..............
- 0x00, 0x2b, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, // .+..............
- 0x00, 0x0c, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x2d, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, // .........-......
- 0x00, 0x1a, 0x00, 0x00, 0x00, 0x2b, 0x01, 0x00, 0x00, 0x3a, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, // .....+...:...Q..
- 0x00, 0x07, 0x00, 0x00, 0x00, 0x13, 0x01, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, // ................
- 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, 0x2d, 0x01, 0x00, // .Q...........-..
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x15, 0x01, 0x00, // .....Q..........
- 0x00, 0x2d, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, // .-.......Q......
- 0x00, 0x16, 0x01, 0x00, 0x00, 0x2d, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, // .....-.......P..
- 0x00, 0x0e, 0x00, 0x00, 0x00, 0x17, 0x01, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, 0x15, 0x01, 0x00, // ................
- 0x00, 0x16, 0x01, 0x00, 0x00, 0x13, 0x01, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0xc2, 0x00, 0x00, // .........>......
- 0x00, 0x17, 0x01, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, // .........8......
- 0x00, // .
+ 0x46, 0x53, 0x48, 0x0b, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x09, 0x75, // FSH............u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x02, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // _params0........
+ 0x00, 0x00, 0x09, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x02, 0x01, 0x00, 0x00, // ...u_params1....
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, // .......s_texColo
+ 0x72, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb4, 0x09, 0x00, 0x00, 0x76, // r..............v
+ 0x61, 0x72, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, // arying highp vec
+ 0x34, 0x20, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x76, 0x61, 0x72, 0x79, // 4 v_color0;.vary
+ 0x69, 0x6e, 0x67, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x76, // ing highp vec3 v
+ 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, // _texcoord0;.unif
+ 0x6f, 0x72, 0x6d, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x75, // orm highp vec4 u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, // _params0;.unifor
+ 0x6d, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x75, 0x5f, 0x70, // m highp vec4 u_p
+ 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, // arams1;.uniform
+ 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x33, 0x44, 0x20, 0x73, // lowp sampler3D s
+ 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x3b, 0x0a, 0x76, 0x6f, 0x69, 0x64, 0x20, // _texColor;.void
+ 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, // main ().{. lowp
+ 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x3b, 0x0a, 0x20, // vec4 color_1;.
+ 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x74, 0x6d, 0x70, 0x76, // highp vec3 tmpv
+ 0x61, 0x72, 0x5f, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, // ar_2;. tmpvar_2
+ 0x2e, 0x78, 0x79, 0x20, 0x3d, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, // .xy = v_texcoord
+ 0x30, 0x2e, 0x78, 0x79, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, // 0.xy;. tmpvar_2
+ 0x2e, 0x7a, 0x20, 0x3d, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x2e, 0x79, // .z = u_params0.y
+ 0x3b, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x74, 0x6d, // ;. lowp vec4 tm
+ 0x70, 0x76, 0x61, 0x72, 0x5f, 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // pvar_3;. tmpvar
+ 0x5f, 0x33, 0x20, 0x3d, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x33, 0x44, 0x4c, 0x6f, // _3 = texture3DLo
+ 0x64, 0x45, 0x58, 0x54, 0x20, 0x28, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, // dEXT (s_texColor
+ 0x2c, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x2c, 0x20, 0x75, 0x5f, 0x70, 0x61, // , tmpvar_2, u_pa
+ 0x72, 0x61, 0x6d, 0x73, 0x30, 0x2e, 0x78, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, // rams0.x);. colo
+ 0x72, 0x5f, 0x31, 0x2e, 0x77, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x33, // r_1.w = tmpvar_3
+ 0x2e, 0x77, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x79, // .w;. color_1.xy
+ 0x7a, 0x20, 0x3d, 0x20, 0x28, 0x6d, 0x69, 0x78, 0x20, 0x28, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x0a, // z = (mix (pow (.
+ 0x20, 0x20, 0x20, 0x20, 0x61, 0x62, 0x73, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x33, // abs(tmpvar_3
+ 0x2e, 0x78, 0x79, 0x7a, 0x29, 0x0a, 0x20, 0x20, 0x2c, 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x32, // .xyz). , vec3(2
+ 0x2e, 0x32, 0x2c, 0x20, 0x32, 0x2e, 0x32, 0x2c, 0x20, 0x32, 0x2e, 0x32, 0x29, 0x29, 0x2c, 0x20, // .2, 2.2, 2.2)),
+ 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x33, 0x2e, 0x78, 0x79, 0x7a, 0x2c, 0x20, 0x75, 0x5f, // tmpvar_3.xyz, u_
+ 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x2e, 0x7a, 0x29, 0x20, 0x2a, 0x20, 0x65, 0x78, 0x70, // params0.z) * exp
+ 0x32, 0x28, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x2e, 0x77, 0x29, 0x29, 0x3b, // 2(u_params0.w));
+ 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x20, 0x3d, 0x20, 0x28, 0x63, 0x6f, // . color_1 = (co
+ 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x20, 0x2a, 0x20, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, // lor_1 * v_color0
+ 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x70, 0x20, 0x76, 0x65, 0x63, // );. mediump vec
+ 0x34, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x6c, 0x6f, // 4 tmpvar_4;. lo
+ 0x77, 0x70, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, // wp vec3 outColor
+ 0x5f, 0x35, 0x3b, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, // _5;. lowp vec3
+ 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, // tmpvar_6;. tmpv
+ 0x61, 0x72, 0x5f, 0x36, 0x2e, 0x78, 0x20, 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x3b, 0x0a, 0x20, 0x20, // ar_6.x = 0.0;.
+ 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x36, 0x2e, 0x79, 0x20, 0x3d, 0x20, 0x30, 0x2e, 0x30, // tmpvar_6.y = 0.0
+ 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x36, 0x2e, 0x7a, 0x20, 0x3d, // ;. tmpvar_6.z =
+ 0x20, 0x30, 0x2e, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, // 0.0;. outColor
+ 0x5f, 0x35, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x36, 0x3b, 0x0a, 0x20, // _5 = tmpvar_6;.
+ 0x20, 0x69, 0x66, 0x20, 0x28, 0x28, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x2e, // if ((u_params1.
+ 0x78, 0x20, 0x3c, 0x20, 0x30, 0x2e, 0x35, 0x29, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, // x < 0.5)) {.
+ 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // lowp vec3 tmpvar
+ 0x5f, 0x37, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x37, // _7;. tmpvar_7
+ 0x20, 0x3d, 0x20, 0x63, 0x6c, 0x61, 0x6d, 0x70, 0x20, 0x28, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, // = clamp (color_
+ 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x29, // 1.xyz, 0.0, 1.0)
+ 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, // ;. lowp vec3
+ 0x5f, 0x72, 0x67, 0x62, 0x5f, 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x72, 0x67, 0x62, // _rgb_8;. _rgb
+ 0x5f, 0x38, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x37, 0x3b, 0x0a, 0x20, // _8 = tmpvar_7;.
+ 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x74, 0x6d, // lowp float tm
+ 0x70, 0x76, 0x61, 0x72, 0x5f, 0x39, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, // pvar_9;. if (
+ 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x37, 0x2e, 0x78, 0x20, 0x3c, 0x3d, 0x20, 0x30, // (tmpvar_7.x <= 0
+ 0x2e, 0x30, 0x30, 0x33, 0x31, 0x33, 0x30, 0x38, 0x29, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, // .0031308)) {.
+ 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x39, 0x20, 0x3d, 0x20, 0x28, 0x31, // tmpvar_9 = (1
+ 0x32, 0x2e, 0x39, 0x32, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x37, 0x2e, // 2.92 * tmpvar_7.
+ 0x78, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, // x);. } else {
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x39, 0x20, // . tmpvar_9
+ 0x3d, 0x20, 0x28, 0x28, 0x31, 0x2e, 0x30, 0x35, 0x35, 0x20, 0x2a, 0x20, 0x70, 0x6f, 0x77, 0x20, // = ((1.055 * pow
+ 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x37, 0x2e, 0x78, 0x2c, 0x20, 0x30, 0x2e, 0x34, // (tmpvar_7.x, 0.4
+ 0x31, 0x36, 0x36, 0x36, 0x36, 0x37, 0x29, 0x29, 0x20, 0x2d, 0x20, 0x30, 0x2e, 0x30, 0x35, 0x35, // 166667)) - 0.055
+ 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x72, // );. };. _r
+ 0x67, 0x62, 0x5f, 0x38, 0x2e, 0x78, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // gb_8.x = tmpvar_
+ 0x39, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x66, 0x6c, 0x6f, 0x61, // 9;. lowp floa
+ 0x74, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, // t tmpvar_10;.
+ 0x20, 0x69, 0x66, 0x20, 0x28, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x37, 0x2e, 0x79, // if ((tmpvar_7.y
+ 0x20, 0x3c, 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x30, 0x33, 0x31, 0x33, 0x30, 0x38, 0x29, 0x29, 0x20, // <= 0.0031308))
+ 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, // {. tmpvar_1
+ 0x30, 0x20, 0x3d, 0x20, 0x28, 0x31, 0x32, 0x2e, 0x39, 0x32, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, // 0 = (12.92 * tmp
+ 0x76, 0x61, 0x72, 0x5f, 0x37, 0x2e, 0x79, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x20, // var_7.y);. }
+ 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, // else {. tmp
+ 0x76, 0x61, 0x72, 0x5f, 0x31, 0x30, 0x20, 0x3d, 0x20, 0x28, 0x28, 0x31, 0x2e, 0x30, 0x35, 0x35, // var_10 = ((1.055
+ 0x20, 0x2a, 0x20, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x37, // * pow (tmpvar_7
+ 0x2e, 0x79, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x31, 0x36, 0x36, 0x36, 0x36, 0x37, 0x29, 0x29, 0x20, // .y, 0.4166667))
+ 0x2d, 0x20, 0x30, 0x2e, 0x30, 0x35, 0x35, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x3b, // - 0.055);. };
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x72, 0x67, 0x62, 0x5f, 0x38, 0x2e, 0x79, 0x20, 0x3d, 0x20, // . _rgb_8.y =
+ 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, // tmpvar_10;. l
+ 0x6f, 0x77, 0x70, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // owp float tmpvar
+ 0x5f, 0x31, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x28, 0x74, 0x6d, // _11;. if ((tm
+ 0x70, 0x76, 0x61, 0x72, 0x5f, 0x37, 0x2e, 0x7a, 0x20, 0x3c, 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x30, // pvar_7.z <= 0.00
+ 0x33, 0x31, 0x33, 0x30, 0x38, 0x29, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // 31308)) {.
+ 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x31, 0x20, 0x3d, 0x20, 0x28, 0x31, 0x32, 0x2e, // tmpvar_11 = (12.
+ 0x39, 0x32, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x37, 0x2e, 0x7a, 0x29, // 92 * tmpvar_7.z)
+ 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x0a, 0x20, // ;. } else {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x31, 0x20, 0x3d, // tmpvar_11 =
+ 0x20, 0x28, 0x28, 0x31, 0x2e, 0x30, 0x35, 0x35, 0x20, 0x2a, 0x20, 0x70, 0x6f, 0x77, 0x20, 0x28, // ((1.055 * pow (
+ 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x37, 0x2e, 0x7a, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x31, // tmpvar_7.z, 0.41
+ 0x36, 0x36, 0x36, 0x36, 0x37, 0x29, 0x29, 0x20, 0x2d, 0x20, 0x30, 0x2e, 0x30, 0x35, 0x35, 0x29, // 66667)) - 0.055)
+ 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x72, 0x67, // ;. };. _rg
+ 0x62, 0x5f, 0x38, 0x2e, 0x7a, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, // b_8.z = tmpvar_1
+ 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, // 1;. outColor_
+ 0x35, 0x20, 0x3d, 0x20, 0x5f, 0x72, 0x67, 0x62, 0x5f, 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x7d, 0x20, // 5 = _rgb_8;. }
+ 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x28, // else {. if ((
+ 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x2e, 0x78, 0x20, 0x3c, 0x20, 0x31, 0x2e, // u_params1.x < 1.
+ 0x35, 0x29, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x43, // 5)) {. outC
+ 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x35, 0x20, 0x3d, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, // olor_5 = color_1
+ 0x2e, 0x78, 0x79, 0x7a, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, // .xyz;. } else
+ 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x28, 0x75, 0x5f, // {. if ((u_
+ 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x2e, 0x78, 0x20, 0x3c, 0x20, 0x32, 0x2e, 0x35, 0x29, // params1.x < 2.5)
+ 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, // ) {. lowp
+ 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x32, 0x3b, // vec3 _color_12;
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, // . _color_
+ 0x31, 0x32, 0x20, 0x3d, 0x20, 0x28, 0x28, 0x6d, 0x61, 0x74, 0x33, 0x28, 0x31, 0x2e, 0x37, 0x31, // 12 = ((mat3(1.71
+ 0x36, 0x36, 0x35, 0x31, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x33, 0x35, 0x35, 0x36, 0x37, 0x30, 0x38, // 6651, -0.3556708
+ 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x33, 0x33, 0x36, 0x36, 0x33, 0x2c, 0x20, 0x2d, 0x30, // , -0.2533663, -0
+ 0x2e, 0x36, 0x36, 0x36, 0x36, 0x38, 0x34, 0x34, 0x2c, 0x20, 0x31, 0x2e, 0x36, 0x31, 0x36, 0x34, // .6666844, 1.6164
+ 0x38, 0x31, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x31, 0x35, 0x37, 0x36, 0x38, 0x35, 0x2c, 0x20, 0x30, // 81, 0.0157685, 0
+ 0x2e, 0x30, 0x31, 0x37, 0x36, 0x33, 0x39, 0x39, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x30, 0x34, 0x32, // .0176399, -0.042
+ 0x37, 0x37, 0x30, 0x36, 0x2c, 0x20, 0x30, 0x2e, 0x39, 0x34, 0x32, 0x31, 0x30, 0x33, 0x31, 0x29, // 7706, 0.9421031)
+ 0x20, 0x2a, 0x20, 0x28, 0x6d, 0x61, 0x74, 0x33, 0x28, 0x30, 0x2e, 0x34, 0x31, 0x32, 0x35, 0x35, // * (mat3(0.41255
+ 0x36, 0x34, 0x2c, 0x20, 0x30, 0x2e, 0x33, 0x35, 0x37, 0x35, 0x37, 0x36, 0x31, 0x2c, 0x20, 0x30, // 64, 0.3575761, 0
+ 0x2e, 0x31, 0x38, 0x30, 0x34, 0x33, 0x37, 0x35, 0x2c, 0x20, 0x30, 0x2e, 0x32, 0x31, 0x32, 0x36, // .1804375, 0.2126
+ 0x37, 0x32, 0x39, 0x2c, 0x20, 0x30, 0x2e, 0x37, 0x31, 0x35, 0x31, 0x35, 0x32, 0x32, 0x2c, 0x20, // 729, 0.7151522,
+ 0x30, 0x2e, 0x30, 0x37, 0x32, 0x31, 0x37, 0x35, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x31, 0x39, 0x33, // 0.072175, 0.0193
+ 0x33, 0x33, 0x39, 0x2c, 0x20, 0x30, 0x2e, 0x31, 0x31, 0x39, 0x31, 0x39, 0x32, 0x2c, 0x20, 0x30, // 339, 0.119192, 0
+ 0x2e, 0x39, 0x35, 0x30, 0x33, 0x30, 0x34, 0x31, 0x29, 0x20, 0x2a, 0x20, 0x63, 0x6f, 0x6c, 0x6f, // .9503041) * colo
+ 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x29, 0x29, 0x20, 0x2a, 0x20, 0x75, 0x5f, 0x70, 0x61, // r_1.xyz)) * u_pa
+ 0x72, 0x61, 0x6d, 0x73, 0x31, 0x2e, 0x79, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // rams1.y);.
+ 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x74, 0x6d, 0x70, 0x76, // lowp vec3 tmpv
+ 0x61, 0x72, 0x5f, 0x31, 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, // ar_13;. t
+ 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x33, 0x20, 0x3d, 0x20, 0x70, 0x6f, 0x77, 0x20, 0x28, // mpvar_13 = pow (
+ 0x28, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x32, 0x20, 0x2a, 0x20, 0x30, 0x2e, 0x30, // (_color_12 * 0.0
+ 0x30, 0x30, 0x31, 0x29, 0x2c, 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x30, 0x2e, 0x31, 0x35, 0x39, // 001), vec3(0.159
+ 0x33, 0x30, 0x31, 0x38, 0x2c, 0x20, 0x30, 0x2e, 0x31, 0x35, 0x39, 0x33, 0x30, 0x31, 0x38, 0x2c, // 3018, 0.1593018,
+ 0x20, 0x30, 0x2e, 0x31, 0x35, 0x39, 0x33, 0x30, 0x31, 0x38, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, // 0.1593018));.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, // lowp vec3
+ 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, // tmpvar_14;.
+ 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x34, 0x20, 0x3d, 0x20, 0x70, // tmpvar_14 = p
+ 0x6f, 0x77, 0x20, 0x28, 0x28, 0x28, 0x30, 0x2e, 0x38, 0x33, 0x35, 0x39, 0x33, 0x37, 0x35, 0x20, // ow (((0.8359375
+ 0x2b, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x38, // + . (18
+ 0x2e, 0x38, 0x35, 0x31, 0x35, 0x36, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // .85156 * tmpvar_
+ 0x31, 0x33, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x29, 0x20, 0x2f, 0x20, // 13). ) /
+ 0x28, 0x76, 0x65, 0x63, 0x33, 0x28, 0x31, 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x2c, 0x20, // (vec3(1.0, 1.0,
+ 0x31, 0x2e, 0x30, 0x29, 0x20, 0x2b, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // 1.0) + .
+ 0x20, 0x20, 0x28, 0x31, 0x38, 0x2e, 0x36, 0x38, 0x37, 0x35, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, // (18.6875 * tmp
+ 0x76, 0x61, 0x72, 0x5f, 0x31, 0x33, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // var_13).
+ 0x29, 0x29, 0x2c, 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x37, 0x38, 0x2e, 0x38, 0x34, 0x33, 0x37, // )), vec3(78.8437
+ 0x35, 0x2c, 0x20, 0x37, 0x38, 0x2e, 0x38, 0x34, 0x33, 0x37, 0x35, 0x2c, 0x20, 0x37, 0x38, 0x2e, // 5, 78.84375, 78.
+ 0x38, 0x34, 0x33, 0x37, 0x35, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // 84375));.
+ 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x32, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, // _color_12 = tmp
+ 0x76, 0x61, 0x72, 0x5f, 0x31, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // var_14;.
+ 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x35, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, // outColor_5 = tmp
+ 0x76, 0x61, 0x72, 0x5f, 0x31, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x3b, // var_14;. };
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x3b, 0x0a, 0x20, 0x20, 0x7d, 0x3b, 0x0a, 0x20, 0x20, 0x6c, // . };. };. l
+ 0x6f, 0x77, 0x70, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // owp vec4 tmpvar_
+ 0x31, 0x35, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x35, 0x2e, // 15;. tmpvar_15.
+ 0x78, 0x79, 0x7a, 0x20, 0x3d, 0x20, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x35, // xyz = outColor_5
+ 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x35, 0x2e, 0x77, 0x20, // ;. tmpvar_15.w
+ 0x3d, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x2e, 0x77, 0x3b, 0x0a, 0x20, 0x20, 0x74, // = color_1.w;. t
+ 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x34, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // mpvar_4 = tmpvar
+ 0x5f, 0x31, 0x35, 0x3b, 0x0a, 0x20, 0x20, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, // _15;. gl_FragCo
+ 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x34, 0x3b, 0x0a, // lor = tmpvar_4;.
+ 0x7d, 0x0a, 0x0a, 0x00, // }...
};
-static const uint8_t fs_texture_3d_dx9[611] =
+static const uint8_t fs_texture_3d_spv[4487] =
{
- 0x46, 0x53, 0x48, 0x06, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0a, 0x73, // FSH............s
- 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x01, 0x00, 0x00, 0x01, 0x00, 0x08, // _texColor0......
- 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x01, 0x00, 0x00, 0x01, 0x00, 0x30, 0x02, // u_params......0.
- 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xfe, 0xff, 0x2c, 0x00, 0x43, 0x54, 0x41, 0x42, 0x1c, 0x00, // ........,.CTAB..
- 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0x02, 0x00, 0x00, 0x00, 0x1c, 0x00, // ................
- 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x03, 0x00, // ......|...D.....
- 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, // ......P.......`.
- 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, // ..........l.....
- 0x00, 0x00, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x00, 0xab, 0x04, 0x00, // ..s_texColor....
- 0x0d, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, // ..............u_
- 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x00, 0xab, 0xab, 0xab, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, // params..........
- 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x73, 0x5f, 0x33, 0x5f, 0x30, // ..........ps_3_0
- 0x00, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, // .Microsoft (R) H
- 0x4c, 0x53, 0x4c, 0x20, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x69, // LSL Shader Compi
- 0x6c, 0x65, 0x72, 0x20, 0x31, 0x30, 0x2e, 0x31, 0x00, 0xab, 0x51, 0x00, 0x00, 0x05, 0x01, 0x00, // ler 10.1..Q.....
- 0x0f, 0xa0, 0xcd, 0xcc, 0x0c, 0x40, 0x2f, 0xba, 0xe8, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .....@/..>......
- 0x00, 0x00, 0x1f, 0x00, 0x00, 0x02, 0x0a, 0x00, 0x00, 0x80, 0x00, 0x00, 0x0f, 0x90, 0x1f, 0x00, // ................
- 0x00, 0x02, 0x05, 0x00, 0x00, 0x80, 0x01, 0x00, 0x03, 0x90, 0x1f, 0x00, 0x00, 0x02, 0x00, 0x00, // ................
- 0x00, 0xa0, 0x00, 0x08, 0x0f, 0xa0, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x03, 0x80, 0x01, 0x00, // ................
- 0xe4, 0x90, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x0c, 0x80, 0x00, 0x00, 0x14, 0xa0, 0x5f, 0x00, // .............._.
- 0x00, 0x03, 0x00, 0x00, 0x0f, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x00, 0x08, 0xe4, 0xa0, 0x05, 0x00, // ................
- 0x00, 0x03, 0x01, 0x00, 0x0f, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x00, 0x00, 0xe4, 0x90, 0x0f, 0x00, // ................
- 0x00, 0x02, 0x02, 0x00, 0x01, 0x80, 0x01, 0x00, 0x00, 0x8b, 0x0f, 0x00, 0x00, 0x02, 0x02, 0x00, // ................
- 0x02, 0x80, 0x01, 0x00, 0x55, 0x8b, 0x0f, 0x00, 0x00, 0x02, 0x02, 0x00, 0x04, 0x80, 0x01, 0x00, // ....U...........
- 0xaa, 0x8b, 0x01, 0x00, 0x00, 0x02, 0x00, 0x08, 0x08, 0x80, 0x01, 0x00, 0xff, 0x80, 0x05, 0x00, // ................
- 0x00, 0x03, 0x01, 0x00, 0x07, 0x80, 0x02, 0x00, 0xe4, 0x80, 0x01, 0x00, 0x00, 0xa0, 0x0e, 0x00, // ................
- 0x00, 0x02, 0x02, 0x00, 0x01, 0x80, 0x01, 0x00, 0x00, 0x80, 0x0e, 0x00, 0x00, 0x02, 0x02, 0x00, // ................
- 0x02, 0x80, 0x01, 0x00, 0x55, 0x80, 0x0e, 0x00, 0x00, 0x02, 0x02, 0x00, 0x04, 0x80, 0x01, 0x00, // ....U...........
- 0xaa, 0x80, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x00, 0x00, // ................
- 0xe4, 0x90, 0x02, 0x00, 0xe4, 0x81, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, // ................
- 0xaa, 0xa0, 0x00, 0x00, 0xe4, 0x80, 0x02, 0x00, 0xe4, 0x80, 0x0e, 0x00, 0x00, 0x02, 0x00, 0x00, // ................
- 0x08, 0x80, 0x00, 0x00, 0xff, 0xa0, 0x05, 0x00, 0x00, 0x03, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, // ................
- 0xff, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x0f, 0x00, 0x00, 0x02, 0x01, 0x00, 0x01, 0x80, 0x00, 0x00, // ................
- 0x00, 0x8b, 0x0f, 0x00, 0x00, 0x02, 0x01, 0x00, 0x02, 0x80, 0x00, 0x00, 0x55, 0x8b, 0x0f, 0x00, // ............U...
- 0x00, 0x02, 0x01, 0x00, 0x04, 0x80, 0x00, 0x00, 0xaa, 0x8b, 0x05, 0x00, 0x00, 0x03, 0x00, 0x00, // ................
- 0x07, 0x80, 0x01, 0x00, 0xe4, 0x80, 0x01, 0x00, 0x55, 0xa0, 0x0e, 0x00, 0x00, 0x02, 0x00, 0x08, // ........U.......
- 0x01, 0x80, 0x00, 0x00, 0x00, 0x80, 0x0e, 0x00, 0x00, 0x02, 0x00, 0x08, 0x02, 0x80, 0x00, 0x00, // ................
- 0x55, 0x80, 0x0e, 0x00, 0x00, 0x02, 0x00, 0x08, 0x04, 0x80, 0x00, 0x00, 0xaa, 0x80, 0xff, 0xff, // U...............
- 0x00, 0x00, 0x00, // ...
+ 0x46, 0x53, 0x48, 0x0b, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x09, 0x75, // FSH............u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // _params0........
+ 0xfd, 0x7f, 0x09, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x12, 0x00, 0x10, 0x00, // ...u_params1....
+ 0x01, 0x00, 0x00, 0x00, 0xfd, 0x7f, 0x0a, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, // .......s_texColo
+ 0x72, 0x30, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x06, 0x1a, 0x00, 0x34, 0x11, 0x00, 0x00, 0x03, // r0.........4....
+ 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0a, 0x00, 0x08, 0x00, 0xd2, 0x02, 0x00, 0x00, 0x00, // .#..............
+ 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, // ................
+ 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, // ...GLSL.std.450.
+ 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, // ................
+ 0x00, 0x09, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, // ...........main.
+ 0x00, 0x00, 0x00, 0x69, 0x01, 0x00, 0x00, 0x6c, 0x01, 0x00, 0x00, 0x70, 0x01, 0x00, 0x00, 0x7d, // ...i...l...p...}
+ 0x01, 0x00, 0x00, 0x10, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, // ................
+ 0x00, 0x03, 0x00, 0x05, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, // ................
+ 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x4b, // ...main........K
+ 0x00, 0x00, 0x00, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x61, 0x6d, // ...s_texColorSam
+ 0x70, 0x6c, 0x65, 0x72, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x73, // pler.......N...s
+ 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, // _texColorTexture
+ 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x80, 0x00, 0x00, 0x00, 0x55, 0x6e, 0x69, 0x66, 0x6f, // ...........Unifo
+ 0x72, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x80, // rmBlock.........
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, // .......u_params0
+ 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x80, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x75, // ...............u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x82, // _params1........
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x69, 0x01, 0x00, 0x00, 0x67, // ...........i...g
+ 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x00, 0x00, 0x00, 0x00, 0x05, // l_FragCoord.....
+ 0x00, 0x05, 0x00, 0x6c, 0x01, 0x00, 0x00, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x00, // ...l...v_color0.
+ 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x70, 0x01, 0x00, 0x00, 0x76, 0x5f, 0x74, 0x65, 0x78, // .......p...v_tex
+ 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x00, 0x05, 0x00, 0x06, 0x00, 0x7d, 0x01, 0x00, 0x00, 0x62, // coord0.....}...b
+ 0x67, 0x66, 0x78, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x44, 0x61, 0x74, 0x61, 0x30, 0x00, 0x00, 0x47, // gfx_FragData0..G
+ 0x00, 0x04, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, // ...K...".......G
+ 0x00, 0x04, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x47, // ...K...!.......G
+ 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, // ...N...".......G
+ 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x48, // ...N...!.......H
+ 0x00, 0x05, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, // ...........#....
+ 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x80, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x23, // ...H...........#
+ 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x80, 0x00, 0x00, 0x00, 0x02, // .......G........
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x82, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, // ...G......."....
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x82, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, // ...G.......!....
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x69, 0x01, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0f, // ...G...i........
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x6c, 0x01, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, // ...G...l........
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x70, 0x01, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x01, // ...G...p........
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x7d, 0x01, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, // ...G...}........
+ 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, // ...........!....
+ 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x02, 0x00, 0x06, 0x00, 0x00, 0x00, 0x16, // ................
+ 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x08, // ....... ........
+ 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, // ................
+ 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x17, // ................
+ 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x20, // ...............
+ 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3b, // ...J...........;
+ 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, // ...J...K.......
+ 0x00, 0x04, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x3b, // ...M...........;
+ 0x00, 0x04, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, // ...M...N........
+ 0x00, 0x04, 0x00, 0x51, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, // ...Q... .......+
+ 0x00, 0x04, 0x00, 0x51, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, // ...Q...R.......+
+ 0x00, 0x04, 0x00, 0x51, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, // ...Q...V........
+ 0x00, 0x03, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, // ...Z.......+....
+ 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0xcd, 0xcc, 0x0c, 0x40, 0x1e, 0x00, 0x04, 0x00, 0x80, // ...v......@.....
+ 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x81, // ........... ....
+ 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x81, // ...........;....
+ 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x83, // ................
+ 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x83, // ... .......+....
+ 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x85, // ........... ....
+ 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, // ...........+....
+ 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x2b, 0x00, 0x04, 0x00, 0x83, // ..........@+....
+ 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, // ...........+....
+ 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x1c, 0x2e, 0x4d, 0x3b, 0x14, 0x00, 0x02, 0x00, 0x99, // .........M;.....
+ 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x52, // ...+...........R
+ 0xb8, 0x4e, 0x41, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0x3d, // .NA+...........=
+ 0x0a, 0x87, 0x3f, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x55, // ..?+...........U
+ 0x55, 0xd5, 0x3e, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0xae, // U.>+............
+ 0x47, 0x61, 0x3d, 0x2b, 0x00, 0x04, 0x00, 0x83, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, 0x00, // Ga=+............
+ 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x83, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, 0x01, // ...+............
+ 0x00, 0x00, 0x00, 0x18, 0x00, 0x04, 0x00, 0xbf, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x03, // ................
+ 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0x98, // ...+............
+ 0x3a, 0xd3, 0x3e, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x37, // :.>+...........7
+ 0x14, 0xb7, 0x3e, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0x9c, // ..>+............
+ 0xc4, 0x38, 0x3e, 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, 0xc2, // .8>,............
+ 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, // ...........+....
+ 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, 0xed, 0xc6, 0x59, 0x3e, 0x2b, 0x00, 0x04, 0x00, 0x07, // .........Y>+....
+ 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, 0x37, 0x14, 0x37, 0x3f, 0x2b, 0x00, 0x04, 0x00, 0x07, // .......7.7?+....
+ 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0x7d, 0xd0, 0x93, 0x3d, 0x2c, 0x00, 0x06, 0x00, 0x0b, // .......}..=,....
+ 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, 0xc8, // ................
+ 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, 0x21, // ...+...........!
+ 0x62, 0x9e, 0x3c, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, 0xef, // b.<+............
+ 0x1a, 0xf4, 0x3d, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0x21, // ..=+...........!
+ 0x47, 0x73, 0x3f, 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xcd, 0x00, 0x00, 0x00, 0xca, // Gs?,............
+ 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0xbf, // ...........,....
+ 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, 0xcd, // ................
+ 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0x3a, // ...+...........:
+ 0xbb, 0xdb, 0x3f, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, 0x7c, // ..?+...........|
+ 0x1a, 0xb6, 0xbe, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, 0x3a, // ...+...........:
+ 0xb9, 0x81, 0xbe, 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0xd5, // ...,............
+ 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, // ...........+....
+ 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, 0xd4, 0xab, 0x2a, 0xbf, 0x2b, 0x00, 0x04, 0x00, 0x07, // .........*.+....
+ 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, 0xdb, 0xe8, 0xce, 0x3f, 0x2b, 0x00, 0x04, 0x00, 0x07, // ..........?+....
+ 0x00, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, 0xf1, 0x2c, 0x81, 0x3c, 0x2c, 0x00, 0x06, 0x00, 0x0b, // ........,.<,....
+ 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, 0xdb, // ................
+ 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0x8d, // ...+............
+ 0x81, 0x90, 0x3c, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, 0x3a, // ..<+...........:
+ 0x30, 0x2f, 0xbd, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, 0xab, // 0/.+............
+ 0x2d, 0x71, 0x3f, 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0xdd, // -q?,............
+ 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0xbf, // ...........,....
+ 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, 0xe0, // ................
+ 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, 0x00, // ...+............
+ 0x20, 0x23, 0x3e, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x00, // #>+............
+ 0xb0, 0x9d, 0x42, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, 0x00, // ..B+............
+ 0x00, 0x56, 0x3f, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xee, 0x00, 0x00, 0x00, 0x00, // .V?+............
+ 0xd0, 0x96, 0x41, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, // ..A+............
+ 0x80, 0x95, 0x41, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, 0x17, // ..A+............
+ 0xb7, 0xd1, 0x38, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, // ..8+............
+ 0x00, 0x80, 0x3f, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x01, 0x00, 0x00, 0x00, // ..?+............
+ 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x13, 0x01, 0x00, 0x00, 0x00, // ...+............
+ 0x00, 0x00, 0x3f, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, 0x00, // ..?+....... ....
+ 0x00, 0xc0, 0x3f, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x28, 0x01, 0x00, 0x00, 0x00, // ..?+.......(....
+ 0x00, 0x20, 0x40, 0x20, 0x00, 0x04, 0x00, 0x68, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0e, // . @ ...h........
+ 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x68, 0x01, 0x00, 0x00, 0x69, 0x01, 0x00, 0x00, 0x01, // ...;...h...i....
+ 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x68, 0x01, 0x00, 0x00, 0x6c, 0x01, 0x00, 0x00, 0x01, // ...;...h...l....
+ 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x6f, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, // ... ...o........
+ 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x6f, 0x01, 0x00, 0x00, 0x70, 0x01, 0x00, 0x00, 0x01, // ...;...o...p....
+ 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x7c, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0e, // ... ...|........
+ 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x7c, 0x01, 0x00, 0x00, 0x7d, 0x01, 0x00, 0x00, 0x03, // ...;...|...}....
+ 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xc0, 0x02, 0x00, 0x00, 0x76, // ...,...........v
+ 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x0b, // ...v...v...,....
+ 0x00, 0x00, 0x00, 0xc1, 0x02, 0x00, 0x00, 0x0f, 0x01, 0x00, 0x00, 0x0f, 0x01, 0x00, 0x00, 0x0f, // ................
+ 0x01, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xc2, 0x02, 0x00, 0x00, 0xe8, // ...,............
+ 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x0b, // ...........,....
+ 0x00, 0x00, 0x00, 0xc3, 0x02, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, 0xec, // ................
+ 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xc4, 0x02, 0x00, 0x00, 0xff, // ...,............
+ 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x0b, // ...........,....
+ 0x00, 0x00, 0x00, 0xc5, 0x02, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0xea, // ................
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xd1, 0x02, 0x00, 0x00, 0x36, // ...............6
+ 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, // ................
+ 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, // ...........=....
+ 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x08, // ...L...K...=....
+ 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0e, // ...O...N...=....
+ 0x00, 0x00, 0x00, 0x6d, 0x01, 0x00, 0x00, 0x6c, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, // ...m...l...=....
+ 0x00, 0x00, 0x00, 0x71, 0x01, 0x00, 0x00, 0x70, 0x01, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x85, // ...q...p...A....
+ 0x00, 0x00, 0x00, 0xa7, 0x01, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0xb2, // ...........V....
+ 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xa8, 0x01, 0x00, 0x00, 0xa7, // ...=............
+ 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0xa9, 0x01, 0x00, 0x00, 0x71, // ...Q...........q
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0xaa, // .......Q........
+ 0x01, 0x00, 0x00, 0x71, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x50, 0x00, 0x06, 0x00, 0x0b, // ...q.......P....
+ 0x00, 0x00, 0x00, 0xab, 0x01, 0x00, 0x00, 0xa9, 0x01, 0x00, 0x00, 0xaa, 0x01, 0x00, 0x00, 0xa8, // ................
+ 0x01, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x85, 0x00, 0x00, 0x00, 0xad, 0x01, 0x00, 0x00, 0x82, // ...A............
+ 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, // ...V.......=....
+ 0x00, 0x00, 0x00, 0xae, 0x01, 0x00, 0x00, 0xad, 0x01, 0x00, 0x00, 0x56, 0x00, 0x05, 0x00, 0x5a, // ...........V...Z
+ 0x00, 0x00, 0x00, 0xcb, 0x01, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x58, // .......O...L...X
+ 0x00, 0x07, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xce, 0x01, 0x00, 0x00, 0xcb, 0x01, 0x00, 0x00, 0xab, // ................
+ 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xae, 0x01, 0x00, 0x00, 0x4f, 0x00, 0x08, 0x00, 0x0b, // ...........O....
+ 0x00, 0x00, 0x00, 0xb1, 0x01, 0x00, 0x00, 0xce, 0x01, 0x00, 0x00, 0xce, 0x01, 0x00, 0x00, 0x00, // ................
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x0b, // ................
+ 0x00, 0x00, 0x00, 0xe6, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xb1, // ................
+ 0x01, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xe8, 0x01, 0x00, 0x00, 0x01, // ................
+ 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0xe6, 0x01, 0x00, 0x00, 0xc0, 0x02, 0x00, 0x00, 0x41, // ...............A
+ 0x00, 0x06, 0x00, 0x85, 0x00, 0x00, 0x00, 0xd8, 0x01, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x56, // ...............V
+ 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xd9, // .......=........
+ 0x01, 0x00, 0x00, 0xd8, 0x01, 0x00, 0x00, 0x50, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xda, // .......P........
+ 0x01, 0x00, 0x00, 0xd9, 0x01, 0x00, 0x00, 0xd9, 0x01, 0x00, 0x00, 0xd9, 0x01, 0x00, 0x00, 0x0c, // ................
+ 0x00, 0x08, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2e, // ................
+ 0x00, 0x00, 0x00, 0xe8, 0x01, 0x00, 0x00, 0xb1, 0x01, 0x00, 0x00, 0xda, 0x01, 0x00, 0x00, 0x41, // ...............A
+ 0x00, 0x06, 0x00, 0x85, 0x00, 0x00, 0x00, 0xde, 0x01, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x56, // ...............V
+ 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xdf, // .......=........
+ 0x01, 0x00, 0x00, 0xde, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00, 0xe0, // ................
+ 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, 0xdf, // ................
+ 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xe1, 0x01, 0x00, 0x00, 0xf4, // ................
+ 0x01, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x4f, 0x00, 0x09, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xb4, // .......O........
+ 0x01, 0x00, 0x00, 0xce, 0x01, 0x00, 0x00, 0xe1, 0x01, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, // ................
+ 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x0e, // ................
+ 0x00, 0x00, 0x00, 0xb7, 0x01, 0x00, 0x00, 0xb4, 0x01, 0x00, 0x00, 0x6d, 0x01, 0x00, 0x00, 0x41, // ...........m...A
+ 0x00, 0x06, 0x00, 0x85, 0x00, 0x00, 0x00, 0xb9, 0x01, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x52, // ...............R
+ 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xba, // .......=........
+ 0x01, 0x00, 0x00, 0xb9, 0x01, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x85, 0x00, 0x00, 0x00, 0xbb, // .......A........
+ 0x01, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, 0x3d, // .......R.......=
+ 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xbc, 0x01, 0x00, 0x00, 0xbb, 0x01, 0x00, 0x00, 0xb8, // ................
+ 0x00, 0x05, 0x00, 0x99, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xba, 0x01, 0x00, 0x00, 0x13, // ................
+ 0x01, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x1d, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, // ................
+ 0x00, 0x04, 0x00, 0x00, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0xf8, // ................
+ 0x00, 0x02, 0x00, 0x08, 0x02, 0x00, 0x00, 0xb8, 0x00, 0x05, 0x00, 0x99, 0x00, 0x00, 0x00, 0x0a, // ................
+ 0x02, 0x00, 0x00, 0xba, 0x01, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x1c, // ....... ........
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x0a, 0x02, 0x00, 0x00, 0x0b, // ................
+ 0x02, 0x00, 0x00, 0x0e, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x0e, 0x02, 0x00, 0x00, 0xb8, // ................
+ 0x00, 0x05, 0x00, 0x99, 0x00, 0x00, 0x00, 0x10, 0x02, 0x00, 0x00, 0xba, 0x01, 0x00, 0x00, 0x28, // ...............(
+ 0x01, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x1b, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, // ................
+ 0x00, 0x04, 0x00, 0x10, 0x02, 0x00, 0x00, 0x11, 0x02, 0x00, 0x00, 0x1b, 0x02, 0x00, 0x00, 0xf8, // ................
+ 0x00, 0x02, 0x00, 0x11, 0x02, 0x00, 0x00, 0x4f, 0x00, 0x08, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x13, // .......O........
+ 0x02, 0x00, 0x00, 0xb7, 0x01, 0x00, 0x00, 0xb7, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, // ................
+ 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x90, 0x00, 0x05, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x78, // ...............x
+ 0x02, 0x00, 0x00, 0x13, 0x02, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, 0x90, 0x00, 0x05, 0x00, 0x0b, // ................
+ 0x00, 0x00, 0x00, 0x7e, 0x02, 0x00, 0x00, 0x78, 0x02, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0x8e, // ...~...x........
+ 0x00, 0x05, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x02, 0x00, 0x00, 0x7e, 0x02, 0x00, 0x00, 0xbc, // ...........~....
+ 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x8b, 0x02, 0x00, 0x00, 0x19, // ................
+ 0x02, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x8e, // ................
+ 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x8b, 0x02, 0x00, 0x00, 0xc2, // ................
+ 0x02, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x92, 0x02, 0x00, 0x00, 0x8e, // ................
+ 0x02, 0x00, 0x00, 0xee, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x94, // ................
+ 0x02, 0x00, 0x00, 0xc3, 0x02, 0x00, 0x00, 0x92, 0x02, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x0b, // ................
+ 0x00, 0x00, 0x00, 0x98, 0x02, 0x00, 0x00, 0x8e, 0x02, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x81, // ................
+ 0x00, 0x05, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x99, 0x02, 0x00, 0x00, 0xc4, 0x02, 0x00, 0x00, 0x98, // ................
+ 0x02, 0x00, 0x00, 0x88, 0x00, 0x05, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x9a, 0x02, 0x00, 0x00, 0x94, // ................
+ 0x02, 0x00, 0x00, 0x99, 0x02, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x9d, // ................
+ 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x9a, 0x02, 0x00, 0x00, 0xc5, // ................
+ 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x1b, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1b, // ................
+ 0x02, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xce, 0x02, 0x00, 0x00, 0xc1, // ................
+ 0x02, 0x00, 0x00, 0x0e, 0x02, 0x00, 0x00, 0x9d, 0x02, 0x00, 0x00, 0x11, 0x02, 0x00, 0x00, 0xf9, // ................
+ 0x00, 0x02, 0x00, 0x1c, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x0b, 0x02, 0x00, 0x00, 0x4f, // ...............O
+ 0x00, 0x08, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0d, 0x02, 0x00, 0x00, 0xb7, 0x01, 0x00, 0x00, 0xb7, // ................
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xf9, // ................
+ 0x00, 0x02, 0x00, 0x1c, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1c, 0x02, 0x00, 0x00, 0xf5, // ................
+ 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xcd, 0x02, 0x00, 0x00, 0xce, 0x02, 0x00, 0x00, 0x1b, // ................
+ 0x02, 0x00, 0x00, 0x0d, 0x02, 0x00, 0x00, 0x0b, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x1d, // ................
+ 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x01, 0x02, 0x00, 0x00, 0x4f, 0x00, 0x08, 0x00, 0x0b, // ...........O....
+ 0x00, 0x00, 0x00, 0x03, 0x02, 0x00, 0x00, 0xb7, 0x01, 0x00, 0x00, 0xb7, 0x01, 0x00, 0x00, 0x00, // ................
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x0b, // ................
+ 0x00, 0x00, 0x00, 0x06, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x03, // ...........+....
+ 0x02, 0x00, 0x00, 0xc1, 0x02, 0x00, 0x00, 0xc4, 0x02, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, // ...........Q....
+ 0x00, 0x00, 0x00, 0x31, 0x02, 0x00, 0x00, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf7, // ...1............
+ 0x00, 0x03, 0x00, 0x4d, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x03, 0x00, 0xac, // ...M............
+ 0x00, 0x00, 0x00, 0x41, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x41, 0x02, 0x00, 0x00, 0xbc, // ...A.......A....
+ 0x00, 0x05, 0x00, 0x99, 0x00, 0x00, 0x00, 0x43, 0x02, 0x00, 0x00, 0x31, 0x02, 0x00, 0x00, 0x98, // .......C...1....
+ 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x4c, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, // .......L........
+ 0x00, 0x04, 0x00, 0x43, 0x02, 0x00, 0x00, 0x44, 0x02, 0x00, 0x00, 0x47, 0x02, 0x00, 0x00, 0xf8, // ...C...D...G....
+ 0x00, 0x02, 0x00, 0x47, 0x02, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00, 0x49, // ...G...........I
+ 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x31, 0x02, 0x00, 0x00, 0xa4, // ...........1....
+ 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x4a, 0x02, 0x00, 0x00, 0xa2, // ...........J....
+ 0x00, 0x00, 0x00, 0x49, 0x02, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x4b, // ...I...........K
+ 0x02, 0x00, 0x00, 0x4a, 0x02, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x4d, // ...J...........M
+ 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x44, 0x02, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x07, // .......D........
+ 0x00, 0x00, 0x00, 0x46, 0x02, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x31, 0x02, 0x00, 0x00, 0xf9, // ...F.......1....
+ 0x00, 0x02, 0x00, 0x4d, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x4c, 0x02, 0x00, 0x00, 0xff, // ...M.......L....
+ 0x00, 0x01, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x4d, 0x02, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x07, // .......M........
+ 0x00, 0x00, 0x00, 0xc6, 0x02, 0x00, 0x00, 0x4b, 0x02, 0x00, 0x00, 0x47, 0x02, 0x00, 0x00, 0x46, // .......K...G...F
+ 0x02, 0x00, 0x00, 0x44, 0x02, 0x00, 0x00, 0x52, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xb7, // ...D...R........
+ 0x02, 0x00, 0x00, 0xc6, 0x02, 0x00, 0x00, 0xd1, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, // ...............Q
+ 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x35, 0x02, 0x00, 0x00, 0x06, 0x02, 0x00, 0x00, 0x01, // .......5........
+ 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x5f, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, // ......._........
+ 0x00, 0x03, 0x00, 0xac, 0x00, 0x00, 0x00, 0x53, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x53, // .......S.......S
+ 0x02, 0x00, 0x00, 0xbc, 0x00, 0x05, 0x00, 0x99, 0x00, 0x00, 0x00, 0x55, 0x02, 0x00, 0x00, 0x35, // ...........U...5
+ 0x02, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x5e, 0x02, 0x00, 0x00, 0x00, // ...........^....
+ 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x55, 0x02, 0x00, 0x00, 0x56, 0x02, 0x00, 0x00, 0x59, // .......U...V...Y
+ 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x59, 0x02, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x07, // .......Y........
+ 0x00, 0x00, 0x00, 0x5b, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x35, // ...[...........5
+ 0x02, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x5c, // ................
+ 0x02, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0x5b, 0x02, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, 0x07, // .......[........
+ 0x00, 0x00, 0x00, 0x5d, 0x02, 0x00, 0x00, 0x5c, 0x02, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0xf9, // ...]............
+ 0x00, 0x02, 0x00, 0x5f, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x56, 0x02, 0x00, 0x00, 0x85, // ..._.......V....
+ 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x58, 0x02, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x35, // .......X.......5
+ 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x5f, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x5e, // ......._.......^
+ 0x02, 0x00, 0x00, 0xff, 0x00, 0x01, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x5f, 0x02, 0x00, 0x00, 0xf5, // ..........._....
+ 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00, 0xc8, 0x02, 0x00, 0x00, 0x5d, 0x02, 0x00, 0x00, 0x59, // ...........]...Y
+ 0x02, 0x00, 0x00, 0x58, 0x02, 0x00, 0x00, 0x56, 0x02, 0x00, 0x00, 0x52, 0x00, 0x06, 0x00, 0x0b, // ...X...V...R....
+ 0x00, 0x00, 0x00, 0xba, 0x02, 0x00, 0x00, 0xc8, 0x02, 0x00, 0x00, 0xb7, 0x02, 0x00, 0x00, 0x01, // ................
+ 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x39, 0x02, 0x00, 0x00, 0x06, // ...Q.......9....
+ 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x71, 0x02, 0x00, 0x00, 0x00, // ...........q....
+ 0x00, 0x00, 0x00, 0xfb, 0x00, 0x03, 0x00, 0xac, 0x00, 0x00, 0x00, 0x65, 0x02, 0x00, 0x00, 0xf8, // ...........e....
+ 0x00, 0x02, 0x00, 0x65, 0x02, 0x00, 0x00, 0xbc, 0x00, 0x05, 0x00, 0x99, 0x00, 0x00, 0x00, 0x67, // ...e...........g
+ 0x02, 0x00, 0x00, 0x39, 0x02, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x70, // ...9...........p
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x67, 0x02, 0x00, 0x00, 0x68, // ...........g...h
+ 0x02, 0x00, 0x00, 0x6b, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x6b, 0x02, 0x00, 0x00, 0x0c, // ...k.......k....
+ 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00, 0x6d, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1a, // .......m........
+ 0x00, 0x00, 0x00, 0x39, 0x02, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x07, // ...9............
+ 0x00, 0x00, 0x00, 0x6e, 0x02, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0x6d, 0x02, 0x00, 0x00, 0x83, // ...n.......m....
+ 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x6f, 0x02, 0x00, 0x00, 0x6e, 0x02, 0x00, 0x00, 0xa7, // .......o...n....
+ 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x71, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x68, // .......q.......h
+ 0x02, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x6a, 0x02, 0x00, 0x00, 0x9d, // ...........j....
+ 0x00, 0x00, 0x00, 0x39, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x71, 0x02, 0x00, 0x00, 0xf8, // ...9.......q....
+ 0x00, 0x02, 0x00, 0x70, 0x02, 0x00, 0x00, 0xff, 0x00, 0x01, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x71, // ...p...........q
+ 0x02, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00, 0xca, 0x02, 0x00, 0x00, 0x6f, // ...............o
+ 0x02, 0x00, 0x00, 0x6b, 0x02, 0x00, 0x00, 0x6a, 0x02, 0x00, 0x00, 0x68, 0x02, 0x00, 0x00, 0x52, // ...k...j...h...R
+ 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xbd, 0x02, 0x00, 0x00, 0xca, 0x02, 0x00, 0x00, 0xba, // ................
+ 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x1d, 0x02, 0x00, 0x00, 0xf8, // ................
+ 0x00, 0x02, 0x00, 0x1d, 0x02, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xcc, // ................
+ 0x02, 0x00, 0x00, 0xcd, 0x02, 0x00, 0x00, 0x1c, 0x02, 0x00, 0x00, 0xbd, 0x02, 0x00, 0x00, 0x71, // ...............q
+ 0x02, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x20, 0x02, 0x00, 0x00, 0xb7, // ...Q....... ....
+ 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x21, // .......Q.......!
+ 0x02, 0x00, 0x00, 0xcc, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, // ...........Q....
+ 0x00, 0x00, 0x00, 0x22, 0x02, 0x00, 0x00, 0xcc, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x51, // ..."...........Q
+ 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x23, 0x02, 0x00, 0x00, 0xcc, 0x02, 0x00, 0x00, 0x02, // .......#........
+ 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x24, 0x02, 0x00, 0x00, 0x21, // ...P.......$...!
+ 0x02, 0x00, 0x00, 0x22, 0x02, 0x00, 0x00, 0x23, 0x02, 0x00, 0x00, 0x20, 0x02, 0x00, 0x00, 0x3e, // ..."...#... ...>
+ 0x00, 0x03, 0x00, 0x7d, 0x01, 0x00, 0x00, 0x24, 0x02, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, // ...}...$.......8
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, // ..... .
};
-static const uint8_t fs_texture_3d_dx11[814] =
+static const uint8_t fs_texture_3d_dx9[1448] =
{
- 0x46, 0x53, 0x48, 0x06, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x08, 0x75, // FSH............u
- 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0a, 0x73, 0x5f, // _params.......s_
- 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x01, 0x00, 0x00, 0x01, 0x00, 0xf8, 0x02, // texColor0.......
- 0x00, 0x00, 0x44, 0x58, 0x42, 0x43, 0x86, 0x82, 0x66, 0xf4, 0x03, 0xd8, 0x4a, 0x8f, 0x13, 0x90, // ..DXBC..f...J...
- 0xfc, 0x02, 0x5a, 0xc4, 0x38, 0x2a, 0x01, 0x00, 0x00, 0x00, 0xf8, 0x02, 0x00, 0x00, 0x03, 0x00, // ..Z.8*..........
- 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, 0x49, 0x53, // ..,...........IS
- 0x47, 0x4e, 0x6c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x50, 0x00, // GNl...........P.
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
- 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
- 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x62, 0x00, // ..............b.
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, // ................
- 0x00, 0x00, 0x07, 0x03, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, // ......SV_POSITIO
- 0x4e, 0x00, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, // N.COLOR.TEXCOORD
- 0x00, 0xab, 0x4f, 0x53, 0x47, 0x4e, 0x2c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, // ..OSGN,.........
- 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, // .. .............
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x54, 0x41, 0x52, // ..........SV_TAR
- 0x47, 0x45, 0x54, 0x00, 0xab, 0xab, 0x53, 0x48, 0x44, 0x52, 0x1c, 0x02, 0x00, 0x00, 0x40, 0x00, // GET...SHDR....@.
- 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x04, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, // ......Y...F. ...
- 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x03, 0x00, 0x60, 0x10, 0x00, 0x00, 0x00, // ......Z....`....
- 0x00, 0x00, 0x58, 0x28, 0x00, 0x04, 0x00, 0x70, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, // ..X(...p......UU
- 0x00, 0x00, 0x62, 0x10, 0x00, 0x03, 0xf2, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x62, 0x10, // ..b...........b.
- 0x00, 0x03, 0x32, 0x10, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x03, 0xf2, 0x20, // ..2.......e....
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x36, 0x00, // ......h.......6.
- 0x00, 0x05, 0x32, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x10, 0x10, 0x00, 0x02, 0x00, // ..2.......F.....
- 0x00, 0x00, 0x36, 0x00, 0x00, 0x06, 0x42, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x80, // ..6...B.........
- 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x0c, 0xf2, 0x00, // .........H.....
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x7e, // ......F.......F~
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x80, // .......`........
- 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x07, 0xf2, 0x00, // .........8.....
- 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x1e, // ......F.......F.
- 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x06, 0x72, 0x00, 0x10, 0x00, 0x01, 0x00, // ....../...r.....
- 0x00, 0x00, 0x46, 0x02, 0x10, 0x80, 0x81, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x36, 0x00, // ..F...........6.
- 0x00, 0x05, 0x82, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x10, 0x00, 0x01, 0x00, // ... ......:.....
- 0x00, 0x00, 0x38, 0x00, 0x00, 0x0a, 0x72, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x02, // ..8...r.......F.
- 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0xcd, 0xcc, 0x0c, 0x40, 0xcd, 0xcc, // .......@.....@..
- 0x0c, 0x40, 0xcd, 0xcc, 0x0c, 0x40, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x05, 0x72, 0x00, // .@...@........r.
- 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, // ......F.......2.
- 0x00, 0x0a, 0x72, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, // ..r.......F.....
- 0x00, 0x00, 0x46, 0x12, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x80, 0x41, 0x00, // ..F.......F...A.
- 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, 0x72, 0x00, 0x10, 0x00, 0x00, 0x00, // ......2...r.....
- 0x00, 0x00, 0xa6, 0x8a, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, // .... .........F.
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x19, 0x00, // ......F.........
- 0x00, 0x06, 0x82, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x80, 0x20, 0x00, 0x00, 0x00, // ..........:. ...
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x07, 0x72, 0x00, 0x10, 0x00, 0x00, 0x00, // ......8...r.....
- 0x00, 0x00, 0xf6, 0x0f, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, // ..........F.....
- 0x00, 0x00, 0x2f, 0x00, 0x00, 0x06, 0x72, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, // ../...r.......F.
- 0x10, 0x80, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x0a, 0x72, 0x00, // ..........8...r.
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, // ......F........@
- 0x00, 0x00, 0x2f, 0xba, 0xe8, 0x3e, 0x2f, 0xba, 0xe8, 0x3e, 0x2f, 0xba, 0xe8, 0x3e, 0x00, 0x00, // ../..>/..>/..>..
- 0x00, 0x00, 0x19, 0x00, 0x00, 0x05, 0x72, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, // ......r ......F.
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x01, 0x00, 0x00, 0x10, 0x00, // ......>.......
+ 0x46, 0x53, 0x48, 0x0b, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x0a, 0x73, // FSH............s
+ 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, // _texColor0......
+ 0x00, 0x00, 0x00, 0x09, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x12, 0x01, 0x00, // ....u_params0...
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, // ........u_params
+ 0x31, 0x12, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x05, 0x00, 0x00, 0x00, // 1..........X....
+ 0x03, 0xff, 0xff, 0xfe, 0xff, 0x34, 0x00, 0x43, 0x54, 0x41, 0x42, 0x1c, 0x00, 0x00, 0x00, 0xa1, // .....4.CTAB.....
+ 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, // ................
+ 0x91, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, // .......X........
+ 0x00, 0x02, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x02, // ...d.......t....
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, // ................
+ 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, // ................
+ 0x00, 0x00, 0x00, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x00, 0xab, 0x04, // ...s_texColor...
+ 0x00, 0x0d, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, // ...............u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x00, 0xab, 0xab, 0x01, 0x00, 0x03, 0x00, 0x01, // _params0........
+ 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x70, 0x61, 0x72, // ...........u_par
+ 0x61, 0x6d, 0x73, 0x31, 0x00, 0x70, 0x73, 0x5f, 0x33, 0x5f, 0x30, 0x00, 0x4d, 0x69, 0x63, 0x72, // ams1.ps_3_0.Micr
+ 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4c, 0x53, 0x4c, 0x20, 0x53, // osoft (R) HLSL S
+ 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x20, 0x31, // hader Compiler 1
+ 0x30, 0x2e, 0x31, 0x00, 0xab, 0xab, 0xab, 0x51, 0x00, 0x00, 0x05, 0x02, 0x00, 0x0f, 0xa0, 0x00, // 0.1....Q........
+ 0xd0, 0x96, 0x41, 0x00, 0x00, 0x56, 0x3f, 0x00, 0x80, 0x95, 0x41, 0x00, 0x00, 0x80, 0x3f, 0x51, // ..A..V?...A...?Q
+ 0x00, 0x00, 0x05, 0x03, 0x00, 0x0f, 0xa0, 0xcd, 0xcc, 0x0c, 0x40, 0x00, 0x00, 0x00, 0x3f, 0x1c, // ..........@...?.
+ 0x2e, 0x4d, 0x3b, 0x52, 0xb8, 0x4e, 0x41, 0x51, 0x00, 0x00, 0x05, 0x04, 0x00, 0x0f, 0xa0, 0x55, // .M;R.NAQ.......U
+ 0x55, 0xd5, 0x3e, 0x3d, 0x0a, 0x87, 0x3f, 0xae, 0x47, 0x61, 0xbd, 0x17, 0xb7, 0xd1, 0x38, 0x51, // U.>=..?.Ga....8Q
+ 0x00, 0x00, 0x05, 0x05, 0x00, 0x0f, 0xa0, 0x00, 0x00, 0xc0, 0xbf, 0x00, 0x00, 0x20, 0xc0, 0x00, // ............. ..
+ 0x20, 0x23, 0x3e, 0x00, 0xb0, 0x9d, 0x42, 0x51, 0x00, 0x00, 0x05, 0x06, 0x00, 0x0f, 0xa0, 0x98, // #>...BQ........
+ 0x3a, 0xd3, 0x3e, 0x37, 0x14, 0xb7, 0x3e, 0x9c, 0xc4, 0x38, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x51, // :.>7..>..8>....Q
+ 0x00, 0x00, 0x05, 0x07, 0x00, 0x0f, 0xa0, 0xed, 0xc6, 0x59, 0x3e, 0x37, 0x14, 0x37, 0x3f, 0x7d, // .........Y>7.7?}
+ 0xd0, 0x93, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x05, 0x08, 0x00, 0x0f, 0xa0, 0x21, // ..=....Q.......!
+ 0x62, 0x9e, 0x3c, 0xef, 0x1a, 0xf4, 0x3d, 0x21, 0x47, 0x73, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x51, // b.<...=!Gs?....Q
+ 0x00, 0x00, 0x05, 0x09, 0x00, 0x0f, 0xa0, 0x3a, 0xbb, 0xdb, 0x3f, 0x7c, 0x1a, 0xb6, 0xbe, 0x3a, // .......:..?|...:
+ 0xb9, 0x81, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x05, 0x0a, 0x00, 0x0f, 0xa0, 0xd4, // .......Q........
+ 0xab, 0x2a, 0xbf, 0xdb, 0xe8, 0xce, 0x3f, 0xf1, 0x2c, 0x81, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x51, // .*....?.,.<....Q
+ 0x00, 0x00, 0x05, 0x0b, 0x00, 0x0f, 0xa0, 0x8d, 0x81, 0x90, 0x3c, 0x3a, 0x30, 0x2f, 0xbd, 0xab, // ..........<:0/..
+ 0x2d, 0x71, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x02, 0x0a, 0x00, 0x00, 0x80, 0x00, // -q?.............
+ 0x00, 0x0f, 0x90, 0x1f, 0x00, 0x00, 0x02, 0x05, 0x00, 0x00, 0x80, 0x01, 0x00, 0x03, 0x90, 0x1f, // ................
+ 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x08, 0x0f, 0xa0, 0x01, 0x00, 0x00, 0x02, 0x00, // ................
+ 0x00, 0x03, 0x80, 0x01, 0x00, 0xe4, 0x90, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x0c, 0x80, 0x00, // ................
+ 0x00, 0x14, 0xa0, 0x5f, 0x00, 0x00, 0x03, 0x00, 0x00, 0x0f, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x00, // ..._............
+ 0x08, 0xe4, 0xa0, 0x0f, 0x00, 0x00, 0x02, 0x01, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x8b, 0x0f, // ................
+ 0x00, 0x00, 0x02, 0x01, 0x00, 0x02, 0x80, 0x00, 0x00, 0x55, 0x8b, 0x0f, 0x00, 0x00, 0x02, 0x01, // .........U......
+ 0x00, 0x04, 0x80, 0x00, 0x00, 0xaa, 0x8b, 0x05, 0x00, 0x00, 0x03, 0x01, 0x00, 0x07, 0x80, 0x01, // ................
+ 0x00, 0xe4, 0x80, 0x03, 0x00, 0x00, 0xa0, 0x0e, 0x00, 0x00, 0x02, 0x02, 0x00, 0x01, 0x80, 0x01, // ................
+ 0x00, 0x00, 0x80, 0x0e, 0x00, 0x00, 0x02, 0x02, 0x00, 0x02, 0x80, 0x01, 0x00, 0x55, 0x80, 0x0e, // .............U..
+ 0x00, 0x00, 0x02, 0x02, 0x00, 0x04, 0x80, 0x01, 0x00, 0xaa, 0x80, 0x12, 0x00, 0x00, 0x04, 0x01, // ................
+ 0x00, 0x07, 0x80, 0x00, 0x00, 0xaa, 0xa0, 0x00, 0x00, 0xe4, 0x80, 0x02, 0x00, 0xe4, 0x80, 0x0e, // ................
+ 0x00, 0x00, 0x02, 0x01, 0x00, 0x08, 0x80, 0x00, 0x00, 0xff, 0xa0, 0x05, 0x00, 0x00, 0x03, 0x00, // ................
+ 0x00, 0x07, 0x80, 0x01, 0x00, 0xff, 0x80, 0x01, 0x00, 0xe4, 0x80, 0x05, 0x00, 0x00, 0x03, 0x00, // ................
+ 0x00, 0x0f, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x00, 0x00, 0xe4, 0x90, 0x01, 0x00, 0x00, 0x02, 0x01, // ................
+ 0x00, 0x02, 0x80, 0x03, 0x00, 0x55, 0xa0, 0x29, 0x00, 0x04, 0x02, 0x01, 0x00, 0x00, 0xa0, 0x01, // .....U.)........
+ 0x00, 0x55, 0x80, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x17, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x20, // .U.............
+ 0x00, 0x00, 0x03, 0x01, 0x00, 0x01, 0x80, 0x00, 0x00, 0xaa, 0x80, 0x04, 0x00, 0x00, 0xa0, 0x04, // ................
+ 0x00, 0x00, 0x04, 0x01, 0x00, 0x01, 0x80, 0x01, 0x00, 0x00, 0x80, 0x04, 0x00, 0x55, 0xa0, 0x04, // .............U..
+ 0x00, 0xaa, 0xa0, 0x20, 0x00, 0x00, 0x03, 0x01, 0x00, 0x02, 0x80, 0x00, 0x00, 0x00, 0x80, 0x04, // ... ............
+ 0x00, 0x00, 0xa0, 0x04, 0x00, 0x00, 0x04, 0x01, 0x00, 0x02, 0x80, 0x01, 0x00, 0x55, 0x80, 0x04, // .............U..
+ 0x00, 0x55, 0xa0, 0x04, 0x00, 0xaa, 0xa0, 0x20, 0x00, 0x00, 0x03, 0x01, 0x00, 0x04, 0x80, 0x00, // .U..... ........
+ 0x00, 0x55, 0x80, 0x04, 0x00, 0x00, 0xa0, 0x04, 0x00, 0x00, 0x04, 0x01, 0x00, 0x04, 0x80, 0x01, // .U..............
+ 0x00, 0xaa, 0x80, 0x04, 0x00, 0x55, 0xa0, 0x04, 0x00, 0xaa, 0xa0, 0x02, 0x00, 0x00, 0x03, 0x02, // .....U..........
+ 0x00, 0x07, 0x80, 0x00, 0x00, 0xe4, 0x81, 0x03, 0x00, 0xaa, 0xa0, 0x05, 0x00, 0x00, 0x03, 0x03, // ................
+ 0x00, 0x07, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x03, 0x00, 0xff, 0xa0, 0x58, 0x00, 0x00, 0x04, 0x00, // ...........X....
+ 0x00, 0x07, 0x80, 0x02, 0x00, 0xe4, 0x80, 0x03, 0x00, 0xe4, 0x80, 0x01, 0x00, 0xc9, 0x80, 0x2a, // ...............*
+ 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x03, 0x01, 0x00, 0x01, 0x80, 0x06, 0x00, 0xe4, 0xa0, 0x00, // ................
+ 0x00, 0xe4, 0x80, 0x08, 0x00, 0x00, 0x03, 0x01, 0x00, 0x02, 0x80, 0x07, 0x00, 0xe4, 0xa0, 0x00, // ................
+ 0x00, 0xe4, 0x80, 0x08, 0x00, 0x00, 0x03, 0x01, 0x00, 0x04, 0x80, 0x08, 0x00, 0xe4, 0xa0, 0x00, // ................
+ 0x00, 0xe4, 0x80, 0x08, 0x00, 0x00, 0x03, 0x02, 0x00, 0x04, 0x80, 0x0b, 0x00, 0xe4, 0xa0, 0x01, // ................
+ 0x00, 0xe4, 0x80, 0x08, 0x00, 0x00, 0x03, 0x02, 0x00, 0x01, 0x80, 0x09, 0x00, 0xe4, 0xa0, 0x01, // ................
+ 0x00, 0xe4, 0x80, 0x08, 0x00, 0x00, 0x03, 0x02, 0x00, 0x02, 0x80, 0x0a, 0x00, 0xe4, 0xa0, 0x01, // ................
+ 0x00, 0xe4, 0x80, 0x05, 0x00, 0x00, 0x03, 0x01, 0x00, 0x07, 0x80, 0x02, 0x00, 0xe4, 0x80, 0x01, // ................
+ 0x00, 0x55, 0xa0, 0x05, 0x00, 0x00, 0x03, 0x01, 0x00, 0x07, 0x80, 0x01, 0x00, 0xe4, 0x80, 0x04, // .U..............
+ 0x00, 0xff, 0xa0, 0x0f, 0x00, 0x00, 0x02, 0x02, 0x00, 0x01, 0x80, 0x01, 0x00, 0x00, 0x80, 0x0f, // ................
+ 0x00, 0x00, 0x02, 0x02, 0x00, 0x02, 0x80, 0x01, 0x00, 0x55, 0x80, 0x0f, 0x00, 0x00, 0x02, 0x02, // .........U......
+ 0x00, 0x04, 0x80, 0x01, 0x00, 0xaa, 0x80, 0x05, 0x00, 0x00, 0x03, 0x01, 0x00, 0x07, 0x80, 0x02, // ................
+ 0x00, 0xe4, 0x80, 0x05, 0x00, 0xaa, 0xa0, 0x0e, 0x00, 0x00, 0x02, 0x02, 0x00, 0x01, 0x80, 0x01, // ................
+ 0x00, 0x00, 0x80, 0x0e, 0x00, 0x00, 0x02, 0x02, 0x00, 0x02, 0x80, 0x01, 0x00, 0x55, 0x80, 0x0e, // .............U..
+ 0x00, 0x00, 0x02, 0x02, 0x00, 0x04, 0x80, 0x01, 0x00, 0xaa, 0x80, 0x04, 0x00, 0x00, 0x04, 0x01, // ................
+ 0x00, 0x07, 0x80, 0x02, 0x00, 0xe4, 0x80, 0x02, 0x00, 0xaa, 0xa0, 0x02, 0x00, 0xff, 0xa0, 0x06, // ................
+ 0x00, 0x00, 0x02, 0x03, 0x00, 0x01, 0x80, 0x01, 0x00, 0x00, 0x80, 0x06, 0x00, 0x00, 0x02, 0x03, // ................
+ 0x00, 0x02, 0x80, 0x01, 0x00, 0x55, 0x80, 0x06, 0x00, 0x00, 0x02, 0x03, 0x00, 0x04, 0x80, 0x01, // .....U..........
+ 0x00, 0xaa, 0x80, 0x01, 0x00, 0x00, 0x02, 0x01, 0x00, 0x03, 0x80, 0x05, 0x00, 0xe4, 0xa0, 0x02, // ................
+ 0x00, 0x00, 0x03, 0x01, 0x00, 0x03, 0x80, 0x01, 0x00, 0xe4, 0x80, 0x01, 0x00, 0x00, 0xa0, 0x04, // ................
+ 0x00, 0x00, 0x04, 0x02, 0x00, 0x07, 0x80, 0x02, 0x00, 0xe4, 0x80, 0x02, 0x00, 0x00, 0xa0, 0x02, // ................
+ 0x00, 0x55, 0xa0, 0x05, 0x00, 0x00, 0x03, 0x02, 0x00, 0x07, 0x80, 0x03, 0x00, 0xe4, 0x80, 0x02, // .U..............
+ 0x00, 0xe4, 0x80, 0x0f, 0x00, 0x00, 0x02, 0x03, 0x00, 0x01, 0x80, 0x02, 0x00, 0x00, 0x80, 0x0f, // ................
+ 0x00, 0x00, 0x02, 0x03, 0x00, 0x02, 0x80, 0x02, 0x00, 0x55, 0x80, 0x0f, 0x00, 0x00, 0x02, 0x03, // .........U......
+ 0x00, 0x04, 0x80, 0x02, 0x00, 0xaa, 0x80, 0x05, 0x00, 0x00, 0x03, 0x02, 0x00, 0x07, 0x80, 0x03, // ................
+ 0x00, 0xe4, 0x80, 0x05, 0x00, 0xff, 0xa0, 0x0e, 0x00, 0x00, 0x02, 0x03, 0x00, 0x01, 0x80, 0x02, // ................
+ 0x00, 0x00, 0x80, 0x0e, 0x00, 0x00, 0x02, 0x03, 0x00, 0x02, 0x80, 0x02, 0x00, 0x55, 0x80, 0x0e, // .............U..
+ 0x00, 0x00, 0x02, 0x03, 0x00, 0x04, 0x80, 0x02, 0x00, 0xaa, 0x80, 0x58, 0x00, 0x00, 0x04, 0x01, // ...........X....
+ 0x00, 0x0e, 0x80, 0x01, 0x00, 0x55, 0x80, 0x06, 0x00, 0xff, 0xa0, 0x03, 0x00, 0x90, 0x80, 0x58, // .....U.........X
+ 0x00, 0x00, 0x04, 0x00, 0x00, 0x07, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0xf9, 0x80, 0x00, // ................
+ 0x00, 0xe4, 0x80, 0x2b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x02, 0x00, 0x08, 0x0f, 0x80, 0x00, // ...+............
+ 0x00, 0xe4, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, // ........
};
-static const uint8_t fs_texture_3d_mtl[1021] =
+static const uint8_t fs_texture_3d_dx11[1828] =
{
- 0x46, 0x53, 0x48, 0x06, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xea, 0x03, // FSH.............
- 0x00, 0x00, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, // ..using namespac
- 0x65, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, // e metal;.struct
- 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x70, // xlatMtlShaderInp
- 0x75, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x76, 0x5f, // ut {. float4 v_
- 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, // color0;. float3
- 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, 0x0a, 0x7d, 0x3b, // v_texcoord0;.};
- 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, // .struct xlatMtlS
- 0x68, 0x61, 0x64, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, // haderOutput {.
- 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, // float4 gl_FragCo
- 0x6c, 0x6f, 0x72, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x78, // lor;.};.struct x
- 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x55, 0x6e, 0x69, 0x66, // latMtlShaderUnif
- 0x6f, 0x72, 0x6d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x75, // orm {. float4 u
- 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x66, 0x72, 0x61, 0x67, // _params;.};.frag
- 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, // ment xlatMtlShad
- 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, // erOutput xlatMtl
- 0x4d, 0x61, 0x69, 0x6e, 0x20, 0x28, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, // Main (xlatMtlSha
- 0x64, 0x65, 0x72, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x69, 0x20, // derInput _mtl_i
- 0x5b, 0x5b, 0x73, 0x74, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x5d, 0x5d, 0x2c, 0x20, 0x63, 0x6f, // [[stage_in]], co
- 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, // nstant xlatMtlSh
- 0x61, 0x64, 0x65, 0x72, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x26, 0x20, 0x5f, 0x6d, 0x74, // aderUniform& _mt
- 0x6c, 0x5f, 0x75, 0x20, 0x5b, 0x5b, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x28, 0x30, 0x29, 0x5d, // l_u [[buffer(0)]
- 0x5d, 0x0a, 0x20, 0x20, 0x2c, 0x20, 0x20, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x33, // ]. , texture3
- 0x64, 0x3c, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x20, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, // d<float> s_texCo
- 0x6c, 0x6f, 0x72, 0x20, 0x5b, 0x5b, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x28, 0x30, 0x29, // lor [[texture(0)
- 0x5d, 0x5d, 0x2c, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x20, 0x5f, 0x6d, 0x74, 0x6c, // ]], sampler _mtl
- 0x73, 0x6d, 0x70, 0x5f, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x5b, // smp_s_texColor [
- 0x5b, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x29, 0x0a, 0x7b, // [sampler(0)]]).{
- 0x0a, 0x20, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, // . xlatMtlShader
- 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x6f, 0x3b, 0x0a, 0x20, // Output _mtl_o;.
- 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, // float3 tmpvar_1
- 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, // = 0;. tmpvar_1
- 0x2e, 0x78, 0x79, 0x20, 0x3d, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x69, 0x2e, 0x76, 0x5f, 0x74, // .xy = _mtl_i.v_t
- 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x2e, 0x78, 0x79, 0x3b, 0x0a, 0x20, 0x20, 0x74, // excoord0.xy;. t
- 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x7a, 0x20, 0x3d, 0x20, 0x5f, 0x6d, 0x74, 0x6c, // mpvar_1.z = _mtl
- 0x5f, 0x75, 0x2e, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x79, 0x3b, 0x0a, 0x20, // _u.u_params.y;.
- 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x32, // float4 _color_2
- 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x32, // = 0;. _color_2
- 0x20, 0x3d, 0x20, 0x28, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x2e, 0x73, // = (s_texColor.s
- 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x28, 0x5f, 0x6d, 0x74, 0x6c, 0x73, 0x6d, 0x70, 0x5f, 0x73, 0x5f, // ample(_mtlsmp_s_
- 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x2c, 0x20, 0x28, 0x66, 0x6c, 0x6f, 0x61, 0x74, // texColor, (float
- 0x33, 0x29, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x29, 0x2c, 0x20, 0x6c, 0x65, // 3)(tmpvar_1), le
- 0x76, 0x65, 0x6c, 0x28, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x2e, 0x75, 0x5f, 0x70, 0x61, 0x72, // vel(_mtl_u.u_par
- 0x61, 0x6d, 0x73, 0x2e, 0x78, 0x29, 0x29, 0x20, 0x2a, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x69, // ams.x)) * _mtl_i
- 0x2e, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x6c, // .v_color0);. fl
- 0x6f, 0x61, 0x74, 0x34, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x33, 0x20, 0x3d, 0x20, // oat4 tmpvar_3 =
- 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x33, 0x2e, 0x78, 0x79, // 0;. tmpvar_3.xy
- 0x7a, 0x20, 0x3d, 0x20, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x61, 0x62, 0x73, 0x28, 0x28, 0x0a, 0x20, // z = pow (abs((.
- 0x20, 0x20, 0x20, 0x6d, 0x69, 0x78, 0x20, 0x28, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x61, 0x62, 0x73, // mix (pow (abs
- 0x28, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x32, 0x2e, 0x78, 0x79, 0x7a, 0x29, 0x2c, 0x20, // (_color_2.xyz),
- 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x32, 0x2e, 0x32, 0x2c, 0x20, 0x32, 0x2e, 0x32, 0x2c, // float3(2.2, 2.2,
- 0x20, 0x32, 0x2e, 0x32, 0x29, 0x29, 0x2c, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x32, // 2.2)), _color_2
- 0x2e, 0x78, 0x79, 0x7a, 0x2c, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x2e, 0x75, 0x5f, 0x70, // .xyz, _mtl_u.u_p
- 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x7a, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x2a, 0x20, 0x0a, 0x20, // arams.z). * .
- 0x20, 0x20, 0x20, 0x65, 0x78, 0x70, 0x32, 0x28, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x2e, 0x75, // exp2(_mtl_u.u
- 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x29, 0x29, 0x2c, // _params.w). )),
- 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x30, 0x2e, 0x34, 0x35, 0x34, 0x35, 0x34, 0x35, // float3(0.454545
- 0x34, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x35, 0x34, 0x35, 0x34, 0x35, 0x34, 0x2c, 0x20, 0x30, 0x2e, // 4, 0.4545454, 0.
- 0x34, 0x35, 0x34, 0x35, 0x34, 0x35, 0x34, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, // 4545454));. tmp
- 0x76, 0x61, 0x72, 0x5f, 0x33, 0x2e, 0x77, 0x20, 0x3d, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, // var_3.w = _color
- 0x5f, 0x32, 0x2e, 0x77, 0x3b, 0x0a, 0x20, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x6f, 0x2e, 0x67, // _2.w;. _mtl_o.g
- 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x74, 0x6d, // l_FragColor = tm
- 0x70, 0x76, 0x61, 0x72, 0x5f, 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, // pvar_3;. return
- 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x6f, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x00, // _mtl_o;.}...
+ 0x46, 0x53, 0x48, 0x0b, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x09, 0x75, // FSH............u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // _params0........
+ 0x00, 0x00, 0x09, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x12, 0x00, 0x10, 0x00, // ...u_params1....
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, // .......s_texColo
+ 0x72, 0x30, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x73, 0x5f, 0x74, 0x65, // r0..........s_te
+ 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // xColor0.........
+ 0xbc, 0x06, 0x00, 0x00, 0x44, 0x58, 0x42, 0x43, 0xe8, 0x75, 0x88, 0xa8, 0x62, 0x1b, 0x56, 0x9f, // ....DXBC.u..b.V.
+ 0xd3, 0x8b, 0xbd, 0x79, 0xc8, 0x40, 0x19, 0x3c, 0x01, 0x00, 0x00, 0x00, 0xbc, 0x06, 0x00, 0x00, // ...y.@.<........
+ 0x03, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, // ....,...........
+ 0x49, 0x53, 0x47, 0x4e, 0x6c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, // ISGNl...........
+ 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, // P...............
+ 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, // ................
+ 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, // b...............
+ 0x02, 0x00, 0x00, 0x00, 0x07, 0x03, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, // ........SV_POSIT
+ 0x49, 0x4f, 0x4e, 0x00, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, // ION.COLOR.TEXCOO
+ 0x52, 0x44, 0x00, 0xab, 0x4f, 0x53, 0x47, 0x4e, 0x2c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // RD..OSGN,.......
+ 0x08, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .... ...........
+ 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x54, // ............SV_T
+ 0x41, 0x52, 0x47, 0x45, 0x54, 0x00, 0xab, 0xab, 0x53, 0x48, 0x44, 0x52, 0xe0, 0x05, 0x00, 0x00, // ARGET...SHDR....
+ 0x40, 0x00, 0x00, 0x00, 0x78, 0x01, 0x00, 0x00, 0x59, 0x00, 0x00, 0x04, 0x46, 0x8e, 0x20, 0x00, // @...x...Y...F. .
+ 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x03, 0x00, 0x60, 0x10, 0x00, // ........Z....`..
+ 0x00, 0x00, 0x00, 0x00, 0x58, 0x28, 0x00, 0x04, 0x00, 0x70, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ....X(...p......
+ 0x55, 0x55, 0x00, 0x00, 0x62, 0x10, 0x00, 0x03, 0xf2, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, // UU..b...........
+ 0x62, 0x10, 0x00, 0x03, 0x32, 0x10, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x03, // b...2.......e...
+ 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, // . ......h.......
+ 0x36, 0x00, 0x00, 0x05, 0x32, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x10, 0x10, 0x00, // 6...2.......F...
+ 0x02, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x06, 0x42, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ....6...B.......
+ 0x1a, 0x80, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x0c, // .. .........H...
+ 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ........F.......
+ 0x46, 0x7e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // F~.......`......
+ 0x0a, 0x80, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x06, // .. ........./...
+ 0x72, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x80, 0x81, 0x00, 0x00, 0x00, // r.......F.......
+ 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x0a, 0x72, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, // ....8...r.......
+ 0x46, 0x02, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0xcd, 0xcc, 0x0c, 0x40, // F........@.....@
+ 0xcd, 0xcc, 0x0c, 0x40, 0xcd, 0xcc, 0x0c, 0x40, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x05, // ...@...@........
+ 0x72, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, // r.......F.......
+ 0x00, 0x00, 0x00, 0x08, 0x72, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, // ....r.......F...
+ 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x80, 0x41, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // ....F...A.......
+ 0x32, 0x00, 0x00, 0x0a, 0x72, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa6, 0x8a, 0x20, 0x00, // 2...r......... .
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, // ........F.......
+ 0x46, 0x02, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x06, 0x82, 0x00, 0x10, 0x00, // F...............
+ 0x01, 0x00, 0x00, 0x00, 0x3a, 0x80, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ....:. .........
+ 0x38, 0x00, 0x00, 0x07, 0x72, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0x0f, 0x10, 0x00, // 8...r...........
+ 0x01, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x07, // ....F.......8...
+ 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ........F.......
+ 0x46, 0x1e, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x08, 0x12, 0x00, 0x10, 0x00, // F.......1.......
+ 0x01, 0x00, 0x00, 0x00, 0x0a, 0x80, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // ...... .........
+ 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x1f, 0x00, 0x04, 0x03, 0x0a, 0x00, 0x10, 0x00, // .@.....?........
+ 0x01, 0x00, 0x00, 0x00, 0x36, 0x20, 0x00, 0x05, 0x72, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ....6 ..r.......
+ 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x0a, 0x72, 0x00, 0x10, 0x00, // F...........r...
+ 0x01, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x1c, 0x2e, 0x4d, 0x3b, 0x1c, 0x2e, 0x4d, 0x3b, // .....@....M;..M;
+ 0x1c, 0x2e, 0x4d, 0x3b, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ..M;....F.......
+ 0x38, 0x00, 0x00, 0x0a, 0x72, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, // 8...r.......F...
+ 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x52, 0xb8, 0x4e, 0x41, 0x52, 0xb8, 0x4e, 0x41, // .....@..R.NAR.NA
+ 0x52, 0xb8, 0x4e, 0x41, 0x00, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x05, 0x72, 0x00, 0x10, 0x00, // R.NA..../...r...
+ 0x03, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x0a, // ....F.......8...
+ 0x72, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, // r.......F.......
+ 0x02, 0x40, 0x00, 0x00, 0x55, 0x55, 0xd5, 0x3e, 0x55, 0x55, 0xd5, 0x3e, 0x55, 0x55, 0xd5, 0x3e, // .@..UU.>UU.>UU.>
+ 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x05, 0x72, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, // ........r.......
+ 0x46, 0x02, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0f, 0x72, 0x00, 0x10, 0x00, // F.......2...r...
+ 0x03, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, // ....F........@..
+ 0x3d, 0x0a, 0x87, 0x3f, 0x3d, 0x0a, 0x87, 0x3f, 0x3d, 0x0a, 0x87, 0x3f, 0x00, 0x00, 0x00, 0x00, // =..?=..?=..?....
+ 0x02, 0x40, 0x00, 0x00, 0xae, 0x47, 0x61, 0xbd, 0xae, 0x47, 0x61, 0xbd, 0xae, 0x47, 0x61, 0xbd, // .@...Ga..Ga..Ga.
+ 0x00, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x09, 0x72, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ....7...r.......
+ 0x46, 0x02, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, // F.......F.......
+ 0x46, 0x02, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x01, 0x31, 0x00, 0x00, 0x0b, // F...........1...
+ 0x32, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x80, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, // 2......... .....
+ 0x01, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, 0x20, 0x40, // .....@.....?.. @
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x0a, 0x12, 0x00, 0x10, 0x00, // ................
+ 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x98, 0x3a, 0xd3, 0x3e, 0x37, 0x14, 0xb7, 0x3e, // .....@...:.>7..>
+ 0x9c, 0xc4, 0x38, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ..8>....F.......
+ 0x10, 0x00, 0x00, 0x0a, 0x22, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, // ...."........@..
+ 0xed, 0xc6, 0x59, 0x3e, 0x37, 0x14, 0x37, 0x3f, 0x7d, 0xd0, 0x93, 0x3d, 0x00, 0x00, 0x00, 0x00, // ..Y>7.7?}..=....
+ 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x0a, 0x42, 0x00, 0x10, 0x00, // F...........B...
+ 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x21, 0x62, 0x9e, 0x3c, 0xef, 0x1a, 0xf4, 0x3d, // .....@..!b.<...=
+ 0x21, 0x47, 0x73, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // !Gs?....F.......
+ 0x10, 0x00, 0x00, 0x0a, 0x12, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, // .............@..
+ 0x3a, 0xbb, 0xdb, 0x3f, 0x7c, 0x1a, 0xb6, 0xbe, 0x3a, 0xb9, 0x81, 0xbe, 0x00, 0x00, 0x00, 0x00, // :..?|...:.......
+ 0x46, 0x02, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x0a, 0x22, 0x00, 0x10, 0x00, // F..........."...
+ 0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0xd4, 0xab, 0x2a, 0xbf, 0xdb, 0xe8, 0xce, 0x3f, // .....@....*....?
+ 0xf1, 0x2c, 0x81, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, // .,.<....F.......
+ 0x10, 0x00, 0x00, 0x0a, 0x42, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, // ....B........@..
+ 0x8d, 0x81, 0x90, 0x3c, 0x3a, 0x30, 0x2f, 0xbd, 0xab, 0x2d, 0x71, 0x3f, 0x00, 0x00, 0x00, 0x00, // ...<:0/..-q?....
+ 0x46, 0x02, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x08, 0x72, 0x00, 0x10, 0x00, // F.......8...r...
+ 0x02, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x56, 0x85, 0x20, 0x00, // ....F.......V. .
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x0a, 0x72, 0x00, 0x10, 0x00, // ........8...r...
+ 0x02, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, // ....F........@..
+ 0x17, 0xb7, 0xd1, 0x38, 0x17, 0xb7, 0xd1, 0x38, 0x17, 0xb7, 0xd1, 0x38, 0x00, 0x00, 0x00, 0x00, // ...8...8...8....
+ 0x2f, 0x00, 0x00, 0x05, 0x72, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, // /...r.......F...
+ 0x02, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x0a, 0x72, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, // ....8...r.......
+ 0x46, 0x02, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x20, 0x23, 0x3e, // F........@... #>
+ 0x00, 0x20, 0x23, 0x3e, 0x00, 0x20, 0x23, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x05, // . #>. #>........
+ 0x72, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, // r.......F.......
+ 0x32, 0x00, 0x00, 0x0f, 0x72, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, // 2...r.......F...
+ 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0xd0, 0x96, 0x41, 0x00, 0xd0, 0x96, 0x41, // .....@.....A...A
+ 0x00, 0xd0, 0x96, 0x41, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x56, 0x3f, // ...A.....@....V?
+ 0x00, 0x00, 0x56, 0x3f, 0x00, 0x00, 0x56, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0f, // ..V?..V?....2...
+ 0x72, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, // r.......F.......
+ 0x02, 0x40, 0x00, 0x00, 0x00, 0x80, 0x95, 0x41, 0x00, 0x80, 0x95, 0x41, 0x00, 0x80, 0x95, 0x41, // .@.....A...A...A
+ 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x80, 0x3f, // .....@.....?...?
+ 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x07, 0x72, 0x00, 0x10, 0x00, // ...?........r...
+ 0x02, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, // ....F.......F...
+ 0x02, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x05, 0x72, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, // ..../...r.......
+ 0x46, 0x02, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x0a, 0x72, 0x00, 0x10, 0x00, // F.......8...r...
+ 0x02, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, // ....F........@..
+ 0x00, 0xb0, 0x9d, 0x42, 0x00, 0xb0, 0x9d, 0x42, 0x00, 0xb0, 0x9d, 0x42, 0x00, 0x00, 0x00, 0x00, // ...B...B...B....
+ 0x19, 0x00, 0x00, 0x05, 0x72, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, // ....r.......F...
+ 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x07, 0xe2, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, // ................
+ 0x56, 0x05, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x09, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, // V...............
+ 0x37, 0x00, 0x00, 0x09, 0x72, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x10, 0x00, // 7...r...........
+ 0x01, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x07, 0x10, 0x00, // ....F...........
+ 0x01, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x01, 0x36, 0x00, 0x00, 0x05, 0xf2, 0x20, 0x10, 0x00, // ........6.... ..
+ 0x00, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x01, // ....F.......>...
+ 0x00, 0x00, 0x20, 0x00, // .. .
+};
+static const uint8_t fs_texture_3d_mtl[3757] =
+{
+ 0x46, 0x53, 0x48, 0x0b, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x09, 0x75, // FSH............u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x12, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // _params0........
+ 0x00, 0x00, 0x11, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x61, 0x6d, // ...s_texColorSam
+ 0x70, 0x6c, 0x65, 0x72, 0x11, 0x01, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x73, // pler...........s
+ 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, // _texColorTexture
+ 0x11, 0x01, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x75, 0x5f, 0x70, 0x61, 0x72, // ...........u_par
+ 0x61, 0x6d, 0x73, 0x31, 0x12, 0x01, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x73, // ams1...........s
+ 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // _texColor.......
+ 0x00, 0x00, 0x00, 0x22, 0x0e, 0x00, 0x00, 0x23, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, // ..."...#include
+ 0x3c, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x64, 0x6c, 0x69, 0x62, 0x3e, 0x0a, 0x23, // <metal_stdlib>.#
+ 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3c, 0x73, 0x69, 0x6d, 0x64, 0x2f, 0x73, 0x69, // include <simd/si
+ 0x6d, 0x64, 0x2e, 0x68, 0x3e, 0x0a, 0x0a, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6e, 0x61, 0x6d, // md.h>..using nam
+ 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x0a, 0x73, // espace metal;..s
+ 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x0a, 0x7b, 0x0a, // truct _Global.{.
+ 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, // float4 u_par
+ 0x61, 0x6d, 0x73, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, // ams0;. float4
+ 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, // u_params1;.};..
+ 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, // constant float3
+ 0x5f, 0x37, 0x32, 0x31, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x3b, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x75, // _721 = {};..stru
+ 0x63, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x5f, 0x6f, // ct xlatMtlMain_o
+ 0x75, 0x74, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, // ut.{. float4
+ 0x62, 0x67, 0x66, 0x78, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x44, 0x61, 0x74, 0x61, 0x30, 0x20, 0x5b, // bgfx_FragData0 [
+ 0x5b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, // [color(0)]];.};.
+ 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, // .struct xlatMtlM
+ 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x6e, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, // ain_in.{. flo
+ 0x61, 0x74, 0x34, 0x20, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x20, 0x5b, 0x5b, 0x75, // at4 v_color0 [[u
+ 0x73, 0x65, 0x72, 0x28, 0x6c, 0x6f, 0x63, 0x6e, 0x30, 0x29, 0x5d, 0x5d, 0x3b, 0x0a, 0x20, 0x20, // ser(locn0)]];.
+ 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, // float3 v_texco
+ 0x6f, 0x72, 0x64, 0x30, 0x20, 0x5b, 0x5b, 0x75, 0x73, 0x65, 0x72, 0x28, 0x6c, 0x6f, 0x63, 0x6e, // ord0 [[user(locn
+ 0x31, 0x29, 0x5d, 0x5d, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, // 1)]];.};..fragme
+ 0x6e, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x5f, 0x6f, // nt xlatMtlMain_o
+ 0x75, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x28, 0x78, // ut xlatMtlMain(x
+ 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x6e, 0x20, 0x69, 0x6e, // latMtlMain_in in
+ 0x20, 0x5b, 0x5b, 0x73, 0x74, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x5d, 0x5d, 0x2c, 0x20, 0x63, // [[stage_in]], c
+ 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x20, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x26, // onstant _Global&
+ 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x20, 0x5b, 0x5b, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, // _mtl_u [[buffer
+ 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x2c, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x33, 0x64, // (0)]], texture3d
+ 0x3c, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x20, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, // <float> s_texCol
+ 0x6f, 0x72, 0x20, 0x5b, 0x5b, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x28, 0x30, 0x29, 0x5d, // or [[texture(0)]
+ 0x5d, 0x2c, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x20, 0x73, 0x5f, 0x74, 0x65, 0x78, // ], sampler s_tex
+ 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x20, 0x5b, 0x5b, 0x73, // ColorSampler [[s
+ 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x29, 0x0a, 0x7b, 0x0a, 0x20, // ampler(0)]]).{.
+ 0x20, 0x20, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x5f, 0x6f, // xlatMtlMain_o
+ 0x75, 0x74, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x3b, 0x0a, 0x20, 0x20, 0x20, // ut out = {};.
+ 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x5f, 0x34, 0x36, 0x32, 0x20, 0x3d, 0x20, 0x73, // float4 _462 = s
+ 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x2e, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, // _texColor.sample
+ 0x28, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x61, 0x6d, 0x70, 0x6c, // (s_texColorSampl
+ 0x65, 0x72, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x69, 0x6e, 0x2e, 0x76, 0x5f, // er, float3(in.v_
+ 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x2e, 0x78, 0x79, 0x2c, 0x20, 0x5f, 0x6d, // texcoord0.xy, _m
+ 0x74, 0x6c, 0x5f, 0x75, 0x2e, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x2e, 0x79, // tl_u.u_params0.y
+ 0x29, 0x2c, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x28, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x2e, // ), level(_mtl_u.
+ 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x2e, 0x78, 0x29, 0x29, 0x3b, 0x0a, 0x20, // u_params0.x));.
+ 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x5f, 0x34, 0x33, 0x33, 0x20, 0x3d, // float3 _433 =
+ 0x20, 0x5f, 0x34, 0x36, 0x32, 0x2e, 0x78, 0x79, 0x7a, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, // _462.xyz;. f
+ 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x5f, 0x34, 0x38, 0x31, 0x20, 0x3d, 0x20, 0x6d, 0x69, 0x78, // loat3 _481 = mix
+ 0x28, 0x70, 0x6f, 0x77, 0x28, 0x61, 0x62, 0x73, 0x28, 0x5f, 0x34, 0x33, 0x33, 0x29, 0x2c, 0x20, // (pow(abs(_433),
+ 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x32, 0x2e, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, // float3(2.2000000
+ 0x34, 0x37, 0x36, 0x38, 0x33, 0x37, 0x31, 0x35, 0x38, 0x29, 0x29, 0x2c, 0x20, 0x5f, 0x34, 0x33, // 476837158)), _43
+ 0x33, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, // 3, float3(_mtl_u
+ 0x2e, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x2e, 0x7a, 0x29, 0x29, 0x20, 0x2a, // .u_params0.z)) *
+ 0x20, 0x70, 0x6f, 0x77, 0x28, 0x32, 0x2e, 0x30, 0x2c, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, // pow(2.0, _mtl_u
+ 0x2e, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x2e, 0x77, 0x29, 0x3b, 0x0a, 0x20, // .u_params0.w);.
+ 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x5f, 0x34, 0x33, 0x39, 0x20, 0x3d, // float4 _439 =
+ 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x28, 0x5f, 0x34, 0x38, 0x31, 0x2e, 0x78, 0x2c, 0x20, // float4(_481.x,
+ 0x5f, 0x34, 0x38, 0x31, 0x2e, 0x79, 0x2c, 0x20, 0x5f, 0x34, 0x38, 0x31, 0x2e, 0x7a, 0x2c, 0x20, // _481.y, _481.z,
+ 0x5f, 0x34, 0x36, 0x32, 0x2e, 0x77, 0x29, 0x20, 0x2a, 0x20, 0x69, 0x6e, 0x2e, 0x76, 0x5f, 0x63, // _462.w) * in.v_c
+ 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, // olor0;. float
+ 0x33, 0x20, 0x5f, 0x37, 0x31, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, // 3 _716;. if (
+ 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x2e, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, // _mtl_u.u_params1
+ 0x2e, 0x78, 0x20, 0x3c, 0x20, 0x30, 0x2e, 0x35, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, // .x < 0.5). {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x5f, // float3 _
+ 0x35, 0x31, 0x38, 0x20, 0x3d, 0x20, 0x66, 0x61, 0x73, 0x74, 0x3a, 0x3a, 0x63, 0x6c, 0x61, 0x6d, // 518 = fast::clam
+ 0x70, 0x28, 0x5f, 0x34, 0x33, 0x39, 0x2e, 0x78, 0x79, 0x7a, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, // p(_439.xyz, floa
+ 0x74, 0x33, 0x28, 0x30, 0x2e, 0x30, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, // t3(0.0), float3(
+ 0x31, 0x2e, 0x30, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, // 1.0));. f
+ 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x5f, 0x35, 0x36, 0x31, 0x20, 0x3d, 0x20, 0x5f, 0x35, 0x31, 0x38, // loat _561 = _518
+ 0x2e, 0x78, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, // .x;. floa
+ 0x74, 0x20, 0x5f, 0x37, 0x31, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // t _710;.
+ 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, // do. {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x5f, 0x35, 0x36, // if (_56
+ 0x31, 0x20, 0x3c, 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x30, 0x33, 0x31, 0x33, 0x30, 0x38, 0x30, 0x30, // 1 <= 0.003130800
+ 0x30, 0x39, 0x30, 0x37, 0x33, 0x30, 0x31, 0x39, 0x30, 0x33, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, // 0907301903).
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x37, 0x31, 0x30, 0x20, 0x3d, // _710 =
+ 0x20, 0x31, 0x32, 0x2e, 0x39, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x37, 0x36, 0x32, 0x39, 0x33, // 12.920000076293
+ 0x39, 0x34, 0x35, 0x20, 0x2a, 0x20, 0x5f, 0x35, 0x36, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, // 945 * _561;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x72, 0x65, 0x61, // brea
+ 0x6b, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, // k;. }
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, // . els
+ 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, // e. {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //
+ 0x5f, 0x37, 0x31, 0x30, 0x20, 0x3d, 0x20, 0x28, 0x31, 0x2e, 0x30, 0x35, 0x34, 0x39, 0x39, 0x39, // _710 = (1.054999
+ 0x39, 0x34, 0x37, 0x35, 0x34, 0x37, 0x39, 0x31, 0x32, 0x36, 0x20, 0x2a, 0x20, 0x70, 0x6f, 0x77, // 9475479126 * pow
+ 0x28, 0x5f, 0x35, 0x36, 0x31, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x31, 0x36, 0x36, 0x36, 0x36, 0x36, // (_561, 0.4166666
+ 0x35, 0x36, 0x37, 0x33, 0x32, 0x35, 0x35, 0x39, 0x32, 0x29, 0x29, 0x20, 0x2d, 0x20, 0x30, 0x2e, // 567325592)) - 0.
+ 0x30, 0x35, 0x34, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x37, 0x30, 0x31, 0x39, 0x37, 0x36, 0x37, // 0549999997019767
+ 0x37, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // 76;.
+ 0x20, 0x20, 0x20, 0x20, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, // break;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // }.
+ 0x20, 0x7d, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x28, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, // } while(false);
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, // . float3
+ 0x5f, 0x36, 0x39, 0x35, 0x20, 0x3d, 0x20, 0x5f, 0x37, 0x32, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x20, // _695 = _721;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x36, 0x39, 0x35, 0x2e, 0x78, 0x20, 0x3d, 0x20, 0x5f, 0x37, // _695.x = _7
+ 0x31, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, // 10;. floa
+ 0x74, 0x20, 0x5f, 0x35, 0x36, 0x35, 0x20, 0x3d, 0x20, 0x5f, 0x35, 0x31, 0x38, 0x2e, 0x79, 0x3b, // t _565 = _518.y;
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x5f, // . float _
+ 0x37, 0x31, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x0a, // 712;. do.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x5f, 0x35, 0x36, 0x35, 0x20, 0x3c, // if (_565 <
+ 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x30, 0x33, 0x31, 0x33, 0x30, 0x38, 0x30, 0x30, 0x30, 0x39, 0x30, // = 0.003130800090
+ 0x37, 0x33, 0x30, 0x31, 0x39, 0x30, 0x33, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // 7301903).
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x37, 0x31, 0x32, 0x20, 0x3d, 0x20, 0x31, 0x32, // _712 = 12
+ 0x2e, 0x39, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x37, 0x36, 0x32, 0x39, 0x33, 0x39, 0x34, 0x35, // .920000076293945
+ 0x20, 0x2a, 0x20, 0x5f, 0x35, 0x36, 0x35, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // * _565;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x3b, 0x0a, // break;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, // }.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, // else.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, // {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x37, 0x31, // _71
+ 0x32, 0x20, 0x3d, 0x20, 0x28, 0x31, 0x2e, 0x30, 0x35, 0x34, 0x39, 0x39, 0x39, 0x39, 0x34, 0x37, // 2 = (1.054999947
+ 0x35, 0x34, 0x37, 0x39, 0x31, 0x32, 0x36, 0x20, 0x2a, 0x20, 0x70, 0x6f, 0x77, 0x28, 0x5f, 0x35, // 5479126 * pow(_5
+ 0x36, 0x35, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x31, 0x36, 0x36, 0x36, 0x36, 0x36, 0x35, 0x36, 0x37, // 65, 0.4166666567
+ 0x33, 0x32, 0x35, 0x35, 0x39, 0x32, 0x29, 0x29, 0x20, 0x2d, 0x20, 0x30, 0x2e, 0x30, 0x35, 0x34, // 325592)) - 0.054
+ 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x37, 0x30, 0x31, 0x39, 0x37, 0x36, 0x37, 0x37, 0x36, 0x3b, // 999999701976776;
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // .
+ 0x20, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // break;.
+ 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x20, // }. }
+ 0x77, 0x68, 0x69, 0x6c, 0x65, 0x28, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x20, 0x20, // while(false);.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x5f, 0x36, 0x39, // float3 _69
+ 0x38, 0x20, 0x3d, 0x20, 0x5f, 0x36, 0x39, 0x35, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // 8 = _695;.
+ 0x20, 0x20, 0x5f, 0x36, 0x39, 0x38, 0x2e, 0x79, 0x20, 0x3d, 0x20, 0x5f, 0x37, 0x31, 0x32, 0x3b, // _698.y = _712;
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x5f, // . float _
+ 0x35, 0x36, 0x39, 0x20, 0x3d, 0x20, 0x5f, 0x35, 0x31, 0x38, 0x2e, 0x7a, 0x3b, 0x0a, 0x20, 0x20, // 569 = _518.z;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x5f, 0x37, 0x31, 0x34, // float _714
+ 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, // ;. do.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // {.
+ 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x5f, 0x35, 0x36, 0x39, 0x20, 0x3c, 0x3d, 0x20, 0x30, // if (_569 <= 0
+ 0x2e, 0x30, 0x30, 0x33, 0x31, 0x33, 0x30, 0x38, 0x30, 0x30, 0x30, 0x39, 0x30, 0x37, 0x33, 0x30, // .003130800090730
+ 0x31, 0x39, 0x30, 0x33, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // 1903).
+ 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // {.
+ 0x20, 0x20, 0x20, 0x20, 0x5f, 0x37, 0x31, 0x34, 0x20, 0x3d, 0x20, 0x31, 0x32, 0x2e, 0x39, 0x32, // _714 = 12.92
+ 0x30, 0x30, 0x30, 0x30, 0x30, 0x37, 0x36, 0x32, 0x39, 0x33, 0x39, 0x34, 0x35, 0x20, 0x2a, 0x20, // 0000076293945 *
+ 0x5f, 0x35, 0x36, 0x39, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // _569;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x3b, 0x0a, 0x20, 0x20, 0x20, // break;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, // }.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, // else.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x37, 0x31, 0x34, 0x20, 0x3d, // _714 =
+ 0x20, 0x28, 0x31, 0x2e, 0x30, 0x35, 0x34, 0x39, 0x39, 0x39, 0x39, 0x34, 0x37, 0x35, 0x34, 0x37, // (1.054999947547
+ 0x39, 0x31, 0x32, 0x36, 0x20, 0x2a, 0x20, 0x70, 0x6f, 0x77, 0x28, 0x5f, 0x35, 0x36, 0x39, 0x2c, // 9126 * pow(_569,
+ 0x20, 0x30, 0x2e, 0x34, 0x31, 0x36, 0x36, 0x36, 0x36, 0x36, 0x35, 0x36, 0x37, 0x33, 0x32, 0x35, // 0.4166666567325
+ 0x35, 0x39, 0x32, 0x29, 0x29, 0x20, 0x2d, 0x20, 0x30, 0x2e, 0x30, 0x35, 0x34, 0x39, 0x39, 0x39, // 592)) - 0.054999
+ 0x39, 0x39, 0x39, 0x37, 0x30, 0x31, 0x39, 0x37, 0x36, 0x37, 0x37, 0x36, 0x3b, 0x0a, 0x20, 0x20, // 999701976776;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x72, // br
+ 0x65, 0x61, 0x6b, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // eak;.
+ 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x20, 0x77, 0x68, 0x69, // }. } whi
+ 0x6c, 0x65, 0x28, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, // le(false);.
+ 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x5f, 0x37, 0x30, 0x31, 0x20, 0x3d, // float3 _701 =
+ 0x20, 0x5f, 0x36, 0x39, 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, // _698;. _
+ 0x37, 0x30, 0x31, 0x2e, 0x7a, 0x20, 0x3d, 0x20, 0x5f, 0x37, 0x31, 0x34, 0x3b, 0x0a, 0x20, 0x20, // 701.z = _714;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x37, 0x31, 0x36, 0x20, 0x3d, 0x20, 0x5f, 0x37, 0x30, // _716 = _70
+ 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, // 1;. }. els
+ 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // e. {.
+ 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x5f, 0x37, 0x31, 0x37, 0x3b, 0x0a, 0x20, 0x20, 0x20, // float3 _717;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x2e, // if (_mtl_u.
+ 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x2e, 0x78, 0x20, 0x3c, 0x20, 0x31, 0x2e, // u_params1.x < 1.
+ 0x35, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, // 5). {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x37, 0x31, 0x37, 0x20, 0x3d, 0x20, // _717 =
+ 0x5f, 0x34, 0x33, 0x39, 0x2e, 0x78, 0x79, 0x7a, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // _439.xyz;.
+ 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, // }. else
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, // . {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x5f, 0x37, // float3 _7
+ 0x31, 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // 18;.
+ 0x69, 0x66, 0x20, 0x28, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x2e, 0x75, 0x5f, 0x70, 0x61, 0x72, // if (_mtl_u.u_par
+ 0x61, 0x6d, 0x73, 0x31, 0x2e, 0x78, 0x20, 0x3c, 0x20, 0x32, 0x2e, 0x35, 0x29, 0x0a, 0x20, 0x20, // ams1.x < 2.5).
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, // {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, // floa
+ 0x74, 0x33, 0x20, 0x5f, 0x36, 0x35, 0x34, 0x20, 0x3d, 0x20, 0x70, 0x6f, 0x77, 0x28, 0x28, 0x28, // t3 _654 = pow(((
+ 0x28, 0x5f, 0x34, 0x33, 0x39, 0x2e, 0x78, 0x79, 0x7a, 0x20, 0x2a, 0x20, 0x66, 0x6c, 0x6f, 0x61, // (_439.xyz * floa
+ 0x74, 0x33, 0x78, 0x33, 0x28, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x30, 0x2e, 0x34, 0x31, // t3x3(float3(0.41
+ 0x32, 0x35, 0x35, 0x36, 0x34, 0x30, 0x39, 0x38, 0x33, 0x35, 0x38, 0x31, 0x35, 0x34, 0x33, 0x2c, // 255640983581543,
+ 0x20, 0x30, 0x2e, 0x33, 0x35, 0x37, 0x35, 0x37, 0x36, 0x31, 0x30, 0x32, 0x30, 0x31, 0x38, 0x33, // 0.3575761020183
+ 0x35, 0x36, 0x33, 0x32, 0x2c, 0x20, 0x30, 0x2e, 0x31, 0x38, 0x30, 0x34, 0x33, 0x37, 0x35, 0x30, // 5632, 0.18043750
+ 0x35, 0x32, 0x34, 0x35, 0x32, 0x30, 0x38, 0x37, 0x34, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, // 524520874), floa
+ 0x74, 0x33, 0x28, 0x30, 0x2e, 0x32, 0x31, 0x32, 0x36, 0x37, 0x32, 0x39, 0x30, 0x34, 0x31, 0x33, // t3(0.21267290413
+ 0x33, 0x37, 0x39, 0x36, 0x36, 0x39, 0x2c, 0x20, 0x30, 0x2e, 0x37, 0x31, 0x35, 0x31, 0x35, 0x32, // 379669, 0.715152
+ 0x32, 0x30, 0x34, 0x30, 0x33, 0x36, 0x37, 0x31, 0x32, 0x36, 0x35, 0x2c, 0x20, 0x30, 0x2e, 0x30, // 20403671265, 0.0
+ 0x37, 0x32, 0x31, 0x37, 0x35, 0x30, 0x30, 0x33, 0x35, 0x38, 0x38, 0x31, 0x39, 0x39, 0x36, 0x31, // 7217500358819961
+ 0x35, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x30, 0x2e, 0x30, 0x31, 0x39, // 5), float3(0.019
+ 0x33, 0x33, 0x33, 0x39, 0x30, 0x30, 0x38, 0x38, 0x33, 0x37, 0x39, 0x33, 0x38, 0x33, 0x31, 0x2c, // 333900883793831,
+ 0x20, 0x30, 0x2e, 0x31, 0x31, 0x39, 0x31, 0x39, 0x31, 0x39, 0x39, 0x36, 0x37, 0x35, 0x33, 0x32, // 0.1191919967532
+ 0x31, 0x35, 0x37, 0x39, 0x2c, 0x20, 0x30, 0x2e, 0x39, 0x35, 0x30, 0x33, 0x30, 0x34, 0x30, 0x39, // 1579, 0.95030409
+ 0x30, 0x39, 0x37, 0x36, 0x37, 0x31, 0x35, 0x30, 0x39, 0x29, 0x29, 0x29, 0x20, 0x2a, 0x20, 0x66, // 097671509))) * f
+ 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x78, 0x33, 0x28, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x31, // loat3x3(float3(1
+ 0x2e, 0x37, 0x31, 0x36, 0x36, 0x35, 0x31, 0x32, 0x30, 0x31, 0x32, 0x34, 0x38, 0x31, 0x36, 0x38, // .716651201248168
+ 0x39, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x33, 0x35, 0x35, 0x36, 0x37, 0x30, 0x38, 0x30, 0x39, 0x37, // 9, -0.3556708097
+ 0x34, 0x35, 0x37, 0x38, 0x38, 0x35, 0x37, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x33, 0x33, // 4578857, -0.2533
+ 0x36, 0x36, 0x32, 0x39, 0x31, 0x35, 0x32, 0x32, 0x39, 0x37, 0x39, 0x37, 0x34, 0x29, 0x2c, 0x20, // 6629152297974),
+ 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x2d, 0x30, 0x2e, 0x36, 0x36, 0x36, 0x36, 0x38, 0x34, // float3(-0.666684
+ 0x33, 0x38, 0x39, 0x31, 0x31, 0x34, 0x33, 0x37, 0x39, 0x38, 0x38, 0x2c, 0x20, 0x31, 0x2e, 0x36, // 38911437988, 1.6
+ 0x31, 0x36, 0x34, 0x38, 0x31, 0x31, 0x38, 0x34, 0x39, 0x35, 0x39, 0x34, 0x31, 0x31, 0x36, 0x2c, // 164811849594116,
+ 0x20, 0x30, 0x2e, 0x30, 0x31, 0x35, 0x37, 0x36, 0x38, 0x35, 0x30, 0x30, 0x30, 0x34, 0x34, 0x39, // 0.0157685000449
+ 0x34, 0x31, 0x39, 0x30, 0x32, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x30, // 41902), float3(0
+ 0x2e, 0x30, 0x31, 0x37, 0x36, 0x33, 0x39, 0x38, 0x39, 0x39, 0x36, 0x32, 0x36, 0x33, 0x37, 0x34, // .017639899626374
+ 0x32, 0x34, 0x35, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x30, 0x34, 0x32, 0x37, 0x37, 0x30, 0x36, 0x30, // 245, -0.04277060
+ 0x31, 0x38, 0x30, 0x39, 0x30, 0x32, 0x34, 0x38, 0x31, 0x31, 0x2c, 0x20, 0x30, 0x2e, 0x39, 0x34, // 1809024811, 0.94
+ 0x32, 0x31, 0x30, 0x33, 0x30, 0x38, 0x37, 0x39, 0x30, 0x32, 0x30, 0x36, 0x39, 0x30, 0x39, 0x29, // 210308790206909)
+ 0x29, 0x29, 0x20, 0x2a, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x2e, 0x75, 0x5f, 0x70, 0x61, // )) * _mtl_u.u_pa
+ 0x72, 0x61, 0x6d, 0x73, 0x31, 0x2e, 0x79, 0x29, 0x20, 0x2a, 0x20, 0x39, 0x2e, 0x39, 0x39, 0x39, // rams1.y) * 9.999
+ 0x39, 0x39, 0x39, 0x37, 0x34, 0x37, 0x33, 0x37, 0x38, 0x37, 0x35, 0x31, 0x36, 0x65, 0x2d, 0x30, // 9997473787516e-0
+ 0x30, 0x35, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x30, 0x2e, 0x31, 0x35, 0x39, // 05, float3(0.159
+ 0x33, 0x30, 0x31, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, // 3017578125));.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x37, // _7
+ 0x31, 0x38, 0x20, 0x3d, 0x20, 0x70, 0x6f, 0x77, 0x28, 0x28, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, // 18 = pow((float3
+ 0x28, 0x30, 0x2e, 0x38, 0x33, 0x35, 0x39, 0x33, 0x37, 0x35, 0x29, 0x20, 0x2b, 0x20, 0x28, 0x5f, // (0.8359375) + (_
+ 0x36, 0x35, 0x34, 0x20, 0x2a, 0x20, 0x31, 0x38, 0x2e, 0x38, 0x35, 0x31, 0x35, 0x36, 0x32, 0x35, // 654 * 18.8515625
+ 0x29, 0x29, 0x20, 0x2f, 0x20, 0x28, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x31, 0x2e, 0x30, // )) / (float3(1.0
+ 0x29, 0x20, 0x2b, 0x20, 0x28, 0x5f, 0x36, 0x35, 0x34, 0x20, 0x2a, 0x20, 0x31, 0x38, 0x2e, 0x36, // ) + (_654 * 18.6
+ 0x38, 0x37, 0x35, 0x29, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x37, 0x38, // 875)), float3(78
+ 0x2e, 0x38, 0x34, 0x33, 0x37, 0x35, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // .84375));.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // }.
+ 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // else.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x37, 0x31, 0x38, 0x20, 0x3d, 0x20, 0x66, 0x6c, // _718 = fl
+ 0x6f, 0x61, 0x74, 0x33, 0x28, 0x30, 0x2e, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, // oat3(0.0);.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // }.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x37, 0x31, 0x37, 0x20, 0x3d, 0x20, 0x5f, 0x37, 0x31, 0x38, // _717 = _718
+ 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, // ;. }.
+ 0x20, 0x20, 0x20, 0x20, 0x5f, 0x37, 0x31, 0x36, 0x20, 0x3d, 0x20, 0x5f, 0x37, 0x31, 0x37, 0x3b, // _716 = _717;
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x2e, 0x62, // . }. out.b
+ 0x67, 0x66, 0x78, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x44, 0x61, 0x74, 0x61, 0x30, 0x20, 0x3d, 0x20, // gfx_FragData0 =
+ 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x28, 0x5f, 0x37, 0x31, 0x36, 0x2c, 0x20, 0x5f, 0x34, 0x33, // float4(_716, _43
+ 0x39, 0x2e, 0x77, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, // 9.w);. return
+ 0x20, 0x6f, 0x75, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x00, 0x00, 0x40, 0x00, // out;.}....@.
};
extern const uint8_t* fs_texture_3d_pssl;
extern const uint32_t fs_texture_3d_pssl_size;
diff --git a/3rdparty/bgfx/tools/texturev/fs_texture_3d.sc b/3rdparty/bgfx/tools/texturev/fs_texture_3d.sc
index 230eaa3a5d2..ae959c49278 100644
--- a/3rdparty/bgfx/tools/texturev/fs_texture_3d.sc
+++ b/3rdparty/bgfx/tools/texturev/fs_texture_3d.sc
@@ -1,8 +1,8 @@
$input v_texcoord0, v_color0
/*
- * Copyright 2011-2018 Branimir Karadzic. All rights reserved.
- * License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause
+ * Copyright 2011-2022 Branimir Karadzic. All rights reserved.
+ * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE
*/
#include "common.sh"
@@ -12,5 +12,7 @@ SAMPLER3D(s_texColor, 0);
void main()
{
vec4 color = texture3DLod(s_texColor, vec3(v_texcoord0.xy, u_textureLayer), u_textureLod);
- gl_FragColor = toEv(color * v_color0);
+ color.xyz = applyExposure(color.xyz);
+ color *= v_color0;
+ gl_FragColor = toOutput(color, u_outputFormat, u_sdrWhiteNits);
}
diff --git a/3rdparty/bgfx/tools/texturev/fs_texture_array.bin.h b/3rdparty/bgfx/tools/texturev/fs_texture_array.bin.h
index 2e0c2352c10..8e3671a8bea 100644
--- a/3rdparty/bgfx/tools/texturev/fs_texture_array.bin.h
+++ b/3rdparty/bgfx/tools/texturev/fs_texture_array.bin.h
@@ -1,339 +1,383 @@
-static const uint8_t fs_texture_array_glsl[602] =
+static const uint8_t fs_texture_array_glsl[616] =
{
- 0x46, 0x53, 0x48, 0x06, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x08, 0x75, // FSH............u
- 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x02, 0x01, 0x00, 0x00, 0x01, 0x00, 0x0a, 0x73, 0x5f, // _params.......s_
- 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x27, 0x02, // texColor......'.
- 0x00, 0x00, 0x76, 0x61, 0x72, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x76, // ..varying vec4 v
- 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x76, 0x61, 0x72, 0x79, 0x69, 0x6e, 0x67, // _color0;.varying
- 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, // vec3 v_texcoord
- 0x30, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, // 0;.uniform vec4
- 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, // u_params;.unifor
- 0x6d, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x32, 0x44, 0x41, 0x72, 0x72, 0x61, 0x79, // m sampler2DArray
- 0x20, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x3b, 0x0a, 0x76, 0x6f, 0x69, // s_texColor;.voi
- 0x64, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x76, 0x65, // d main ().{. ve
- 0x63, 0x33, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x74, // c3 tmpvar_1;. t
- 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x79, 0x20, 0x3d, 0x20, 0x76, 0x5f, 0x74, // mpvar_1.xy = v_t
- 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x2e, 0x78, 0x79, 0x3b, 0x0a, 0x20, 0x20, 0x74, // excoord0.xy;. t
- 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x7a, 0x20, 0x3d, 0x20, 0x75, 0x5f, 0x70, 0x61, // mpvar_1.z = u_pa
- 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x79, 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x5f, // rams.y;. vec4 _
- 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, // color_2;. _colo
- 0x72, 0x5f, 0x32, 0x20, 0x3d, 0x20, 0x28, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x32, 0x44, // r_2 = (texture2D
- 0x41, 0x72, 0x72, 0x61, 0x79, 0x4c, 0x6f, 0x64, 0x20, 0x28, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, // ArrayLod (s_texC
- 0x6f, 0x6c, 0x6f, 0x72, 0x2c, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2c, 0x20, // olor, tmpvar_1,
- 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x78, 0x29, 0x20, 0x2a, 0x20, 0x76, 0x5f, // u_params.x) * v_
- 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, // color0);. vec4
- 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, // tmpvar_3;. tmpv
- 0x61, 0x72, 0x5f, 0x33, 0x2e, 0x78, 0x79, 0x7a, 0x20, 0x3d, 0x20, 0x70, 0x6f, 0x77, 0x20, 0x28, // ar_3.xyz = pow (
- 0x61, 0x62, 0x73, 0x28, 0x28, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x78, 0x20, 0x28, 0x70, // abs((. mix (p
- 0x6f, 0x77, 0x20, 0x28, 0x61, 0x62, 0x73, 0x28, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x32, // ow (abs(_color_2
- 0x2e, 0x78, 0x79, 0x7a, 0x29, 0x2c, 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x32, 0x2e, 0x32, 0x2c, // .xyz), vec3(2.2,
- 0x20, 0x32, 0x2e, 0x32, 0x2c, 0x20, 0x32, 0x2e, 0x32, 0x29, 0x29, 0x2c, 0x20, 0x5f, 0x63, 0x6f, // 2.2, 2.2)), _co
- 0x6c, 0x6f, 0x72, 0x5f, 0x32, 0x2e, 0x78, 0x79, 0x7a, 0x2c, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, // lor_2.xyz, u_par
- 0x61, 0x6d, 0x73, 0x2e, 0x7a, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x2a, 0x20, 0x0a, 0x20, 0x20, 0x20, // ams.z). * .
- 0x20, 0x65, 0x78, 0x70, 0x32, 0x28, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x77, // exp2(u_params.w
- 0x29, 0x0a, 0x20, 0x20, 0x29, 0x29, 0x2c, 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x30, 0x2e, 0x34, // ). )), vec3(0.4
- 0x35, 0x34, 0x35, 0x34, 0x35, 0x34, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x35, 0x34, 0x35, 0x34, 0x35, // 545454, 0.454545
- 0x34, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x35, 0x34, 0x35, 0x34, 0x35, 0x34, 0x29, 0x29, 0x3b, 0x0a, // 4, 0.4545454));.
- 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x33, 0x2e, 0x77, 0x20, 0x3d, 0x20, 0x5f, // tmpvar_3.w = _
- 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x32, 0x2e, 0x77, 0x3b, 0x0a, 0x20, 0x20, 0x67, 0x6c, 0x5f, // color_2.w;. gl_
- 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, // FragColor = tmpv
- 0x61, 0x72, 0x5f, 0x33, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x00, // ar_3;.}...
+ 0x46, 0x53, 0x48, 0x0b, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x09, 0x75, // FSH............u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x02, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // _params0........
+ 0x00, 0x00, 0x0a, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x00, 0x01, 0x00, // ...s_texColor...
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x02, 0x00, 0x00, 0x76, 0x61, 0x72, 0x79, 0x69, // .......,...varyi
+ 0x6e, 0x67, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, // ng vec4 v_color0
+ 0x3b, 0x0a, 0x76, 0x61, 0x72, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x76, // ;.varying vec3 v
+ 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, // _texcoord0;.unif
+ 0x6f, 0x72, 0x6d, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, // orm vec4 u_param
+ 0x73, 0x30, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x73, 0x61, 0x6d, 0x70, // s0;.uniform samp
+ 0x6c, 0x65, 0x72, 0x32, 0x44, 0x41, 0x72, 0x72, 0x61, 0x79, 0x20, 0x73, 0x5f, 0x74, 0x65, 0x78, // ler2DArray s_tex
+ 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x3b, 0x0a, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x6d, 0x61, 0x69, 0x6e, // Color;.void main
+ 0x20, 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x74, 0x6d, 0x70, // ().{. vec3 tmp
+ 0x76, 0x61, 0x72, 0x5f, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // var_1;. tmpvar_
+ 0x31, 0x2e, 0x78, 0x79, 0x20, 0x3d, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, // 1.xy = v_texcoor
+ 0x64, 0x30, 0x2e, 0x78, 0x79, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // d0.xy;. tmpvar_
+ 0x31, 0x2e, 0x7a, 0x20, 0x3d, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x2e, // 1.z = u_params0.
+ 0x79, 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, // y;. vec4 _color
+ 0x5f, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x32, 0x20, 0x3d, // _2;. _color_2 =
+ 0x20, 0x28, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x32, 0x44, 0x41, 0x72, 0x72, 0x61, 0x79, // (texture2DArray
+ 0x4c, 0x6f, 0x64, 0x20, 0x28, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x2c, // Lod (s_texColor,
+ 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2c, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, // tmpvar_1, u_par
+ 0x61, 0x6d, 0x73, 0x30, 0x2e, 0x78, 0x29, 0x20, 0x2a, 0x20, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, // ams0.x) * v_colo
+ 0x72, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x74, 0x6d, 0x70, 0x76, // r0);. vec4 tmpv
+ 0x61, 0x72, 0x5f, 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x33, // ar_3;. tmpvar_3
+ 0x2e, 0x78, 0x79, 0x7a, 0x20, 0x3d, 0x20, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x61, 0x62, 0x73, 0x28, // .xyz = pow (abs(
+ 0x28, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x78, 0x20, 0x28, 0x70, 0x6f, 0x77, 0x20, 0x28, // (. mix (pow (
+ 0x61, 0x62, 0x73, 0x28, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x32, 0x2e, 0x78, 0x79, 0x7a, // abs(_color_2.xyz
+ 0x29, 0x2c, 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x32, 0x2e, 0x32, 0x2c, 0x20, 0x32, 0x2e, 0x32, // ), vec3(2.2, 2.2
+ 0x2c, 0x20, 0x32, 0x2e, 0x32, 0x29, 0x29, 0x2c, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, // , 2.2)), _color_
+ 0x32, 0x2e, 0x78, 0x79, 0x7a, 0x2c, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, // 2.xyz, u_params0
+ 0x2e, 0x7a, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x2a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, // .z). * . ex
+ 0x70, 0x32, 0x28, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x2e, 0x77, 0x29, 0x0a, // p2(u_params0.w).
+ 0x20, 0x20, 0x29, 0x29, 0x2c, 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x30, 0x2e, 0x34, 0x35, 0x34, // )), vec3(0.454
+ 0x35, 0x34, 0x35, 0x34, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x35, 0x34, 0x35, 0x34, 0x35, 0x34, 0x2c, // 5454, 0.4545454,
+ 0x20, 0x30, 0x2e, 0x34, 0x35, 0x34, 0x35, 0x34, 0x35, 0x34, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, // 0.4545454));.
+ 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x33, 0x2e, 0x77, 0x20, 0x3d, 0x20, 0x5f, 0x63, 0x6f, // tmpvar_3.w = _co
+ 0x6c, 0x6f, 0x72, 0x5f, 0x32, 0x2e, 0x77, 0x3b, 0x0a, 0x20, 0x20, 0x67, 0x6c, 0x5f, 0x46, 0x72, // lor_2.w;. gl_Fr
+ 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // agColor = tmpvar
+ 0x5f, 0x33, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x00, // _3;.}...
};
-static const uint8_t fs_texture_array_spv[2037] =
+static const uint8_t fs_texture_array_essl[701] =
{
- 0x46, 0x53, 0x48, 0x06, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x75, // FSH............u
- 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x01, 0x00, 0x00, 0x01, 0x00, 0xd0, 0x07, 0x00, // _params.........
- 0x00, 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x07, 0x00, 0x08, 0x00, 0x3b, 0x01, 0x00, // ...#.........;..
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, // ................
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, // .....GLSL.std.45
- 0x30, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // 0...............
- 0x00, 0x0f, 0x00, 0x08, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, // .............mai
- 0x6e, 0x00, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, // n...............
- 0x00, 0x10, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, // ................
- 0x00, 0x05, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, // ................
- 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x09, 0x00, 0x00, // .main...........
- 0x00, 0x42, 0x67, 0x66, 0x78, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x32, 0x44, 0x41, 0x72, // .BgfxSampler2DAr
- 0x72, 0x61, 0x79, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ray.............
- 0x00, 0x6d, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, // .m_sampler......
- 0x00, 0x09, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6d, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x75, // .........m_textu
- 0x72, 0x65, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x36, 0x00, 0x00, 0x00, 0x73, 0x5f, 0x74, // re.......6...s_t
- 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x38, 0x00, 0x00, // exColor......8..
- 0x00, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x61, 0x6d, 0x70, 0x6c, // .s_texColorSampl
- 0x65, 0x72, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x73, 0x5f, 0x74, // er.......;...s_t
- 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x00, 0x00, // exColorTexture..
- 0x00, 0x05, 0x00, 0x04, 0x00, 0x76, 0x00, 0x00, 0x00, 0x24, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, // .....v...$Global
- 0x00, 0x06, 0x00, 0x06, 0x00, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x70, // .....v.......u_p
- 0x61, 0x72, 0x61, 0x6d, 0x73, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x78, 0x00, 0x00, // arams........x..
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x76, 0x5f, 0x63, // .............v_c
- 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0xb7, 0x00, 0x00, // olor0...........
- 0x00, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x00, 0x05, 0x00, 0x06, // .v_texcoord0....
- 0x00, 0xc2, 0x00, 0x00, 0x00, 0x62, 0x67, 0x66, 0x78, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x44, 0x61, // .....bgfx_FragDa
- 0x74, 0x61, 0x30, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, // ta0..G...;..."..
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, // .....G...;...!..
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .....H...v......
- 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x76, 0x00, 0x00, // .#.......G...v..
- 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x78, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, // .....G...x..."..
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, // .....G..........
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xb7, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, // .....G..........
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xc2, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, // .....G..........
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, // .............!..
- 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x02, 0x00, 0x06, 0x00, 0x00, // ................
- 0x00, 0x16, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, // ......... ......
- 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
- 0x00, 0x1e, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, // ................
- 0x00, 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, // ................
- 0x00, 0x17, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, // ................
- 0x00, 0x20, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, // . ...5..........
- 0x00, 0x3b, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, // .;...5...6......
- 0x00, 0x20, 0x00, 0x04, 0x00, 0x37, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, // . ...7..........
- 0x00, 0x3b, 0x00, 0x04, 0x00, 0x37, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, // .;...7...8......
- 0x00, 0x20, 0x00, 0x04, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, // . ...:..........
- 0x00, 0x3b, 0x00, 0x04, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .;...:...;......
- 0x00, 0x15, 0x00, 0x04, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // .....>... ......
- 0x00, 0x2b, 0x00, 0x04, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .+...>...C......
- 0x00, 0x1b, 0x00, 0x03, 0x00, 0x47, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, // .....G.......+..
- 0x00, 0x07, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0xcd, 0xcc, 0x0c, 0x40, 0x2b, 0x00, 0x04, // .....c......@+..
- 0x00, 0x07, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x2f, 0xba, 0xe8, 0x3e, 0x1e, 0x00, 0x03, // .....k.../..>...
- 0x00, 0x76, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x77, 0x00, 0x00, // .v....... ...w..
- 0x00, 0x02, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x77, 0x00, 0x00, // .....v...;...w..
- 0x00, 0x78, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x79, 0x00, 0x00, // .x...........y..
- 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x79, 0x00, 0x00, // . .......+...y..
- 0x00, 0x7a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x7b, 0x00, 0x00, // .z....... ...{..
- 0x00, 0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, // .........+......
- 0x00, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x2b, 0x00, 0x04, 0x00, 0x79, 0x00, 0x00, // ........@+...y..
- 0x00, 0x87, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x79, 0x00, 0x00, // .........+...y..
- 0x00, 0x9e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x79, 0x00, 0x00, // .........+...y..
- 0x00, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0xb2, 0x00, 0x00, // ......... ......
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0xb2, 0x00, 0x00, // .........;......
- 0x00, 0xb3, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0xb6, 0x00, 0x00, // ......... ......
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0xb6, 0x00, 0x00, // .........;......
- 0x00, 0xb7, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0xc1, 0x00, 0x00, // ......... ......
- 0x00, 0x03, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0xc1, 0x00, 0x00, // .........;......
- 0x00, 0xc2, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, // .........,......
- 0x00, 0x39, 0x01, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, // .9...c...c...c..
- 0x00, 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3a, 0x01, 0x00, 0x00, 0x6b, 0x00, 0x00, // .,.......:...k..
- 0x00, 0x6b, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, // .k...k...6......
- 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, // ................
- 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, // .....=.......9..
- 0x00, 0x38, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, // .8...=.......<..
- 0x00, 0x3b, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x09, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, // .;...P.......=..
- 0x00, 0x39, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x36, 0x00, 0x00, // .9...<...>...6..
- 0x00, 0x3d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, // .=...=..........
- 0x00, 0xb3, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, // .....=..........
- 0x00, 0xb7, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x7b, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, // .....A...{......
- 0x00, 0x78, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, // .x...C.......=..
- 0x00, 0x07, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, // .............Q..
- 0x00, 0x07, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
- 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0xe3, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, // .Q..............
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x50, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, // .....P..........
- 0x00, 0xe2, 0x00, 0x00, 0x00, 0xe3, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, // .............=..
- 0x00, 0x09, 0x00, 0x00, 0x00, 0xe5, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, // .........6...Q..
- 0x00, 0x06, 0x00, 0x00, 0x00, 0x35, 0x01, 0x00, 0x00, 0xe5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .....5..........
- 0x00, 0x51, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, 0x36, 0x01, 0x00, 0x00, 0xe5, 0x00, 0x00, // .Q.......6......
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x7b, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, // .....A...{......
- 0x00, 0x78, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, // .x...C.......=..
- 0x00, 0x07, 0x00, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, 0x56, 0x00, 0x05, // .............V..
- 0x00, 0x47, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x36, 0x01, 0x00, 0x00, 0x35, 0x01, 0x00, // .G.......6...5..
- 0x00, 0x58, 0x00, 0x07, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, // .X..............
- 0x00, 0xe4, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, // ................
- 0x00, 0x0e, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, // ................
- 0x00, 0x4f, 0x00, 0x08, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00, 0xeb, 0x00, 0x00, // .O..............
- 0x00, 0xeb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, // ................
- 0x00, 0x0c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1b, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, // ................
- 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, // ................
- 0x00, 0x1d, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1b, 0x01, 0x00, // ................
- 0x00, 0x39, 0x01, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x06, 0x01, 0x00, // .9...A...{......
- 0x00, 0x78, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, // .x...C...z...=..
- 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x01, 0x00, 0x00, 0x06, 0x01, 0x00, 0x00, 0x50, 0x00, 0x06, // .............P..
- 0x00, 0x0b, 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x07, 0x01, 0x00, 0x00, 0x07, 0x01, 0x00, // ................
- 0x00, 0x07, 0x01, 0x00, 0x00, 0x4f, 0x00, 0x08, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x01, 0x00, // .....O..........
- 0x00, 0xeb, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // ................
- 0x00, 0x02, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x27, 0x01, 0x00, // .............'..
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x1d, 0x01, 0x00, 0x00, 0x0a, 0x01, 0x00, // ................
- 0x00, 0x08, 0x01, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x0d, 0x01, 0x00, // .....A...{......
- 0x00, 0x78, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, // .x...C.......=..
- 0x00, 0x07, 0x00, 0x00, 0x00, 0x0e, 0x01, 0x00, 0x00, 0x0d, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x07, // ................
- 0x00, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, // ................
- 0x00, 0x86, 0x00, 0x00, 0x00, 0x0e, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x0b, 0x00, 0x00, // ................
- 0x00, 0x10, 0x01, 0x00, 0x00, 0x27, 0x01, 0x00, 0x00, 0x0f, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x06, // .....'..........
- 0x00, 0x0b, 0x00, 0x00, 0x00, 0x2b, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, // .....+..........
- 0x00, 0x10, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x2d, 0x01, 0x00, // .............-..
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x2b, 0x01, 0x00, 0x00, 0x3a, 0x01, 0x00, // .........+...:..
- 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x13, 0x01, 0x00, 0x00, 0xeb, 0x00, 0x00, // .Q..............
- 0x00, 0x03, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x14, 0x01, 0x00, // .....Q..........
- 0x00, 0x2d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, // .-.......Q......
- 0x00, 0x15, 0x01, 0x00, 0x00, 0x2d, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, // .....-.......Q..
- 0x00, 0x07, 0x00, 0x00, 0x00, 0x16, 0x01, 0x00, 0x00, 0x2d, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, // .........-......
- 0x00, 0x50, 0x00, 0x07, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x17, 0x01, 0x00, 0x00, 0x14, 0x01, 0x00, // .P..............
- 0x00, 0x15, 0x01, 0x00, 0x00, 0x16, 0x01, 0x00, 0x00, 0x13, 0x01, 0x00, 0x00, 0x3e, 0x00, 0x03, // .............>..
- 0x00, 0xc2, 0x00, 0x00, 0x00, 0x17, 0x01, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, // .............8..
- 0x00, 0x00, 0x00, 0x10, 0x00, // .....
+ 0x46, 0x53, 0x48, 0x0b, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x09, 0x75, // FSH............u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x02, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // _params0........
+ 0x00, 0x00, 0x0a, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x00, 0x01, 0x00, // ...s_texColor...
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x02, 0x00, 0x00, 0x76, 0x61, 0x72, 0x79, 0x69, // ...........varyi
+ 0x6e, 0x67, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x76, 0x5f, // ng highp vec4 v_
+ 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x76, 0x61, 0x72, 0x79, 0x69, 0x6e, 0x67, 0x20, // color0;.varying
+ 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, // highp vec3 v_tex
+ 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, // coord0;.uniform
+ 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, // highp vec4 u_par
+ 0x61, 0x6d, 0x73, 0x30, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x73, 0x61, // ams0;.uniform sa
+ 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x32, 0x44, 0x41, 0x72, 0x72, 0x61, 0x79, 0x20, 0x73, 0x5f, 0x74, // mpler2DArray s_t
+ 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x3b, 0x0a, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x6d, 0x61, // exColor;.void ma
+ 0x69, 0x6e, 0x20, 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, // in ().{. highp
+ 0x76, 0x65, 0x63, 0x33, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x3b, 0x0a, 0x20, // vec3 tmpvar_1;.
+ 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x79, 0x20, 0x3d, 0x20, 0x76, // tmpvar_1.xy = v
+ 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x2e, 0x78, 0x79, 0x3b, 0x0a, 0x20, // _texcoord0.xy;.
+ 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x7a, 0x20, 0x3d, 0x20, 0x75, 0x5f, // tmpvar_1.z = u_
+ 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x2e, 0x79, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x65, 0x64, // params0.y;. med
+ 0x69, 0x75, 0x6d, 0x70, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // iump vec4 tmpvar
+ 0x5f, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, // _2;. lowp vec4
+ 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x5f, 0x63, 0x6f, 0x6c, // _color_3;. _col
+ 0x6f, 0x72, 0x5f, 0x33, 0x20, 0x3d, 0x20, 0x28, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x32, // or_3 = (texture2
+ 0x44, 0x41, 0x72, 0x72, 0x61, 0x79, 0x4c, 0x6f, 0x64, 0x45, 0x58, 0x54, 0x20, 0x28, 0x73, 0x5f, // DArrayLodEXT (s_
+ 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x2c, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // texColor, tmpvar
+ 0x5f, 0x31, 0x2c, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x2e, 0x78, 0x29, // _1, u_params0.x)
+ 0x20, 0x2a, 0x20, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, // * v_color0);.
+ 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // lowp vec4 tmpvar
+ 0x5f, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x34, 0x2e, 0x78, // _4;. tmpvar_4.x
+ 0x79, 0x7a, 0x20, 0x3d, 0x20, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x61, 0x62, 0x73, 0x28, 0x28, 0x0a, // yz = pow (abs((.
+ 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x78, 0x20, 0x28, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x61, 0x62, // mix (pow (ab
+ 0x73, 0x28, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x33, 0x2e, 0x78, 0x79, 0x7a, 0x29, 0x2c, // s(_color_3.xyz),
+ 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x32, 0x2e, 0x32, 0x2c, 0x20, 0x32, 0x2e, 0x32, 0x2c, 0x20, // vec3(2.2, 2.2,
+ 0x32, 0x2e, 0x32, 0x29, 0x29, 0x2c, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x33, 0x2e, // 2.2)), _color_3.
+ 0x78, 0x79, 0x7a, 0x2c, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x2e, 0x7a, // xyz, u_params0.z
+ 0x29, 0x0a, 0x20, 0x20, 0x20, 0x2a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x70, 0x32, // ). * . exp2
+ 0x28, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x2e, 0x77, 0x29, 0x0a, 0x20, 0x20, // (u_params0.w).
+ 0x29, 0x29, 0x2c, 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x30, 0x2e, 0x34, 0x35, 0x34, 0x35, 0x34, // )), vec3(0.45454
+ 0x35, 0x34, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x35, 0x34, 0x35, 0x34, 0x35, 0x34, 0x2c, 0x20, 0x30, // 54, 0.4545454, 0
+ 0x2e, 0x34, 0x35, 0x34, 0x35, 0x34, 0x35, 0x34, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, // .4545454));. tm
+ 0x70, 0x76, 0x61, 0x72, 0x5f, 0x34, 0x2e, 0x77, 0x20, 0x3d, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, // pvar_4.w = _colo
+ 0x72, 0x5f, 0x33, 0x2e, 0x77, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // r_3.w;. tmpvar_
+ 0x32, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x34, 0x3b, 0x0a, 0x20, 0x20, // 2 = tmpvar_4;.
+ 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x74, // gl_FragColor = t
+ 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x00, // mpvar_2;.}...
};
-static const uint8_t fs_texture_array_dx9[615] =
+static const uint8_t fs_texture_array_spv[1915] =
{
- 0x46, 0x53, 0x48, 0x06, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0a, 0x73, // FSH............s
- 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x01, 0x00, 0x00, 0x01, 0x00, 0x08, // _texColor0......
- 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x01, 0x00, 0x00, 0x01, 0x00, 0x34, 0x02, // u_params......4.
- 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xfe, 0xff, 0x2c, 0x00, 0x43, 0x54, 0x41, 0x42, 0x1c, 0x00, // ........,.CTAB..
- 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0x02, 0x00, 0x00, 0x00, 0x1c, 0x00, // ................
- 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x03, 0x00, // ......|...D.....
- 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, // ......P.......`.
- 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, // ..........l.....
- 0x00, 0x00, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x00, 0xab, 0x04, 0x00, // ..s_texColor....
- 0x0c, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, // ..............u_
- 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x00, 0xab, 0xab, 0xab, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, // params..........
- 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x73, 0x5f, 0x33, 0x5f, 0x30, // ..........ps_3_0
- 0x00, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, // .Microsoft (R) H
- 0x4c, 0x53, 0x4c, 0x20, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x69, // LSL Shader Compi
- 0x6c, 0x65, 0x72, 0x20, 0x31, 0x30, 0x2e, 0x31, 0x00, 0xab, 0x51, 0x00, 0x00, 0x05, 0x01, 0x00, // ler 10.1..Q.....
- 0x0f, 0xa0, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xcd, 0xcc, 0x0c, 0x40, 0x2f, 0xba, // .....?.......@/.
- 0xe8, 0x3e, 0x1f, 0x00, 0x00, 0x02, 0x0a, 0x00, 0x00, 0x80, 0x00, 0x00, 0x0f, 0x90, 0x1f, 0x00, // .>..............
- 0x00, 0x02, 0x05, 0x00, 0x00, 0x80, 0x01, 0x00, 0x03, 0x90, 0x1f, 0x00, 0x00, 0x02, 0x00, 0x00, // ................
- 0x00, 0x90, 0x00, 0x08, 0x0f, 0xa0, 0x05, 0x00, 0x00, 0x03, 0x00, 0x00, 0x07, 0x80, 0x01, 0x00, // ................
- 0xd0, 0xa0, 0x01, 0x00, 0xc4, 0x90, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x08, 0x80, 0x00, 0x00, // ................
- 0x00, 0xa0, 0x5f, 0x00, 0x00, 0x03, 0x00, 0x00, 0x0f, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x00, 0x08, // .._.............
- 0xe4, 0xa0, 0x05, 0x00, 0x00, 0x03, 0x01, 0x00, 0x0f, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x00, 0x00, // ................
- 0xe4, 0x90, 0x0f, 0x00, 0x00, 0x02, 0x02, 0x00, 0x01, 0x80, 0x01, 0x00, 0x00, 0x8b, 0x0f, 0x00, // ................
- 0x00, 0x02, 0x02, 0x00, 0x02, 0x80, 0x01, 0x00, 0x55, 0x8b, 0x0f, 0x00, 0x00, 0x02, 0x02, 0x00, // ........U.......
- 0x04, 0x80, 0x01, 0x00, 0xaa, 0x8b, 0x01, 0x00, 0x00, 0x02, 0x00, 0x08, 0x08, 0x80, 0x01, 0x00, // ................
- 0xff, 0x80, 0x05, 0x00, 0x00, 0x03, 0x01, 0x00, 0x07, 0x80, 0x02, 0x00, 0xe4, 0x80, 0x01, 0x00, // ................
- 0xaa, 0xa0, 0x0e, 0x00, 0x00, 0x02, 0x02, 0x00, 0x01, 0x80, 0x01, 0x00, 0x00, 0x80, 0x0e, 0x00, // ................
- 0x00, 0x02, 0x02, 0x00, 0x02, 0x80, 0x01, 0x00, 0x55, 0x80, 0x0e, 0x00, 0x00, 0x02, 0x02, 0x00, // ........U.......
- 0x04, 0x80, 0x01, 0x00, 0xaa, 0x80, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, // ................
- 0xe4, 0x80, 0x00, 0x00, 0xe4, 0x90, 0x02, 0x00, 0xe4, 0x81, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, // ................
- 0x07, 0x80, 0x00, 0x00, 0xaa, 0xa0, 0x00, 0x00, 0xe4, 0x80, 0x02, 0x00, 0xe4, 0x80, 0x0e, 0x00, // ................
- 0x00, 0x02, 0x00, 0x00, 0x08, 0x80, 0x00, 0x00, 0xff, 0xa0, 0x05, 0x00, 0x00, 0x03, 0x00, 0x00, // ................
- 0x07, 0x80, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x0f, 0x00, 0x00, 0x02, 0x01, 0x00, // ................
- 0x01, 0x80, 0x00, 0x00, 0x00, 0x8b, 0x0f, 0x00, 0x00, 0x02, 0x01, 0x00, 0x02, 0x80, 0x00, 0x00, // ................
- 0x55, 0x8b, 0x0f, 0x00, 0x00, 0x02, 0x01, 0x00, 0x04, 0x80, 0x00, 0x00, 0xaa, 0x8b, 0x05, 0x00, // U...............
- 0x00, 0x03, 0x00, 0x00, 0x07, 0x80, 0x01, 0x00, 0xe4, 0x80, 0x01, 0x00, 0xff, 0xa0, 0x0e, 0x00, // ................
- 0x00, 0x02, 0x00, 0x08, 0x01, 0x80, 0x00, 0x00, 0x00, 0x80, 0x0e, 0x00, 0x00, 0x02, 0x00, 0x08, // ................
- 0x02, 0x80, 0x00, 0x00, 0x55, 0x80, 0x0e, 0x00, 0x00, 0x02, 0x00, 0x08, 0x04, 0x80, 0x00, 0x00, // ....U...........
- 0xaa, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, // .......
+ 0x46, 0x53, 0x48, 0x0b, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x09, 0x75, // FSH............u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // _params0........
+ 0x84, 0x01, 0x0a, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x00, 0x02, // ...s_texColor0..
+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x1a, 0x00, 0x3c, 0x07, 0x00, 0x00, 0x03, 0x02, 0x23, 0x07, 0x00, // .......<.....#..
+ 0x00, 0x01, 0x00, 0x0a, 0x00, 0x08, 0x00, 0x56, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, // .......V........
+ 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, // ...............G
+ 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0e, // LSL.std.450.....
+ 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x09, 0x00, 0x04, // ................
+ 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0xbb, // .......main.....
+ 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, 0x10, // ................
+ 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x05, // ................
+ 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, // ...............m
+ 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x73, // ain........<...s
+ 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, // _texColorSampler
+ 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x73, 0x5f, 0x74, 0x65, 0x78, // .......?...s_tex
+ 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x00, 0x00, 0x00, 0x05, // ColorTexture....
+ 0x00, 0x06, 0x00, 0x79, 0x00, 0x00, 0x00, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0x6c, // ...y...UniformBl
+ 0x6f, 0x63, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x79, 0x00, 0x00, 0x00, 0x00, // ock........y....
+ 0x00, 0x00, 0x00, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x00, 0x00, 0x00, 0x05, // ...u_params0....
+ 0x00, 0x03, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0xbb, // ...{............
+ 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x00, // ...gl_FragCoord.
+ 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0xbe, 0x00, 0x00, 0x00, 0x76, 0x5f, 0x63, 0x6f, 0x6c, // ...........v_col
+ 0x6f, 0x72, 0x30, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0xc2, 0x00, 0x00, 0x00, 0x76, // or0............v
+ 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x00, 0x05, 0x00, 0x06, 0x00, 0xcf, // _texcoord0......
+ 0x00, 0x00, 0x00, 0x62, 0x67, 0x66, 0x78, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x44, 0x61, 0x74, 0x61, // ...bgfx_FragData
+ 0x30, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, // 0..G...<..."....
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x12, // ...G...<...!....
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, // ...G...?..."....
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, // ...G...?...!....
+ 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, // ...H...y.......#
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x79, 0x00, 0x00, 0x00, 0x02, // .......G...y....
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, // ...G...{..."....
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, // ...G...{...!....
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xbb, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0f, // ...G............
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xbe, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, // ...G............
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xc2, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x01, // ...G............
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xcf, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, // ...G............
+ 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, // ...........!....
+ 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x02, 0x00, 0x06, 0x00, 0x00, 0x00, 0x16, // ................
+ 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x08, // ....... ........
+ 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, // ................
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, // ................
+ 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x17, // ................
+ 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x20, // ...............
+ 0x00, 0x04, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3b, // ...;...........;
+ 0x00, 0x04, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, // ...;...<.......
+ 0x00, 0x04, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x3b, // ...>...........;
+ 0x00, 0x04, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, // ...>...?........
+ 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, // ...B... .......+
+ 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, // ...B...G........
+ 0x00, 0x03, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, // ...K.......+....
+ 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0xcd, 0xcc, 0x0c, 0x40, 0x2b, 0x00, 0x04, 0x00, 0x07, // ...g......@+....
+ 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x2f, 0xba, 0xe8, 0x3e, 0x1e, 0x00, 0x03, 0x00, 0x79, // ...o.../..>....y
+ 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x02, // ....... ...z....
+ 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x7b, // ...y...;...z...{
+ 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x20, // ...........|...
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x7d, // .......+...|...}
+ 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x02, // ....... ...~....
+ 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x88, // .......+........
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x2b, 0x00, 0x04, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x89, // ......@+...|....
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x7c, 0x00, 0x00, 0x00, 0xa6, // .......+...|....
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x7c, 0x00, 0x00, 0x00, 0xb0, // .......+...|....
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0xba, 0x00, 0x00, 0x00, 0x01, // ....... ........
+ 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0xba, 0x00, 0x00, 0x00, 0xbb, // .......;........
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0xba, 0x00, 0x00, 0x00, 0xbe, // .......;........
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0xc1, 0x00, 0x00, 0x00, 0x01, // ....... ........
+ 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0xc1, 0x00, 0x00, 0x00, 0xc2, // .......;........
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0xce, 0x00, 0x00, 0x00, 0x03, // ....... ........
+ 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0xce, 0x00, 0x00, 0x00, 0xcf, // .......;........
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x54, // .......,.......T
+ 0x01, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x2c, // ...g...g...g...,
+ 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x55, 0x01, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x6f, // .......U...o...o
+ 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, // ...o...6........
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, // ................
+ 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x3c, // ...=.......=...<
+ 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x3f, // ...=.......@...?
+ 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0xbe, // ...=............
+ 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xc2, // ...=............
+ 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x7e, 0x00, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00, 0x7b, // ...A...~.......{
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, // ...G.......=....
+ 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, // ...........Q....
+ 0x00, 0x00, 0x00, 0xf1, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, // ...............Q
+ 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x01, // ................
+ 0x00, 0x00, 0x00, 0x50, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, 0xf1, // ...P............
+ 0x00, 0x00, 0x00, 0xf2, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x7e, // ...........A...~
+ 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0xb0, // .......{...G....
+ 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, 0xf5, // ...=............
+ 0x00, 0x00, 0x00, 0x56, 0x00, 0x05, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, 0x40, // ...V...K.......@
+ 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x58, 0x00, 0x07, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0c, // ...=...X........
+ 0x01, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xf6, // ................
+ 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x0c, // ................
+ 0x01, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x08, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x12, // .......O........
+ 0x01, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, // ................
+ 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x32, // ...............2
+ 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, 0x0c, // ................
+ 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x34, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1a, // .......4........
+ 0x00, 0x00, 0x00, 0x32, 0x01, 0x00, 0x00, 0x54, 0x01, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x7e, // ...2...T...A...~
+ 0x00, 0x00, 0x00, 0x24, 0x01, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x7d, // ...$...{...G...}
+ 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x25, 0x01, 0x00, 0x00, 0x24, // ...=.......%...$
+ 0x01, 0x00, 0x00, 0x50, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x26, 0x01, 0x00, 0x00, 0x25, // ...P.......&...%
+ 0x01, 0x00, 0x00, 0x25, 0x01, 0x00, 0x00, 0x25, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x0b, // ...%...%........
+ 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x34, // ...@...........4
+ 0x01, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, 0x26, 0x01, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x7e, // .......&...A...~
+ 0x00, 0x00, 0x00, 0x2a, 0x01, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x89, // ...*...{...G....
+ 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x2b, 0x01, 0x00, 0x00, 0x2a, // ...=.......+...*
+ 0x01, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00, 0x2c, 0x01, 0x00, 0x00, 0x01, // ...........,....
+ 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x2b, 0x01, 0x00, 0x00, 0x8e, // ...........+....
+ 0x00, 0x05, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x2d, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x2c, // .......-...@...,
+ 0x01, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x45, 0x01, 0x00, 0x00, 0x01, // ...........E....
+ 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x2d, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x0b, // .......-........
+ 0x00, 0x00, 0x00, 0x47, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x45, // ...G...........E
+ 0x01, 0x00, 0x00, 0x55, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x16, // ...U...Q........
+ 0x01, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, // ...........Q....
+ 0x00, 0x00, 0x00, 0x17, 0x01, 0x00, 0x00, 0x47, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, // .......G.......Q
+ 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x18, 0x01, 0x00, 0x00, 0x47, 0x01, 0x00, 0x00, 0x01, // ...........G....
+ 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x19, 0x01, 0x00, 0x00, 0x47, // ...Q...........G
+ 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x1a, // .......P........
+ 0x01, 0x00, 0x00, 0x17, 0x01, 0x00, 0x00, 0x18, 0x01, 0x00, 0x00, 0x19, 0x01, 0x00, 0x00, 0x16, // ................
+ 0x01, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0xcf, 0x00, 0x00, 0x00, 0x1a, 0x01, 0x00, 0x00, 0xfd, // ...>............
+ 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00, // ...8.......
};
-static const uint8_t fs_texture_array_dx11[814] =
+static const uint8_t fs_texture_array_dx9[624] =
{
- 0x46, 0x53, 0x48, 0x06, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x08, 0x75, // FSH............u
- 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0a, 0x73, 0x5f, // _params.......s_
- 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x01, 0x00, 0x00, 0x01, 0x00, 0xf8, 0x02, // texColor0.......
- 0x00, 0x00, 0x44, 0x58, 0x42, 0x43, 0x77, 0x19, 0xf0, 0x17, 0xe9, 0x7f, 0x9c, 0x60, 0x64, 0x2e, // ..DXBCw......`d.
- 0x99, 0x47, 0xa5, 0xb8, 0x85, 0xdb, 0x01, 0x00, 0x00, 0x00, 0xf8, 0x02, 0x00, 0x00, 0x03, 0x00, // .G..............
- 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, 0x49, 0x53, // ..,...........IS
- 0x47, 0x4e, 0x6c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x50, 0x00, // GNl...........P.
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
- 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
- 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x62, 0x00, // ..............b.
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, // ................
- 0x00, 0x00, 0x07, 0x03, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, // ......SV_POSITIO
- 0x4e, 0x00, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, // N.COLOR.TEXCOORD
- 0x00, 0xab, 0x4f, 0x53, 0x47, 0x4e, 0x2c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, // ..OSGN,.........
- 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, // .. .............
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x54, 0x41, 0x52, // ..........SV_TAR
- 0x47, 0x45, 0x54, 0x00, 0xab, 0xab, 0x53, 0x48, 0x44, 0x52, 0x1c, 0x02, 0x00, 0x00, 0x40, 0x00, // GET...SHDR....@.
- 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x04, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, // ......Y...F. ...
- 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x03, 0x00, 0x60, 0x10, 0x00, 0x00, 0x00, // ......Z....`....
- 0x00, 0x00, 0x58, 0x40, 0x00, 0x04, 0x00, 0x70, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, // ..X@...p......UU
- 0x00, 0x00, 0x62, 0x10, 0x00, 0x03, 0xf2, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x62, 0x10, // ..b...........b.
- 0x00, 0x03, 0x32, 0x10, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x03, 0xf2, 0x20, // ..2.......e....
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x36, 0x00, // ......h.......6.
- 0x00, 0x05, 0x32, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x10, 0x10, 0x00, 0x02, 0x00, // ..2.......F.....
- 0x00, 0x00, 0x36, 0x00, 0x00, 0x06, 0x42, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x80, // ..6...B.........
- 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x0c, 0xf2, 0x00, // .........H.....
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x7e, // ......F.......F~
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x80, // .......`........
- 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x07, 0xf2, 0x00, // .........8.....
- 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x1e, // ......F.......F.
- 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x06, 0x72, 0x00, 0x10, 0x00, 0x01, 0x00, // ....../...r.....
- 0x00, 0x00, 0x46, 0x02, 0x10, 0x80, 0x81, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x36, 0x00, // ..F...........6.
- 0x00, 0x05, 0x82, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x10, 0x00, 0x01, 0x00, // ... ......:.....
- 0x00, 0x00, 0x38, 0x00, 0x00, 0x0a, 0x72, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x02, // ..8...r.......F.
- 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0xcd, 0xcc, 0x0c, 0x40, 0xcd, 0xcc, // .......@.....@..
- 0x0c, 0x40, 0xcd, 0xcc, 0x0c, 0x40, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x05, 0x72, 0x00, // .@...@........r.
- 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, // ......F.......2.
- 0x00, 0x0a, 0x72, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, // ..r.......F.....
- 0x00, 0x00, 0x46, 0x12, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x80, 0x41, 0x00, // ..F.......F...A.
- 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, 0x72, 0x00, 0x10, 0x00, 0x00, 0x00, // ......2...r.....
- 0x00, 0x00, 0xa6, 0x8a, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, // .... .........F.
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x19, 0x00, // ......F.........
- 0x00, 0x06, 0x82, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x80, 0x20, 0x00, 0x00, 0x00, // ..........:. ...
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x07, 0x72, 0x00, 0x10, 0x00, 0x00, 0x00, // ......8...r.....
- 0x00, 0x00, 0xf6, 0x0f, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, // ..........F.....
- 0x00, 0x00, 0x2f, 0x00, 0x00, 0x06, 0x72, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, // ../...r.......F.
- 0x10, 0x80, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x0a, 0x72, 0x00, // ..........8...r.
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, // ......F........@
- 0x00, 0x00, 0x2f, 0xba, 0xe8, 0x3e, 0x2f, 0xba, 0xe8, 0x3e, 0x2f, 0xba, 0xe8, 0x3e, 0x00, 0x00, // ../..>/..>/..>..
- 0x00, 0x00, 0x19, 0x00, 0x00, 0x05, 0x72, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, // ......r ......F.
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x01, 0x00, 0x00, 0x10, 0x00, // ......>.......
+ 0x46, 0x53, 0x48, 0x0b, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0a, 0x73, // FSH............s
+ 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, // _texColor0......
+ 0x00, 0x00, 0x00, 0x09, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x12, 0x01, 0x00, // ....u_params0...
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x02, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xfe, // .......4........
+ 0xff, 0x2c, 0x00, 0x43, 0x54, 0x41, 0x42, 0x1c, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, // .,.CTAB.........
+ 0x03, 0xff, 0xff, 0x02, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x7c, // ...............|
+ 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x50, // ...D...........P
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, // .......`........
+ 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x5f, 0x74, 0x65, 0x78, // ...l.......s_tex
+ 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x00, 0xab, 0x04, 0x00, 0x0c, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, // Color...........
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, // .......u_params0
+ 0x00, 0xab, 0xab, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, // ................
+ 0x00, 0x00, 0x00, 0x70, 0x73, 0x5f, 0x33, 0x5f, 0x30, 0x00, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, // ...ps_3_0.Micros
+ 0x6f, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4c, 0x53, 0x4c, 0x20, 0x53, 0x68, 0x61, // oft (R) HLSL Sha
+ 0x64, 0x65, 0x72, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x20, 0x31, 0x30, 0x2e, // der Compiler 10.
+ 0x31, 0x00, 0xab, 0x51, 0x00, 0x00, 0x05, 0x01, 0x00, 0x0f, 0xa0, 0x00, 0x00, 0x80, 0x3f, 0x00, // 1..Q..........?.
+ 0x00, 0x00, 0x00, 0xcd, 0xcc, 0x0c, 0x40, 0x2f, 0xba, 0xe8, 0x3e, 0x1f, 0x00, 0x00, 0x02, 0x0a, // ......@/..>.....
+ 0x00, 0x00, 0x80, 0x00, 0x00, 0x0f, 0x90, 0x1f, 0x00, 0x00, 0x02, 0x05, 0x00, 0x00, 0x80, 0x01, // ................
+ 0x00, 0x03, 0x90, 0x1f, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x90, 0x00, 0x08, 0x0f, 0xa0, 0x05, // ................
+ 0x00, 0x00, 0x03, 0x00, 0x00, 0x07, 0x80, 0x01, 0x00, 0xd0, 0xa0, 0x01, 0x00, 0xc4, 0x90, 0x01, // ................
+ 0x00, 0x00, 0x02, 0x00, 0x00, 0x08, 0x80, 0x00, 0x00, 0x00, 0xa0, 0x5f, 0x00, 0x00, 0x03, 0x00, // ..........._....
+ 0x00, 0x0f, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x00, 0x08, 0xe4, 0xa0, 0x05, 0x00, 0x00, 0x03, 0x01, // ................
+ 0x00, 0x0f, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x00, 0x00, 0xe4, 0x90, 0x0f, 0x00, 0x00, 0x02, 0x02, // ................
+ 0x00, 0x01, 0x80, 0x01, 0x00, 0x00, 0x8b, 0x0f, 0x00, 0x00, 0x02, 0x02, 0x00, 0x02, 0x80, 0x01, // ................
+ 0x00, 0x55, 0x8b, 0x0f, 0x00, 0x00, 0x02, 0x02, 0x00, 0x04, 0x80, 0x01, 0x00, 0xaa, 0x8b, 0x01, // .U..............
+ 0x00, 0x00, 0x02, 0x00, 0x08, 0x08, 0x80, 0x01, 0x00, 0xff, 0x80, 0x05, 0x00, 0x00, 0x03, 0x01, // ................
+ 0x00, 0x07, 0x80, 0x02, 0x00, 0xe4, 0x80, 0x01, 0x00, 0xaa, 0xa0, 0x0e, 0x00, 0x00, 0x02, 0x02, // ................
+ 0x00, 0x01, 0x80, 0x01, 0x00, 0x00, 0x80, 0x0e, 0x00, 0x00, 0x02, 0x02, 0x00, 0x02, 0x80, 0x01, // ................
+ 0x00, 0x55, 0x80, 0x0e, 0x00, 0x00, 0x02, 0x02, 0x00, 0x04, 0x80, 0x01, 0x00, 0xaa, 0x80, 0x04, // .U..............
+ 0x00, 0x00, 0x04, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x00, 0x00, 0xe4, 0x90, 0x02, // ................
+ 0x00, 0xe4, 0x81, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0xaa, 0xa0, 0x00, // ................
+ 0x00, 0xe4, 0x80, 0x02, 0x00, 0xe4, 0x80, 0x0e, 0x00, 0x00, 0x02, 0x00, 0x00, 0x08, 0x80, 0x00, // ................
+ 0x00, 0xff, 0xa0, 0x05, 0x00, 0x00, 0x03, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0xff, 0x80, 0x00, // ................
+ 0x00, 0xe4, 0x80, 0x0f, 0x00, 0x00, 0x02, 0x01, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x8b, 0x0f, // ................
+ 0x00, 0x00, 0x02, 0x01, 0x00, 0x02, 0x80, 0x00, 0x00, 0x55, 0x8b, 0x0f, 0x00, 0x00, 0x02, 0x01, // .........U......
+ 0x00, 0x04, 0x80, 0x00, 0x00, 0xaa, 0x8b, 0x05, 0x00, 0x00, 0x03, 0x00, 0x00, 0x07, 0x80, 0x01, // ................
+ 0x00, 0xe4, 0x80, 0x01, 0x00, 0xff, 0xa0, 0x0e, 0x00, 0x00, 0x02, 0x00, 0x08, 0x01, 0x80, 0x00, // ................
+ 0x00, 0x00, 0x80, 0x0e, 0x00, 0x00, 0x02, 0x00, 0x08, 0x02, 0x80, 0x00, 0x00, 0x55, 0x80, 0x0e, // .............U..
+ 0x00, 0x00, 0x02, 0x00, 0x08, 0x04, 0x80, 0x00, 0x00, 0xaa, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, // ................
};
-static const uint8_t fs_texture_array_mtl[1054] =
+static const uint8_t fs_texture_array_dx11[844] =
{
- 0x46, 0x53, 0x48, 0x06, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x04, // FSH.............
- 0x00, 0x00, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, // ..using namespac
- 0x65, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, // e metal;.struct
- 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x70, // xlatMtlShaderInp
- 0x75, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x76, 0x5f, // ut {. float4 v_
- 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, // color0;. float3
- 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, 0x0a, 0x7d, 0x3b, // v_texcoord0;.};
- 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, // .struct xlatMtlS
- 0x68, 0x61, 0x64, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, // haderOutput {.
- 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, // float4 gl_FragCo
- 0x6c, 0x6f, 0x72, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x78, // lor;.};.struct x
- 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x55, 0x6e, 0x69, 0x66, // latMtlShaderUnif
- 0x6f, 0x72, 0x6d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x75, // orm {. float4 u
- 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x66, 0x72, 0x61, 0x67, // _params;.};.frag
- 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, // ment xlatMtlShad
- 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, // erOutput xlatMtl
- 0x4d, 0x61, 0x69, 0x6e, 0x20, 0x28, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, // Main (xlatMtlSha
- 0x64, 0x65, 0x72, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x69, 0x20, // derInput _mtl_i
- 0x5b, 0x5b, 0x73, 0x74, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x5d, 0x5d, 0x2c, 0x20, 0x63, 0x6f, // [[stage_in]], co
- 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, // nstant xlatMtlSh
- 0x61, 0x64, 0x65, 0x72, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x26, 0x20, 0x5f, 0x6d, 0x74, // aderUniform& _mt
- 0x6c, 0x5f, 0x75, 0x20, 0x5b, 0x5b, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x28, 0x30, 0x29, 0x5d, // l_u [[buffer(0)]
- 0x5d, 0x0a, 0x20, 0x20, 0x2c, 0x20, 0x20, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x32, // ]. , texture2
- 0x64, 0x5f, 0x61, 0x72, 0x72, 0x61, 0x79, 0x3c, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x20, 0x73, // d_array<float> s
- 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x5b, 0x5b, 0x74, 0x65, 0x78, 0x74, // _texColor [[text
- 0x75, 0x72, 0x65, 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x2c, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, // ure(0)]], sample
- 0x72, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x73, 0x6d, 0x70, 0x5f, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, // r _mtlsmp_s_texC
- 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x5b, 0x5b, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x28, 0x30, // olor [[sampler(0
- 0x29, 0x5d, 0x5d, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, // )]]).{. xlatMtl
- 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x5f, 0x6d, 0x74, // ShaderOutput _mt
- 0x6c, 0x5f, 0x6f, 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x74, 0x6d, // l_o;. float3 tm
- 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, // pvar_1 = 0;. tm
- 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x79, 0x20, 0x3d, 0x20, 0x5f, 0x6d, 0x74, 0x6c, // pvar_1.xy = _mtl
- 0x5f, 0x69, 0x2e, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x2e, 0x78, // _i.v_texcoord0.x
- 0x79, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x7a, 0x20, // y;. tmpvar_1.z
- 0x3d, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x2e, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, // = _mtl_u.u_param
- 0x73, 0x2e, 0x79, 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x5f, 0x63, // s.y;. float4 _c
- 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x32, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x5f, 0x63, // olor_2 = 0;. _c
- 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x32, 0x20, 0x3d, 0x20, 0x28, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, // olor_2 = (s_texC
- 0x6f, 0x6c, 0x6f, 0x72, 0x2e, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x28, 0x5f, 0x6d, 0x74, 0x6c, // olor.sample(_mtl
- 0x73, 0x6d, 0x70, 0x5f, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x2c, 0x20, // smp_s_texColor,
- 0x28, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x32, 0x29, 0x28, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // (float2)((tmpvar
- 0x5f, 0x31, 0x29, 0x2e, 0x78, 0x79, 0x29, 0x2c, 0x20, 0x28, 0x75, 0x69, 0x6e, 0x74, 0x29, 0x28, // _1).xy), (uint)(
- 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x29, 0x2e, 0x7a, 0x29, 0x2c, 0x20, 0x6c, // (tmpvar_1).z), l
- 0x65, 0x76, 0x65, 0x6c, 0x28, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x2e, 0x75, 0x5f, 0x70, 0x61, // evel(_mtl_u.u_pa
- 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x78, 0x29, 0x29, 0x20, 0x2a, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, // rams.x)) * _mtl_
- 0x69, 0x2e, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x66, // i.v_color0);. f
- 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x33, 0x20, 0x3d, // loat4 tmpvar_3 =
- 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x33, 0x2e, 0x78, // 0;. tmpvar_3.x
- 0x79, 0x7a, 0x20, 0x3d, 0x20, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x61, 0x62, 0x73, 0x28, 0x28, 0x0a, // yz = pow (abs((.
- 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x78, 0x20, 0x28, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x61, 0x62, // mix (pow (ab
- 0x73, 0x28, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x32, 0x2e, 0x78, 0x79, 0x7a, 0x29, 0x2c, // s(_color_2.xyz),
- 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x32, 0x2e, 0x32, 0x2c, 0x20, 0x32, 0x2e, 0x32, // float3(2.2, 2.2
- 0x2c, 0x20, 0x32, 0x2e, 0x32, 0x29, 0x29, 0x2c, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, // , 2.2)), _color_
- 0x32, 0x2e, 0x78, 0x79, 0x7a, 0x2c, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x2e, 0x75, 0x5f, // 2.xyz, _mtl_u.u_
- 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x7a, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x2a, 0x20, 0x0a, // params.z). * .
- 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x70, 0x32, 0x28, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x2e, // exp2(_mtl_u.
- 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x29, 0x29, // u_params.w). ))
- 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x30, 0x2e, 0x34, 0x35, 0x34, 0x35, 0x34, // , float3(0.45454
- 0x35, 0x34, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x35, 0x34, 0x35, 0x34, 0x35, 0x34, 0x2c, 0x20, 0x30, // 54, 0.4545454, 0
- 0x2e, 0x34, 0x35, 0x34, 0x35, 0x34, 0x35, 0x34, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, // .4545454));. tm
- 0x70, 0x76, 0x61, 0x72, 0x5f, 0x33, 0x2e, 0x77, 0x20, 0x3d, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, // pvar_3.w = _colo
- 0x72, 0x5f, 0x32, 0x2e, 0x77, 0x3b, 0x0a, 0x20, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x6f, 0x2e, // r_2.w;. _mtl_o.
- 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x74, // gl_FragColor = t
- 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, // mpvar_3;. retur
- 0x6e, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x6f, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x00, // n _mtl_o;.}...
+ 0x46, 0x53, 0x48, 0x0b, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x09, 0x75, // FSH............u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // _params0........
+ 0x00, 0x00, 0x0a, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x01, 0x00, // ...s_texColor0..
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, // ........s_texCol
+ 0x6f, 0x72, 0x30, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x02, 0x00, 0x00, // or0.............
+ 0x44, 0x58, 0x42, 0x43, 0x77, 0x19, 0xf0, 0x17, 0xe9, 0x7f, 0x9c, 0x60, 0x64, 0x2e, 0x99, 0x47, // DXBCw......`d..G
+ 0xa5, 0xb8, 0x85, 0xdb, 0x01, 0x00, 0x00, 0x00, 0xf8, 0x02, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, // ................
+ 0x2c, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, 0x49, 0x53, 0x47, 0x4e, // ,...........ISGN
+ 0x6c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, // l...........P...
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
+ 0x0f, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
+ 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, // ............b...
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, // ................
+ 0x07, 0x03, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x00, // ....SV_POSITION.
+ 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x00, 0xab, // COLOR.TEXCOORD..
+ 0x4f, 0x53, 0x47, 0x4e, 0x2c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, // OSGN,...........
+ 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, // ...............
+ 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x54, 0x41, 0x52, 0x47, 0x45, // ........SV_TARGE
+ 0x54, 0x00, 0xab, 0xab, 0x53, 0x48, 0x44, 0x52, 0x1c, 0x02, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // T...SHDR....@...
+ 0x87, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x04, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, // ....Y...F. .....
+ 0x01, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x03, 0x00, 0x60, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ....Z....`......
+ 0x58, 0x40, 0x00, 0x04, 0x00, 0x70, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, 0x00, 0x00, // X@...p......UU..
+ 0x62, 0x10, 0x00, 0x03, 0xf2, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x62, 0x10, 0x00, 0x03, // b...........b...
+ 0x32, 0x10, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x03, 0xf2, 0x20, 0x10, 0x00, // 2.......e.... ..
+ 0x00, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, // ....h.......6...
+ 0x32, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x10, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, // 2.......F.......
+ 0x36, 0x00, 0x00, 0x06, 0x42, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x80, 0x20, 0x00, // 6...B......... .
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x0c, 0xf2, 0x00, 0x10, 0x00, // ........H.......
+ 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x7e, 0x10, 0x00, // ....F.......F~..
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x80, 0x20, 0x00, // .....`........ .
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x07, 0xf2, 0x00, 0x10, 0x00, // ........8.......
+ 0x01, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x1e, 0x10, 0x00, // ....F.......F...
+ 0x01, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x06, 0x72, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, // ..../...r.......
+ 0x46, 0x02, 0x10, 0x80, 0x81, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, // F...........6...
+ 0x82, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, // . ......:.......
+ 0x38, 0x00, 0x00, 0x0a, 0x72, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, // 8...r.......F...
+ 0x01, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0xcd, 0xcc, 0x0c, 0x40, 0xcd, 0xcc, 0x0c, 0x40, // .....@.....@...@
+ 0xcd, 0xcc, 0x0c, 0x40, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x05, 0x72, 0x00, 0x10, 0x00, // ...@........r...
+ 0x01, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, // ....F.......2...
+ 0x72, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // r.......F.......
+ 0x46, 0x12, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x80, 0x41, 0x00, 0x00, 0x00, // F.......F...A...
+ 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, 0x72, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ....2...r.......
+ 0xa6, 0x8a, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, // .. .........F...
+ 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x06, // ....F...........
+ 0x82, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x80, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, // ........:. .....
+ 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x07, 0x72, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ....8...r.......
+ 0xf6, 0x0f, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ........F.......
+ 0x2f, 0x00, 0x00, 0x06, 0x72, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x80, // /...r.......F...
+ 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x0a, 0x72, 0x00, 0x10, 0x00, // ........8...r...
+ 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, // ....F........@..
+ 0x2f, 0xba, 0xe8, 0x3e, 0x2f, 0xba, 0xe8, 0x3e, 0x2f, 0xba, 0xe8, 0x3e, 0x00, 0x00, 0x00, 0x00, // /..>/..>/..>....
+ 0x19, 0x00, 0x00, 0x05, 0x72, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, // ....r ......F...
+ 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x01, 0x00, 0x00, 0x10, 0x00, // ....>.......
+};
+static const uint8_t fs_texture_array_mtl[1074] =
+{
+ 0x46, 0x53, 0x48, 0x0b, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x09, 0x75, // FSH............u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x12, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // _params0........
+ 0x00, 0x00, 0x11, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x61, 0x6d, // ...s_texColorSam
+ 0x70, 0x6c, 0x65, 0x72, 0x11, 0x01, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x73, // pler...........s
+ 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, // _texColorTexture
+ 0x11, 0x01, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x73, 0x5f, 0x74, 0x65, 0x78, // ...........s_tex
+ 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbb, // Color...........
+ 0x03, 0x00, 0x00, 0x23, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3c, 0x6d, 0x65, 0x74, // ...#include <met
+ 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x64, 0x6c, 0x69, 0x62, 0x3e, 0x0a, 0x23, 0x69, 0x6e, 0x63, 0x6c, // al_stdlib>.#incl
+ 0x75, 0x64, 0x65, 0x20, 0x3c, 0x73, 0x69, 0x6d, 0x64, 0x2f, 0x73, 0x69, 0x6d, 0x64, 0x2e, 0x68, // ude <simd/simd.h
+ 0x3e, 0x0a, 0x0a, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, // >..using namespa
+ 0x63, 0x65, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, // ce metal;..struc
+ 0x74, 0x20, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, // t _Global.{.
+ 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, // float4 u_params0
+ 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x78, 0x6c, 0x61, // ;.};..struct xla
+ 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x5f, 0x6f, 0x75, 0x74, 0x0a, 0x7b, 0x0a, 0x20, // tMtlMain_out.{.
+ 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x62, 0x67, 0x66, 0x78, 0x5f, 0x46, // float4 bgfx_F
+ 0x72, 0x61, 0x67, 0x44, 0x61, 0x74, 0x61, 0x30, 0x20, 0x5b, 0x5b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, // ragData0 [[color
+ 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, // (0)]];.};..struc
+ 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x6e, // t xlatMtlMain_in
+ 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x76, 0x5f, // .{. float4 v_
+ 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x20, 0x5b, 0x5b, 0x75, 0x73, 0x65, 0x72, 0x28, 0x6c, 0x6f, // color0 [[user(lo
+ 0x63, 0x6e, 0x30, 0x29, 0x5d, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, // cn0)]];. floa
+ 0x74, 0x33, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x20, 0x5b, // t3 v_texcoord0 [
+ 0x5b, 0x75, 0x73, 0x65, 0x72, 0x28, 0x6c, 0x6f, 0x63, 0x6e, 0x31, 0x29, 0x5d, 0x5d, 0x3b, 0x0a, // [user(locn1)]];.
+ 0x7d, 0x3b, 0x0a, 0x0a, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x78, 0x6c, 0x61, // };..fragment xla
+ 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x5f, 0x6f, 0x75, 0x74, 0x20, 0x78, 0x6c, 0x61, // tMtlMain_out xla
+ 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x28, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, // tMtlMain(xlatMtl
+ 0x4d, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x5b, 0x5b, 0x73, 0x74, 0x61, // Main_in in [[sta
+ 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x5d, 0x5d, 0x2c, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, // ge_in]], constan
+ 0x74, 0x20, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x26, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, // t _Global& _mtl_
+ 0x75, 0x20, 0x5b, 0x5b, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x2c, // u [[buffer(0)]],
+ 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x32, 0x64, 0x5f, 0x61, 0x72, 0x72, 0x61, 0x79, // texture2d_array
+ 0x3c, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x20, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, // <float> s_texCol
+ 0x6f, 0x72, 0x20, 0x5b, 0x5b, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x28, 0x30, 0x29, 0x5d, // or [[texture(0)]
+ 0x5d, 0x2c, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x20, 0x73, 0x5f, 0x74, 0x65, 0x78, // ], sampler s_tex
+ 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x20, 0x5b, 0x5b, 0x73, // ColorSampler [[s
+ 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x29, 0x0a, 0x7b, 0x0a, 0x20, // ampler(0)]]).{.
+ 0x20, 0x20, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x5f, 0x6f, // xlatMtlMain_o
+ 0x75, 0x74, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x3b, 0x0a, 0x20, 0x20, 0x20, // ut out = {};.
+ 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x5f, 0x32, 0x34, 0x33, 0x20, 0x3d, 0x20, 0x66, // float3 _243 = f
+ 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x69, 0x6e, 0x2e, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, // loat3(in.v_texco
+ 0x6f, 0x72, 0x64, 0x30, 0x2e, 0x78, 0x79, 0x2c, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x2e, // ord0.xy, _mtl_u.
+ 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x2e, 0x79, 0x29, 0x3b, 0x0a, 0x20, 0x20, // u_params0.y);.
+ 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x5f, 0x32, 0x35, 0x30, 0x20, 0x3d, 0x20, // float4 _250 =
+ 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x2e, 0x73, 0x61, 0x6d, 0x70, 0x6c, // s_texColor.sampl
+ 0x65, 0x28, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x61, 0x6d, 0x70, // e(s_texColorSamp
+ 0x6c, 0x65, 0x72, 0x2c, 0x20, 0x5f, 0x32, 0x34, 0x33, 0x2e, 0x78, 0x79, 0x2c, 0x20, 0x75, 0x69, // ler, _243.xy, ui
+ 0x6e, 0x74, 0x28, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x28, 0x5f, 0x32, 0x34, 0x33, 0x2e, 0x7a, 0x29, // nt(round(_243.z)
+ 0x29, 0x2c, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x28, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x2e, // ), level(_mtl_u.
+ 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x2e, 0x78, 0x29, 0x29, 0x20, 0x2a, 0x20, // u_params0.x)) *
+ 0x69, 0x6e, 0x2e, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, // in.v_color0;.
+ 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x5f, 0x32, 0x37, 0x34, 0x20, 0x3d, 0x20, 0x5f, // float3 _274 = _
+ 0x32, 0x35, 0x30, 0x2e, 0x78, 0x79, 0x7a, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x75, 0x74, // 250.xyz;. out
+ 0x2e, 0x62, 0x67, 0x66, 0x78, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x44, 0x61, 0x74, 0x61, 0x30, 0x20, // .bgfx_FragData0
+ 0x3d, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x28, 0x70, 0x6f, 0x77, 0x28, 0x61, 0x62, 0x73, // = float4(pow(abs
+ 0x28, 0x6d, 0x69, 0x78, 0x28, 0x70, 0x6f, 0x77, 0x28, 0x61, 0x62, 0x73, 0x28, 0x5f, 0x32, 0x37, // (mix(pow(abs(_27
+ 0x34, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x32, 0x2e, 0x32, 0x30, 0x30, // 4), float3(2.200
+ 0x30, 0x30, 0x30, 0x30, 0x34, 0x37, 0x36, 0x38, 0x33, 0x37, 0x31, 0x35, 0x38, 0x29, 0x29, 0x2c, // 0000476837158)),
+ 0x20, 0x5f, 0x32, 0x37, 0x34, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x5f, 0x6d, // _274, float3(_m
+ 0x74, 0x6c, 0x5f, 0x75, 0x2e, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x2e, 0x7a, // tl_u.u_params0.z
+ 0x29, 0x29, 0x20, 0x2a, 0x20, 0x70, 0x6f, 0x77, 0x28, 0x32, 0x2e, 0x30, 0x2c, 0x20, 0x5f, 0x6d, // )) * pow(2.0, _m
+ 0x74, 0x6c, 0x5f, 0x75, 0x2e, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x2e, 0x77, // tl_u.u_params0.w
+ 0x29, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x30, 0x2e, 0x34, 0x35, 0x34, // )), float3(0.454
+ 0x35, 0x34, 0x35, 0x34, 0x36, 0x38, 0x30, 0x39, 0x31, 0x39, 0x36, 0x34, 0x37, 0x32, 0x29, 0x29, // 54546809196472))
+ 0x2c, 0x20, 0x5f, 0x32, 0x35, 0x30, 0x2e, 0x77, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, // , _250.w);. r
+ 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6f, 0x75, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x00, 0x00, // eturn out;.}....
+ 0x30, 0x00, // 0.
};
extern const uint8_t* fs_texture_array_pssl;
extern const uint32_t fs_texture_array_pssl_size;
diff --git a/3rdparty/bgfx/tools/texturev/fs_texture_array.sc b/3rdparty/bgfx/tools/texturev/fs_texture_array.sc
index 51d02db1dcc..94f2be60fcb 100644
--- a/3rdparty/bgfx/tools/texturev/fs_texture_array.sc
+++ b/3rdparty/bgfx/tools/texturev/fs_texture_array.sc
@@ -1,8 +1,8 @@
$input v_texcoord0, v_color0
/*
- * Copyright 2011-2018 Branimir Karadzic. All rights reserved.
- * License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause
+ * Copyright 2011-2022 Branimir Karadzic. All rights reserved.
+ * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE
*/
#include "common.sh"
diff --git a/3rdparty/bgfx/tools/texturev/fs_texture_cube.bin.h b/3rdparty/bgfx/tools/texturev/fs_texture_cube.bin.h
index c06bee315ea..48d4ca4fb64 100644
--- a/3rdparty/bgfx/tools/texturev/fs_texture_cube.bin.h
+++ b/3rdparty/bgfx/tools/texturev/fs_texture_cube.bin.h
@@ -1,405 +1,1130 @@
-static const uint8_t fs_texture_cube_glsl[746] =
+static const uint8_t fs_texture_cube_glsl[2570] =
{
- 0x46, 0x53, 0x48, 0x06, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x08, 0x75, // FSH............u
- 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x02, 0x01, 0x00, 0x00, 0x01, 0x00, 0x0a, 0x73, 0x5f, // _params.......s_
- 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x05, 0x75, // texColor.......u
- 0x5f, 0x6d, 0x74, 0x78, 0x04, 0x01, 0x00, 0x00, 0x01, 0x00, 0xab, 0x02, 0x00, 0x00, 0x76, 0x61, // _mtx..........va
- 0x72, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x76, 0x5f, 0x63, 0x6f, 0x6c, // rying vec4 v_col
- 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x76, 0x61, 0x72, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x76, 0x65, 0x63, // or0;.varying vec
- 0x33, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, 0x0a, 0x75, // 3 v_texcoord0;.u
- 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x75, 0x5f, 0x70, 0x61, // niform vec4 u_pa
- 0x72, 0x61, 0x6d, 0x73, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x73, 0x61, // rams;.uniform sa
- 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x43, 0x75, 0x62, 0x65, 0x20, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, // mplerCube s_texC
- 0x6f, 0x6c, 0x6f, 0x72, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x6d, 0x61, // olor;.uniform ma
- 0x74, 0x34, 0x20, 0x75, 0x5f, 0x6d, 0x74, 0x78, 0x3b, 0x0a, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x6d, // t4 u_mtx;.void m
- 0x61, 0x69, 0x6e, 0x20, 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, // ain ().{. vec3
- 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, // tmpvar_1;. tmpv
- 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x7a, 0x20, 0x3d, 0x20, 0x31, 0x2e, 0x30, 0x3b, 0x0a, 0x20, 0x20, // ar_1.z = 1.0;.
- 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x79, 0x20, 0x3d, 0x20, 0x28, 0x28, // tmpvar_1.xy = ((
- 0x28, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x2e, 0x78, 0x79, 0x20, // (v_texcoord0.xy
- 0x2a, 0x20, 0x32, 0x2e, 0x30, 0x29, 0x20, 0x2d, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x20, 0x2a, 0x20, // * 2.0) - 1.0) *
- 0x76, 0x65, 0x63, 0x32, 0x28, 0x31, 0x2e, 0x30, 0x2c, 0x20, 0x2d, 0x31, 0x2e, 0x30, 0x29, 0x29, // vec2(1.0, -1.0))
- 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // ;. vec4 tmpvar_
- 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x2e, 0x77, 0x20, // 2;. tmpvar_2.w
+ 0x46, 0x53, 0x48, 0x0b, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x09, 0x75, // FSH............u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x02, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // _params0........
+ 0x00, 0x00, 0x09, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x02, 0x01, 0x00, 0x00, // ...u_params1....
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, // .......s_texColo
+ 0x72, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x75, 0x5f, 0x6d, 0x74, // r...........u_mt
+ 0x78, 0x04, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, 0x09, 0x00, 0x00, 0x76, // x..............v
+ 0x61, 0x72, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x76, 0x5f, 0x63, 0x6f, // arying vec4 v_co
+ 0x6c, 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x76, 0x61, 0x72, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x76, 0x65, // lor0;.varying ve
+ 0x63, 0x33, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, 0x0a, // c3 v_texcoord0;.
+ 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x75, 0x5f, 0x70, // uniform vec4 u_p
+ 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, // arams0;.uniform
+ 0x76, 0x65, 0x63, 0x34, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x3b, 0x0a, // vec4 u_params1;.
+ 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x43, // uniform samplerC
+ 0x75, 0x62, 0x65, 0x20, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x3b, 0x0a, // ube s_texColor;.
+ 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x6d, 0x61, 0x74, 0x34, 0x20, 0x75, 0x5f, 0x6d, // uniform mat4 u_m
+ 0x74, 0x78, 0x3b, 0x0a, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x28, 0x29, // tx;.void main ()
+ 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, // .{. vec4 color_
+ 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // 1;. vec3 tmpvar
+ 0x5f, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x2e, 0x7a, // _2;. tmpvar_2.z
+ 0x20, 0x3d, 0x20, 0x31, 0x2e, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // = 1.0;. tmpvar
+ 0x5f, 0x32, 0x2e, 0x78, 0x79, 0x20, 0x3d, 0x20, 0x28, 0x28, 0x28, 0x76, 0x5f, 0x74, 0x65, 0x78, // _2.xy = (((v_tex
+ 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x2e, 0x78, 0x79, 0x20, 0x2a, 0x20, 0x32, 0x2e, 0x30, 0x29, // coord0.xy * 2.0)
+ 0x20, 0x2d, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x20, 0x2a, 0x20, 0x76, 0x65, 0x63, 0x32, 0x28, 0x31, // - 1.0) * vec2(1
+ 0x2e, 0x30, 0x2c, 0x20, 0x2d, 0x31, 0x2e, 0x30, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x65, // .0, -1.0));. ve
+ 0x63, 0x34, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x74, // c4 tmpvar_3;. t
+ 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x33, 0x2e, 0x77, 0x20, 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x3b, // mpvar_3.w = 0.0;
+ 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x33, 0x2e, 0x78, 0x79, 0x7a, 0x20, // . tmpvar_3.xyz
+ 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x65, // = tmpvar_2;. ve
+ 0x63, 0x34, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x74, // c4 tmpvar_4;. t
+ 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x34, 0x20, 0x3d, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, // mpvar_4 = textur
+ 0x65, 0x43, 0x75, 0x62, 0x65, 0x4c, 0x6f, 0x64, 0x20, 0x28, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, // eCubeLod (s_texC
+ 0x6f, 0x6c, 0x6f, 0x72, 0x2c, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x28, // olor, normalize(
+ 0x28, 0x75, 0x5f, 0x6d, 0x74, 0x78, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // (u_mtx * tmpvar_
+ 0x33, 0x29, 0x2e, 0x78, 0x79, 0x7a, 0x29, 0x2c, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, // 3).xyz), u_param
+ 0x73, 0x30, 0x2e, 0x78, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, // s0.x);. color_1
+ 0x2e, 0x77, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x34, 0x2e, 0x77, 0x3b, // .w = tmpvar_4.w;
+ 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x20, 0x3d, // . color_1.xyz =
+ 0x20, 0x28, 0x6d, 0x69, 0x78, 0x20, 0x28, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x0a, 0x20, 0x20, 0x20, // (mix (pow (.
+ 0x20, 0x61, 0x62, 0x73, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x34, 0x2e, 0x78, 0x79, // abs(tmpvar_4.xy
+ 0x7a, 0x29, 0x0a, 0x20, 0x20, 0x2c, 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x32, 0x2e, 0x32, 0x2c, // z). , vec3(2.2,
+ 0x20, 0x32, 0x2e, 0x32, 0x2c, 0x20, 0x32, 0x2e, 0x32, 0x29, 0x29, 0x2c, 0x20, 0x74, 0x6d, 0x70, // 2.2, 2.2)), tmp
+ 0x76, 0x61, 0x72, 0x5f, 0x34, 0x2e, 0x78, 0x79, 0x7a, 0x2c, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, // var_4.xyz, u_par
+ 0x61, 0x6d, 0x73, 0x30, 0x2e, 0x7a, 0x29, 0x20, 0x2a, 0x20, 0x65, 0x78, 0x70, 0x32, 0x28, 0x75, // ams0.z) * exp2(u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x2e, 0x77, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, // _params0.w));.
+ 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x20, 0x3d, 0x20, 0x28, 0x63, 0x6f, 0x6c, 0x6f, 0x72, // color_1 = (color
+ 0x5f, 0x31, 0x20, 0x2a, 0x20, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x29, 0x3b, 0x0a, // _1 * v_color0);.
+ 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, // vec3 outColor_
+ 0x35, 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // 5;. vec3 tmpvar
+ 0x5f, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x36, 0x2e, 0x78, // _6;. tmpvar_6.x
+ 0x20, 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // = 0.0;. tmpvar
+ 0x5f, 0x36, 0x2e, 0x79, 0x20, 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, // _6.y = 0.0;. tm
+ 0x70, 0x76, 0x61, 0x72, 0x5f, 0x36, 0x2e, 0x7a, 0x20, 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x3b, 0x0a, // pvar_6.z = 0.0;.
+ 0x20, 0x20, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x35, 0x20, 0x3d, 0x20, 0x74, // outColor_5 = t
+ 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x28, // mpvar_6;. if ((
+ 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x2e, 0x78, 0x20, 0x3c, 0x20, 0x30, 0x2e, // u_params1.x < 0.
+ 0x35, 0x29, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x74, // 5)) {. vec3 t
+ 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x37, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, // mpvar_7;. tmp
+ 0x76, 0x61, 0x72, 0x5f, 0x37, 0x20, 0x3d, 0x20, 0x63, 0x6c, 0x61, 0x6d, 0x70, 0x20, 0x28, 0x63, // var_7 = clamp (c
+ 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x2c, // olor_1.xyz, 0.0,
+ 0x20, 0x31, 0x2e, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, // 1.0);. vec3
+ 0x5f, 0x72, 0x67, 0x62, 0x5f, 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x72, 0x67, 0x62, // _rgb_8;. _rgb
+ 0x5f, 0x38, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x37, 0x3b, 0x0a, 0x20, // _8 = tmpvar_7;.
+ 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // float tmpvar_
+ 0x39, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x28, 0x74, 0x6d, 0x70, 0x76, // 9;. if ((tmpv
+ 0x61, 0x72, 0x5f, 0x37, 0x2e, 0x78, 0x20, 0x3c, 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x30, 0x33, 0x31, // ar_7.x <= 0.0031
+ 0x33, 0x30, 0x38, 0x29, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, // 308)) {. tm
+ 0x70, 0x76, 0x61, 0x72, 0x5f, 0x39, 0x20, 0x3d, 0x20, 0x28, 0x31, 0x32, 0x2e, 0x39, 0x32, 0x20, // pvar_9 = (12.92
+ 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x37, 0x2e, 0x78, 0x29, 0x3b, 0x0a, 0x20, // * tmpvar_7.x);.
+ 0x20, 0x20, 0x20, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, // } else {.
+ 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x39, 0x20, 0x3d, 0x20, 0x28, 0x28, 0x31, // tmpvar_9 = ((1
+ 0x2e, 0x30, 0x35, 0x35, 0x20, 0x2a, 0x20, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x74, 0x6d, 0x70, 0x76, // .055 * pow (tmpv
+ 0x61, 0x72, 0x5f, 0x37, 0x2e, 0x78, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x31, 0x36, 0x36, 0x36, 0x36, // ar_7.x, 0.416666
+ 0x37, 0x29, 0x29, 0x20, 0x2d, 0x20, 0x30, 0x2e, 0x30, 0x35, 0x35, 0x29, 0x3b, 0x0a, 0x20, 0x20, // 7)) - 0.055);.
+ 0x20, 0x20, 0x7d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x72, 0x67, 0x62, 0x5f, 0x38, 0x2e, // };. _rgb_8.
+ 0x78, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x39, 0x3b, 0x0a, 0x20, 0x20, // x = tmpvar_9;.
+ 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, // float tmpvar_1
+ 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x28, 0x74, 0x6d, 0x70, 0x76, // 0;. if ((tmpv
+ 0x61, 0x72, 0x5f, 0x37, 0x2e, 0x79, 0x20, 0x3c, 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x30, 0x33, 0x31, // ar_7.y <= 0.0031
+ 0x33, 0x30, 0x38, 0x29, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, // 308)) {. tm
+ 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x30, 0x20, 0x3d, 0x20, 0x28, 0x31, 0x32, 0x2e, 0x39, 0x32, // pvar_10 = (12.92
+ 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x37, 0x2e, 0x79, 0x29, 0x3b, 0x0a, // * tmpvar_7.y);.
+ 0x20, 0x20, 0x20, 0x20, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, // } else {.
+ 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x30, 0x20, 0x3d, 0x20, 0x28, // tmpvar_10 = (
+ 0x28, 0x31, 0x2e, 0x30, 0x35, 0x35, 0x20, 0x2a, 0x20, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x74, 0x6d, // (1.055 * pow (tm
+ 0x70, 0x76, 0x61, 0x72, 0x5f, 0x37, 0x2e, 0x79, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x31, 0x36, 0x36, // pvar_7.y, 0.4166
+ 0x36, 0x36, 0x37, 0x29, 0x29, 0x20, 0x2d, 0x20, 0x30, 0x2e, 0x30, 0x35, 0x35, 0x29, 0x3b, 0x0a, // 667)) - 0.055);.
+ 0x20, 0x20, 0x20, 0x20, 0x7d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x72, 0x67, 0x62, 0x5f, // };. _rgb_
+ 0x38, 0x2e, 0x79, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x30, 0x3b, // 8.y = tmpvar_10;
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, // . float tmpva
+ 0x72, 0x5f, 0x31, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x28, 0x74, // r_11;. if ((t
+ 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x37, 0x2e, 0x7a, 0x20, 0x3c, 0x3d, 0x20, 0x30, 0x2e, 0x30, // mpvar_7.z <= 0.0
+ 0x30, 0x33, 0x31, 0x33, 0x30, 0x38, 0x29, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, // 031308)) {.
+ 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x31, 0x20, 0x3d, 0x20, 0x28, 0x31, 0x32, // tmpvar_11 = (12
+ 0x2e, 0x39, 0x32, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x37, 0x2e, 0x7a, // .92 * tmpvar_7.z
+ 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x0a, // );. } else {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x31, 0x20, // tmpvar_11
+ 0x3d, 0x20, 0x28, 0x28, 0x31, 0x2e, 0x30, 0x35, 0x35, 0x20, 0x2a, 0x20, 0x70, 0x6f, 0x77, 0x20, // = ((1.055 * pow
+ 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x37, 0x2e, 0x7a, 0x2c, 0x20, 0x30, 0x2e, 0x34, // (tmpvar_7.z, 0.4
+ 0x31, 0x36, 0x36, 0x36, 0x36, 0x37, 0x29, 0x29, 0x20, 0x2d, 0x20, 0x30, 0x2e, 0x30, 0x35, 0x35, // 166667)) - 0.055
+ 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x72, // );. };. _r
+ 0x67, 0x62, 0x5f, 0x38, 0x2e, 0x7a, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // gb_8.z = tmpvar_
+ 0x31, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, // 11;. outColor
+ 0x5f, 0x35, 0x20, 0x3d, 0x20, 0x5f, 0x72, 0x67, 0x62, 0x5f, 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x7d, // _5 = _rgb_8;. }
+ 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, // else {. if (
+ 0x28, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x2e, 0x78, 0x20, 0x3c, 0x20, 0x31, // (u_params1.x < 1
+ 0x2e, 0x35, 0x29, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x75, 0x74, // .5)) {. out
+ 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x35, 0x20, 0x3d, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, // Color_5 = color_
+ 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x20, 0x65, 0x6c, 0x73, // 1.xyz;. } els
+ 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x28, 0x75, // e {. if ((u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x2e, 0x78, 0x20, 0x3c, 0x20, 0x32, 0x2e, 0x35, // _params1.x < 2.5
+ 0x29, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, // )) {. vec
+ 0x33, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x20, // 3 _color_12;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x32, 0x20, 0x3d, // _color_12 =
+ 0x20, 0x28, 0x28, 0x6d, 0x61, 0x74, 0x33, 0x28, 0x31, 0x2e, 0x37, 0x31, 0x36, 0x36, 0x35, 0x31, // ((mat3(1.716651
+ 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x33, 0x35, 0x35, 0x36, 0x37, 0x30, 0x38, 0x2c, 0x20, 0x2d, 0x30, // , -0.3556708, -0
+ 0x2e, 0x32, 0x35, 0x33, 0x33, 0x36, 0x36, 0x33, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x36, 0x36, 0x36, // .2533663, -0.666
+ 0x36, 0x38, 0x34, 0x34, 0x2c, 0x20, 0x31, 0x2e, 0x36, 0x31, 0x36, 0x34, 0x38, 0x31, 0x2c, 0x20, // 6844, 1.616481,
+ 0x30, 0x2e, 0x30, 0x31, 0x35, 0x37, 0x36, 0x38, 0x35, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x31, 0x37, // 0.0157685, 0.017
+ 0x36, 0x33, 0x39, 0x39, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x30, 0x34, 0x32, 0x37, 0x37, 0x30, 0x36, // 6399, -0.0427706
+ 0x2c, 0x20, 0x30, 0x2e, 0x39, 0x34, 0x32, 0x31, 0x30, 0x33, 0x31, 0x29, 0x20, 0x2a, 0x20, 0x28, // , 0.9421031) * (
+ 0x6d, 0x61, 0x74, 0x33, 0x28, 0x30, 0x2e, 0x34, 0x31, 0x32, 0x35, 0x35, 0x36, 0x34, 0x2c, 0x20, // mat3(0.4125564,
+ 0x30, 0x2e, 0x33, 0x35, 0x37, 0x35, 0x37, 0x36, 0x31, 0x2c, 0x20, 0x30, 0x2e, 0x31, 0x38, 0x30, // 0.3575761, 0.180
+ 0x34, 0x33, 0x37, 0x35, 0x2c, 0x20, 0x30, 0x2e, 0x32, 0x31, 0x32, 0x36, 0x37, 0x32, 0x39, 0x2c, // 4375, 0.2126729,
+ 0x20, 0x30, 0x2e, 0x37, 0x31, 0x35, 0x31, 0x35, 0x32, 0x32, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x37, // 0.7151522, 0.07
+ 0x32, 0x31, 0x37, 0x35, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x31, 0x39, 0x33, 0x33, 0x33, 0x39, 0x2c, // 2175, 0.0193339,
+ 0x20, 0x30, 0x2e, 0x31, 0x31, 0x39, 0x31, 0x39, 0x32, 0x2c, 0x20, 0x30, 0x2e, 0x39, 0x35, 0x30, // 0.119192, 0.950
+ 0x33, 0x30, 0x34, 0x31, 0x29, 0x20, 0x2a, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x2e, // 3041) * color_1.
+ 0x78, 0x79, 0x7a, 0x29, 0x29, 0x20, 0x2a, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, // xyz)) * u_params
+ 0x31, 0x2e, 0x79, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, // 1.y);. ve
+ 0x63, 0x33, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x33, 0x3b, 0x0a, 0x20, 0x20, // c3 tmpvar_13;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x33, 0x20, // tmpvar_13
+ 0x3d, 0x20, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x28, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, // = pow ((_color_1
+ 0x32, 0x20, 0x2a, 0x20, 0x30, 0x2e, 0x30, 0x30, 0x30, 0x31, 0x29, 0x2c, 0x20, 0x76, 0x65, 0x63, // 2 * 0.0001), vec
+ 0x33, 0x28, 0x30, 0x2e, 0x31, 0x35, 0x39, 0x33, 0x30, 0x31, 0x38, 0x2c, 0x20, 0x30, 0x2e, 0x31, // 3(0.1593018, 0.1
+ 0x35, 0x39, 0x33, 0x30, 0x31, 0x38, 0x2c, 0x20, 0x30, 0x2e, 0x31, 0x35, 0x39, 0x33, 0x30, 0x31, // 593018, 0.159301
+ 0x38, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, // 8));. vec
+ 0x33, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x20, // 3 tmpvar_14;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x34, 0x20, 0x3d, // tmpvar_14 =
+ 0x20, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x28, 0x28, 0x30, 0x2e, 0x38, 0x33, 0x35, 0x39, 0x33, 0x37, // pow (((0.835937
+ 0x35, 0x20, 0x2b, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, // 5 + . (
+ 0x31, 0x38, 0x2e, 0x38, 0x35, 0x31, 0x35, 0x36, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, // 18.85156 * tmpva
+ 0x72, 0x5f, 0x31, 0x33, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x29, 0x20, // r_13). )
+ 0x2f, 0x20, 0x28, 0x76, 0x65, 0x63, 0x33, 0x28, 0x31, 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, // / (vec3(1.0, 1.0
+ 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x20, 0x2b, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // , 1.0) + .
+ 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x38, 0x2e, 0x36, 0x38, 0x37, 0x35, 0x20, 0x2a, 0x20, 0x74, // (18.6875 * t
+ 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x33, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // mpvar_13).
+ 0x20, 0x20, 0x29, 0x29, 0x2c, 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x37, 0x38, 0x2e, 0x38, 0x34, // )), vec3(78.84
+ 0x33, 0x37, 0x35, 0x2c, 0x20, 0x37, 0x38, 0x2e, 0x38, 0x34, 0x33, 0x37, 0x35, 0x2c, 0x20, 0x37, // 375, 78.84375, 7
+ 0x38, 0x2e, 0x38, 0x34, 0x33, 0x37, 0x35, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, // 8.84375));.
+ 0x20, 0x20, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x32, 0x20, 0x3d, 0x20, 0x74, // _color_12 = t
+ 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // mpvar_14;.
+ 0x20, 0x20, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x35, 0x20, 0x3d, 0x20, 0x74, // outColor_5 = t
+ 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // mpvar_14;.
+ 0x7d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x3b, 0x0a, 0x20, 0x20, 0x7d, 0x3b, 0x0a, 0x20, // };. };. };.
+ 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x35, 0x3b, // vec4 tmpvar_15;
+ 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x35, 0x2e, 0x78, 0x79, 0x7a, // . tmpvar_15.xyz
+ 0x20, 0x3d, 0x20, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x35, 0x3b, 0x0a, 0x20, // = outColor_5;.
+ 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x35, 0x2e, 0x77, 0x20, 0x3d, 0x20, 0x63, // tmpvar_15.w = c
+ 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x2e, 0x77, 0x3b, 0x0a, 0x20, 0x20, 0x67, 0x6c, 0x5f, 0x46, // olor_1.w;. gl_F
+ 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, // ragColor = tmpva
+ 0x72, 0x5f, 0x31, 0x35, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x00, // r_15;.}...
+};
+static const uint8_t fs_texture_cube_essl[2737] =
+{
+ 0x46, 0x53, 0x48, 0x0b, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x09, 0x75, // FSH............u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x02, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // _params0........
+ 0x00, 0x00, 0x09, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x02, 0x01, 0x00, 0x00, // ...u_params1....
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, // .......s_texColo
+ 0x72, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x75, 0x5f, 0x6d, 0x74, // r...........u_mt
+ 0x78, 0x04, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x0a, 0x00, 0x00, 0x76, // x..........Q...v
+ 0x61, 0x72, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, // arying highp vec
+ 0x34, 0x20, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x76, 0x61, 0x72, 0x79, // 4 v_color0;.vary
+ 0x69, 0x6e, 0x67, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x76, // ing highp vec3 v
+ 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, // _texcoord0;.unif
+ 0x6f, 0x72, 0x6d, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x75, // orm highp vec4 u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, // _params0;.unifor
+ 0x6d, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x75, 0x5f, 0x70, // m highp vec4 u_p
+ 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, // arams1;.uniform
+ 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x43, 0x75, 0x62, 0x65, // lowp samplerCube
+ 0x20, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x3b, 0x0a, 0x75, 0x6e, 0x69, // s_texColor;.uni
+ 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x6d, 0x61, 0x74, 0x34, 0x20, // form highp mat4
+ 0x75, 0x5f, 0x6d, 0x74, 0x78, 0x3b, 0x0a, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x6d, 0x61, 0x69, 0x6e, // u_mtx;.void main
+ 0x20, 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x76, 0x65, 0x63, // ().{. lowp vec
+ 0x34, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x68, 0x69, 0x67, // 4 color_1;. hig
+ 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, // hp vec3 tmpvar_2
+ 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x2e, 0x7a, 0x20, 0x3d, // ;. tmpvar_2.z =
+ 0x20, 0x31, 0x2e, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, // 1.0;. tmpvar_2
+ 0x2e, 0x78, 0x79, 0x20, 0x3d, 0x20, 0x28, 0x28, 0x28, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, // .xy = (((v_texco
+ 0x6f, 0x72, 0x64, 0x30, 0x2e, 0x78, 0x79, 0x20, 0x2a, 0x20, 0x32, 0x2e, 0x30, 0x29, 0x20, 0x2d, // ord0.xy * 2.0) -
+ 0x20, 0x31, 0x2e, 0x30, 0x29, 0x20, 0x2a, 0x20, 0x76, 0x65, 0x63, 0x32, 0x28, 0x31, 0x2e, 0x30, // 1.0) * vec2(1.0
+ 0x2c, 0x20, 0x2d, 0x31, 0x2e, 0x30, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x68, 0x69, 0x67, 0x68, // , -1.0));. high
+ 0x70, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x33, 0x3b, // p vec4 tmpvar_3;
+ 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x33, 0x2e, 0x77, 0x20, 0x3d, 0x20, // . tmpvar_3.w =
+ 0x30, 0x2e, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x33, 0x2e, // 0.0;. tmpvar_3.
+ 0x78, 0x79, 0x7a, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x3b, 0x0a, // xyz = tmpvar_2;.
+ 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x74, 0x6d, 0x70, 0x76, // lowp vec4 tmpv
+ 0x61, 0x72, 0x5f, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x34, // ar_4;. tmpvar_4
+ 0x20, 0x3d, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x43, 0x75, 0x62, 0x65, 0x4c, 0x6f, // = textureCubeLo
+ 0x64, 0x20, 0x20, 0x20, 0x20, 0x28, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, // d (s_texColor
+ 0x2c, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x28, 0x28, 0x75, 0x5f, 0x6d, // , normalize((u_m
+ 0x74, 0x78, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x33, 0x29, 0x2e, 0x78, // tx * tmpvar_3).x
+ 0x79, 0x7a, 0x29, 0x2c, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x2e, 0x78, // yz), u_params0.x
+ 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x2e, 0x77, 0x20, 0x3d, // );. color_1.w =
+ 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x34, 0x2e, 0x77, 0x3b, 0x0a, 0x20, 0x20, 0x63, // tmpvar_4.w;. c
+ 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x20, 0x3d, 0x20, 0x28, 0x6d, 0x69, // olor_1.xyz = (mi
+ 0x78, 0x20, 0x28, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x62, 0x73, // x (pow (. abs
+ 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x34, 0x2e, 0x78, 0x79, 0x7a, 0x29, 0x0a, 0x20, // (tmpvar_4.xyz).
+ 0x20, 0x2c, 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x32, 0x2e, 0x32, 0x2c, 0x20, 0x32, 0x2e, 0x32, // , vec3(2.2, 2.2
+ 0x2c, 0x20, 0x32, 0x2e, 0x32, 0x29, 0x29, 0x2c, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // , 2.2)), tmpvar_
+ 0x34, 0x2e, 0x78, 0x79, 0x7a, 0x2c, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, // 4.xyz, u_params0
+ 0x2e, 0x7a, 0x29, 0x20, 0x2a, 0x20, 0x65, 0x78, 0x70, 0x32, 0x28, 0x75, 0x5f, 0x70, 0x61, 0x72, // .z) * exp2(u_par
+ 0x61, 0x6d, 0x73, 0x30, 0x2e, 0x77, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, // ams0.w));. colo
+ 0x72, 0x5f, 0x31, 0x20, 0x3d, 0x20, 0x28, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x20, 0x2a, // r_1 = (color_1 *
+ 0x20, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x65, // v_color0);. me
+ 0x64, 0x69, 0x75, 0x6d, 0x70, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, // diump vec4 tmpva
+ 0x72, 0x5f, 0x35, 0x3b, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x76, 0x65, 0x63, 0x33, // r_5;. lowp vec3
+ 0x20, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x6c, // outColor_6;. l
+ 0x6f, 0x77, 0x70, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // owp vec3 tmpvar_
+ 0x37, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x37, 0x2e, 0x78, 0x20, // 7;. tmpvar_7.x
0x3d, 0x20, 0x30, 0x2e, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // = 0.0;. tmpvar_
- 0x32, 0x2e, 0x78, 0x79, 0x7a, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, // 2.xyz = tmpvar_1
- 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, // ;. vec4 _color_
- 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x33, 0x20, 0x3d, 0x20, // 3;. _color_3 =
- 0x28, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x43, 0x75, 0x62, 0x65, 0x4c, 0x6f, 0x64, 0x20, // (textureCubeLod
- 0x28, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x2c, 0x20, 0x6e, 0x6f, 0x72, // (s_texColor, nor
- 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x28, 0x28, 0x75, 0x5f, 0x6d, 0x74, 0x78, 0x20, 0x2a, 0x20, // malize((u_mtx *
- 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x29, 0x2e, 0x78, 0x79, 0x7a, 0x29, 0x2c, 0x20, // tmpvar_2).xyz),
- 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x78, 0x29, 0x20, 0x2a, 0x20, 0x76, 0x5f, // u_params.x) * v_
- 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, // color0);. vec4
- 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, // tmpvar_4;. tmpv
- 0x61, 0x72, 0x5f, 0x34, 0x2e, 0x78, 0x79, 0x7a, 0x20, 0x3d, 0x20, 0x70, 0x6f, 0x77, 0x20, 0x28, // ar_4.xyz = pow (
- 0x61, 0x62, 0x73, 0x28, 0x28, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x78, 0x20, 0x28, 0x70, // abs((. mix (p
- 0x6f, 0x77, 0x20, 0x28, 0x61, 0x62, 0x73, 0x28, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x33, // ow (abs(_color_3
- 0x2e, 0x78, 0x79, 0x7a, 0x29, 0x2c, 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x32, 0x2e, 0x32, 0x2c, // .xyz), vec3(2.2,
- 0x20, 0x32, 0x2e, 0x32, 0x2c, 0x20, 0x32, 0x2e, 0x32, 0x29, 0x29, 0x2c, 0x20, 0x5f, 0x63, 0x6f, // 2.2, 2.2)), _co
- 0x6c, 0x6f, 0x72, 0x5f, 0x33, 0x2e, 0x78, 0x79, 0x7a, 0x2c, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, // lor_3.xyz, u_par
- 0x61, 0x6d, 0x73, 0x2e, 0x7a, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x2a, 0x20, 0x0a, 0x20, 0x20, 0x20, // ams.z). * .
- 0x20, 0x65, 0x78, 0x70, 0x32, 0x28, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x77, // exp2(u_params.w
- 0x29, 0x0a, 0x20, 0x20, 0x29, 0x29, 0x2c, 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x30, 0x2e, 0x34, // ). )), vec3(0.4
- 0x35, 0x34, 0x35, 0x34, 0x35, 0x34, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x35, 0x34, 0x35, 0x34, 0x35, // 545454, 0.454545
- 0x34, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x35, 0x34, 0x35, 0x34, 0x35, 0x34, 0x29, 0x29, 0x3b, 0x0a, // 4, 0.4545454));.
- 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x34, 0x2e, 0x77, 0x20, 0x3d, 0x20, 0x5f, // tmpvar_4.w = _
- 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x33, 0x2e, 0x77, 0x3b, 0x0a, 0x20, 0x20, 0x67, 0x6c, 0x5f, // color_3.w;. gl_
- 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, // FragColor = tmpv
- 0x61, 0x72, 0x5f, 0x34, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x00, // ar_4;.}...
+ 0x37, 0x2e, 0x79, 0x20, 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, // 7.y = 0.0;. tmp
+ 0x76, 0x61, 0x72, 0x5f, 0x37, 0x2e, 0x7a, 0x20, 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x3b, 0x0a, 0x20, // var_7.z = 0.0;.
+ 0x20, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x36, 0x20, 0x3d, 0x20, 0x74, 0x6d, // outColor_6 = tm
+ 0x70, 0x76, 0x61, 0x72, 0x5f, 0x37, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x28, 0x75, // pvar_7;. if ((u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x2e, 0x78, 0x20, 0x3c, 0x20, 0x30, 0x2e, 0x35, // _params1.x < 0.5
+ 0x29, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x76, 0x65, // )) {. lowp ve
+ 0x63, 0x33, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x20, // c3 tmpvar_8;.
+ 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x38, 0x20, 0x3d, 0x20, 0x63, 0x6c, 0x61, 0x6d, // tmpvar_8 = clam
+ 0x70, 0x20, 0x28, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x2c, 0x20, // p (color_1.xyz,
+ 0x30, 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, // 0.0, 1.0);. l
+ 0x6f, 0x77, 0x70, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x5f, 0x72, 0x67, 0x62, 0x5f, 0x39, 0x3b, // owp vec3 _rgb_9;
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x72, 0x67, 0x62, 0x5f, 0x39, 0x20, 0x3d, 0x20, 0x74, 0x6d, // . _rgb_9 = tm
+ 0x70, 0x76, 0x61, 0x72, 0x5f, 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, // pvar_8;. lowp
+ 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x30, // float tmpvar_10
+ 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, // ;. if ((tmpva
+ 0x72, 0x5f, 0x38, 0x2e, 0x78, 0x20, 0x3c, 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x30, 0x33, 0x31, 0x33, // r_8.x <= 0.00313
+ 0x30, 0x38, 0x29, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, // 08)) {. tmp
+ 0x76, 0x61, 0x72, 0x5f, 0x31, 0x30, 0x20, 0x3d, 0x20, 0x28, 0x31, 0x32, 0x2e, 0x39, 0x32, 0x20, // var_10 = (12.92
+ 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x38, 0x2e, 0x78, 0x29, 0x3b, 0x0a, 0x20, // * tmpvar_8.x);.
+ 0x20, 0x20, 0x20, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, // } else {.
+ 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x30, 0x20, 0x3d, 0x20, 0x28, 0x28, // tmpvar_10 = ((
+ 0x31, 0x2e, 0x30, 0x35, 0x35, 0x20, 0x2a, 0x20, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x74, 0x6d, 0x70, // 1.055 * pow (tmp
+ 0x76, 0x61, 0x72, 0x5f, 0x38, 0x2e, 0x78, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x31, 0x36, 0x36, 0x36, // var_8.x, 0.41666
+ 0x36, 0x37, 0x29, 0x29, 0x20, 0x2d, 0x20, 0x30, 0x2e, 0x30, 0x35, 0x35, 0x29, 0x3b, 0x0a, 0x20, // 67)) - 0.055);.
+ 0x20, 0x20, 0x20, 0x7d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x72, 0x67, 0x62, 0x5f, 0x39, // };. _rgb_9
+ 0x2e, 0x78, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x30, 0x3b, 0x0a, // .x = tmpvar_10;.
+ 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x74, // lowp float t
+ 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, // mpvar_11;. if
+ 0x20, 0x28, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x38, 0x2e, 0x79, 0x20, 0x3c, 0x3d, // ((tmpvar_8.y <=
+ 0x20, 0x30, 0x2e, 0x30, 0x30, 0x33, 0x31, 0x33, 0x30, 0x38, 0x29, 0x29, 0x20, 0x7b, 0x0a, 0x20, // 0.0031308)) {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x31, 0x20, 0x3d, // tmpvar_11 =
+ 0x20, 0x28, 0x31, 0x32, 0x2e, 0x39, 0x32, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // (12.92 * tmpvar
+ 0x5f, 0x38, 0x2e, 0x79, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x20, 0x65, 0x6c, 0x73, // _8.y);. } els
+ 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // e {. tmpvar
+ 0x5f, 0x31, 0x31, 0x20, 0x3d, 0x20, 0x28, 0x28, 0x31, 0x2e, 0x30, 0x35, 0x35, 0x20, 0x2a, 0x20, // _11 = ((1.055 *
+ 0x70, 0x6f, 0x77, 0x20, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x38, 0x2e, 0x79, 0x2c, // pow (tmpvar_8.y,
+ 0x20, 0x30, 0x2e, 0x34, 0x31, 0x36, 0x36, 0x36, 0x36, 0x37, 0x29, 0x29, 0x20, 0x2d, 0x20, 0x30, // 0.4166667)) - 0
+ 0x2e, 0x30, 0x35, 0x35, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x3b, 0x0a, 0x20, 0x20, // .055);. };.
+ 0x20, 0x20, 0x5f, 0x72, 0x67, 0x62, 0x5f, 0x39, 0x2e, 0x79, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, // _rgb_9.y = tmp
+ 0x76, 0x61, 0x72, 0x5f, 0x31, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, // var_11;. lowp
+ 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x32, // float tmpvar_12
+ 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, // ;. if ((tmpva
+ 0x72, 0x5f, 0x38, 0x2e, 0x7a, 0x20, 0x3c, 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x30, 0x33, 0x31, 0x33, // r_8.z <= 0.00313
+ 0x30, 0x38, 0x29, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, // 08)) {. tmp
+ 0x76, 0x61, 0x72, 0x5f, 0x31, 0x32, 0x20, 0x3d, 0x20, 0x28, 0x31, 0x32, 0x2e, 0x39, 0x32, 0x20, // var_12 = (12.92
+ 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x38, 0x2e, 0x7a, 0x29, 0x3b, 0x0a, 0x20, // * tmpvar_8.z);.
+ 0x20, 0x20, 0x20, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, // } else {.
+ 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x32, 0x20, 0x3d, 0x20, 0x28, 0x28, // tmpvar_12 = ((
+ 0x31, 0x2e, 0x30, 0x35, 0x35, 0x20, 0x2a, 0x20, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x74, 0x6d, 0x70, // 1.055 * pow (tmp
+ 0x76, 0x61, 0x72, 0x5f, 0x38, 0x2e, 0x7a, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x31, 0x36, 0x36, 0x36, // var_8.z, 0.41666
+ 0x36, 0x37, 0x29, 0x29, 0x20, 0x2d, 0x20, 0x30, 0x2e, 0x30, 0x35, 0x35, 0x29, 0x3b, 0x0a, 0x20, // 67)) - 0.055);.
+ 0x20, 0x20, 0x20, 0x7d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x72, 0x67, 0x62, 0x5f, 0x39, // };. _rgb_9
+ 0x2e, 0x7a, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x32, 0x3b, 0x0a, // .z = tmpvar_12;.
+ 0x20, 0x20, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x36, 0x20, 0x3d, // outColor_6 =
+ 0x20, 0x5f, 0x72, 0x67, 0x62, 0x5f, 0x39, 0x3b, 0x0a, 0x20, 0x20, 0x7d, 0x20, 0x65, 0x6c, 0x73, // _rgb_9;. } els
+ 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x28, 0x75, 0x5f, 0x70, // e {. if ((u_p
+ 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x2e, 0x78, 0x20, 0x3c, 0x20, 0x31, 0x2e, 0x35, 0x29, 0x29, // arams1.x < 1.5))
+ 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6c, 0x6f, // {. outColo
+ 0x72, 0x5f, 0x36, 0x20, 0x3d, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x79, // r_6 = color_1.xy
+ 0x7a, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x0a, // z;. } else {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x28, 0x75, 0x5f, 0x70, 0x61, 0x72, // if ((u_par
+ 0x61, 0x6d, 0x73, 0x31, 0x2e, 0x78, 0x20, 0x3c, 0x20, 0x32, 0x2e, 0x35, 0x29, 0x29, 0x20, 0x7b, // ams1.x < 2.5)) {
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x76, 0x65, // . lowp ve
+ 0x63, 0x33, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x33, 0x3b, 0x0a, 0x20, 0x20, // c3 _color_13;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x33, 0x20, // _color_13
+ 0x3d, 0x20, 0x28, 0x28, 0x6d, 0x61, 0x74, 0x33, 0x28, 0x31, 0x2e, 0x37, 0x31, 0x36, 0x36, 0x35, // = ((mat3(1.71665
+ 0x31, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x33, 0x35, 0x35, 0x36, 0x37, 0x30, 0x38, 0x2c, 0x20, 0x2d, // 1, -0.3556708, -
+ 0x30, 0x2e, 0x32, 0x35, 0x33, 0x33, 0x36, 0x36, 0x33, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x36, 0x36, // 0.2533663, -0.66
+ 0x36, 0x36, 0x38, 0x34, 0x34, 0x2c, 0x20, 0x31, 0x2e, 0x36, 0x31, 0x36, 0x34, 0x38, 0x31, 0x2c, // 66844, 1.616481,
+ 0x20, 0x30, 0x2e, 0x30, 0x31, 0x35, 0x37, 0x36, 0x38, 0x35, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x31, // 0.0157685, 0.01
+ 0x37, 0x36, 0x33, 0x39, 0x39, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x30, 0x34, 0x32, 0x37, 0x37, 0x30, // 76399, -0.042770
+ 0x36, 0x2c, 0x20, 0x30, 0x2e, 0x39, 0x34, 0x32, 0x31, 0x30, 0x33, 0x31, 0x29, 0x20, 0x2a, 0x20, // 6, 0.9421031) *
+ 0x28, 0x6d, 0x61, 0x74, 0x33, 0x28, 0x30, 0x2e, 0x34, 0x31, 0x32, 0x35, 0x35, 0x36, 0x34, 0x2c, // (mat3(0.4125564,
+ 0x20, 0x30, 0x2e, 0x33, 0x35, 0x37, 0x35, 0x37, 0x36, 0x31, 0x2c, 0x20, 0x30, 0x2e, 0x31, 0x38, // 0.3575761, 0.18
+ 0x30, 0x34, 0x33, 0x37, 0x35, 0x2c, 0x20, 0x30, 0x2e, 0x32, 0x31, 0x32, 0x36, 0x37, 0x32, 0x39, // 04375, 0.2126729
+ 0x2c, 0x20, 0x30, 0x2e, 0x37, 0x31, 0x35, 0x31, 0x35, 0x32, 0x32, 0x2c, 0x20, 0x30, 0x2e, 0x30, // , 0.7151522, 0.0
+ 0x37, 0x32, 0x31, 0x37, 0x35, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x31, 0x39, 0x33, 0x33, 0x33, 0x39, // 72175, 0.0193339
+ 0x2c, 0x20, 0x30, 0x2e, 0x31, 0x31, 0x39, 0x31, 0x39, 0x32, 0x2c, 0x20, 0x30, 0x2e, 0x39, 0x35, // , 0.119192, 0.95
+ 0x30, 0x33, 0x30, 0x34, 0x31, 0x29, 0x20, 0x2a, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, // 03041) * color_1
+ 0x2e, 0x78, 0x79, 0x7a, 0x29, 0x29, 0x20, 0x2a, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, // .xyz)) * u_param
+ 0x73, 0x31, 0x2e, 0x79, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, // s1.y);. l
+ 0x6f, 0x77, 0x70, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // owp vec3 tmpvar_
+ 0x31, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, // 14;. tmpv
+ 0x61, 0x72, 0x5f, 0x31, 0x34, 0x20, 0x3d, 0x20, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x28, 0x5f, 0x63, // ar_14 = pow ((_c
+ 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x33, 0x20, 0x2a, 0x20, 0x30, 0x2e, 0x30, 0x30, 0x30, 0x31, // olor_13 * 0.0001
+ 0x29, 0x2c, 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x30, 0x2e, 0x31, 0x35, 0x39, 0x33, 0x30, 0x31, // ), vec3(0.159301
+ 0x38, 0x2c, 0x20, 0x30, 0x2e, 0x31, 0x35, 0x39, 0x33, 0x30, 0x31, 0x38, 0x2c, 0x20, 0x30, 0x2e, // 8, 0.1593018, 0.
+ 0x31, 0x35, 0x39, 0x33, 0x30, 0x31, 0x38, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, // 1593018));.
+ 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x74, 0x6d, 0x70, // lowp vec3 tmp
+ 0x76, 0x61, 0x72, 0x5f, 0x31, 0x35, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // var_15;.
+ 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x35, 0x20, 0x3d, 0x20, 0x70, 0x6f, 0x77, 0x20, // tmpvar_15 = pow
+ 0x28, 0x28, 0x28, 0x30, 0x2e, 0x38, 0x33, 0x35, 0x39, 0x33, 0x37, 0x35, 0x20, 0x2b, 0x20, 0x0a, // (((0.8359375 + .
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x38, 0x2e, 0x38, 0x35, // (18.85
+ 0x31, 0x35, 0x36, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x34, 0x29, // 156 * tmpvar_14)
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x29, 0x20, 0x2f, 0x20, 0x28, 0x76, 0x65, // . ) / (ve
+ 0x63, 0x33, 0x28, 0x31, 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, // c3(1.0, 1.0, 1.0
+ 0x29, 0x20, 0x2b, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, // ) + . (
+ 0x31, 0x38, 0x2e, 0x36, 0x38, 0x37, 0x35, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // 18.6875 * tmpvar
+ 0x5f, 0x31, 0x34, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x29, 0x29, 0x2c, // _14). )),
+ 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x37, 0x38, 0x2e, 0x38, 0x34, 0x33, 0x37, 0x35, 0x2c, 0x20, // vec3(78.84375,
+ 0x37, 0x38, 0x2e, 0x38, 0x34, 0x33, 0x37, 0x35, 0x2c, 0x20, 0x37, 0x38, 0x2e, 0x38, 0x34, 0x33, // 78.84375, 78.843
+ 0x37, 0x35, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x63, // 75));. _c
+ 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x33, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // olor_13 = tmpvar
+ 0x5f, 0x31, 0x35, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x75, 0x74, // _15;. out
+ 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x36, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // Color_6 = tmpvar
+ 0x5f, 0x31, 0x35, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x3b, 0x0a, 0x20, 0x20, // _15;. };.
+ 0x20, 0x20, 0x7d, 0x3b, 0x0a, 0x20, 0x20, 0x7d, 0x3b, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, // };. };. lowp
+ 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x36, 0x3b, // vec4 tmpvar_16;
+ 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x36, 0x2e, 0x78, 0x79, 0x7a, // . tmpvar_16.xyz
+ 0x20, 0x3d, 0x20, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x36, 0x3b, 0x0a, 0x20, // = outColor_6;.
+ 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x36, 0x2e, 0x77, 0x20, 0x3d, 0x20, 0x63, // tmpvar_16.w = c
+ 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x2e, 0x77, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, // olor_1.w;. tmpv
+ 0x61, 0x72, 0x5f, 0x35, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x36, // ar_5 = tmpvar_16
+ 0x3b, 0x0a, 0x20, 0x20, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, // ;. gl_FragColor
+ 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x35, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, // = tmpvar_5;.}..
+ 0x00, // .
};
-static const uint8_t fs_texture_cube_spv[2425] =
+static const uint8_t fs_texture_cube_spv[4867] =
{
- 0x46, 0x53, 0x48, 0x06, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x05, 0x75, // FSH............u
- 0x5f, 0x6d, 0x74, 0x78, 0x14, 0x01, 0x10, 0x00, 0x04, 0x00, 0x08, 0x75, 0x5f, 0x70, 0x61, 0x72, // _mtx.......u_par
- 0x61, 0x6d, 0x73, 0x12, 0x01, 0x00, 0x00, 0x01, 0x00, 0x48, 0x09, 0x00, 0x00, 0x03, 0x02, 0x23, // ams......H.....#
- 0x07, 0x00, 0x00, 0x01, 0x00, 0x07, 0x00, 0x08, 0x00, 0x5b, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // .........[......
- 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, // ................
- 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, // .GLSL.std.450...
- 0x00, 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x08, // ................
- 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, // .........main...
- 0x00, 0xc5, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, 0x10, 0x00, 0x03, // ................
- 0x00, 0x04, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x05, 0x00, 0x00, // ................
- 0x00, 0xf4, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, // .............mai
- 0x6e, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x09, 0x00, 0x00, 0x00, 0x42, 0x67, 0x66, // n............Bgf
- 0x78, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x43, 0x75, 0x62, 0x65, 0x00, 0x06, 0x00, 0x06, // xSamplerCube....
- 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6d, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, // .........m_sampl
- 0x65, 0x72, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x09, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // er..............
- 0x00, 0x6d, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, // .m_texture......
- 0x00, 0x36, 0x00, 0x00, 0x00, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x00, // .6...s_texColor.
- 0x00, 0x05, 0x00, 0x07, 0x00, 0x38, 0x00, 0x00, 0x00, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, // .....8...s_texCo
- 0x6c, 0x6f, 0x72, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, // lorSampler......
- 0x00, 0x3b, 0x00, 0x00, 0x00, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, // .;...s_texColorT
- 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x77, 0x00, 0x00, // exture.......w..
- 0x00, 0x24, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x00, 0x06, 0x00, 0x06, 0x00, 0x77, 0x00, 0x00, // .$Global.....w..
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x00, 0x00, 0x00, // .....u_params...
- 0x00, 0x06, 0x00, 0x05, 0x00, 0x77, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x6d, // .....w.......u_m
- 0x74, 0x78, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // tx.......y......
- 0x00, 0x05, 0x00, 0x05, 0x00, 0xc5, 0x00, 0x00, 0x00, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, // .........v_color
- 0x30, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0xc9, 0x00, 0x00, 0x00, 0x76, 0x5f, 0x74, // 0............v_t
- 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x00, 0x05, 0x00, 0x06, 0x00, 0xd4, 0x00, 0x00, // excoord0........
- 0x00, 0x62, 0x67, 0x66, 0x78, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x44, 0x61, 0x74, 0x61, 0x30, 0x00, // .bgfx_FragData0.
- 0x00, 0x47, 0x00, 0x04, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .G...;..."......
- 0x00, 0x47, 0x00, 0x04, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .G...;...!......
- 0x00, 0x48, 0x00, 0x05, 0x00, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, // .H...w.......#..
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x04, 0x00, 0x77, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // .....H...w......
- 0x00, 0x04, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x77, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // .....H...w......
- 0x00, 0x23, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x77, 0x00, 0x00, // .#.......H...w..
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, // .............G..
- 0x00, 0x77, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x79, 0x00, 0x00, // .w.......G...y..
- 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xc5, 0x00, 0x00, // .".......G......
- 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xc9, 0x00, 0x00, // .........G......
- 0x00, 0x1e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xd4, 0x00, 0x00, // .........G......
- 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, // ................
- 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x02, // .!..............
- 0x00, 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, // ............. ..
- 0x00, 0x19, 0x00, 0x09, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, // ................
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // ................
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, // ................
- 0x00, 0x08, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, // ................
- 0x00, 0x03, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, // ................
- 0x00, 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, // ..... ...5......
- 0x00, 0x09, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, // .....;...5...6..
- 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x37, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, // ..... ...7......
- 0x00, 0x06, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x37, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, // .....;...7...8..
- 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ..... ...:......
- 0x00, 0x08, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, // .....;...:...;..
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, // .........>... ..
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, // .....+...>...?..
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, // .....+...>...C..
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, 0x47, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, // .........G......
- 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0xcd, 0xcc, 0x0c, // .+.......c......
- 0x40, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x2f, 0xba, 0xe8, // @+.......k.../..
- 0x3e, 0x18, 0x00, 0x04, 0x00, 0x76, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, // >....v..........
- 0x00, 0x1e, 0x00, 0x04, 0x00, 0x77, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, // .....w.......v..
- 0x00, 0x20, 0x00, 0x04, 0x00, 0x78, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, // . ...x.......w..
- 0x00, 0x3b, 0x00, 0x04, 0x00, 0x78, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, // .;...x...y......
- 0x00, 0x15, 0x00, 0x04, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .....z... ......
- 0x00, 0x2b, 0x00, 0x04, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, // .+...z...{......
- 0x00, 0x20, 0x00, 0x04, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, // . ...|..........
- 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .+..............
- 0x40, 0x2b, 0x00, 0x04, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, // @+...z..........
- 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .+..............
- 0x00, 0x17, 0x00, 0x04, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, // ................
- 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, // .+..............
- 0x3f, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, // ?+..............
- 0xbf, 0x2c, 0x00, 0x05, 0x00, 0x9c, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, // .,..............
- 0x00, 0xa3, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0xae, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, // ..... ..........
- 0x00, 0x76, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x7a, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, // .v...+...z......
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0xc4, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // ..... ..........
- 0x00, 0x0e, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0xc4, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, // .....;..........
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0xc8, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // ..... ..........
- 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0xc8, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, // .....;..........
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0xd3, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, // ..... ..........
- 0x00, 0x0e, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0xd3, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, // .....;..........
- 0x00, 0x03, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x05, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x58, 0x01, 0x00, // .....,.......X..
- 0x00, 0xa0, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, // .........,......
- 0x00, 0x59, 0x01, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, // .Y...c...c...c..
- 0x00, 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x5a, 0x01, 0x00, 0x00, 0x6b, 0x00, 0x00, // .,.......Z...k..
- 0x00, 0x6b, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, // .k...k...6......
- 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, // ................
- 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, // .....=.......9..
- 0x00, 0x38, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, // .8...=.......<..
- 0x00, 0x3b, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x09, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, // .;...P.......=..
- 0x00, 0x39, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x36, 0x00, 0x00, // .9...<...>...6..
- 0x00, 0x3d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, // .=...=..........
- 0x00, 0xc5, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, // .....=..........
- 0x00, 0xc9, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x9c, 0x00, 0x00, 0x00, 0xf1, 0x00, 0x00, // .....O..........
- 0x00, 0xca, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // ................
- 0x00, 0x8e, 0x00, 0x05, 0x00, 0x9c, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x00, 0x00, 0xf1, 0x00, 0x00, // ................
- 0x00, 0x87, 0x00, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, 0x9c, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, // ................
- 0x00, 0xf2, 0x00, 0x00, 0x00, 0x58, 0x01, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x9c, 0x00, 0x00, // .....X..........
- 0x00, 0xf5, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, // .............Q..
- 0x00, 0x07, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
- 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, // .Q..............
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x00, // .....P..........
- 0x00, 0xf6, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, // ................
- 0x00, 0x41, 0x00, 0x05, 0x00, 0xae, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, // .A...........y..
- 0x00, 0x3f, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x76, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, // .?...=...v......
- 0x00, 0xfe, 0x00, 0x00, 0x00, 0x90, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, // ................
- 0x00, 0xfd, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x08, 0x00, 0x0b, 0x00, 0x00, // .........O......
- 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, // ................
- 0x00, 0x02, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, // .........E......
- 0x00, 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, 0x36, 0x00, 0x00, // .=...........6..
- 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x54, 0x01, 0x00, 0x00, 0x03, 0x01, 0x00, // .Q.......T......
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, 0x55, 0x01, 0x00, // .....Q.......U..
- 0x00, 0x03, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x7c, 0x00, 0x00, // .........A...|..
- 0x00, 0x05, 0x01, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, // .....y...C......
- 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x01, 0x00, 0x00, 0x05, 0x01, 0x00, // .=..............
- 0x00, 0x56, 0x00, 0x05, 0x00, 0x47, 0x00, 0x00, 0x00, 0x17, 0x01, 0x00, 0x00, 0x55, 0x01, 0x00, // .V...G.......U..
- 0x00, 0x54, 0x01, 0x00, 0x00, 0x58, 0x00, 0x07, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x1a, 0x01, 0x00, // .T...X..........
- 0x00, 0x17, 0x01, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x01, 0x00, // ................
- 0x00, 0x85, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x00, 0x1a, 0x01, 0x00, // ................
- 0x00, 0xc6, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x08, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x23, 0x01, 0x00, // .....O.......#..
- 0x00, 0x0a, 0x01, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // ................
- 0x00, 0x02, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3a, 0x01, 0x00, // .............:..
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x23, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x07, // .........#......
- 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3c, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, // .....<..........
- 0x00, 0x3a, 0x01, 0x00, 0x00, 0x59, 0x01, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x7c, 0x00, 0x00, // .:...Y...A...|..
- 0x00, 0x25, 0x01, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, // .%...y...C...{..
- 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x26, 0x01, 0x00, 0x00, 0x25, 0x01, 0x00, // .=.......&...%..
- 0x00, 0x50, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x27, 0x01, 0x00, 0x00, 0x26, 0x01, 0x00, // .P.......'...&..
- 0x00, 0x26, 0x01, 0x00, 0x00, 0x26, 0x01, 0x00, 0x00, 0x4f, 0x00, 0x08, 0x00, 0x0b, 0x00, 0x00, // .&...&...O......
- 0x00, 0x29, 0x01, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // .)..............
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x0b, 0x00, 0x00, // ................
- 0x00, 0x46, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x3c, 0x01, 0x00, // .F...........<..
- 0x00, 0x29, 0x01, 0x00, 0x00, 0x27, 0x01, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x7c, 0x00, 0x00, // .)...'...A...|..
- 0x00, 0x2c, 0x01, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, // .,...y...C......
- 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x2d, 0x01, 0x00, 0x00, 0x2c, 0x01, 0x00, // .=.......-...,..
- 0x00, 0x0c, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00, 0x2e, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, // ................
- 0x00, 0x1a, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x2d, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, // .........-......
- 0x00, 0x0b, 0x00, 0x00, 0x00, 0x2f, 0x01, 0x00, 0x00, 0x46, 0x01, 0x00, 0x00, 0x2e, 0x01, 0x00, // ...../...F......
- 0x00, 0x0c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x4a, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, // .........J......
- 0x00, 0x04, 0x00, 0x00, 0x00, 0x2f, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, // ...../..........
- 0x00, 0x4c, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x4a, 0x01, 0x00, // .L...........J..
- 0x00, 0x5a, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x32, 0x01, 0x00, // .Z...Q.......2..
- 0x00, 0x0a, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, // .........Q......
- 0x00, 0x33, 0x01, 0x00, 0x00, 0x4c, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, // .3...L.......Q..
- 0x00, 0x07, 0x00, 0x00, 0x00, 0x34, 0x01, 0x00, 0x00, 0x4c, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, // .....4...L......
- 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x35, 0x01, 0x00, 0x00, 0x4c, 0x01, 0x00, // .Q.......5...L..
- 0x00, 0x02, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x36, 0x01, 0x00, // .....P.......6..
- 0x00, 0x33, 0x01, 0x00, 0x00, 0x34, 0x01, 0x00, 0x00, 0x35, 0x01, 0x00, 0x00, 0x32, 0x01, 0x00, // .3...4...5...2..
- 0x00, 0x3e, 0x00, 0x03, 0x00, 0xd4, 0x00, 0x00, 0x00, 0x36, 0x01, 0x00, 0x00, 0xfd, 0x00, 0x01, // .>.......6......
- 0x00, 0x38, 0x00, 0x01, 0x00, 0x00, 0x00, 0x50, 0x00, // .8.....P.
+ 0x46, 0x53, 0x48, 0x0b, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x09, 0x75, // FSH............u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // _params0........
+ 0xfd, 0x7f, 0x05, 0x75, 0x5f, 0x6d, 0x74, 0x78, 0x14, 0x00, 0x20, 0x00, 0x04, 0x00, 0x00, 0x00, // ...u_mtx.. .....
+ 0xfd, 0x7f, 0x09, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x12, 0x00, 0x10, 0x00, // ...u_params1....
+ 0x01, 0x00, 0x00, 0x00, 0xfd, 0x7f, 0x0a, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, // .......s_texColo
+ 0x72, 0x30, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x04, 0x1a, 0x00, 0xa0, 0x12, 0x00, 0x00, 0x03, // r0..............
+ 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0a, 0x00, 0x08, 0x00, 0xf3, 0x02, 0x00, 0x00, 0x00, // .#..............
+ 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, // ................
+ 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, // ...GLSL.std.450.
+ 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, // ................
+ 0x00, 0x09, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, // ...........main.
+ 0x00, 0x00, 0x00, 0x7c, 0x01, 0x00, 0x00, 0x7f, 0x01, 0x00, 0x00, 0x83, 0x01, 0x00, 0x00, 0x90, // ...|............
+ 0x01, 0x00, 0x00, 0x10, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, // ................
+ 0x00, 0x03, 0x00, 0x05, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, // ................
+ 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x4b, // ...main........K
+ 0x00, 0x00, 0x00, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x61, 0x6d, // ...s_texColorSam
+ 0x70, 0x6c, 0x65, 0x72, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x73, // pler.......N...s
+ 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, // _texColorTexture
+ 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x81, 0x00, 0x00, 0x00, 0x55, 0x6e, 0x69, 0x66, 0x6f, // ...........Unifo
+ 0x72, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x81, // rmBlock.........
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, // .......u_params0
+ 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x81, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x75, // ...............u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x00, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x81, // _params1........
+ 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x6d, 0x74, 0x78, 0x00, 0x00, 0x00, 0x05, // .......u_mtx....
+ 0x00, 0x03, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x7c, // ...............|
+ 0x01, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x00, // ...gl_FragCoord.
+ 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x7f, 0x01, 0x00, 0x00, 0x76, 0x5f, 0x63, 0x6f, 0x6c, // ...........v_col
+ 0x6f, 0x72, 0x30, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x83, 0x01, 0x00, 0x00, 0x76, // or0............v
+ 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x00, 0x05, 0x00, 0x06, 0x00, 0x90, // _texcoord0......
+ 0x01, 0x00, 0x00, 0x62, 0x67, 0x66, 0x78, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x44, 0x61, 0x74, 0x61, // ...bgfx_FragData
+ 0x30, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, // 0..G...K..."....
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x12, // ...G...K...!....
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, // ...G...N..."....
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, // ...G...N...!....
+ 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, // ...H...........#
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x81, 0x00, 0x00, 0x00, 0x01, // .......H........
+ 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x04, 0x00, 0x81, // ...#.......H....
+ 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x81, // ...........H....
+ 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x48, // .......#... ...H
+ 0x00, 0x05, 0x00, 0x81, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x10, // ................
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x81, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, // ...G...........G
+ 0x00, 0x04, 0x00, 0x83, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, // .......".......G
+ 0x00, 0x04, 0x00, 0x83, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, // .......!.......G
+ 0x00, 0x04, 0x00, 0x7c, 0x01, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x47, // ...|...........G
+ 0x00, 0x04, 0x00, 0x7f, 0x01, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, // ...............G
+ 0x00, 0x04, 0x00, 0x83, 0x01, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, // ...............G
+ 0x00, 0x04, 0x00, 0x90, 0x01, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, // ................
+ 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, // .......!........
+ 0x00, 0x00, 0x00, 0x1a, 0x00, 0x02, 0x00, 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x07, // ................
+ 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, // ... ............
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0b, // ................
+ 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0e, // ................
+ 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x4a, // ........... ...J
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x4a, // ...........;...J
+ 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x4d, // ...K....... ...M
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x4d, // ...........;...M
+ 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x51, // ...N...........Q
+ 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x51, // ... .......+...Q
+ 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x51, // ...R.......+...Q
+ 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, 0x5a, // ...V...........Z
+ 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x76, // .......+.......v
+ 0x00, 0x00, 0x00, 0xcd, 0xcc, 0x0c, 0x40, 0x18, 0x00, 0x04, 0x00, 0x80, 0x00, 0x00, 0x00, 0x0e, // ......@.........
+ 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x05, 0x00, 0x81, 0x00, 0x00, 0x00, 0x0e, // ................
+ 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x82, // ........... ....
+ 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x82, // ...........;....
+ 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x84, // ................
+ 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x84, // ... .......+....
+ 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x86, // ........... ....
+ 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, // ...........+....
+ 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x2b, 0x00, 0x04, 0x00, 0x84, // ..........@+....
+ 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, // ...........+....
+ 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x1c, 0x2e, 0x4d, 0x3b, 0x14, 0x00, 0x02, 0x00, 0x9a, // .........M;.....
+ 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x52, // ...+...........R
+ 0xb8, 0x4e, 0x41, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x3d, // .NA+...........=
+ 0x0a, 0x87, 0x3f, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0x55, // ..?+...........U
+ 0x55, 0xd5, 0x3e, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0xae, // U.>+............
+ 0x47, 0x61, 0x3d, 0x2b, 0x00, 0x04, 0x00, 0x84, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, 0x00, // Ga=+............
+ 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x84, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x01, // ...+............
+ 0x00, 0x00, 0x00, 0x18, 0x00, 0x04, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x03, // ................
+ 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x98, // ...+............
+ 0x3a, 0xd3, 0x3e, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0x37, // :.>+...........7
+ 0x14, 0xb7, 0x3e, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, 0x9c, // ..>+............
+ 0xc4, 0x38, 0x3e, 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, 0xc3, // .8>,............
+ 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, // ...........+....
+ 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, 0xed, 0xc6, 0x59, 0x3e, 0x2b, 0x00, 0x04, 0x00, 0x07, // .........Y>+....
+ 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0x37, 0x14, 0x37, 0x3f, 0x2b, 0x00, 0x04, 0x00, 0x07, // .......7.7?+....
+ 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, 0x7d, 0xd0, 0x93, 0x3d, 0x2c, 0x00, 0x06, 0x00, 0x0b, // .......}..=,....
+ 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0xc9, // ................
+ 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, 0x21, // ...+...........!
+ 0x62, 0x9e, 0x3c, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xef, // b.<+............
+ 0x1a, 0xf4, 0x3d, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xcd, 0x00, 0x00, 0x00, 0x21, // ..=+...........!
+ 0x47, 0x73, 0x3f, 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, 0xcb, // Gs?,............
+ 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcd, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0xc0, // ...........,....
+ 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, 0xce, // ................
+ 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, 0x3a, // ...+...........:
+ 0xbb, 0xdb, 0x3f, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, 0x7c, // ..?+...........|
+ 0x1a, 0xb6, 0xbe, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0x3a, // ...+...........:
+ 0xb9, 0x81, 0xbe, 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, 0xd6, // ...,............
+ 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, // ...........+....
+ 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, 0xd4, 0xab, 0x2a, 0xbf, 0x2b, 0x00, 0x04, 0x00, 0x07, // .........*.+....
+ 0x00, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, 0xdb, 0xe8, 0xce, 0x3f, 0x2b, 0x00, 0x04, 0x00, 0x07, // ..........?+....
+ 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, 0xf1, 0x2c, 0x81, 0x3c, 0x2c, 0x00, 0x06, 0x00, 0x0b, // ........,.<,....
+ 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, 0xdc, // ................
+ 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, 0x8d, // ...+............
+ 0x81, 0x90, 0x3c, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, 0x3a, // ..<+...........:
+ 0x30, 0x2f, 0xbd, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0xab, // 0/.+............
+ 0x2d, 0x71, 0x3f, 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0xde, // -q?,............
+ 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0xc0, // ...........,....
+ 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0xe1, // ................
+ 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, 0x00, // ...+............
+ 0x20, 0x23, 0x3e, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, 0x00, // #>+............
+ 0xb0, 0x9d, 0x42, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xed, 0x00, 0x00, 0x00, 0x00, // ..B+............
+ 0x00, 0x56, 0x3f, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00, 0x00, // .V?+............
+ 0xd0, 0x96, 0x41, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xf1, 0x00, 0x00, 0x00, 0x00, // ..A+............
+ 0x80, 0x95, 0x41, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0x17, // ..A+............
+ 0xb7, 0xd1, 0x38, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // ..8+............
+ 0x00, 0x80, 0x3f, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x00, // ..?+............
+ 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, 0x00, // ...+............
+ 0x00, 0x00, 0x3f, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, // ..?+.......!....
+ 0x00, 0xc0, 0x3f, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x29, 0x01, 0x00, 0x00, 0x00, // ..?+.......)....
+ 0x00, 0x20, 0x40, 0x17, 0x00, 0x04, 0x00, 0x47, 0x01, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x02, // . @....G........
+ 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x4d, 0x01, 0x00, 0x00, 0x00, // ...+.......M....
+ 0x00, 0x80, 0xbf, 0x2c, 0x00, 0x05, 0x00, 0x47, 0x01, 0x00, 0x00, 0x4e, 0x01, 0x00, 0x00, 0x00, // ...,...G...N....
+ 0x01, 0x00, 0x00, 0x4d, 0x01, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x51, 0x00, 0x00, 0x00, 0x58, // ...M...+...Q...X
+ 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x59, 0x01, 0x00, 0x00, 0x02, // ....... ...Y....
+ 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x7b, 0x01, 0x00, 0x00, 0x01, // ....... ...{....
+ 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x7b, 0x01, 0x00, 0x00, 0x7c, // .......;...{...|
+ 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x7b, 0x01, 0x00, 0x00, 0x7f, // .......;...{....
+ 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x82, 0x01, 0x00, 0x00, 0x01, // ....... ........
+ 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x82, 0x01, 0x00, 0x00, 0x83, // .......;........
+ 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x8f, 0x01, 0x00, 0x00, 0x03, // ....... ........
+ 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x8f, 0x01, 0x00, 0x00, 0x90, // .......;........
+ 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x05, 0x00, 0x47, 0x01, 0x00, 0x00, 0xe0, // .......,...G....
+ 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x0b, // ...........,....
+ 0x00, 0x00, 0x00, 0xe1, 0x02, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x76, // .......v...v...v
+ 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xe2, 0x02, 0x00, 0x00, 0x10, // ...,............
+ 0x01, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x0b, // ...........,....
+ 0x00, 0x00, 0x00, 0xe3, 0x02, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, 0xe9, // ................
+ 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xe4, 0x02, 0x00, 0x00, 0xed, // ...,............
+ 0x00, 0x00, 0x00, 0xed, 0x00, 0x00, 0x00, 0xed, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x0b, // ...........,....
+ 0x00, 0x00, 0x00, 0xe5, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // ................
+ 0x01, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xe6, 0x02, 0x00, 0x00, 0xeb, // ...,............
+ 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x0b, // ................
+ 0x00, 0x00, 0x00, 0xf2, 0x02, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, // .......6........
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, // ................
+ 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x4b, // ...=.......L...K
+ 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x4e, // ...=.......O...N
+ 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x7f, // ...=............
+ 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x84, 0x01, 0x00, 0x00, 0x83, // ...=............
+ 0x01, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x47, 0x01, 0x00, 0x00, 0xb9, 0x01, 0x00, 0x00, 0x84, // ...O...G........
+ 0x01, 0x00, 0x00, 0x84, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x8e, // ................
+ 0x00, 0x05, 0x00, 0x47, 0x01, 0x00, 0x00, 0xba, 0x01, 0x00, 0x00, 0xb9, 0x01, 0x00, 0x00, 0x90, // ...G............
+ 0x00, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, 0x47, 0x01, 0x00, 0x00, 0xbc, 0x01, 0x00, 0x00, 0xba, // .......G........
+ 0x01, 0x00, 0x00, 0xe0, 0x02, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x47, 0x01, 0x00, 0x00, 0xbd, // ...........G....
+ 0x01, 0x00, 0x00, 0xbc, 0x01, 0x00, 0x00, 0x4e, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, // .......N...Q....
+ 0x00, 0x00, 0x00, 0xbe, 0x01, 0x00, 0x00, 0xbd, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, // ...............Q
+ 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0xbf, 0x01, 0x00, 0x00, 0xbd, 0x01, 0x00, 0x00, 0x01, // ................
+ 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xc5, 0x01, 0x00, 0x00, 0xbe, // ...P............
+ 0x01, 0x00, 0x00, 0xbf, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x41, // ...............A
+ 0x00, 0x05, 0x00, 0x59, 0x01, 0x00, 0x00, 0xc6, 0x01, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x58, // ...Y...........X
+ 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x80, 0x00, 0x00, 0x00, 0xc7, 0x01, 0x00, 0x00, 0xc6, // ...=............
+ 0x01, 0x00, 0x00, 0x90, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xc8, 0x01, 0x00, 0x00, 0xc5, // ................
+ 0x01, 0x00, 0x00, 0xc7, 0x01, 0x00, 0x00, 0x4f, 0x00, 0x08, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xc9, // .......O........
+ 0x01, 0x00, 0x00, 0xc8, 0x01, 0x00, 0x00, 0xc8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, // ................
+ 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xca, // ................
+ 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0xc9, 0x01, 0x00, 0x00, 0x41, // .......E.......A
+ 0x00, 0x06, 0x00, 0x86, 0x00, 0x00, 0x00, 0xcd, 0x01, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x56, // ...............V
+ 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xce, // .......=........
+ 0x01, 0x00, 0x00, 0xcd, 0x01, 0x00, 0x00, 0x56, 0x00, 0x05, 0x00, 0x5a, 0x00, 0x00, 0x00, 0xeb, // .......V...Z....
+ 0x01, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x58, 0x00, 0x07, 0x00, 0x0e, // ...O...L...X....
+ 0x00, 0x00, 0x00, 0xee, 0x01, 0x00, 0x00, 0xeb, 0x01, 0x00, 0x00, 0xca, 0x01, 0x00, 0x00, 0x02, // ................
+ 0x00, 0x00, 0x00, 0xce, 0x01, 0x00, 0x00, 0x4f, 0x00, 0x08, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xd1, // .......O........
+ 0x01, 0x00, 0x00, 0xee, 0x01, 0x00, 0x00, 0xee, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, // ................
+ 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x06, // ................
+ 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xd1, 0x01, 0x00, 0x00, 0x0c, // ................
+ 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1a, // ................
+ 0x00, 0x00, 0x00, 0x06, 0x02, 0x00, 0x00, 0xe1, 0x02, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x86, // ...........A....
+ 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x85, // ...........V....
+ 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xf9, 0x01, 0x00, 0x00, 0xf8, // ...=............
+ 0x01, 0x00, 0x00, 0x50, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xfa, 0x01, 0x00, 0x00, 0xf9, // ...P............
+ 0x01, 0x00, 0x00, 0xf9, 0x01, 0x00, 0x00, 0xf9, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x0b, // ................
+ 0x00, 0x00, 0x00, 0x14, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x08, // ................
+ 0x02, 0x00, 0x00, 0xd1, 0x01, 0x00, 0x00, 0xfa, 0x01, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x86, // ...........A....
+ 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x91, // ...........V....
+ 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, 0xfe, // ...=............
+ 0x01, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x01, // ................
+ 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, 0x8e, // ................
+ 0x00, 0x05, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x14, 0x02, 0x00, 0x00, 0x00, // ................
+ 0x02, 0x00, 0x00, 0x4f, 0x00, 0x09, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xd4, 0x01, 0x00, 0x00, 0xee, // ...O............
+ 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, // ................
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xd7, // ................
+ 0x01, 0x00, 0x00, 0xd4, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x86, // ...........A....
+ 0x00, 0x00, 0x00, 0xd9, 0x01, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0xad, // ...........R....
+ 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xda, 0x01, 0x00, 0x00, 0xd9, // ...=............
+ 0x01, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x86, 0x00, 0x00, 0x00, 0xdb, 0x01, 0x00, 0x00, 0x83, // ...A............
+ 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, // ...R.......=....
+ 0x00, 0x00, 0x00, 0xdc, 0x01, 0x00, 0x00, 0xdb, 0x01, 0x00, 0x00, 0xb8, 0x00, 0x05, 0x00, 0x9a, // ................
+ 0x00, 0x00, 0x00, 0x20, 0x02, 0x00, 0x00, 0xda, 0x01, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, 0xf7, // ... ............
+ 0x00, 0x03, 0x00, 0x3d, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x20, // ...=...........
+ 0x02, 0x00, 0x00, 0x21, 0x02, 0x00, 0x00, 0x28, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x28, // ...!...(.......(
+ 0x02, 0x00, 0x00, 0xb8, 0x00, 0x05, 0x00, 0x9a, 0x00, 0x00, 0x00, 0x2a, 0x02, 0x00, 0x00, 0xda, // ...........*....
+ 0x01, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x3c, 0x02, 0x00, 0x00, 0x00, // ...!.......<....
+ 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x2a, 0x02, 0x00, 0x00, 0x2b, 0x02, 0x00, 0x00, 0x2e, // .......*...+....
+ 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x2e, 0x02, 0x00, 0x00, 0xb8, 0x00, 0x05, 0x00, 0x9a, // ................
+ 0x00, 0x00, 0x00, 0x30, 0x02, 0x00, 0x00, 0xda, 0x01, 0x00, 0x00, 0x29, 0x01, 0x00, 0x00, 0xf7, // ...0.......)....
+ 0x00, 0x03, 0x00, 0x3b, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x30, // ...;...........0
+ 0x02, 0x00, 0x00, 0x31, 0x02, 0x00, 0x00, 0x3b, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x31, // ...1...;.......1
+ 0x02, 0x00, 0x00, 0x4f, 0x00, 0x08, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x33, 0x02, 0x00, 0x00, 0xd7, // ...O.......3....
+ 0x01, 0x00, 0x00, 0xd7, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, // ................
+ 0x00, 0x00, 0x00, 0x90, 0x00, 0x05, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x98, 0x02, 0x00, 0x00, 0x33, // ...............3
+ 0x02, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, 0x90, 0x00, 0x05, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x9e, // ................
+ 0x02, 0x00, 0x00, 0x98, 0x02, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x0b, // ................
+ 0x00, 0x00, 0x00, 0x39, 0x02, 0x00, 0x00, 0x9e, 0x02, 0x00, 0x00, 0xdc, 0x01, 0x00, 0x00, 0x8e, // ...9............
+ 0x00, 0x05, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xab, 0x02, 0x00, 0x00, 0x39, 0x02, 0x00, 0x00, 0xf4, // ...........9....
+ 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xae, 0x02, 0x00, 0x00, 0x01, // ................
+ 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0xab, 0x02, 0x00, 0x00, 0xe3, 0x02, 0x00, 0x00, 0x8e, // ................
+ 0x00, 0x05, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xb2, 0x02, 0x00, 0x00, 0xae, 0x02, 0x00, 0x00, 0xef, // ................
+ 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xb4, 0x02, 0x00, 0x00, 0xe4, // ................
+ 0x02, 0x00, 0x00, 0xb2, 0x02, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xb8, // ................
+ 0x02, 0x00, 0x00, 0xae, 0x02, 0x00, 0x00, 0xf1, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x0b, // ................
+ 0x00, 0x00, 0x00, 0xb9, 0x02, 0x00, 0x00, 0xe5, 0x02, 0x00, 0x00, 0xb8, 0x02, 0x00, 0x00, 0x88, // ................
+ 0x00, 0x05, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xba, 0x02, 0x00, 0x00, 0xb4, 0x02, 0x00, 0x00, 0xb9, // ................
+ 0x02, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xbd, 0x02, 0x00, 0x00, 0x01, // ................
+ 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0xba, 0x02, 0x00, 0x00, 0xe6, 0x02, 0x00, 0x00, 0xf9, // ................
+ 0x00, 0x02, 0x00, 0x3b, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x3b, 0x02, 0x00, 0x00, 0xf5, // ...;.......;....
+ 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xef, 0x02, 0x00, 0x00, 0xe2, 0x02, 0x00, 0x00, 0x2e, // ................
+ 0x02, 0x00, 0x00, 0xbd, 0x02, 0x00, 0x00, 0x31, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x3c, // .......1.......<
+ 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x2b, 0x02, 0x00, 0x00, 0x4f, 0x00, 0x08, 0x00, 0x0b, // .......+...O....
+ 0x00, 0x00, 0x00, 0x2d, 0x02, 0x00, 0x00, 0xd7, 0x01, 0x00, 0x00, 0xd7, 0x01, 0x00, 0x00, 0x00, // ...-............
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x3c, // ...............<
+ 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x3c, 0x02, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x0b, // .......<........
+ 0x00, 0x00, 0x00, 0xee, 0x02, 0x00, 0x00, 0xef, 0x02, 0x00, 0x00, 0x3b, 0x02, 0x00, 0x00, 0x2d, // ...........;...-
+ 0x02, 0x00, 0x00, 0x2b, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x3d, 0x02, 0x00, 0x00, 0xf8, // ...+.......=....
+ 0x00, 0x02, 0x00, 0x21, 0x02, 0x00, 0x00, 0x4f, 0x00, 0x08, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x23, // ...!...O.......#
+ 0x02, 0x00, 0x00, 0xd7, 0x01, 0x00, 0x00, 0xd7, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, // ................
+ 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x26, // ...............&
+ 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x23, 0x02, 0x00, 0x00, 0xe2, // .......+...#....
+ 0x02, 0x00, 0x00, 0xe5, 0x02, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x51, // .......Q.......Q
+ 0x02, 0x00, 0x00, 0x26, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x6d, // ...&...........m
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x03, 0x00, 0xad, 0x00, 0x00, 0x00, 0x61, // ...............a
+ 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x61, 0x02, 0x00, 0x00, 0xbc, 0x00, 0x05, 0x00, 0x9a, // .......a........
+ 0x00, 0x00, 0x00, 0x63, 0x02, 0x00, 0x00, 0x51, 0x02, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0xf7, // ...c...Q........
+ 0x00, 0x03, 0x00, 0x6c, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x63, // ...l...........c
+ 0x02, 0x00, 0x00, 0x64, 0x02, 0x00, 0x00, 0x67, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x67, // ...d...g.......g
+ 0x02, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00, 0x69, 0x02, 0x00, 0x00, 0x01, // ...........i....
+ 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x51, 0x02, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0x85, // .......Q........
+ 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x6a, 0x02, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x69, // .......j.......i
+ 0x02, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x6b, 0x02, 0x00, 0x00, 0x6a, // ...........k...j
+ 0x02, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x6d, 0x02, 0x00, 0x00, 0xf8, // ...........m....
+ 0x00, 0x02, 0x00, 0x64, 0x02, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x66, // ...d...........f
+ 0x02, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x51, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x6d, // .......Q.......m
+ 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x6c, 0x02, 0x00, 0x00, 0xff, 0x00, 0x01, 0x00, 0xf8, // .......l........
+ 0x00, 0x02, 0x00, 0x6d, 0x02, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00, 0xe7, // ...m............
+ 0x02, 0x00, 0x00, 0x6b, 0x02, 0x00, 0x00, 0x67, 0x02, 0x00, 0x00, 0x66, 0x02, 0x00, 0x00, 0x64, // ...k...g...f...d
+ 0x02, 0x00, 0x00, 0x52, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xd7, 0x02, 0x00, 0x00, 0xe7, // ...R............
+ 0x02, 0x00, 0x00, 0xf2, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, // ...........Q....
+ 0x00, 0x00, 0x00, 0x55, 0x02, 0x00, 0x00, 0x26, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf7, // ...U...&........
+ 0x00, 0x03, 0x00, 0x7f, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x03, 0x00, 0xad, // ................
+ 0x00, 0x00, 0x00, 0x73, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x73, 0x02, 0x00, 0x00, 0xbc, // ...s.......s....
+ 0x00, 0x05, 0x00, 0x9a, 0x00, 0x00, 0x00, 0x75, 0x02, 0x00, 0x00, 0x55, 0x02, 0x00, 0x00, 0x99, // .......u...U....
+ 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x7e, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, // .......~........
+ 0x00, 0x04, 0x00, 0x75, 0x02, 0x00, 0x00, 0x76, 0x02, 0x00, 0x00, 0x79, 0x02, 0x00, 0x00, 0xf8, // ...u...v...y....
+ 0x00, 0x02, 0x00, 0x79, 0x02, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00, 0x7b, // ...y...........{
+ 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x55, 0x02, 0x00, 0x00, 0xa5, // ...........U....
+ 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x7c, 0x02, 0x00, 0x00, 0xa3, // ...........|....
+ 0x00, 0x00, 0x00, 0x7b, 0x02, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x7d, // ...{...........}
+ 0x02, 0x00, 0x00, 0x7c, 0x02, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x7f, // ...|............
+ 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x76, 0x02, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x07, // .......v........
+ 0x00, 0x00, 0x00, 0x78, 0x02, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x55, 0x02, 0x00, 0x00, 0xf9, // ...x.......U....
+ 0x00, 0x02, 0x00, 0x7f, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x7e, 0x02, 0x00, 0x00, 0xff, // ...........~....
+ 0x00, 0x01, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x7f, 0x02, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x07, // ................
+ 0x00, 0x00, 0x00, 0xe9, 0x02, 0x00, 0x00, 0x7d, 0x02, 0x00, 0x00, 0x79, 0x02, 0x00, 0x00, 0x78, // .......}...y...x
+ 0x02, 0x00, 0x00, 0x76, 0x02, 0x00, 0x00, 0x52, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xda, // ...v...R........
+ 0x02, 0x00, 0x00, 0xe9, 0x02, 0x00, 0x00, 0xd7, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x51, // ...............Q
+ 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x59, 0x02, 0x00, 0x00, 0x26, 0x02, 0x00, 0x00, 0x02, // .......Y...&....
+ 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x91, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, // ................
+ 0x00, 0x03, 0x00, 0xad, 0x00, 0x00, 0x00, 0x85, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x85, // ................
+ 0x02, 0x00, 0x00, 0xbc, 0x00, 0x05, 0x00, 0x9a, 0x00, 0x00, 0x00, 0x87, 0x02, 0x00, 0x00, 0x59, // ...............Y
+ 0x02, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x90, 0x02, 0x00, 0x00, 0x00, // ................
+ 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x87, 0x02, 0x00, 0x00, 0x88, 0x02, 0x00, 0x00, 0x8b, // ................
+ 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x8b, 0x02, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x07, // ................
+ 0x00, 0x00, 0x00, 0x8d, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x59, // ...............Y
+ 0x02, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x8e, // ................
+ 0x02, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x8d, 0x02, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, 0x07, // ................
+ 0x00, 0x00, 0x00, 0x8f, 0x02, 0x00, 0x00, 0x8e, 0x02, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0xf9, // ................
+ 0x00, 0x02, 0x00, 0x91, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x88, 0x02, 0x00, 0x00, 0x85, // ................
+ 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x8a, 0x02, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x59, // ...............Y
+ 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x91, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x90, // ................
+ 0x02, 0x00, 0x00, 0xff, 0x00, 0x01, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x91, 0x02, 0x00, 0x00, 0xf5, // ................
+ 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00, 0xeb, 0x02, 0x00, 0x00, 0x8f, 0x02, 0x00, 0x00, 0x8b, // ................
+ 0x02, 0x00, 0x00, 0x8a, 0x02, 0x00, 0x00, 0x88, 0x02, 0x00, 0x00, 0x52, 0x00, 0x06, 0x00, 0x0b, // ...........R....
+ 0x00, 0x00, 0x00, 0xdd, 0x02, 0x00, 0x00, 0xeb, 0x02, 0x00, 0x00, 0xda, 0x02, 0x00, 0x00, 0x02, // ................
+ 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x3d, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x3d, // .......=.......=
+ 0x02, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xed, 0x02, 0x00, 0x00, 0xee, // ................
+ 0x02, 0x00, 0x00, 0x3c, 0x02, 0x00, 0x00, 0xdd, 0x02, 0x00, 0x00, 0x91, 0x02, 0x00, 0x00, 0x51, // ...<...........Q
+ 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0xd7, 0x01, 0x00, 0x00, 0x03, // .......@........
+ 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x41, 0x02, 0x00, 0x00, 0xed, // ...Q.......A....
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x42, // .......Q.......B
+ 0x02, 0x00, 0x00, 0xed, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, // ...........Q....
+ 0x00, 0x00, 0x00, 0x43, 0x02, 0x00, 0x00, 0xed, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x50, // ...C...........P
+ 0x00, 0x07, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x44, 0x02, 0x00, 0x00, 0x41, 0x02, 0x00, 0x00, 0x42, // .......D...A...B
+ 0x02, 0x00, 0x00, 0x43, 0x02, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x90, // ...C...@...>....
+ 0x01, 0x00, 0x00, 0x44, 0x02, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00, 0x00, // ...D.......8....
+ 0x00, 0x60, 0x00, // .`.
};
-static const uint8_t fs_texture_cube_dx9[779] =
+static const uint8_t fs_texture_cube_dx9[1596] =
{
- 0x46, 0x53, 0x48, 0x06, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x0a, 0x73, // FSH............s
- 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x01, 0x00, 0x00, 0x01, 0x00, 0x05, // _texColor0......
- 0x75, 0x5f, 0x6d, 0x74, 0x78, 0x14, 0x01, 0x00, 0x00, 0x03, 0x00, 0x08, 0x75, 0x5f, 0x70, 0x61, // u_mtx.......u_pa
- 0x72, 0x61, 0x6d, 0x73, 0x12, 0x01, 0x03, 0x00, 0x01, 0x00, 0xcc, 0x02, 0x00, 0x00, 0x00, 0x03, // rams............
- 0xff, 0xff, 0xfe, 0xff, 0x37, 0x00, 0x43, 0x54, 0x41, 0x42, 0x1c, 0x00, 0x00, 0x00, 0xaf, 0x00, // ....7.CTAB......
- 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x91, // ................
- 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, // ......X.........
- 0x02, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x02, 0x00, // ..d.......t.....
- 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8c, 0x00, // ......|.........
- 0x00, 0x00, 0x02, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
- 0x00, 0x00, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x00, 0xab, 0x04, 0x00, // ..s_texColor....
- 0x0e, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, // ..............u_
- 0x6d, 0x74, 0x78, 0x00, 0xab, 0xab, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x01, 0x00, // mtx.............
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x00, 0xab, // ......u_params..
- 0xab, 0xab, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
- 0x00, 0x00, 0x70, 0x73, 0x5f, 0x33, 0x5f, 0x30, 0x00, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, // ..ps_3_0.Microso
- 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4c, 0x53, 0x4c, 0x20, 0x53, 0x68, 0x61, 0x64, // ft (R) HLSL Shad
- 0x65, 0x72, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x20, 0x31, 0x30, 0x2e, 0x31, // er Compiler 10.1
- 0x00, 0xab, 0x51, 0x00, 0x00, 0x05, 0x04, 0x00, 0x0f, 0xa0, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, // ..Q..........@..
- 0x80, 0xbf, 0x00, 0x00, 0x80, 0x3f, 0xcd, 0xcc, 0x0c, 0x40, 0x51, 0x00, 0x00, 0x05, 0x05, 0x00, // .....?...@Q.....
- 0x0f, 0xa0, 0x2f, 0xba, 0xe8, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ../..>..........
- 0x00, 0x00, 0x1f, 0x00, 0x00, 0x02, 0x0a, 0x00, 0x00, 0x80, 0x00, 0x00, 0x0f, 0x90, 0x1f, 0x00, // ................
- 0x00, 0x02, 0x05, 0x00, 0x00, 0x80, 0x01, 0x00, 0x03, 0x90, 0x1f, 0x00, 0x00, 0x02, 0x00, 0x00, // ................
- 0x00, 0x98, 0x00, 0x08, 0x0f, 0xa0, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x03, 0x80, 0x01, 0x00, // ................
- 0xe4, 0x90, 0x04, 0x00, 0x00, 0xa0, 0x04, 0x00, 0x55, 0xa0, 0x05, 0x00, 0x00, 0x03, 0x00, 0x00, // ........U.......
- 0x03, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x04, 0x00, 0xe6, 0xa0, 0x05, 0x00, 0x00, 0x03, 0x00, 0x00, // ................
- 0x0e, 0x80, 0x00, 0x00, 0x55, 0x80, 0x01, 0x00, 0x90, 0xa0, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, // ....U...........
- 0x07, 0x80, 0x00, 0x00, 0xe4, 0xa0, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0xf9, 0x80, 0x02, 0x00, // ................
- 0x00, 0x03, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x02, 0x00, 0xe4, 0xa0, 0x24, 0x00, // ..............$.
- 0x00, 0x02, 0x01, 0x00, 0x07, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x01, 0x00, 0x00, 0x02, 0x01, 0x00, // ................
- 0x08, 0x80, 0x03, 0x00, 0x00, 0xa0, 0x5f, 0x00, 0x00, 0x03, 0x00, 0x00, 0x0f, 0x80, 0x01, 0x00, // ......_.........
- 0xe4, 0x80, 0x00, 0x08, 0xe4, 0xa0, 0x05, 0x00, 0x00, 0x03, 0x01, 0x00, 0x0f, 0x80, 0x00, 0x00, // ................
- 0xe4, 0x80, 0x00, 0x00, 0xe4, 0x90, 0x0f, 0x00, 0x00, 0x02, 0x02, 0x00, 0x01, 0x80, 0x01, 0x00, // ................
- 0x00, 0x8b, 0x0f, 0x00, 0x00, 0x02, 0x02, 0x00, 0x02, 0x80, 0x01, 0x00, 0x55, 0x8b, 0x0f, 0x00, // ............U...
- 0x00, 0x02, 0x02, 0x00, 0x04, 0x80, 0x01, 0x00, 0xaa, 0x8b, 0x01, 0x00, 0x00, 0x02, 0x00, 0x08, // ................
- 0x08, 0x80, 0x01, 0x00, 0xff, 0x80, 0x05, 0x00, 0x00, 0x03, 0x01, 0x00, 0x07, 0x80, 0x02, 0x00, // ................
- 0xe4, 0x80, 0x04, 0x00, 0xff, 0xa0, 0x0e, 0x00, 0x00, 0x02, 0x02, 0x00, 0x01, 0x80, 0x01, 0x00, // ................
- 0x00, 0x80, 0x0e, 0x00, 0x00, 0x02, 0x02, 0x00, 0x02, 0x80, 0x01, 0x00, 0x55, 0x80, 0x0e, 0x00, // ............U...
- 0x00, 0x02, 0x02, 0x00, 0x04, 0x80, 0x01, 0x00, 0xaa, 0x80, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, // ................
- 0x07, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x00, 0x00, 0xe4, 0x90, 0x02, 0x00, 0xe4, 0x81, 0x04, 0x00, // ................
- 0x00, 0x04, 0x00, 0x00, 0x07, 0x80, 0x03, 0x00, 0xaa, 0xa0, 0x00, 0x00, 0xe4, 0x80, 0x02, 0x00, // ................
- 0xe4, 0x80, 0x0e, 0x00, 0x00, 0x02, 0x00, 0x00, 0x08, 0x80, 0x03, 0x00, 0xff, 0xa0, 0x05, 0x00, // ................
- 0x00, 0x03, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x0f, 0x00, // ................
- 0x00, 0x02, 0x01, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x8b, 0x0f, 0x00, 0x00, 0x02, 0x01, 0x00, // ................
- 0x02, 0x80, 0x00, 0x00, 0x55, 0x8b, 0x0f, 0x00, 0x00, 0x02, 0x01, 0x00, 0x04, 0x80, 0x00, 0x00, // ....U...........
- 0xaa, 0x8b, 0x05, 0x00, 0x00, 0x03, 0x00, 0x00, 0x07, 0x80, 0x01, 0x00, 0xe4, 0x80, 0x05, 0x00, // ................
- 0x00, 0xa0, 0x0e, 0x00, 0x00, 0x02, 0x00, 0x08, 0x01, 0x80, 0x00, 0x00, 0x00, 0x80, 0x0e, 0x00, // ................
- 0x00, 0x02, 0x00, 0x08, 0x02, 0x80, 0x00, 0x00, 0x55, 0x80, 0x0e, 0x00, 0x00, 0x02, 0x00, 0x08, // ........U.......
- 0x04, 0x80, 0x00, 0x00, 0xaa, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, // ...........
+ 0x46, 0x53, 0x48, 0x0b, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x0a, 0x73, // FSH............s
+ 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, // _texColor0......
+ 0x00, 0x00, 0x00, 0x05, 0x75, 0x5f, 0x6d, 0x74, 0x78, 0x14, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, // ....u_mtx.......
+ 0x00, 0x00, 0x00, 0x09, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x12, 0x01, 0x03, // ....u_params0...
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, // ........u_params
+ 0x31, 0x12, 0x01, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x05, 0x00, 0x00, 0x00, // 1...............
+ 0x03, 0xff, 0xff, 0xfe, 0xff, 0x3f, 0x00, 0x43, 0x54, 0x41, 0x42, 0x1c, 0x00, 0x00, 0x00, 0xcd, // .....?.CTAB.....
+ 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0x04, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, // ................
+ 0x91, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, // .......l........
+ 0x00, 0x02, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x02, // ...x............
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, // ................
+ 0x00, 0x00, 0x00, 0x02, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, 0x00, // ................
+ 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, 0x02, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0xac, // ................
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, // .......s_texColo
+ 0x72, 0x00, 0xab, 0x04, 0x00, 0x0e, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, // r...............
+ 0x00, 0x00, 0x00, 0x75, 0x5f, 0x6d, 0x74, 0x78, 0x00, 0xab, 0xab, 0x03, 0x00, 0x03, 0x00, 0x04, // ...u_mtx........
+ 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x70, 0x61, 0x72, // ...........u_par
+ 0x61, 0x6d, 0x73, 0x30, 0x00, 0xab, 0xab, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, // ams0............
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, // .......u_params1
+ 0x00, 0x70, 0x73, 0x5f, 0x33, 0x5f, 0x30, 0x00, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, // .ps_3_0.Microsof
+ 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4c, 0x53, 0x4c, 0x20, 0x53, 0x68, 0x61, 0x64, 0x65, // t (R) HLSL Shade
+ 0x72, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x20, 0x31, 0x30, 0x2e, 0x31, 0x00, // r Compiler 10.1.
+ 0xab, 0xab, 0xab, 0x51, 0x00, 0x00, 0x05, 0x05, 0x00, 0x0f, 0xa0, 0x00, 0x00, 0x00, 0x40, 0x00, // ...Q..........@.
+ 0x00, 0x80, 0xbf, 0x00, 0x00, 0x80, 0x3f, 0xcd, 0xcc, 0x0c, 0x40, 0x51, 0x00, 0x00, 0x05, 0x06, // ......?...@Q....
+ 0x00, 0x0f, 0xa0, 0x00, 0x00, 0x00, 0x3f, 0x1c, 0x2e, 0x4d, 0x3b, 0x52, 0xb8, 0x4e, 0x41, 0x55, // ......?..M;R.NAU
+ 0x55, 0xd5, 0x3e, 0x51, 0x00, 0x00, 0x05, 0x07, 0x00, 0x0f, 0xa0, 0x3d, 0x0a, 0x87, 0x3f, 0xae, // U.>Q.......=..?.
+ 0x47, 0x61, 0xbd, 0x00, 0x00, 0xc0, 0xbf, 0x00, 0x00, 0x20, 0xc0, 0x51, 0x00, 0x00, 0x05, 0x08, // Ga....... .Q....
+ 0x00, 0x0f, 0xa0, 0x98, 0x3a, 0xd3, 0x3e, 0x37, 0x14, 0xb7, 0x3e, 0x9c, 0xc4, 0x38, 0x3e, 0x17, // ....:.>7..>..8>.
+ 0xb7, 0xd1, 0x38, 0x51, 0x00, 0x00, 0x05, 0x09, 0x00, 0x0f, 0xa0, 0x00, 0xd0, 0x96, 0x41, 0x00, // ..8Q..........A.
+ 0x00, 0x56, 0x3f, 0x00, 0x80, 0x95, 0x41, 0x00, 0x00, 0x80, 0x3f, 0x51, 0x00, 0x00, 0x05, 0x0a, // .V?...A...?Q....
+ 0x00, 0x0f, 0xa0, 0x3a, 0xbb, 0xdb, 0x3f, 0x7c, 0x1a, 0xb6, 0xbe, 0x3a, 0xb9, 0x81, 0xbe, 0x00, // ...:..?|...:....
+ 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x05, 0x0b, 0x00, 0x0f, 0xa0, 0x21, 0x62, 0x9e, 0x3c, 0xef, // ...Q.......!b.<.
+ 0x1a, 0xf4, 0x3d, 0x21, 0x47, 0x73, 0x3f, 0x00, 0xb0, 0x9d, 0x42, 0x51, 0x00, 0x00, 0x05, 0x0c, // ..=!Gs?...BQ....
+ 0x00, 0x0f, 0xa0, 0xed, 0xc6, 0x59, 0x3e, 0x37, 0x14, 0x37, 0x3f, 0x7d, 0xd0, 0x93, 0x3d, 0x00, // .....Y>7.7?}..=.
+ 0x20, 0x23, 0x3e, 0x51, 0x00, 0x00, 0x05, 0x0d, 0x00, 0x0f, 0xa0, 0xd4, 0xab, 0x2a, 0xbf, 0xdb, // #>Q.........*..
+ 0xe8, 0xce, 0x3f, 0xf1, 0x2c, 0x81, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x05, 0x0e, // ..?.,.<....Q....
+ 0x00, 0x0f, 0xa0, 0x8d, 0x81, 0x90, 0x3c, 0x3a, 0x30, 0x2f, 0xbd, 0xab, 0x2d, 0x71, 0x3f, 0x00, // ......<:0/..-q?.
+ 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x02, 0x0a, 0x00, 0x00, 0x80, 0x00, 0x00, 0x0f, 0x90, 0x1f, // ................
+ 0x00, 0x00, 0x02, 0x05, 0x00, 0x00, 0x80, 0x01, 0x00, 0x03, 0x90, 0x1f, 0x00, 0x00, 0x02, 0x00, // ................
+ 0x00, 0x00, 0x98, 0x00, 0x08, 0x0f, 0xa0, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x03, 0x80, 0x01, // ................
+ 0x00, 0xe4, 0x90, 0x05, 0x00, 0x00, 0xa0, 0x05, 0x00, 0x55, 0xa0, 0x05, 0x00, 0x00, 0x03, 0x00, // .........U......
+ 0x00, 0x03, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x05, 0x00, 0xe6, 0xa0, 0x05, 0x00, 0x00, 0x03, 0x00, // ................
+ 0x00, 0x0e, 0x80, 0x00, 0x00, 0x55, 0x80, 0x01, 0x00, 0x90, 0xa0, 0x04, 0x00, 0x00, 0x04, 0x00, // .....U..........
+ 0x00, 0x07, 0x80, 0x00, 0x00, 0xe4, 0xa0, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0xf9, 0x80, 0x02, // ................
+ 0x00, 0x00, 0x03, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x02, 0x00, 0xe4, 0xa0, 0x24, // ...............$
+ 0x00, 0x00, 0x02, 0x01, 0x00, 0x07, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x01, 0x00, 0x00, 0x02, 0x01, // ................
+ 0x00, 0x08, 0x80, 0x03, 0x00, 0x00, 0xa0, 0x5f, 0x00, 0x00, 0x03, 0x00, 0x00, 0x0f, 0x80, 0x01, // ......._........
+ 0x00, 0xe4, 0x80, 0x00, 0x08, 0xe4, 0xa0, 0x0f, 0x00, 0x00, 0x02, 0x01, 0x00, 0x01, 0x80, 0x00, // ................
+ 0x00, 0x00, 0x8b, 0x0f, 0x00, 0x00, 0x02, 0x01, 0x00, 0x02, 0x80, 0x00, 0x00, 0x55, 0x8b, 0x0f, // .............U..
+ 0x00, 0x00, 0x02, 0x01, 0x00, 0x04, 0x80, 0x00, 0x00, 0xaa, 0x8b, 0x05, 0x00, 0x00, 0x03, 0x01, // ................
+ 0x00, 0x07, 0x80, 0x01, 0x00, 0xe4, 0x80, 0x05, 0x00, 0xff, 0xa0, 0x0e, 0x00, 0x00, 0x02, 0x02, // ................
+ 0x00, 0x01, 0x80, 0x01, 0x00, 0x00, 0x80, 0x0e, 0x00, 0x00, 0x02, 0x02, 0x00, 0x02, 0x80, 0x01, // ................
+ 0x00, 0x55, 0x80, 0x0e, 0x00, 0x00, 0x02, 0x02, 0x00, 0x04, 0x80, 0x01, 0x00, 0xaa, 0x80, 0x12, // .U..............
+ 0x00, 0x00, 0x04, 0x01, 0x00, 0x07, 0x80, 0x03, 0x00, 0xaa, 0xa0, 0x00, 0x00, 0xe4, 0x80, 0x02, // ................
+ 0x00, 0xe4, 0x80, 0x0e, 0x00, 0x00, 0x02, 0x01, 0x00, 0x08, 0x80, 0x03, 0x00, 0xff, 0xa0, 0x05, // ................
+ 0x00, 0x00, 0x03, 0x00, 0x00, 0x07, 0x80, 0x01, 0x00, 0xff, 0x80, 0x01, 0x00, 0xe4, 0x80, 0x05, // ................
+ 0x00, 0x00, 0x03, 0x00, 0x00, 0x0f, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x00, 0x00, 0xe4, 0x90, 0x01, // ................
+ 0x00, 0x00, 0x02, 0x01, 0x00, 0x01, 0x80, 0x06, 0x00, 0x00, 0xa0, 0x29, 0x00, 0x04, 0x02, 0x04, // ...........)....
+ 0x00, 0x00, 0xa0, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x17, 0x80, 0x00, // ................
+ 0x00, 0xe4, 0x80, 0x20, 0x00, 0x00, 0x03, 0x01, 0x00, 0x01, 0x80, 0x00, 0x00, 0xaa, 0x80, 0x06, // ... ............
+ 0x00, 0xff, 0xa0, 0x04, 0x00, 0x00, 0x04, 0x01, 0x00, 0x01, 0x80, 0x01, 0x00, 0x00, 0x80, 0x07, // ................
+ 0x00, 0x00, 0xa0, 0x07, 0x00, 0x55, 0xa0, 0x20, 0x00, 0x00, 0x03, 0x01, 0x00, 0x02, 0x80, 0x00, // .....U. ........
+ 0x00, 0x00, 0x80, 0x06, 0x00, 0xff, 0xa0, 0x04, 0x00, 0x00, 0x04, 0x01, 0x00, 0x02, 0x80, 0x01, // ................
+ 0x00, 0x55, 0x80, 0x07, 0x00, 0x00, 0xa0, 0x07, 0x00, 0x55, 0xa0, 0x20, 0x00, 0x00, 0x03, 0x01, // .U.......U. ....
+ 0x00, 0x04, 0x80, 0x00, 0x00, 0x55, 0x80, 0x06, 0x00, 0xff, 0xa0, 0x04, 0x00, 0x00, 0x04, 0x01, // .....U..........
+ 0x00, 0x04, 0x80, 0x01, 0x00, 0xaa, 0x80, 0x07, 0x00, 0x00, 0xa0, 0x07, 0x00, 0x55, 0xa0, 0x02, // .............U..
+ 0x00, 0x00, 0x03, 0x02, 0x00, 0x07, 0x80, 0x00, 0x00, 0xe4, 0x81, 0x06, 0x00, 0x55, 0xa0, 0x05, // .............U..
+ 0x00, 0x00, 0x03, 0x03, 0x00, 0x07, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x06, 0x00, 0xaa, 0xa0, 0x58, // ...............X
+ 0x00, 0x00, 0x04, 0x00, 0x00, 0x07, 0x80, 0x02, 0x00, 0xe4, 0x80, 0x03, 0x00, 0xe4, 0x80, 0x01, // ................
+ 0x00, 0xc9, 0x80, 0x2a, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x03, 0x01, 0x00, 0x01, 0x80, 0x08, // ...*............
+ 0x00, 0xe4, 0xa0, 0x00, 0x00, 0xe4, 0x80, 0x08, 0x00, 0x00, 0x03, 0x01, 0x00, 0x02, 0x80, 0x0c, // ................
+ 0x00, 0xe4, 0xa0, 0x00, 0x00, 0xe4, 0x80, 0x08, 0x00, 0x00, 0x03, 0x01, 0x00, 0x04, 0x80, 0x0b, // ................
+ 0x00, 0xe4, 0xa0, 0x00, 0x00, 0xe4, 0x80, 0x08, 0x00, 0x00, 0x03, 0x02, 0x00, 0x04, 0x80, 0x0e, // ................
+ 0x00, 0xe4, 0xa0, 0x01, 0x00, 0xe4, 0x80, 0x08, 0x00, 0x00, 0x03, 0x02, 0x00, 0x01, 0x80, 0x0a, // ................
+ 0x00, 0xe4, 0xa0, 0x01, 0x00, 0xe4, 0x80, 0x08, 0x00, 0x00, 0x03, 0x02, 0x00, 0x02, 0x80, 0x0d, // ................
+ 0x00, 0xe4, 0xa0, 0x01, 0x00, 0xe4, 0x80, 0x05, 0x00, 0x00, 0x03, 0x01, 0x00, 0x07, 0x80, 0x02, // ................
+ 0x00, 0xe4, 0x80, 0x04, 0x00, 0x55, 0xa0, 0x05, 0x00, 0x00, 0x03, 0x01, 0x00, 0x07, 0x80, 0x01, // .....U..........
+ 0x00, 0xe4, 0x80, 0x08, 0x00, 0xff, 0xa0, 0x0f, 0x00, 0x00, 0x02, 0x02, 0x00, 0x01, 0x80, 0x01, // ................
+ 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x02, 0x02, 0x00, 0x02, 0x80, 0x01, 0x00, 0x55, 0x80, 0x0f, // .............U..
+ 0x00, 0x00, 0x02, 0x02, 0x00, 0x04, 0x80, 0x01, 0x00, 0xaa, 0x80, 0x05, 0x00, 0x00, 0x03, 0x01, // ................
+ 0x00, 0x07, 0x80, 0x02, 0x00, 0xe4, 0x80, 0x0c, 0x00, 0xff, 0xa0, 0x0e, 0x00, 0x00, 0x02, 0x02, // ................
+ 0x00, 0x01, 0x80, 0x01, 0x00, 0x00, 0x80, 0x0e, 0x00, 0x00, 0x02, 0x02, 0x00, 0x02, 0x80, 0x01, // ................
+ 0x00, 0x55, 0x80, 0x0e, 0x00, 0x00, 0x02, 0x02, 0x00, 0x04, 0x80, 0x01, 0x00, 0xaa, 0x80, 0x04, // .U..............
+ 0x00, 0x00, 0x04, 0x01, 0x00, 0x07, 0x80, 0x02, 0x00, 0xe4, 0x80, 0x09, 0x00, 0xaa, 0xa0, 0x09, // ................
+ 0x00, 0xff, 0xa0, 0x06, 0x00, 0x00, 0x02, 0x03, 0x00, 0x01, 0x80, 0x01, 0x00, 0x00, 0x80, 0x06, // ................
+ 0x00, 0x00, 0x02, 0x03, 0x00, 0x02, 0x80, 0x01, 0x00, 0x55, 0x80, 0x06, 0x00, 0x00, 0x02, 0x03, // .........U......
+ 0x00, 0x04, 0x80, 0x01, 0x00, 0xaa, 0x80, 0x01, 0x00, 0x00, 0x02, 0x01, 0x00, 0x0c, 0x80, 0x07, // ................
+ 0x00, 0xe4, 0xa0, 0x02, 0x00, 0x00, 0x03, 0x01, 0x00, 0x03, 0x80, 0x01, 0x00, 0xee, 0x80, 0x04, // ................
+ 0x00, 0x00, 0xa0, 0x04, 0x00, 0x00, 0x04, 0x02, 0x00, 0x07, 0x80, 0x02, 0x00, 0xe4, 0x80, 0x09, // ................
+ 0x00, 0x00, 0xa0, 0x09, 0x00, 0x55, 0xa0, 0x05, 0x00, 0x00, 0x03, 0x02, 0x00, 0x07, 0x80, 0x03, // .....U..........
+ 0x00, 0xe4, 0x80, 0x02, 0x00, 0xe4, 0x80, 0x0f, 0x00, 0x00, 0x02, 0x03, 0x00, 0x01, 0x80, 0x02, // ................
+ 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x02, 0x03, 0x00, 0x02, 0x80, 0x02, 0x00, 0x55, 0x80, 0x0f, // .............U..
+ 0x00, 0x00, 0x02, 0x03, 0x00, 0x04, 0x80, 0x02, 0x00, 0xaa, 0x80, 0x05, 0x00, 0x00, 0x03, 0x02, // ................
+ 0x00, 0x07, 0x80, 0x03, 0x00, 0xe4, 0x80, 0x0b, 0x00, 0xff, 0xa0, 0x0e, 0x00, 0x00, 0x02, 0x03, // ................
+ 0x00, 0x01, 0x80, 0x02, 0x00, 0x00, 0x80, 0x0e, 0x00, 0x00, 0x02, 0x03, 0x00, 0x02, 0x80, 0x02, // ................
+ 0x00, 0x55, 0x80, 0x0e, 0x00, 0x00, 0x02, 0x03, 0x00, 0x04, 0x80, 0x02, 0x00, 0xaa, 0x80, 0x58, // .U.............X
+ 0x00, 0x00, 0x04, 0x01, 0x00, 0x0e, 0x80, 0x01, 0x00, 0x55, 0x80, 0x0a, 0x00, 0xff, 0xa0, 0x03, // .........U......
+ 0x00, 0x90, 0x80, 0x58, 0x00, 0x00, 0x04, 0x00, 0x00, 0x07, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, // ...X............
+ 0x00, 0xf9, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x2b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x02, 0x00, // .......+........
+ 0x08, 0x0f, 0x80, 0x00, 0x00, 0xe4, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, // ............
};
-static const uint8_t fs_texture_cube_dx11[1062] =
+static const uint8_t fs_texture_cube_dx11[2080] =
{
- 0x46, 0x53, 0x48, 0x06, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x08, 0x75, // FSH............u
- 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x05, 0x75, 0x5f, // _params.......u_
- 0x6d, 0x74, 0x78, 0x14, 0x00, 0x10, 0x00, 0x04, 0x00, 0x0a, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, // mtx.......s_texC
- 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x01, 0x00, 0x00, 0x01, 0x00, 0xe4, 0x03, 0x00, 0x00, 0x44, 0x58, // olor0.........DX
- 0x42, 0x43, 0xb0, 0x62, 0x27, 0x2c, 0xcd, 0x2b, 0x52, 0x62, 0x21, 0x09, 0x5c, 0x97, 0xe9, 0xc6, // BC.b',.+Rb!.....
- 0x0d, 0x4f, 0x01, 0x00, 0x00, 0x00, 0xe4, 0x03, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2c, 0x00, // .O............,.
- 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, 0x49, 0x53, 0x47, 0x4e, 0x6c, 0x00, // ..........ISGNl.
- 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, // ..........P.....
- 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, // ................
- 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, // ................
- 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, // ..........b.....
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x07, 0x03, // ................
- 0x00, 0x00, 0x53, 0x56, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x00, 0x43, 0x4f, // ..SV_POSITION.CO
- 0x4c, 0x4f, 0x52, 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x00, 0xab, 0x4f, 0x53, // LOR.TEXCOORD..OS
- 0x47, 0x4e, 0x2c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x20, 0x00, // GN,........... .
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
- 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x00, // ......SV_TARGET.
- 0xab, 0xab, 0x53, 0x48, 0x44, 0x52, 0x08, 0x03, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0xc2, 0x00, // ..SHDR....@.....
- 0x00, 0x00, 0x59, 0x00, 0x00, 0x04, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, // ..Y...F. .......
- 0x00, 0x00, 0x5a, 0x00, 0x00, 0x03, 0x00, 0x60, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x30, // ..Z....`......X0
- 0x00, 0x04, 0x00, 0x70, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, 0x00, 0x00, 0x62, 0x10, // ...p......UU..b.
- 0x00, 0x03, 0xf2, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x62, 0x10, 0x00, 0x03, 0x32, 0x10, // ..........b...2.
- 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x03, 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, // ......e.... ....
- 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0f, 0x32, 0x00, // ..h.......2...2.
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x10, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, // ......F........@
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .....@...@......
- 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x80, 0xbf, 0x00, 0x00, 0x80, 0xbf, 0x00, 0x00, // ...@............
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x0a, 0x32, 0x00, 0x10, 0x00, 0x00, 0x00, // ......8...2.....
- 0x00, 0x00, 0x46, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, // ..F........@....
- 0x80, 0x3f, 0x00, 0x00, 0x80, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, // .?............8.
- 0x00, 0x08, 0xe2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x05, 0x10, 0x00, 0x00, 0x00, // ..........V.....
- 0x00, 0x00, 0x06, 0x89, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x32, 0x00, // .... .........2.
- 0x00, 0x0a, 0x72, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x82, 0x20, 0x00, 0x00, 0x00, // ..r.......F. ...
- 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x07, // ................
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x72, 0x00, 0x10, 0x00, 0x00, 0x00, // ..........r.....
- 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x82, 0x20, 0x00, 0x00, 0x00, // ..F.......F. ...
- 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x07, 0x82, 0x00, 0x10, 0x00, 0x00, 0x00, // ................
- 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, // ..F.......F.....
- 0x00, 0x00, 0x44, 0x00, 0x00, 0x05, 0x82, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x00, // ..D...........:.
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x07, 0x72, 0x00, 0x10, 0x00, 0x00, 0x00, // ......8...r.....
- 0x00, 0x00, 0xf6, 0x0f, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, // ..........F.....
- 0x00, 0x00, 0x48, 0x00, 0x00, 0x0c, 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, // ..H...........F.
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x7e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, // ......F~.......`
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x80, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........ .......
- 0x00, 0x00, 0x38, 0x00, 0x00, 0x07, 0xf2, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x0e, // ..8...........F.
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x1e, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2f, 0x00, // ......F......./.
- 0x00, 0x06, 0x72, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x80, 0x81, 0x00, // ..r.......F.....
- 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0x82, 0x20, 0x10, 0x00, 0x00, 0x00, // ......6.... ....
- 0x00, 0x00, 0x3a, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x0a, 0x72, 0x00, // ..:.......8...r.
- 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x40, // ......F........@
- 0x00, 0x00, 0xcd, 0xcc, 0x0c, 0x40, 0xcd, 0xcc, 0x0c, 0x40, 0xcd, 0xcc, 0x0c, 0x40, 0x00, 0x00, // .....@...@...@..
- 0x00, 0x00, 0x19, 0x00, 0x00, 0x05, 0x72, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x02, // ......r.......F.
- 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, 0x72, 0x00, 0x10, 0x00, 0x00, 0x00, // ......2...r.....
- 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x12, 0x10, 0x00, 0x01, 0x00, // ..F.......F.....
- 0x00, 0x00, 0x46, 0x02, 0x10, 0x80, 0x41, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, // ..F...A.......2.
- 0x00, 0x0a, 0x72, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0x8a, 0x20, 0x00, 0x00, 0x00, // ..r......... ...
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, // ......F.......F.
- 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x06, 0x82, 0x00, 0x10, 0x00, 0x00, 0x00, // ................
- 0x00, 0x00, 0x3a, 0x80, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, // ..:. .........8.
- 0x00, 0x07, 0x72, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0x0f, 0x10, 0x00, 0x00, 0x00, // ..r.............
- 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x06, 0x72, 0x00, // ..F......./...r.
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x80, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, // ......F.........
- 0x00, 0x00, 0x38, 0x00, 0x00, 0x0a, 0x72, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, // ..8...r.......F.
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x2f, 0xba, 0xe8, 0x3e, 0x2f, 0xba, // .......@../..>/.
- 0xe8, 0x3e, 0x2f, 0xba, 0xe8, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x05, 0x72, 0x20, // .>/..>........r
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, // ......F.......>.
- 0x00, 0x01, 0x00, 0x00, 0x50, 0x00, // ....P.
+ 0x46, 0x53, 0x48, 0x0b, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x09, 0x75, // FSH............u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // _params0........
+ 0x00, 0x00, 0x09, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x12, 0x00, 0x10, 0x00, // ...u_params1....
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x75, 0x5f, 0x6d, 0x74, 0x78, 0x14, 0x00, 0x20, 0x00, // .......u_mtx.. .
+ 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, // .......s_texColo
+ 0x72, 0x30, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x73, 0x5f, 0x74, 0x65, // r0..........s_te
+ 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // xColor0.........
+ 0xa8, 0x07, 0x00, 0x00, 0x44, 0x58, 0x42, 0x43, 0x80, 0x5f, 0x81, 0x67, 0x05, 0x7d, 0x62, 0xae, // ....DXBC._.g.}b.
+ 0x51, 0xfc, 0xdc, 0x7e, 0x3b, 0x72, 0x2d, 0x0c, 0x01, 0x00, 0x00, 0x00, 0xa8, 0x07, 0x00, 0x00, // Q..~;r-.........
+ 0x03, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, // ....,...........
+ 0x49, 0x53, 0x47, 0x4e, 0x6c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, // ISGNl...........
+ 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, // P...............
+ 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, // ................
+ 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, // b...............
+ 0x02, 0x00, 0x00, 0x00, 0x07, 0x03, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, // ........SV_POSIT
+ 0x49, 0x4f, 0x4e, 0x00, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, // ION.COLOR.TEXCOO
+ 0x52, 0x44, 0x00, 0xab, 0x4f, 0x53, 0x47, 0x4e, 0x2c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // RD..OSGN,.......
+ 0x08, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .... ...........
+ 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x54, // ............SV_T
+ 0x41, 0x52, 0x47, 0x45, 0x54, 0x00, 0xab, 0xab, 0x53, 0x48, 0x44, 0x52, 0xcc, 0x06, 0x00, 0x00, // ARGET...SHDR....
+ 0x40, 0x00, 0x00, 0x00, 0xb3, 0x01, 0x00, 0x00, 0x59, 0x00, 0x00, 0x04, 0x46, 0x8e, 0x20, 0x00, // @.......Y...F. .
+ 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x03, 0x00, 0x60, 0x10, 0x00, // ........Z....`..
+ 0x00, 0x00, 0x00, 0x00, 0x58, 0x30, 0x00, 0x04, 0x00, 0x70, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ....X0...p......
+ 0x55, 0x55, 0x00, 0x00, 0x62, 0x10, 0x00, 0x03, 0xf2, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, // UU..b...........
+ 0x62, 0x10, 0x00, 0x03, 0x32, 0x10, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x03, // b...2.......e...
+ 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, // . ......h.......
+ 0x32, 0x00, 0x00, 0x0f, 0x32, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x10, 0x10, 0x00, // 2...2.......F...
+ 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, // .....@.....@...@
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x80, 0xbf, // .........@......
+ 0x00, 0x00, 0x80, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x0a, // ............8...
+ 0x32, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // 2.......F.......
+ 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x80, 0xbf, 0x00, 0x00, 0x00, 0x00, // .@.....?........
+ 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x08, 0xe2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ....8...........
+ 0x56, 0x05, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x89, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, // V......... .....
+ 0x03, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, 0x72, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ....2...r.......
+ 0x46, 0x82, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x10, 0x00, // F. .............
+ 0x00, 0x00, 0x00, 0x00, 0x96, 0x07, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, // ................
+ 0x72, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // r.......F.......
+ 0x46, 0x82, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x07, // F. .............
+ 0x82, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ........F.......
+ 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x05, 0x82, 0x00, 0x10, 0x00, // F.......D.......
+ 0x00, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x07, // ....:.......8...
+ 0x72, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0x0f, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // r...............
+ 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x0c, 0xf2, 0x00, 0x10, 0x00, // F.......H.......
+ 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x7e, 0x10, 0x00, // ....F.......F~..
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x80, 0x20, 0x00, // .....`........ .
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x06, 0x72, 0x00, 0x10, 0x00, // ......../...r...
+ 0x01, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x80, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ....F...........
+ 0x38, 0x00, 0x00, 0x0a, 0x72, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, // 8...r.......F...
+ 0x01, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0xcd, 0xcc, 0x0c, 0x40, 0xcd, 0xcc, 0x0c, 0x40, // .....@.....@...@
+ 0xcd, 0xcc, 0x0c, 0x40, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x05, 0x72, 0x00, 0x10, 0x00, // ...@........r...
+ 0x01, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, // ....F...........
+ 0x72, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // r.......F.......
+ 0x46, 0x02, 0x10, 0x80, 0x41, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, // F...A.......2...
+ 0x72, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa6, 0x8a, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, // r......... .....
+ 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, // ....F.......F...
+ 0x01, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x06, 0x82, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, // ................
+ 0x3a, 0x80, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x07, // :. .........8...
+ 0x72, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0x0f, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, // r...............
+ 0x46, 0x02, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x07, 0xf2, 0x00, 0x10, 0x00, // F.......8.......
+ 0x00, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x1e, 0x10, 0x00, // ....F.......F...
+ 0x01, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x08, 0x12, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, // ....1...........
+ 0x0a, 0x80, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, // .. ..........@..
+ 0x00, 0x00, 0x00, 0x3f, 0x1f, 0x00, 0x04, 0x03, 0x0a, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, // ...?............
+ 0x36, 0x20, 0x00, 0x05, 0x72, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, // 6 ..r.......F...
+ 0x00, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x0a, 0x72, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, // ........r.......
+ 0x02, 0x40, 0x00, 0x00, 0x1c, 0x2e, 0x4d, 0x3b, 0x1c, 0x2e, 0x4d, 0x3b, 0x1c, 0x2e, 0x4d, 0x3b, // .@....M;..M;..M;
+ 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x0a, // ....F.......8...
+ 0x72, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // r.......F.......
+ 0x02, 0x40, 0x00, 0x00, 0x52, 0xb8, 0x4e, 0x41, 0x52, 0xb8, 0x4e, 0x41, 0x52, 0xb8, 0x4e, 0x41, // .@..R.NAR.NAR.NA
+ 0x00, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x05, 0x72, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, // ..../...r.......
+ 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x0a, 0x72, 0x00, 0x10, 0x00, // F.......8...r...
+ 0x03, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, // ....F........@..
+ 0x55, 0x55, 0xd5, 0x3e, 0x55, 0x55, 0xd5, 0x3e, 0x55, 0x55, 0xd5, 0x3e, 0x00, 0x00, 0x00, 0x00, // UU.>UU.>UU.>....
+ 0x19, 0x00, 0x00, 0x05, 0x72, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, // ....r.......F...
+ 0x03, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0f, 0x72, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, // ....2...r.......
+ 0x46, 0x02, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x3d, 0x0a, 0x87, 0x3f, // F........@..=..?
+ 0x3d, 0x0a, 0x87, 0x3f, 0x3d, 0x0a, 0x87, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, // =..?=..?.....@..
+ 0xae, 0x47, 0x61, 0xbd, 0xae, 0x47, 0x61, 0xbd, 0xae, 0x47, 0x61, 0xbd, 0x00, 0x00, 0x00, 0x00, // .Ga..Ga..Ga.....
+ 0x37, 0x00, 0x00, 0x09, 0x72, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, // 7...r.......F...
+ 0x01, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, // ....F.......F...
+ 0x03, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x01, 0x31, 0x00, 0x00, 0x0b, 0x32, 0x00, 0x10, 0x00, // ........1...2...
+ 0x01, 0x00, 0x00, 0x00, 0x06, 0x80, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // ...... .........
+ 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, // .@.....?.. @....
+ 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x0a, 0x12, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, // ................
+ 0x02, 0x40, 0x00, 0x00, 0x98, 0x3a, 0xd3, 0x3e, 0x37, 0x14, 0xb7, 0x3e, 0x9c, 0xc4, 0x38, 0x3e, // .@...:.>7..>..8>
+ 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x0a, // ....F...........
+ 0x22, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0xed, 0xc6, 0x59, 0x3e, // "........@....Y>
+ 0x37, 0x14, 0x37, 0x3f, 0x7d, 0xd0, 0x93, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, // 7.7?}..=....F...
+ 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x0a, 0x42, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, // ........B.......
+ 0x02, 0x40, 0x00, 0x00, 0x21, 0x62, 0x9e, 0x3c, 0xef, 0x1a, 0xf4, 0x3d, 0x21, 0x47, 0x73, 0x3f, // .@..!b.<...=!Gs?
+ 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x0a, // ....F...........
+ 0x12, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x3a, 0xbb, 0xdb, 0x3f, // .........@..:..?
+ 0x7c, 0x1a, 0xb6, 0xbe, 0x3a, 0xb9, 0x81, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, // |...:.......F...
+ 0x02, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x0a, 0x22, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, // ........".......
+ 0x02, 0x40, 0x00, 0x00, 0xd4, 0xab, 0x2a, 0xbf, 0xdb, 0xe8, 0xce, 0x3f, 0xf1, 0x2c, 0x81, 0x3c, // .@....*....?.,.<
+ 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x0a, // ....F...........
+ 0x42, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x8d, 0x81, 0x90, 0x3c, // B........@.....<
+ 0x3a, 0x30, 0x2f, 0xbd, 0xab, 0x2d, 0x71, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, // :0/..-q?....F...
+ 0x02, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x08, 0x72, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, // ....8...r.......
+ 0x46, 0x02, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x56, 0x85, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, // F.......V. .....
+ 0x01, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x0a, 0x72, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, // ....8...r.......
+ 0x46, 0x02, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x17, 0xb7, 0xd1, 0x38, // F........@.....8
+ 0x17, 0xb7, 0xd1, 0x38, 0x17, 0xb7, 0xd1, 0x38, 0x00, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x05, // ...8...8..../...
+ 0x72, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, // r.......F.......
+ 0x38, 0x00, 0x00, 0x0a, 0x72, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, // 8...r.......F...
+ 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x20, 0x23, 0x3e, 0x00, 0x20, 0x23, 0x3e, // .....@... #>. #>
+ 0x00, 0x20, 0x23, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x05, 0x72, 0x00, 0x10, 0x00, // . #>........r...
+ 0x02, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0f, // ....F.......2...
+ 0x72, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, // r.......F.......
+ 0x02, 0x40, 0x00, 0x00, 0x00, 0xd0, 0x96, 0x41, 0x00, 0xd0, 0x96, 0x41, 0x00, 0xd0, 0x96, 0x41, // .@.....A...A...A
+ 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x56, 0x3f, 0x00, 0x00, 0x56, 0x3f, // .....@....V?..V?
+ 0x00, 0x00, 0x56, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0f, 0x72, 0x00, 0x10, 0x00, // ..V?....2...r...
+ 0x02, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, // ....F........@..
+ 0x00, 0x80, 0x95, 0x41, 0x00, 0x80, 0x95, 0x41, 0x00, 0x80, 0x95, 0x41, 0x00, 0x00, 0x00, 0x00, // ...A...A...A....
+ 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x80, 0x3f, // .@.....?...?...?
+ 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x07, 0x72, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, // ........r.......
+ 0x46, 0x02, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, // F.......F.......
+ 0x2f, 0x00, 0x00, 0x05, 0x72, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, // /...r.......F...
+ 0x02, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x0a, 0x72, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, // ....8...r.......
+ 0x46, 0x02, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0xb0, 0x9d, 0x42, // F........@.....B
+ 0x00, 0xb0, 0x9d, 0x42, 0x00, 0xb0, 0x9d, 0x42, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x05, // ...B...B........
+ 0x72, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, // r.......F.......
+ 0x01, 0x00, 0x00, 0x07, 0xe2, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x56, 0x05, 0x10, 0x00, // ............V...
+ 0x01, 0x00, 0x00, 0x00, 0x06, 0x09, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x09, // ............7...
+ 0x72, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, // r...............
+ 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x07, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, // F...............
+ 0x15, 0x00, 0x00, 0x01, 0x36, 0x00, 0x00, 0x05, 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ....6.... ......
+ 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x01, 0x00, 0x00, 0x60, 0x00, // F.......>.....`.
};
-static const uint8_t fs_texture_cube_mtl[1167] =
+static const uint8_t fs_texture_cube_mtl[3861] =
{
- 0x46, 0x53, 0x48, 0x06, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x04, // FSH...........|.
- 0x00, 0x00, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, // ..using namespac
- 0x65, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, // e metal;.struct
- 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x70, // xlatMtlShaderInp
- 0x75, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x76, 0x5f, // ut {. float4 v_
- 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, // color0;. float3
- 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, 0x0a, 0x7d, 0x3b, // v_texcoord0;.};
- 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, // .struct xlatMtlS
- 0x68, 0x61, 0x64, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, // haderOutput {.
- 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, // float4 gl_FragCo
- 0x6c, 0x6f, 0x72, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x78, // lor;.};.struct x
- 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x55, 0x6e, 0x69, 0x66, // latMtlShaderUnif
- 0x6f, 0x72, 0x6d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x75, // orm {. float4 u
- 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, // _params;. float
- 0x34, 0x78, 0x34, 0x20, 0x75, 0x5f, 0x6d, 0x74, 0x78, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x66, 0x72, // 4x4 u_mtx;.};.fr
- 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, // agment xlatMtlSh
- 0x61, 0x64, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, // aderOutput xlatM
- 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x20, 0x28, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, // tlMain (xlatMtlS
- 0x68, 0x61, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, // haderInput _mtl_
- 0x69, 0x20, 0x5b, 0x5b, 0x73, 0x74, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x5d, 0x5d, 0x2c, 0x20, // i [[stage_in]],
- 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, // constant xlatMtl
- 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x26, 0x20, 0x5f, // ShaderUniform& _
- 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x20, 0x5b, 0x5b, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x28, 0x30, // mtl_u [[buffer(0
- 0x29, 0x5d, 0x5d, 0x0a, 0x20, 0x20, 0x2c, 0x20, 0x20, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, // )]]. , textur
- 0x65, 0x63, 0x75, 0x62, 0x65, 0x3c, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x20, 0x73, 0x5f, 0x74, // ecube<float> s_t
- 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x5b, 0x5b, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, // exColor [[textur
- 0x65, 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x2c, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x20, // e(0)]], sampler
- 0x5f, 0x6d, 0x74, 0x6c, 0x73, 0x6d, 0x70, 0x5f, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, // _mtlsmp_s_texCol
- 0x6f, 0x72, 0x20, 0x5b, 0x5b, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x28, 0x30, 0x29, 0x5d, // or [[sampler(0)]
- 0x5d, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, // ]).{. xlatMtlSh
- 0x61, 0x64, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, // aderOutput _mtl_
- 0x6f, 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x74, 0x6d, 0x70, 0x76, // o;. float3 tmpv
- 0x61, 0x72, 0x5f, 0x31, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, // ar_1 = 0;. tmpv
- 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x7a, 0x20, 0x3d, 0x20, 0x31, 0x2e, 0x30, 0x3b, 0x0a, 0x20, 0x20, // ar_1.z = 1.0;.
- 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x79, 0x20, 0x3d, 0x20, 0x28, 0x28, // tmpvar_1.xy = ((
- 0x28, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x69, 0x2e, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, // (_mtl_i.v_texcoo
- 0x72, 0x64, 0x30, 0x2e, 0x78, 0x79, 0x20, 0x2a, 0x20, 0x32, 0x2e, 0x30, 0x29, 0x20, 0x2d, 0x20, // rd0.xy * 2.0) -
- 0x31, 0x2e, 0x30, 0x29, 0x20, 0x2a, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x32, 0x28, 0x31, 0x2e, // 1.0) * float2(1.
- 0x30, 0x2c, 0x20, 0x2d, 0x31, 0x2e, 0x30, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, // 0, -1.0));. flo
- 0x61, 0x74, 0x34, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x20, 0x3d, 0x20, 0x30, // at4 tmpvar_2 = 0
- 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x2e, 0x77, 0x20, 0x3d, // ;. tmpvar_2.w =
- 0x20, 0x30, 0x2e, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, // 0.0;. tmpvar_2
- 0x2e, 0x78, 0x79, 0x7a, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x3b, // .xyz = tmpvar_1;
- 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, // . float4 _color
- 0x5f, 0x33, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, // _3 = 0;. _color
- 0x5f, 0x33, 0x20, 0x3d, 0x20, 0x28, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, // _3 = (s_texColor
- 0x2e, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x28, 0x5f, 0x6d, 0x74, 0x6c, 0x73, 0x6d, 0x70, 0x5f, // .sample(_mtlsmp_
- 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x2c, 0x20, 0x28, 0x66, 0x6c, 0x6f, // s_texColor, (flo
- 0x61, 0x74, 0x33, 0x29, 0x28, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x28, 0x28, // at3)(normalize((
- 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x2e, 0x75, 0x5f, 0x6d, 0x74, 0x78, 0x20, 0x2a, 0x20, 0x74, // _mtl_u.u_mtx * t
- 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x29, 0x2e, 0x78, 0x79, 0x7a, 0x29, 0x29, 0x2c, 0x20, // mpvar_2).xyz)),
- 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x28, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x2e, 0x75, 0x5f, 0x70, // level(_mtl_u.u_p
- 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x78, 0x29, 0x29, 0x20, 0x2a, 0x20, 0x5f, 0x6d, 0x74, 0x6c, // arams.x)) * _mtl
- 0x5f, 0x69, 0x2e, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, // _i.v_color0);.
- 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x34, 0x20, // float4 tmpvar_4
- 0x3d, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x34, 0x2e, // = 0;. tmpvar_4.
- 0x78, 0x79, 0x7a, 0x20, 0x3d, 0x20, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x61, 0x62, 0x73, 0x28, 0x28, // xyz = pow (abs((
- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x78, 0x20, 0x28, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x61, // . mix (pow (a
- 0x62, 0x73, 0x28, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x33, 0x2e, 0x78, 0x79, 0x7a, 0x29, // bs(_color_3.xyz)
- 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x32, 0x2e, 0x32, 0x2c, 0x20, 0x32, 0x2e, // , float3(2.2, 2.
- 0x32, 0x2c, 0x20, 0x32, 0x2e, 0x32, 0x29, 0x29, 0x2c, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, // 2, 2.2)), _color
- 0x5f, 0x33, 0x2e, 0x78, 0x79, 0x7a, 0x2c, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x2e, 0x75, // _3.xyz, _mtl_u.u
- 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x7a, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x2a, 0x20, // _params.z). *
- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x70, 0x32, 0x28, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, // . exp2(_mtl_u
- 0x2e, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x29, // .u_params.w). )
- 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x30, 0x2e, 0x34, 0x35, 0x34, 0x35, // ), float3(0.4545
- 0x34, 0x35, 0x34, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x35, 0x34, 0x35, 0x34, 0x35, 0x34, 0x2c, 0x20, // 454, 0.4545454,
- 0x30, 0x2e, 0x34, 0x35, 0x34, 0x35, 0x34, 0x35, 0x34, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x74, // 0.4545454));. t
- 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x34, 0x2e, 0x77, 0x20, 0x3d, 0x20, 0x5f, 0x63, 0x6f, 0x6c, // mpvar_4.w = _col
- 0x6f, 0x72, 0x5f, 0x33, 0x2e, 0x77, 0x3b, 0x0a, 0x20, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x6f, // or_3.w;. _mtl_o
- 0x2e, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, // .gl_FragColor =
- 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, // tmpvar_4;. retu
- 0x72, 0x6e, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x6f, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x00, // rn _mtl_o;.}...
+ 0x46, 0x53, 0x48, 0x0b, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x09, 0x75, // FSH............u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x12, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // _params0........
+ 0x00, 0x00, 0x11, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x61, 0x6d, // ...s_texColorSam
+ 0x70, 0x6c, 0x65, 0x72, 0x11, 0x01, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x73, // pler...........s
+ 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, // _texColorTexture
+ 0x11, 0x01, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x75, 0x5f, 0x6d, 0x74, 0x78, // ...........u_mtx
+ 0x14, 0x01, 0x20, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x75, 0x5f, 0x70, 0x61, 0x72, // .. ........u_par
+ 0x61, 0x6d, 0x73, 0x31, 0x12, 0x01, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x73, // ams1...........s
+ 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // _texColor.......
+ 0x00, 0x00, 0x00, 0x7a, 0x0e, 0x00, 0x00, 0x23, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, // ...z...#include
+ 0x3c, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x64, 0x6c, 0x69, 0x62, 0x3e, 0x0a, 0x23, // <metal_stdlib>.#
+ 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3c, 0x73, 0x69, 0x6d, 0x64, 0x2f, 0x73, 0x69, // include <simd/si
+ 0x6d, 0x64, 0x2e, 0x68, 0x3e, 0x0a, 0x0a, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6e, 0x61, 0x6d, // md.h>..using nam
+ 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x0a, 0x73, // espace metal;..s
+ 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x0a, 0x7b, 0x0a, // truct _Global.{.
+ 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, // float4 u_par
+ 0x61, 0x6d, 0x73, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, // ams0;. float4
+ 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, // u_params1;.
+ 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x78, 0x34, 0x20, 0x75, 0x5f, 0x6d, 0x74, 0x78, 0x3b, 0x0a, // float4x4 u_mtx;.
+ 0x7d, 0x3b, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x20, 0x66, 0x6c, 0x6f, // };..constant flo
+ 0x61, 0x74, 0x33, 0x20, 0x5f, 0x37, 0x35, 0x34, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x3b, 0x0a, 0x0a, // at3 _754 = {};..
+ 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, // struct xlatMtlMa
+ 0x69, 0x6e, 0x5f, 0x6f, 0x75, 0x74, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, // in_out.{. flo
+ 0x61, 0x74, 0x34, 0x20, 0x62, 0x67, 0x66, 0x78, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x44, 0x61, 0x74, // at4 bgfx_FragDat
+ 0x61, 0x30, 0x20, 0x5b, 0x5b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x3b, // a0 [[color(0)]];
+ 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, // .};..struct xlat
+ 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x6e, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, // MtlMain_in.{.
+ 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, // float4 v_color0
+ 0x20, 0x5b, 0x5b, 0x75, 0x73, 0x65, 0x72, 0x28, 0x6c, 0x6f, 0x63, 0x6e, 0x30, 0x29, 0x5d, 0x5d, // [[user(locn0)]]
+ 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x76, 0x5f, 0x74, // ;. float3 v_t
+ 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x20, 0x5b, 0x5b, 0x75, 0x73, 0x65, 0x72, 0x28, // excoord0 [[user(
+ 0x6c, 0x6f, 0x63, 0x6e, 0x31, 0x29, 0x5d, 0x5d, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x66, 0x72, // locn1)]];.};..fr
+ 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, // agment xlatMtlMa
+ 0x69, 0x6e, 0x5f, 0x6f, 0x75, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, // in_out xlatMtlMa
+ 0x69, 0x6e, 0x28, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x5f, 0x69, // in(xlatMtlMain_i
+ 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x5b, 0x5b, 0x73, 0x74, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x5d, // n in [[stage_in]
+ 0x5d, 0x2c, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x20, 0x5f, 0x47, 0x6c, 0x6f, // ], constant _Glo
+ 0x62, 0x61, 0x6c, 0x26, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x20, 0x5b, 0x5b, 0x62, 0x75, // bal& _mtl_u [[bu
+ 0x66, 0x66, 0x65, 0x72, 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x2c, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, // ffer(0)]], textu
+ 0x72, 0x65, 0x63, 0x75, 0x62, 0x65, 0x3c, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x20, 0x73, 0x5f, // recube<float> s_
+ 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x5b, 0x5b, 0x74, 0x65, 0x78, 0x74, 0x75, // texColor [[textu
+ 0x72, 0x65, 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x2c, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, // re(0)]], sampler
+ 0x20, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x61, 0x6d, 0x70, 0x6c, // s_texColorSampl
+ 0x65, 0x72, 0x20, 0x5b, 0x5b, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x28, 0x30, 0x29, 0x5d, // er [[sampler(0)]
+ 0x5d, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, // ]).{. xlatMtl
+ 0x4d, 0x61, 0x69, 0x6e, 0x5f, 0x6f, 0x75, 0x74, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x7b, // Main_out out = {
+ 0x7d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x5f, 0x34, // };. float4 _4
+ 0x39, 0x34, 0x20, 0x3d, 0x20, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x2e, // 94 = s_texColor.
+ 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x28, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, // sample(s_texColo
+ 0x72, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x2c, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, // rSampler, normal
+ 0x69, 0x7a, 0x65, 0x28, 0x28, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x2e, 0x75, 0x5f, 0x6d, 0x74, // ize((_mtl_u.u_mt
+ 0x78, 0x20, 0x2a, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x28, 0x28, 0x28, 0x69, 0x6e, 0x2e, // x * float4(((in.
+ 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x2e, 0x78, 0x79, 0x20, 0x2a, // v_texcoord0.xy *
+ 0x20, 0x32, 0x2e, 0x30, 0x29, 0x20, 0x2d, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x32, 0x28, 0x31, // 2.0) - float2(1
+ 0x2e, 0x30, 0x29, 0x29, 0x20, 0x2a, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x32, 0x28, 0x31, 0x2e, // .0)) * float2(1.
+ 0x30, 0x2c, 0x20, 0x2d, 0x31, 0x2e, 0x30, 0x29, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x2c, 0x20, 0x30, // 0, -1.0), 1.0, 0
+ 0x2e, 0x30, 0x29, 0x29, 0x2e, 0x78, 0x79, 0x7a, 0x29, 0x2c, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, // .0)).xyz), level
+ 0x28, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x2e, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, // (_mtl_u.u_params
+ 0x30, 0x2e, 0x78, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, // 0.x));. float
+ 0x33, 0x20, 0x5f, 0x34, 0x36, 0x35, 0x20, 0x3d, 0x20, 0x5f, 0x34, 0x39, 0x34, 0x2e, 0x78, 0x79, // 3 _465 = _494.xy
+ 0x7a, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x5f, 0x35, // z;. float3 _5
+ 0x31, 0x33, 0x20, 0x3d, 0x20, 0x6d, 0x69, 0x78, 0x28, 0x70, 0x6f, 0x77, 0x28, 0x61, 0x62, 0x73, // 13 = mix(pow(abs
+ 0x28, 0x5f, 0x34, 0x36, 0x35, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x32, // (_465), float3(2
+ 0x2e, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x34, 0x37, 0x36, 0x38, 0x33, 0x37, 0x31, 0x35, // .200000047683715
+ 0x38, 0x29, 0x29, 0x2c, 0x20, 0x5f, 0x34, 0x36, 0x35, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, // 8)), _465, float
+ 0x33, 0x28, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x2e, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, // 3(_mtl_u.u_param
+ 0x73, 0x30, 0x2e, 0x7a, 0x29, 0x29, 0x20, 0x2a, 0x20, 0x70, 0x6f, 0x77, 0x28, 0x32, 0x2e, 0x30, // s0.z)) * pow(2.0
+ 0x2c, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x2e, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, // , _mtl_u.u_param
+ 0x73, 0x30, 0x2e, 0x77, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, // s0.w);. float
+ 0x34, 0x20, 0x5f, 0x34, 0x37, 0x31, 0x20, 0x3d, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x28, // 4 _471 = float4(
+ 0x5f, 0x35, 0x31, 0x33, 0x2e, 0x78, 0x2c, 0x20, 0x5f, 0x35, 0x31, 0x33, 0x2e, 0x79, 0x2c, 0x20, // _513.x, _513.y,
+ 0x5f, 0x35, 0x31, 0x33, 0x2e, 0x7a, 0x2c, 0x20, 0x5f, 0x34, 0x39, 0x34, 0x2e, 0x77, 0x29, 0x20, // _513.z, _494.w)
+ 0x2a, 0x20, 0x69, 0x6e, 0x2e, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x20, // * in.v_color0;.
+ 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x5f, 0x37, 0x34, 0x39, 0x3b, 0x0a, // float3 _749;.
+ 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x2e, 0x75, // if (_mtl_u.u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x2e, 0x78, 0x20, 0x3c, 0x20, 0x30, 0x2e, 0x35, // _params1.x < 0.5
+ 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // ). {.
+ 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x5f, 0x35, 0x35, 0x30, 0x20, 0x3d, 0x20, 0x66, 0x61, // float3 _550 = fa
+ 0x73, 0x74, 0x3a, 0x3a, 0x63, 0x6c, 0x61, 0x6d, 0x70, 0x28, 0x5f, 0x34, 0x37, 0x31, 0x2e, 0x78, // st::clamp(_471.x
+ 0x79, 0x7a, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x30, 0x2e, 0x30, 0x29, 0x2c, // yz, float3(0.0),
+ 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x31, 0x2e, 0x30, 0x29, 0x29, 0x3b, 0x0a, 0x20, // float3(1.0));.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x5f, 0x35, 0x39, // float _59
+ 0x33, 0x20, 0x3d, 0x20, 0x5f, 0x35, 0x35, 0x30, 0x2e, 0x78, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, // 3 = _550.x;.
+ 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x5f, 0x37, 0x34, 0x33, 0x3b, 0x0a, // float _743;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, // do.
+ 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // {.
+ 0x20, 0x69, 0x66, 0x20, 0x28, 0x5f, 0x35, 0x39, 0x33, 0x20, 0x3c, 0x3d, 0x20, 0x30, 0x2e, 0x30, // if (_593 <= 0.0
+ 0x30, 0x33, 0x31, 0x33, 0x30, 0x38, 0x30, 0x30, 0x30, 0x39, 0x30, 0x37, 0x33, 0x30, 0x31, 0x39, // 0313080009073019
+ 0x30, 0x33, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // 03).
+ 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // {.
+ 0x20, 0x20, 0x5f, 0x37, 0x34, 0x33, 0x20, 0x3d, 0x20, 0x31, 0x32, 0x2e, 0x39, 0x32, 0x30, 0x30, // _743 = 12.9200
+ 0x30, 0x30, 0x30, 0x37, 0x36, 0x32, 0x39, 0x33, 0x39, 0x34, 0x35, 0x20, 0x2a, 0x20, 0x5f, 0x35, // 00076293945 * _5
+ 0x39, 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // 93;.
+ 0x20, 0x20, 0x20, 0x20, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, // break;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // }.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // else.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x37, 0x34, 0x33, 0x20, 0x3d, 0x20, 0x28, // _743 = (
+ 0x31, 0x2e, 0x30, 0x35, 0x34, 0x39, 0x39, 0x39, 0x39, 0x34, 0x37, 0x35, 0x34, 0x37, 0x39, 0x31, // 1.05499994754791
+ 0x32, 0x36, 0x20, 0x2a, 0x20, 0x70, 0x6f, 0x77, 0x28, 0x5f, 0x35, 0x39, 0x33, 0x2c, 0x20, 0x30, // 26 * pow(_593, 0
+ 0x2e, 0x34, 0x31, 0x36, 0x36, 0x36, 0x36, 0x36, 0x35, 0x36, 0x37, 0x33, 0x32, 0x35, 0x35, 0x39, // .416666656732559
+ 0x32, 0x29, 0x29, 0x20, 0x2d, 0x20, 0x30, 0x2e, 0x30, 0x35, 0x34, 0x39, 0x39, 0x39, 0x39, 0x39, // 2)) - 0.05499999
+ 0x39, 0x37, 0x30, 0x31, 0x39, 0x37, 0x36, 0x37, 0x37, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, // 9701976776;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x72, 0x65, 0x61, // brea
+ 0x6b, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, // k;. }
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, // . } while
+ 0x28, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // (false);.
+ 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x5f, 0x37, 0x32, 0x37, 0x20, 0x3d, 0x20, 0x5f, // float3 _727 = _
+ 0x37, 0x35, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x37, 0x32, // 754;. _72
+ 0x37, 0x2e, 0x78, 0x20, 0x3d, 0x20, 0x5f, 0x37, 0x34, 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, // 7.x = _743;.
+ 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x5f, 0x35, 0x39, 0x37, 0x20, 0x3d, // float _597 =
+ 0x20, 0x5f, 0x35, 0x35, 0x30, 0x2e, 0x79, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // _550.y;.
+ 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x5f, 0x37, 0x34, 0x35, 0x3b, 0x0a, 0x20, 0x20, 0x20, // float _745;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // do.
+ 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, // {. if
+ 0x20, 0x28, 0x5f, 0x35, 0x39, 0x37, 0x20, 0x3c, 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x30, 0x33, 0x31, // (_597 <= 0.0031
+ 0x33, 0x30, 0x38, 0x30, 0x30, 0x30, 0x39, 0x30, 0x37, 0x33, 0x30, 0x31, 0x39, 0x30, 0x33, 0x29, // 308000907301903)
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, // . {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, // _
+ 0x37, 0x34, 0x35, 0x20, 0x3d, 0x20, 0x31, 0x32, 0x2e, 0x39, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, // 745 = 12.9200000
+ 0x37, 0x36, 0x32, 0x39, 0x33, 0x39, 0x34, 0x35, 0x20, 0x2a, 0x20, 0x5f, 0x35, 0x39, 0x37, 0x3b, // 76293945 * _597;
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // .
+ 0x20, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // break;.
+ 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // }.
+ 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // else.
+ 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x37, 0x34, 0x35, 0x20, 0x3d, 0x20, 0x28, 0x31, 0x2e, 0x30, // _745 = (1.0
+ 0x35, 0x34, 0x39, 0x39, 0x39, 0x39, 0x34, 0x37, 0x35, 0x34, 0x37, 0x39, 0x31, 0x32, 0x36, 0x20, // 549999475479126
+ 0x2a, 0x20, 0x70, 0x6f, 0x77, 0x28, 0x5f, 0x35, 0x39, 0x37, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x31, // * pow(_597, 0.41
+ 0x36, 0x36, 0x36, 0x36, 0x36, 0x35, 0x36, 0x37, 0x33, 0x32, 0x35, 0x35, 0x39, 0x32, 0x29, 0x29, // 66666567325592))
+ 0x20, 0x2d, 0x20, 0x30, 0x2e, 0x30, 0x35, 0x34, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x37, 0x30, // - 0.05499999970
+ 0x31, 0x39, 0x37, 0x36, 0x37, 0x37, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // 1976776;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x3b, 0x0a, // break;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, // }.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x28, 0x66, 0x61, // } while(fa
+ 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, // lse);. fl
+ 0x6f, 0x61, 0x74, 0x33, 0x20, 0x5f, 0x37, 0x33, 0x30, 0x20, 0x3d, 0x20, 0x5f, 0x37, 0x32, 0x37, // oat3 _730 = _727
+ 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x37, 0x33, 0x30, 0x2e, 0x79, // ;. _730.y
+ 0x20, 0x3d, 0x20, 0x5f, 0x37, 0x34, 0x35, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // = _745;.
+ 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x5f, 0x36, 0x30, 0x31, 0x20, 0x3d, 0x20, 0x5f, 0x35, // float _601 = _5
+ 0x35, 0x30, 0x2e, 0x7a, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, // 50.z;. fl
+ 0x6f, 0x61, 0x74, 0x20, 0x5f, 0x37, 0x34, 0x37, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // oat _747;.
+ 0x20, 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, // do. {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x5f, // if (_
+ 0x36, 0x30, 0x31, 0x20, 0x3c, 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x30, 0x33, 0x31, 0x33, 0x30, 0x38, // 601 <= 0.0031308
+ 0x30, 0x30, 0x30, 0x39, 0x30, 0x37, 0x33, 0x30, 0x31, 0x39, 0x30, 0x33, 0x29, 0x0a, 0x20, 0x20, // 000907301903).
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, // {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x37, 0x34, 0x37, // _747
+ 0x20, 0x3d, 0x20, 0x31, 0x32, 0x2e, 0x39, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x37, 0x36, 0x32, // = 12.9200000762
+ 0x39, 0x33, 0x39, 0x34, 0x35, 0x20, 0x2a, 0x20, 0x5f, 0x36, 0x30, 0x31, 0x3b, 0x0a, 0x20, 0x20, // 93945 * _601;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x72, // br
+ 0x65, 0x61, 0x6b, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // eak;.
+ 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, // }. e
+ 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // lse.
+ 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // {.
+ 0x20, 0x20, 0x5f, 0x37, 0x34, 0x37, 0x20, 0x3d, 0x20, 0x28, 0x31, 0x2e, 0x30, 0x35, 0x34, 0x39, // _747 = (1.0549
+ 0x39, 0x39, 0x39, 0x34, 0x37, 0x35, 0x34, 0x37, 0x39, 0x31, 0x32, 0x36, 0x20, 0x2a, 0x20, 0x70, // 999475479126 * p
+ 0x6f, 0x77, 0x28, 0x5f, 0x36, 0x30, 0x31, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x31, 0x36, 0x36, 0x36, // ow(_601, 0.41666
+ 0x36, 0x36, 0x35, 0x36, 0x37, 0x33, 0x32, 0x35, 0x35, 0x39, 0x32, 0x29, 0x29, 0x20, 0x2d, 0x20, // 66567325592)) -
+ 0x30, 0x2e, 0x30, 0x35, 0x34, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x37, 0x30, 0x31, 0x39, 0x37, // 0.05499999970197
+ 0x36, 0x37, 0x37, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // 6776;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x3b, 0x0a, 0x20, 0x20, 0x20, // break;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, // }.
+ 0x20, 0x20, 0x20, 0x7d, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x28, 0x66, 0x61, 0x6c, 0x73, 0x65, // } while(false
+ 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, // );. float
+ 0x33, 0x20, 0x5f, 0x37, 0x33, 0x33, 0x20, 0x3d, 0x20, 0x5f, 0x37, 0x33, 0x30, 0x3b, 0x0a, 0x20, // 3 _733 = _730;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x37, 0x33, 0x33, 0x2e, 0x7a, 0x20, 0x3d, 0x20, // _733.z =
+ 0x5f, 0x37, 0x34, 0x37, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x37, // _747;. _7
+ 0x34, 0x39, 0x20, 0x3d, 0x20, 0x5f, 0x37, 0x33, 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, // 49 = _733;. }
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, // . else. {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x5f, // float3 _
+ 0x37, 0x35, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, // 750;. if
+ 0x28, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x2e, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, // (_mtl_u.u_params
+ 0x31, 0x2e, 0x78, 0x20, 0x3c, 0x20, 0x31, 0x2e, 0x35, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, // 1.x < 1.5).
+ 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // {.
+ 0x20, 0x5f, 0x37, 0x35, 0x30, 0x20, 0x3d, 0x20, 0x5f, 0x34, 0x37, 0x31, 0x2e, 0x78, 0x79, 0x7a, // _750 = _471.xyz
+ 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, // ;. }.
+ 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // else.
+ 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, // {. f
+ 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x5f, 0x37, 0x35, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, // loat3 _751;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x5f, 0x6d, 0x74, 0x6c, // if (_mtl
+ 0x5f, 0x75, 0x2e, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x2e, 0x78, 0x20, 0x3c, // _u.u_params1.x <
+ 0x20, 0x32, 0x2e, 0x35, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // 2.5).
+ 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // {.
+ 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x5f, 0x36, 0x38, 0x36, 0x20, // float3 _686
+ 0x3d, 0x20, 0x70, 0x6f, 0x77, 0x28, 0x28, 0x28, 0x28, 0x5f, 0x34, 0x37, 0x31, 0x2e, 0x78, 0x79, // = pow((((_471.xy
+ 0x7a, 0x20, 0x2a, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x78, 0x33, 0x28, 0x66, 0x6c, 0x6f, // z * float3x3(flo
+ 0x61, 0x74, 0x33, 0x28, 0x30, 0x2e, 0x34, 0x31, 0x32, 0x35, 0x35, 0x36, 0x34, 0x30, 0x39, 0x38, // at3(0.4125564098
+ 0x33, 0x35, 0x38, 0x31, 0x35, 0x34, 0x33, 0x2c, 0x20, 0x30, 0x2e, 0x33, 0x35, 0x37, 0x35, 0x37, // 3581543, 0.35757
+ 0x36, 0x31, 0x30, 0x32, 0x30, 0x31, 0x38, 0x33, 0x35, 0x36, 0x33, 0x32, 0x2c, 0x20, 0x30, 0x2e, // 610201835632, 0.
+ 0x31, 0x38, 0x30, 0x34, 0x33, 0x37, 0x35, 0x30, 0x35, 0x32, 0x34, 0x35, 0x32, 0x30, 0x38, 0x37, // 1804375052452087
+ 0x34, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x30, 0x2e, 0x32, 0x31, 0x32, // 4), float3(0.212
+ 0x36, 0x37, 0x32, 0x39, 0x30, 0x34, 0x31, 0x33, 0x33, 0x37, 0x39, 0x36, 0x36, 0x39, 0x2c, 0x20, // 67290413379669,
+ 0x30, 0x2e, 0x37, 0x31, 0x35, 0x31, 0x35, 0x32, 0x32, 0x30, 0x34, 0x30, 0x33, 0x36, 0x37, 0x31, // 0.71515220403671
+ 0x32, 0x36, 0x35, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x37, 0x32, 0x31, 0x37, 0x35, 0x30, 0x30, 0x33, // 265, 0.072175003
+ 0x35, 0x38, 0x38, 0x31, 0x39, 0x39, 0x36, 0x31, 0x35, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, // 588199615), floa
+ 0x74, 0x33, 0x28, 0x30, 0x2e, 0x30, 0x31, 0x39, 0x33, 0x33, 0x33, 0x39, 0x30, 0x30, 0x38, 0x38, // t3(0.01933390088
+ 0x33, 0x37, 0x39, 0x33, 0x38, 0x33, 0x31, 0x2c, 0x20, 0x30, 0x2e, 0x31, 0x31, 0x39, 0x31, 0x39, // 3793831, 0.11919
+ 0x31, 0x39, 0x39, 0x36, 0x37, 0x35, 0x33, 0x32, 0x31, 0x35, 0x37, 0x39, 0x2c, 0x20, 0x30, 0x2e, // 199675321579, 0.
+ 0x39, 0x35, 0x30, 0x33, 0x30, 0x34, 0x30, 0x39, 0x30, 0x39, 0x37, 0x36, 0x37, 0x31, 0x35, 0x30, // 9503040909767150
+ 0x39, 0x29, 0x29, 0x29, 0x20, 0x2a, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x78, 0x33, 0x28, // 9))) * float3x3(
+ 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x31, 0x2e, 0x37, 0x31, 0x36, 0x36, 0x35, 0x31, 0x32, // float3(1.7166512
+ 0x30, 0x31, 0x32, 0x34, 0x38, 0x31, 0x36, 0x38, 0x39, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x33, 0x35, // 012481689, -0.35
+ 0x35, 0x36, 0x37, 0x30, 0x38, 0x30, 0x39, 0x37, 0x34, 0x35, 0x37, 0x38, 0x38, 0x35, 0x37, 0x2c, // 567080974578857,
+ 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x33, 0x33, 0x36, 0x36, 0x32, 0x39, 0x31, 0x35, 0x32, 0x32, // -0.253366291522
+ 0x39, 0x37, 0x39, 0x37, 0x34, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x2d, // 97974), float3(-
+ 0x30, 0x2e, 0x36, 0x36, 0x36, 0x36, 0x38, 0x34, 0x33, 0x38, 0x39, 0x31, 0x31, 0x34, 0x33, 0x37, // 0.66668438911437
+ 0x39, 0x38, 0x38, 0x2c, 0x20, 0x31, 0x2e, 0x36, 0x31, 0x36, 0x34, 0x38, 0x31, 0x31, 0x38, 0x34, // 988, 1.616481184
+ 0x39, 0x35, 0x39, 0x34, 0x31, 0x31, 0x36, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x31, 0x35, 0x37, 0x36, // 9594116, 0.01576
+ 0x38, 0x35, 0x30, 0x30, 0x30, 0x34, 0x34, 0x39, 0x34, 0x31, 0x39, 0x30, 0x32, 0x29, 0x2c, 0x20, // 8500044941902),
+ 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x30, 0x2e, 0x30, 0x31, 0x37, 0x36, 0x33, 0x39, 0x38, // float3(0.0176398
+ 0x39, 0x39, 0x36, 0x32, 0x36, 0x33, 0x37, 0x34, 0x32, 0x34, 0x35, 0x2c, 0x20, 0x2d, 0x30, 0x2e, // 99626374245, -0.
+ 0x30, 0x34, 0x32, 0x37, 0x37, 0x30, 0x36, 0x30, 0x31, 0x38, 0x30, 0x39, 0x30, 0x32, 0x34, 0x38, // 0427706018090248
+ 0x31, 0x31, 0x2c, 0x20, 0x30, 0x2e, 0x39, 0x34, 0x32, 0x31, 0x30, 0x33, 0x30, 0x38, 0x37, 0x39, // 11, 0.9421030879
+ 0x30, 0x32, 0x30, 0x36, 0x39, 0x30, 0x39, 0x29, 0x29, 0x29, 0x20, 0x2a, 0x20, 0x5f, 0x6d, 0x74, // 0206909))) * _mt
+ 0x6c, 0x5f, 0x75, 0x2e, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x2e, 0x79, 0x29, // l_u.u_params1.y)
+ 0x20, 0x2a, 0x20, 0x39, 0x2e, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x37, 0x34, 0x37, 0x33, 0x37, // * 9.99999974737
+ 0x38, 0x37, 0x35, 0x31, 0x36, 0x65, 0x2d, 0x30, 0x30, 0x35, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, // 87516e-005, floa
+ 0x74, 0x33, 0x28, 0x30, 0x2e, 0x31, 0x35, 0x39, 0x33, 0x30, 0x31, 0x37, 0x35, 0x37, 0x38, 0x31, // t3(0.15930175781
+ 0x32, 0x35, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // 25));.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x37, 0x35, 0x31, 0x20, 0x3d, 0x20, 0x70, 0x6f, 0x77, // _751 = pow
+ 0x28, 0x28, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x30, 0x2e, 0x38, 0x33, 0x35, 0x39, 0x33, // ((float3(0.83593
+ 0x37, 0x35, 0x29, 0x20, 0x2b, 0x20, 0x28, 0x5f, 0x36, 0x38, 0x36, 0x20, 0x2a, 0x20, 0x31, 0x38, // 75) + (_686 * 18
+ 0x2e, 0x38, 0x35, 0x31, 0x35, 0x36, 0x32, 0x35, 0x29, 0x29, 0x20, 0x2f, 0x20, 0x28, 0x66, 0x6c, // .8515625)) / (fl
+ 0x6f, 0x61, 0x74, 0x33, 0x28, 0x31, 0x2e, 0x30, 0x29, 0x20, 0x2b, 0x20, 0x28, 0x5f, 0x36, 0x38, // oat3(1.0) + (_68
+ 0x36, 0x20, 0x2a, 0x20, 0x31, 0x38, 0x2e, 0x36, 0x38, 0x37, 0x35, 0x29, 0x29, 0x2c, 0x20, 0x66, // 6 * 18.6875)), f
+ 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x37, 0x38, 0x2e, 0x38, 0x34, 0x33, 0x37, 0x35, 0x29, 0x29, // loat3(78.84375))
+ 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, // ;. }.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, // else
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, // . {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, // _
+ 0x37, 0x35, 0x31, 0x20, 0x3d, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x30, 0x2e, 0x30, // 751 = float3(0.0
+ 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, // );. }
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x37, 0x35, // . _75
+ 0x30, 0x20, 0x3d, 0x20, 0x5f, 0x37, 0x35, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // 0 = _751;.
+ 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x37, 0x34, 0x39, // }. _749
+ 0x20, 0x3d, 0x20, 0x5f, 0x37, 0x35, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, // = _750;. }.
+ 0x20, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x2e, 0x62, 0x67, 0x66, 0x78, 0x5f, 0x46, 0x72, 0x61, 0x67, // out.bgfx_Frag
+ 0x44, 0x61, 0x74, 0x61, 0x30, 0x20, 0x3d, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x28, 0x5f, // Data0 = float4(_
+ 0x37, 0x34, 0x39, 0x2c, 0x20, 0x5f, 0x34, 0x37, 0x31, 0x2e, 0x77, 0x29, 0x3b, 0x0a, 0x20, 0x20, // 749, _471.w);.
+ 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6f, 0x75, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, // return out;.}.
+ 0x0a, 0x00, 0x00, 0x80, 0x00, // .....
};
extern const uint8_t* fs_texture_cube_pssl;
extern const uint32_t fs_texture_cube_pssl_size;
diff --git a/3rdparty/bgfx/tools/texturev/fs_texture_cube.sc b/3rdparty/bgfx/tools/texturev/fs_texture_cube.sc
index 091bffd5169..8bd4fddbea5 100644
--- a/3rdparty/bgfx/tools/texturev/fs_texture_cube.sc
+++ b/3rdparty/bgfx/tools/texturev/fs_texture_cube.sc
@@ -1,8 +1,8 @@
$input v_texcoord0, v_color0
/*
- * Copyright 2011-2018 Branimir Karadzic. All rights reserved.
- * License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause
+ * Copyright 2011-2022 Branimir Karadzic. All rights reserved.
+ * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE
*/
#include "common.sh"
@@ -16,5 +16,8 @@ void main()
dir = normalize(mul(u_mtx, vec4(dir, 0.0) ).xyz);
vec4 color = textureCubeLod(s_texColor, dir, u_textureLod);
- gl_FragColor = toEv(color * v_color0);
+ color.xyz = applyExposure(color.xyz);
+ color *= v_color0;
+
+ gl_FragColor = toOutput(color, u_outputFormat, u_sdrWhiteNits);
}
diff --git a/3rdparty/bgfx/tools/texturev/fs_texture_cube2.bin.h b/3rdparty/bgfx/tools/texturev/fs_texture_cube2.bin.h
index 0c7a950ce43..961634a7e3d 100644
--- a/3rdparty/bgfx/tools/texturev/fs_texture_cube2.bin.h
+++ b/3rdparty/bgfx/tools/texturev/fs_texture_cube2.bin.h
@@ -1,317 +1,1032 @@
-static const uint8_t fs_texture_cube2_glsl[523] =
+static const uint8_t fs_texture_cube2_glsl[2335] =
{
- 0x46, 0x53, 0x48, 0x06, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x08, 0x75, // FSH............u
- 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x02, 0x01, 0x00, 0x00, 0x01, 0x00, 0x0a, 0x73, 0x5f, // _params.......s_
- 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0xd8, 0x01, // texColor........
- 0x00, 0x00, 0x76, 0x61, 0x72, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x76, // ..varying vec4 v
- 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x76, 0x61, 0x72, 0x79, 0x69, 0x6e, 0x67, // _color0;.varying
- 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, // vec3 v_texcoord
- 0x30, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, // 0;.uniform vec4
- 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, // u_params;.unifor
- 0x6d, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x43, 0x75, 0x62, 0x65, 0x20, 0x73, 0x5f, // m samplerCube s_
- 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x3b, 0x0a, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x6d, // texColor;.void m
- 0x61, 0x69, 0x6e, 0x20, 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, // ain ().{. vec4
- 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x5f, 0x63, 0x6f, 0x6c, // _color_1;. _col
- 0x6f, 0x72, 0x5f, 0x31, 0x20, 0x3d, 0x20, 0x28, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x43, // or_1 = (textureC
- 0x75, 0x62, 0x65, 0x4c, 0x6f, 0x64, 0x20, 0x28, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, // ubeLod (s_texCol
- 0x6f, 0x72, 0x2c, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x2c, // or, v_texcoord0,
- 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x78, 0x29, 0x20, 0x2a, 0x20, 0x76, // u_params.x) * v
- 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x65, 0x63, 0x34, // _color0);. vec4
- 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, // tmpvar_2;. tmp
- 0x76, 0x61, 0x72, 0x5f, 0x32, 0x2e, 0x78, 0x79, 0x7a, 0x20, 0x3d, 0x20, 0x70, 0x6f, 0x77, 0x20, // var_2.xyz = pow
- 0x28, 0x61, 0x62, 0x73, 0x28, 0x28, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x78, 0x20, 0x28, // (abs((. mix (
- 0x70, 0x6f, 0x77, 0x20, 0x28, 0x61, 0x62, 0x73, 0x28, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, // pow (abs(_color_
- 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x29, 0x2c, 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x32, 0x2e, 0x32, // 1.xyz), vec3(2.2
- 0x2c, 0x20, 0x32, 0x2e, 0x32, 0x2c, 0x20, 0x32, 0x2e, 0x32, 0x29, 0x29, 0x2c, 0x20, 0x5f, 0x63, // , 2.2, 2.2)), _c
- 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x2c, 0x20, 0x75, 0x5f, 0x70, 0x61, // olor_1.xyz, u_pa
- 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x7a, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x2a, 0x20, 0x0a, 0x20, 0x20, // rams.z). * .
- 0x20, 0x20, 0x65, 0x78, 0x70, 0x32, 0x28, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, // exp2(u_params.
- 0x77, 0x29, 0x0a, 0x20, 0x20, 0x29, 0x29, 0x2c, 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x30, 0x2e, // w). )), vec3(0.
- 0x34, 0x35, 0x34, 0x35, 0x34, 0x35, 0x34, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x35, 0x34, 0x35, 0x34, // 4545454, 0.45454
- 0x35, 0x34, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x35, 0x34, 0x35, 0x34, 0x35, 0x34, 0x29, 0x29, 0x3b, // 54, 0.4545454));
- 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x2e, 0x77, 0x20, 0x3d, 0x20, // . tmpvar_2.w =
- 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x2e, 0x77, 0x3b, 0x0a, 0x20, 0x20, 0x67, 0x6c, // _color_1.w;. gl
- 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, // _FragColor = tmp
- 0x76, 0x61, 0x72, 0x5f, 0x32, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x00, // var_2;.}...
+ 0x46, 0x53, 0x48, 0x0b, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x09, 0x75, // FSH............u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x02, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // _params0........
+ 0x00, 0x00, 0x09, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x02, 0x01, 0x00, 0x00, // ...u_params1....
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, // .......s_texColo
+ 0x72, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcf, 0x08, 0x00, 0x00, 0x76, // r..............v
+ 0x61, 0x72, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x76, 0x5f, 0x63, 0x6f, // arying vec4 v_co
+ 0x6c, 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x76, 0x61, 0x72, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x76, 0x65, // lor0;.varying ve
+ 0x63, 0x33, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, 0x0a, // c3 v_texcoord0;.
+ 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x75, 0x5f, 0x70, // uniform vec4 u_p
+ 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, // arams0;.uniform
+ 0x76, 0x65, 0x63, 0x34, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x3b, 0x0a, // vec4 u_params1;.
+ 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x43, // uniform samplerC
+ 0x75, 0x62, 0x65, 0x20, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x3b, 0x0a, // ube s_texColor;.
+ 0x76, 0x6f, 0x69, 0x64, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, // void main ().{.
+ 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x3b, 0x0a, 0x20, // vec4 color_1;.
+ 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x3b, 0x0a, // vec4 tmpvar_2;.
+ 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x20, 0x3d, 0x20, 0x74, 0x65, 0x78, // tmpvar_2 = tex
+ 0x74, 0x75, 0x72, 0x65, 0x43, 0x75, 0x62, 0x65, 0x4c, 0x6f, 0x64, 0x20, 0x28, 0x73, 0x5f, 0x74, // tureCubeLod (s_t
+ 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x2c, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, // exColor, v_texco
+ 0x6f, 0x72, 0x64, 0x30, 0x2c, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x2e, // ord0, u_params0.
+ 0x78, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x2e, 0x77, 0x20, // x);. color_1.w
+ 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x2e, 0x77, 0x3b, 0x0a, 0x20, 0x20, // = tmpvar_2.w;.
+ 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x20, 0x3d, 0x20, 0x28, 0x6d, // color_1.xyz = (m
+ 0x69, 0x78, 0x20, 0x28, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x62, // ix (pow (. ab
+ 0x73, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x2e, 0x78, 0x79, 0x7a, 0x29, 0x0a, // s(tmpvar_2.xyz).
+ 0x20, 0x20, 0x2c, 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x32, 0x2e, 0x32, 0x2c, 0x20, 0x32, 0x2e, // , vec3(2.2, 2.
+ 0x32, 0x2c, 0x20, 0x32, 0x2e, 0x32, 0x29, 0x29, 0x2c, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // 2, 2.2)), tmpvar
+ 0x5f, 0x32, 0x2e, 0x78, 0x79, 0x7a, 0x2c, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, // _2.xyz, u_params
+ 0x30, 0x2e, 0x7a, 0x29, 0x20, 0x2a, 0x20, 0x65, 0x78, 0x70, 0x32, 0x28, 0x75, 0x5f, 0x70, 0x61, // 0.z) * exp2(u_pa
+ 0x72, 0x61, 0x6d, 0x73, 0x30, 0x2e, 0x77, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x6c, // rams0.w));. col
+ 0x6f, 0x72, 0x5f, 0x31, 0x20, 0x3d, 0x20, 0x28, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x20, // or_1 = (color_1
+ 0x2a, 0x20, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x76, // * v_color0);. v
+ 0x65, 0x63, 0x33, 0x20, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x33, 0x3b, 0x0a, // ec3 outColor_3;.
+ 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x34, 0x3b, // vec3 tmpvar_4;
+ 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x34, 0x2e, 0x78, 0x20, 0x3d, 0x20, // . tmpvar_4.x =
+ 0x30, 0x2e, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x34, 0x2e, // 0.0;. tmpvar_4.
+ 0x79, 0x20, 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, // y = 0.0;. tmpva
+ 0x72, 0x5f, 0x34, 0x2e, 0x7a, 0x20, 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x6f, // r_4.z = 0.0;. o
+ 0x75, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x33, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, // utColor_3 = tmpv
+ 0x61, 0x72, 0x5f, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x28, 0x75, 0x5f, 0x70, // ar_4;. if ((u_p
+ 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x2e, 0x78, 0x20, 0x3c, 0x20, 0x30, 0x2e, 0x35, 0x29, 0x29, // arams1.x < 0.5))
+ 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x74, 0x6d, 0x70, 0x76, // {. vec3 tmpv
+ 0x61, 0x72, 0x5f, 0x35, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // ar_5;. tmpvar
+ 0x5f, 0x35, 0x20, 0x3d, 0x20, 0x63, 0x6c, 0x61, 0x6d, 0x70, 0x20, 0x28, 0x63, 0x6f, 0x6c, 0x6f, // _5 = clamp (colo
+ 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, // r_1.xyz, 0.0, 1.
+ 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x5f, 0x72, 0x67, // 0);. vec3 _rg
+ 0x62, 0x5f, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x72, 0x67, 0x62, 0x5f, 0x36, 0x20, // b_6;. _rgb_6
+ 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x35, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, // = tmpvar_5;.
+ 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x37, 0x3b, 0x0a, // float tmpvar_7;.
+ 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // if ((tmpvar_
+ 0x35, 0x2e, 0x78, 0x20, 0x3c, 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x30, 0x33, 0x31, 0x33, 0x30, 0x38, // 5.x <= 0.0031308
+ 0x29, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, // )) {. tmpva
+ 0x72, 0x5f, 0x37, 0x20, 0x3d, 0x20, 0x28, 0x31, 0x32, 0x2e, 0x39, 0x32, 0x20, 0x2a, 0x20, 0x74, // r_7 = (12.92 * t
+ 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x35, 0x2e, 0x78, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, // mpvar_5.x);.
+ 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, // } else {. t
+ 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x37, 0x20, 0x3d, 0x20, 0x28, 0x28, 0x31, 0x2e, 0x30, 0x35, // mpvar_7 = ((1.05
+ 0x35, 0x20, 0x2a, 0x20, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // 5 * pow (tmpvar_
+ 0x35, 0x2e, 0x78, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x31, 0x36, 0x36, 0x36, 0x36, 0x37, 0x29, 0x29, // 5.x, 0.4166667))
+ 0x20, 0x2d, 0x20, 0x30, 0x2e, 0x30, 0x35, 0x35, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, // - 0.055);. }
+ 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x72, 0x67, 0x62, 0x5f, 0x36, 0x2e, 0x78, 0x20, 0x3d, // ;. _rgb_6.x =
+ 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x37, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, // tmpvar_7;. f
+ 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x38, 0x3b, 0x0a, 0x20, // loat tmpvar_8;.
+ 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x35, // if ((tmpvar_5
+ 0x2e, 0x79, 0x20, 0x3c, 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x30, 0x33, 0x31, 0x33, 0x30, 0x38, 0x29, // .y <= 0.0031308)
+ 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // ) {. tmpvar
+ 0x5f, 0x38, 0x20, 0x3d, 0x20, 0x28, 0x31, 0x32, 0x2e, 0x39, 0x32, 0x20, 0x2a, 0x20, 0x74, 0x6d, // _8 = (12.92 * tm
+ 0x70, 0x76, 0x61, 0x72, 0x5f, 0x35, 0x2e, 0x79, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, // pvar_5.y);. }
+ 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, // else {. tm
+ 0x70, 0x76, 0x61, 0x72, 0x5f, 0x38, 0x20, 0x3d, 0x20, 0x28, 0x28, 0x31, 0x2e, 0x30, 0x35, 0x35, // pvar_8 = ((1.055
+ 0x20, 0x2a, 0x20, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x35, // * pow (tmpvar_5
+ 0x2e, 0x79, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x31, 0x36, 0x36, 0x36, 0x36, 0x37, 0x29, 0x29, 0x20, // .y, 0.4166667))
+ 0x2d, 0x20, 0x30, 0x2e, 0x30, 0x35, 0x35, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x3b, // - 0.055);. };
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x72, 0x67, 0x62, 0x5f, 0x36, 0x2e, 0x79, 0x20, 0x3d, 0x20, // . _rgb_6.y =
+ 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, // tmpvar_8;. fl
+ 0x6f, 0x61, 0x74, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x39, 0x3b, 0x0a, 0x20, 0x20, // oat tmpvar_9;.
+ 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x35, 0x2e, // if ((tmpvar_5.
+ 0x7a, 0x20, 0x3c, 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x30, 0x33, 0x31, 0x33, 0x30, 0x38, 0x29, 0x29, // z <= 0.0031308))
+ 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // {. tmpvar_
+ 0x39, 0x20, 0x3d, 0x20, 0x28, 0x31, 0x32, 0x2e, 0x39, 0x32, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, // 9 = (12.92 * tmp
+ 0x76, 0x61, 0x72, 0x5f, 0x35, 0x2e, 0x7a, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x20, // var_5.z);. }
+ 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, // else {. tmp
+ 0x76, 0x61, 0x72, 0x5f, 0x39, 0x20, 0x3d, 0x20, 0x28, 0x28, 0x31, 0x2e, 0x30, 0x35, 0x35, 0x20, // var_9 = ((1.055
+ 0x2a, 0x20, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x35, 0x2e, // * pow (tmpvar_5.
+ 0x7a, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x31, 0x36, 0x36, 0x36, 0x36, 0x37, 0x29, 0x29, 0x20, 0x2d, // z, 0.4166667)) -
+ 0x20, 0x30, 0x2e, 0x30, 0x35, 0x35, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x3b, 0x0a, // 0.055);. };.
+ 0x20, 0x20, 0x20, 0x20, 0x5f, 0x72, 0x67, 0x62, 0x5f, 0x36, 0x2e, 0x7a, 0x20, 0x3d, 0x20, 0x74, // _rgb_6.z = t
+ 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x39, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x75, 0x74, // mpvar_9;. out
+ 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x33, 0x20, 0x3d, 0x20, 0x5f, 0x72, 0x67, 0x62, 0x5f, 0x36, // Color_3 = _rgb_6
+ 0x3b, 0x0a, 0x20, 0x20, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, // ;. } else {.
+ 0x20, 0x69, 0x66, 0x20, 0x28, 0x28, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x2e, // if ((u_params1.
+ 0x78, 0x20, 0x3c, 0x20, 0x31, 0x2e, 0x35, 0x29, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, // x < 1.5)) {.
+ 0x20, 0x20, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x33, 0x20, 0x3d, 0x20, 0x63, // outColor_3 = c
+ 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, // olor_1.xyz;.
+ 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, // } else {. i
+ 0x66, 0x20, 0x28, 0x28, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x2e, 0x78, 0x20, // f ((u_params1.x
+ 0x3c, 0x20, 0x32, 0x2e, 0x35, 0x29, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // < 2.5)) {.
+ 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x30, // vec3 _color_10
+ 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, // ;. _color
+ 0x5f, 0x31, 0x30, 0x20, 0x3d, 0x20, 0x28, 0x28, 0x6d, 0x61, 0x74, 0x33, 0x28, 0x31, 0x2e, 0x37, // _10 = ((mat3(1.7
+ 0x31, 0x36, 0x36, 0x35, 0x31, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x33, 0x35, 0x35, 0x36, 0x37, 0x30, // 16651, -0.355670
+ 0x38, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x33, 0x33, 0x36, 0x36, 0x33, 0x2c, 0x20, 0x2d, // 8, -0.2533663, -
+ 0x30, 0x2e, 0x36, 0x36, 0x36, 0x36, 0x38, 0x34, 0x34, 0x2c, 0x20, 0x31, 0x2e, 0x36, 0x31, 0x36, // 0.6666844, 1.616
+ 0x34, 0x38, 0x31, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x31, 0x35, 0x37, 0x36, 0x38, 0x35, 0x2c, 0x20, // 481, 0.0157685,
+ 0x30, 0x2e, 0x30, 0x31, 0x37, 0x36, 0x33, 0x39, 0x39, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x30, 0x34, // 0.0176399, -0.04
+ 0x32, 0x37, 0x37, 0x30, 0x36, 0x2c, 0x20, 0x30, 0x2e, 0x39, 0x34, 0x32, 0x31, 0x30, 0x33, 0x31, // 27706, 0.9421031
+ 0x29, 0x20, 0x2a, 0x20, 0x28, 0x6d, 0x61, 0x74, 0x33, 0x28, 0x30, 0x2e, 0x34, 0x31, 0x32, 0x35, // ) * (mat3(0.4125
+ 0x35, 0x36, 0x34, 0x2c, 0x20, 0x30, 0x2e, 0x33, 0x35, 0x37, 0x35, 0x37, 0x36, 0x31, 0x2c, 0x20, // 564, 0.3575761,
+ 0x30, 0x2e, 0x31, 0x38, 0x30, 0x34, 0x33, 0x37, 0x35, 0x2c, 0x20, 0x30, 0x2e, 0x32, 0x31, 0x32, // 0.1804375, 0.212
+ 0x36, 0x37, 0x32, 0x39, 0x2c, 0x20, 0x30, 0x2e, 0x37, 0x31, 0x35, 0x31, 0x35, 0x32, 0x32, 0x2c, // 6729, 0.7151522,
+ 0x20, 0x30, 0x2e, 0x30, 0x37, 0x32, 0x31, 0x37, 0x35, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x31, 0x39, // 0.072175, 0.019
+ 0x33, 0x33, 0x33, 0x39, 0x2c, 0x20, 0x30, 0x2e, 0x31, 0x31, 0x39, 0x31, 0x39, 0x32, 0x2c, 0x20, // 3339, 0.119192,
+ 0x30, 0x2e, 0x39, 0x35, 0x30, 0x33, 0x30, 0x34, 0x31, 0x29, 0x20, 0x2a, 0x20, 0x63, 0x6f, 0x6c, // 0.9503041) * col
+ 0x6f, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x29, 0x29, 0x20, 0x2a, 0x20, 0x75, 0x5f, 0x70, // or_1.xyz)) * u_p
+ 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x2e, 0x79, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, // arams1.y);.
+ 0x20, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, // vec3 tmpvar_1
+ 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, // 1;. tmpva
+ 0x72, 0x5f, 0x31, 0x31, 0x20, 0x3d, 0x20, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x28, 0x5f, 0x63, 0x6f, // r_11 = pow ((_co
+ 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x30, 0x20, 0x2a, 0x20, 0x30, 0x2e, 0x30, 0x30, 0x30, 0x31, 0x29, // lor_10 * 0.0001)
+ 0x2c, 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x30, 0x2e, 0x31, 0x35, 0x39, 0x33, 0x30, 0x31, 0x38, // , vec3(0.1593018
+ 0x2c, 0x20, 0x30, 0x2e, 0x31, 0x35, 0x39, 0x33, 0x30, 0x31, 0x38, 0x2c, 0x20, 0x30, 0x2e, 0x31, // , 0.1593018, 0.1
+ 0x35, 0x39, 0x33, 0x30, 0x31, 0x38, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // 593018));.
+ 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x32, // vec3 tmpvar_12
+ 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // ;. tmpvar
+ 0x5f, 0x31, 0x32, 0x20, 0x3d, 0x20, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x28, 0x28, 0x30, 0x2e, 0x38, // _12 = pow (((0.8
+ 0x33, 0x35, 0x39, 0x33, 0x37, 0x35, 0x20, 0x2b, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // 359375 + .
+ 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x38, 0x2e, 0x38, 0x35, 0x31, 0x35, 0x36, 0x20, 0x2a, 0x20, // (18.85156 *
+ 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x31, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, // tmpvar_11).
+ 0x20, 0x20, 0x20, 0x29, 0x20, 0x2f, 0x20, 0x28, 0x76, 0x65, 0x63, 0x33, 0x28, 0x31, 0x2e, 0x30, // ) / (vec3(1.0
+ 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x20, 0x2b, 0x20, 0x0a, 0x20, // , 1.0, 1.0) + .
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x38, 0x2e, 0x36, 0x38, 0x37, // (18.687
+ 0x35, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x31, 0x29, 0x0a, 0x20, // 5 * tmpvar_11).
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x29, 0x29, 0x2c, 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, // )), vec3(
+ 0x37, 0x38, 0x2e, 0x38, 0x34, 0x33, 0x37, 0x35, 0x2c, 0x20, 0x37, 0x38, 0x2e, 0x38, 0x34, 0x33, // 78.84375, 78.843
+ 0x37, 0x35, 0x2c, 0x20, 0x37, 0x38, 0x2e, 0x38, 0x34, 0x33, 0x37, 0x35, 0x29, 0x29, 0x3b, 0x0a, // 75, 78.84375));.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, // _color_1
+ 0x30, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x32, 0x3b, 0x0a, 0x20, // 0 = tmpvar_12;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, // outColor_
+ 0x33, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x32, 0x3b, 0x0a, 0x20, // 3 = tmpvar_12;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x3b, 0x0a, 0x20, // };. };.
+ 0x20, 0x7d, 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, // };. vec4 tmpva
+ 0x72, 0x5f, 0x31, 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, // r_13;. tmpvar_1
+ 0x33, 0x2e, 0x78, 0x79, 0x7a, 0x20, 0x3d, 0x20, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, // 3.xyz = outColor
+ 0x5f, 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x33, 0x2e, // _3;. tmpvar_13.
+ 0x77, 0x20, 0x3d, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x2e, 0x77, 0x3b, 0x0a, 0x20, // w = color_1.w;.
+ 0x20, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, // gl_FragColor =
+ 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x33, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x00, // tmpvar_13;.}...
};
-static const uint8_t fs_texture_cube2_spv[1913] =
+static const uint8_t fs_texture_cube2_essl[2484] =
{
- 0x46, 0x53, 0x48, 0x06, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x75, // FSH............u
- 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x01, 0x00, 0x00, 0x01, 0x00, 0x54, 0x07, 0x00, // _params......T..
- 0x00, 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x07, 0x00, 0x08, 0x00, 0x2d, 0x01, 0x00, // ...#.........-..
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, // ................
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, // .....GLSL.std.45
- 0x30, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // 0...............
- 0x00, 0x0f, 0x00, 0x08, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, // .............mai
- 0x6e, 0x00, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, // n...............
- 0x00, 0x10, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, // ................
- 0x00, 0x05, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, // ................
- 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x09, 0x00, 0x00, // .main...........
- 0x00, 0x42, 0x67, 0x66, 0x78, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x43, 0x75, 0x62, 0x65, // .BgfxSamplerCube
- 0x00, 0x06, 0x00, 0x06, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6d, 0x5f, 0x73, // .............m_s
- 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x09, 0x00, 0x00, // ampler..........
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x6d, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x00, 0x00, // .....m_texture..
- 0x00, 0x05, 0x00, 0x05, 0x00, 0x36, 0x00, 0x00, 0x00, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, // .....6...s_texCo
- 0x6c, 0x6f, 0x72, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x38, 0x00, 0x00, 0x00, 0x73, 0x5f, 0x74, // lor......8...s_t
- 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x00, 0x00, // exColorSampler..
- 0x00, 0x05, 0x00, 0x07, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, // .....;...s_texCo
- 0x6c, 0x6f, 0x72, 0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, // lorTexture......
- 0x00, 0x76, 0x00, 0x00, 0x00, 0x24, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x00, 0x06, 0x00, 0x06, // .v...$Global....
- 0x00, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, // .v.......u_param
- 0x73, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // s........x......
- 0x00, 0x05, 0x00, 0x05, 0x00, 0xab, 0x00, 0x00, 0x00, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, // .........v_color
- 0x30, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0xaf, 0x00, 0x00, 0x00, 0x76, 0x5f, 0x74, // 0............v_t
- 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x00, 0x05, 0x00, 0x06, 0x00, 0xba, 0x00, 0x00, // excoord0........
- 0x00, 0x62, 0x67, 0x66, 0x78, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x44, 0x61, 0x74, 0x61, 0x30, 0x00, // .bgfx_FragData0.
- 0x00, 0x47, 0x00, 0x04, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .G...;..."......
- 0x00, 0x47, 0x00, 0x04, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .G...;...!......
- 0x00, 0x48, 0x00, 0x05, 0x00, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, // .H...v.......#..
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x76, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, // .....G...v......
- 0x00, 0x47, 0x00, 0x04, 0x00, 0x78, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .G...x..."......
- 0x00, 0x47, 0x00, 0x04, 0x00, 0xab, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .G..............
- 0x00, 0x47, 0x00, 0x04, 0x00, 0xaf, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // .G..............
- 0x00, 0x47, 0x00, 0x04, 0x00, 0xba, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .G..............
- 0x00, 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, // .........!......
- 0x00, 0x02, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x02, 0x00, 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, // ................
- 0x00, 0x07, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x08, 0x00, 0x00, // ..... ..........
- 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x04, // ................
- 0x00, 0x09, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, // ................
- 0x00, 0x0b, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, // ................
- 0x00, 0x0e, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, // ............. ..
- 0x00, 0x35, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, // .5...........;..
- 0x00, 0x35, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, // .5...6....... ..
- 0x00, 0x37, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, // .7...........;..
- 0x00, 0x37, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, // .7...8....... ..
- 0x00, 0x3a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, // .:...........;..
- 0x00, 0x3a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, // .:...;..........
- 0x00, 0x3e, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, // .>... .......+..
- 0x00, 0x3e, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, // .>...C..........
- 0x00, 0x47, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, // .G.......+......
- 0x00, 0x63, 0x00, 0x00, 0x00, 0xcd, 0xcc, 0x0c, 0x40, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, // .c......@+......
- 0x00, 0x6b, 0x00, 0x00, 0x00, 0x2f, 0xba, 0xe8, 0x3e, 0x1e, 0x00, 0x03, 0x00, 0x76, 0x00, 0x00, // .k.../..>....v..
- 0x00, 0x0e, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x77, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, // ..... ...w......
- 0x00, 0x76, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x77, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, // .v...;...w...x..
- 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x79, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, // .........y... ..
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x79, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, // .....+...y...z..
- 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, // ..... ...{......
- 0x00, 0x07, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, // .....+..........
- 0x00, 0x00, 0x00, 0x00, 0x40, 0x2b, 0x00, 0x04, 0x00, 0x79, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, // ....@+...y......
- 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x79, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, // .....+...y......
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0xaa, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // ..... ..........
- 0x00, 0x0e, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0xaa, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, // .....;..........
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0xae, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // ..... ..........
- 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0xae, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, // .....;..........
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0xb9, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, // ..... ..........
- 0x00, 0x0e, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0xb9, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, // .....;..........
- 0x00, 0x03, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x2b, 0x01, 0x00, // .....,.......+..
- 0x00, 0x63, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, // .c...c...c...,..
- 0x00, 0x0b, 0x00, 0x00, 0x00, 0x2c, 0x01, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, // .....,...k...k..
- 0x00, 0x6b, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, // .k...6..........
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, // ................
- 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, // .=.......9...8..
- 0x00, 0x3d, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, // .=.......<...;..
- 0x00, 0x50, 0x00, 0x05, 0x00, 0x09, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, // .P.......=...9..
- 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x36, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, // .<...>...6...=..
- 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, // .=..............
- 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, // .=..............
- 0x00, 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, // .=...........6..
- 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x27, 0x01, 0x00, 0x00, 0xd6, 0x00, 0x00, // .Q.......'......
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, 0x28, 0x01, 0x00, // .....Q.......(..
- 0x00, 0xd6, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x7b, 0x00, 0x00, // .........A...{..
- 0x00, 0xd8, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, // .....x...C......
- 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, // .=..............
- 0x00, 0x56, 0x00, 0x05, 0x00, 0x47, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x28, 0x01, 0x00, // .V...G.......(..
- 0x00, 0x27, 0x01, 0x00, 0x00, 0x58, 0x00, 0x07, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xed, 0x00, 0x00, // .'...X..........
- 0x00, 0xea, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, // ................
- 0x00, 0x85, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0xed, 0x00, 0x00, // ................
- 0x00, 0xac, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x08, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, // .....O..........
- 0x00, 0xdd, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // ................
- 0x00, 0x02, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0d, 0x01, 0x00, // ................
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, // ................
- 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0f, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, // ................
- 0x00, 0x0d, 0x01, 0x00, 0x00, 0x2b, 0x01, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x7b, 0x00, 0x00, // .....+...A...{..
- 0x00, 0xf8, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, // .....x...C...z..
- 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, // .=..............
- 0x00, 0x50, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x00, // .P..............
- 0x00, 0xf9, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x08, 0x00, 0x0b, 0x00, 0x00, // .........O......
- 0x00, 0xfc, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x0b, 0x00, 0x00, // ................
- 0x00, 0x19, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x0f, 0x01, 0x00, // ................
- 0x00, 0xfc, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x7b, 0x00, 0x00, // .........A...{..
- 0x00, 0xff, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, // .....x...C......
- 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xff, 0x00, 0x00, // .=..............
- 0x00, 0x0c, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, // ................
- 0x00, 0x1a, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, // ................
- 0x00, 0x0b, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x19, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, // ................
- 0x00, 0x0c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1d, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, // ................
- 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, // ................
- 0x00, 0x1f, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1d, 0x01, 0x00, // ................
- 0x00, 0x2c, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x05, 0x01, 0x00, // .,...Q..........
- 0x00, 0xdd, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, // .........Q......
- 0x00, 0x06, 0x01, 0x00, 0x00, 0x1f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, // .............Q..
- 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x01, 0x00, 0x00, 0x1f, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, // ................
- 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x1f, 0x01, 0x00, // .Q..............
- 0x00, 0x02, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x09, 0x01, 0x00, // .....P..........
- 0x00, 0x06, 0x01, 0x00, 0x00, 0x07, 0x01, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x05, 0x01, 0x00, // ................
- 0x00, 0x3e, 0x00, 0x03, 0x00, 0xba, 0x00, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, 0xfd, 0x00, 0x01, // .>..............
- 0x00, 0x38, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00, // .8.......
+ 0x46, 0x53, 0x48, 0x0b, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x09, 0x75, // FSH............u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x02, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // _params0........
+ 0x00, 0x00, 0x09, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x02, 0x01, 0x00, 0x00, // ...u_params1....
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, // .......s_texColo
+ 0x72, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x09, 0x00, 0x00, 0x76, // r..........d...v
+ 0x61, 0x72, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, // arying highp vec
+ 0x34, 0x20, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x76, 0x61, 0x72, 0x79, // 4 v_color0;.vary
+ 0x69, 0x6e, 0x67, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x76, // ing highp vec3 v
+ 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, // _texcoord0;.unif
+ 0x6f, 0x72, 0x6d, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x75, // orm highp vec4 u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, // _params0;.unifor
+ 0x6d, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x75, 0x5f, 0x70, // m highp vec4 u_p
+ 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, // arams1;.uniform
+ 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x43, 0x75, 0x62, 0x65, // lowp samplerCube
+ 0x20, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x3b, 0x0a, 0x76, 0x6f, 0x69, // s_texColor;.voi
+ 0x64, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x6c, 0x6f, // d main ().{. lo
+ 0x77, 0x70, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x3b, // wp vec4 color_1;
+ 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x74, 0x6d, 0x70, // . lowp vec4 tmp
+ 0x76, 0x61, 0x72, 0x5f, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // var_2;. tmpvar_
+ 0x32, 0x20, 0x3d, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x43, 0x75, 0x62, 0x65, 0x4c, // 2 = textureCubeL
+ 0x6f, 0x64, 0x20, 0x20, 0x20, 0x20, 0x28, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, // od (s_texColo
+ 0x72, 0x2c, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x2c, 0x20, // r, v_texcoord0,
+ 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x2e, 0x78, 0x29, 0x3b, 0x0a, 0x20, 0x20, // u_params0.x);.
+ 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x2e, 0x77, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, // color_1.w = tmpv
+ 0x61, 0x72, 0x5f, 0x32, 0x2e, 0x77, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, // ar_2.w;. color_
+ 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x20, 0x3d, 0x20, 0x28, 0x6d, 0x69, 0x78, 0x20, 0x28, 0x70, 0x6f, // 1.xyz = (mix (po
+ 0x77, 0x20, 0x28, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x62, 0x73, 0x28, 0x74, 0x6d, 0x70, 0x76, // w (. abs(tmpv
+ 0x61, 0x72, 0x5f, 0x32, 0x2e, 0x78, 0x79, 0x7a, 0x29, 0x0a, 0x20, 0x20, 0x2c, 0x20, 0x76, 0x65, // ar_2.xyz). , ve
+ 0x63, 0x33, 0x28, 0x32, 0x2e, 0x32, 0x2c, 0x20, 0x32, 0x2e, 0x32, 0x2c, 0x20, 0x32, 0x2e, 0x32, // c3(2.2, 2.2, 2.2
+ 0x29, 0x29, 0x2c, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x2e, 0x78, 0x79, 0x7a, // )), tmpvar_2.xyz
+ 0x2c, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x2e, 0x7a, 0x29, 0x20, 0x2a, // , u_params0.z) *
+ 0x20, 0x65, 0x78, 0x70, 0x32, 0x28, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x2e, // exp2(u_params0.
+ 0x77, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x20, 0x3d, // w));. color_1 =
+ 0x20, 0x28, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x20, 0x2a, 0x20, 0x76, 0x5f, 0x63, 0x6f, // (color_1 * v_co
+ 0x6c, 0x6f, 0x72, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x70, // lor0);. mediump
+ 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x33, 0x3b, 0x0a, // vec4 tmpvar_3;.
+ 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x6f, 0x75, 0x74, 0x43, // lowp vec3 outC
+ 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x76, // olor_4;. lowp v
+ 0x65, 0x63, 0x33, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x35, 0x3b, 0x0a, 0x20, 0x20, // ec3 tmpvar_5;.
+ 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x35, 0x2e, 0x78, 0x20, 0x3d, 0x20, 0x30, 0x2e, 0x30, // tmpvar_5.x = 0.0
+ 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x35, 0x2e, 0x79, 0x20, 0x3d, // ;. tmpvar_5.y =
+ 0x20, 0x30, 0x2e, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x35, // 0.0;. tmpvar_5
+ 0x2e, 0x7a, 0x20, 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x43, // .z = 0.0;. outC
+ 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x34, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // olor_4 = tmpvar_
+ 0x35, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x28, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, // 5;. if ((u_para
+ 0x6d, 0x73, 0x31, 0x2e, 0x78, 0x20, 0x3c, 0x20, 0x30, 0x2e, 0x35, 0x29, 0x29, 0x20, 0x7b, 0x0a, // ms1.x < 0.5)) {.
+ 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x74, 0x6d, // lowp vec3 tm
+ 0x70, 0x76, 0x61, 0x72, 0x5f, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, // pvar_6;. tmpv
+ 0x61, 0x72, 0x5f, 0x36, 0x20, 0x3d, 0x20, 0x63, 0x6c, 0x61, 0x6d, 0x70, 0x20, 0x28, 0x63, 0x6f, // ar_6 = clamp (co
+ 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x2c, 0x20, // lor_1.xyz, 0.0,
+ 0x31, 0x2e, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x76, // 1.0);. lowp v
+ 0x65, 0x63, 0x33, 0x20, 0x5f, 0x72, 0x67, 0x62, 0x5f, 0x37, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, // ec3 _rgb_7;.
+ 0x5f, 0x72, 0x67, 0x62, 0x5f, 0x37, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // _rgb_7 = tmpvar_
+ 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x66, 0x6c, 0x6f, 0x61, // 6;. lowp floa
+ 0x74, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, // t tmpvar_8;.
+ 0x69, 0x66, 0x20, 0x28, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x36, 0x2e, 0x78, 0x20, // if ((tmpvar_6.x
+ 0x3c, 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x30, 0x33, 0x31, 0x33, 0x30, 0x38, 0x29, 0x29, 0x20, 0x7b, // <= 0.0031308)) {
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x38, 0x20, // . tmpvar_8
+ 0x3d, 0x20, 0x28, 0x31, 0x32, 0x2e, 0x39, 0x32, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, // = (12.92 * tmpva
+ 0x72, 0x5f, 0x36, 0x2e, 0x78, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x20, 0x65, 0x6c, // r_6.x);. } el
+ 0x73, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, // se {. tmpva
+ 0x72, 0x5f, 0x38, 0x20, 0x3d, 0x20, 0x28, 0x28, 0x31, 0x2e, 0x30, 0x35, 0x35, 0x20, 0x2a, 0x20, // r_8 = ((1.055 *
+ 0x70, 0x6f, 0x77, 0x20, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x36, 0x2e, 0x78, 0x2c, // pow (tmpvar_6.x,
+ 0x20, 0x30, 0x2e, 0x34, 0x31, 0x36, 0x36, 0x36, 0x36, 0x37, 0x29, 0x29, 0x20, 0x2d, 0x20, 0x30, // 0.4166667)) - 0
+ 0x2e, 0x30, 0x35, 0x35, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x3b, 0x0a, 0x20, 0x20, // .055);. };.
+ 0x20, 0x20, 0x5f, 0x72, 0x67, 0x62, 0x5f, 0x37, 0x2e, 0x78, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, // _rgb_7.x = tmp
+ 0x76, 0x61, 0x72, 0x5f, 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, 0x20, // var_8;. lowp
+ 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x39, 0x3b, 0x0a, // float tmpvar_9;.
+ 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // if ((tmpvar_
+ 0x36, 0x2e, 0x79, 0x20, 0x3c, 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x30, 0x33, 0x31, 0x33, 0x30, 0x38, // 6.y <= 0.0031308
+ 0x29, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, // )) {. tmpva
+ 0x72, 0x5f, 0x39, 0x20, 0x3d, 0x20, 0x28, 0x31, 0x32, 0x2e, 0x39, 0x32, 0x20, 0x2a, 0x20, 0x74, // r_9 = (12.92 * t
+ 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x36, 0x2e, 0x79, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, // mpvar_6.y);.
+ 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, // } else {. t
+ 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x39, 0x20, 0x3d, 0x20, 0x28, 0x28, 0x31, 0x2e, 0x30, 0x35, // mpvar_9 = ((1.05
+ 0x35, 0x20, 0x2a, 0x20, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // 5 * pow (tmpvar_
+ 0x36, 0x2e, 0x79, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x31, 0x36, 0x36, 0x36, 0x36, 0x37, 0x29, 0x29, // 6.y, 0.4166667))
+ 0x20, 0x2d, 0x20, 0x30, 0x2e, 0x30, 0x35, 0x35, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, // - 0.055);. }
+ 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x72, 0x67, 0x62, 0x5f, 0x37, 0x2e, 0x79, 0x20, 0x3d, // ;. _rgb_7.y =
+ 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x39, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, // tmpvar_9;. l
+ 0x6f, 0x77, 0x70, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // owp float tmpvar
+ 0x5f, 0x31, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x28, 0x74, 0x6d, // _10;. if ((tm
+ 0x70, 0x76, 0x61, 0x72, 0x5f, 0x36, 0x2e, 0x7a, 0x20, 0x3c, 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x30, // pvar_6.z <= 0.00
+ 0x33, 0x31, 0x33, 0x30, 0x38, 0x29, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // 31308)) {.
+ 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x30, 0x20, 0x3d, 0x20, 0x28, 0x31, 0x32, 0x2e, // tmpvar_10 = (12.
+ 0x39, 0x32, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x36, 0x2e, 0x7a, 0x29, // 92 * tmpvar_6.z)
+ 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x0a, 0x20, // ;. } else {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x30, 0x20, 0x3d, // tmpvar_10 =
+ 0x20, 0x28, 0x28, 0x31, 0x2e, 0x30, 0x35, 0x35, 0x20, 0x2a, 0x20, 0x70, 0x6f, 0x77, 0x20, 0x28, // ((1.055 * pow (
+ 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x36, 0x2e, 0x7a, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x31, // tmpvar_6.z, 0.41
+ 0x36, 0x36, 0x36, 0x36, 0x37, 0x29, 0x29, 0x20, 0x2d, 0x20, 0x30, 0x2e, 0x30, 0x35, 0x35, 0x29, // 66667)) - 0.055)
+ 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x72, 0x67, // ;. };. _rg
+ 0x62, 0x5f, 0x37, 0x2e, 0x7a, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, // b_7.z = tmpvar_1
+ 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, // 0;. outColor_
+ 0x34, 0x20, 0x3d, 0x20, 0x5f, 0x72, 0x67, 0x62, 0x5f, 0x37, 0x3b, 0x0a, 0x20, 0x20, 0x7d, 0x20, // 4 = _rgb_7;. }
+ 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x28, // else {. if ((
+ 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x2e, 0x78, 0x20, 0x3c, 0x20, 0x31, 0x2e, // u_params1.x < 1.
+ 0x35, 0x29, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x43, // 5)) {. outC
+ 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x34, 0x20, 0x3d, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, // olor_4 = color_1
+ 0x2e, 0x78, 0x79, 0x7a, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, // .xyz;. } else
+ 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x28, 0x75, 0x5f, // {. if ((u_
+ 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x2e, 0x78, 0x20, 0x3c, 0x20, 0x32, 0x2e, 0x35, 0x29, // params1.x < 2.5)
+ 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, // ) {. lowp
+ 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x31, 0x3b, // vec3 _color_11;
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, // . _color_
+ 0x31, 0x31, 0x20, 0x3d, 0x20, 0x28, 0x28, 0x6d, 0x61, 0x74, 0x33, 0x28, 0x31, 0x2e, 0x37, 0x31, // 11 = ((mat3(1.71
+ 0x36, 0x36, 0x35, 0x31, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x33, 0x35, 0x35, 0x36, 0x37, 0x30, 0x38, // 6651, -0.3556708
+ 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x33, 0x33, 0x36, 0x36, 0x33, 0x2c, 0x20, 0x2d, 0x30, // , -0.2533663, -0
+ 0x2e, 0x36, 0x36, 0x36, 0x36, 0x38, 0x34, 0x34, 0x2c, 0x20, 0x31, 0x2e, 0x36, 0x31, 0x36, 0x34, // .6666844, 1.6164
+ 0x38, 0x31, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x31, 0x35, 0x37, 0x36, 0x38, 0x35, 0x2c, 0x20, 0x30, // 81, 0.0157685, 0
+ 0x2e, 0x30, 0x31, 0x37, 0x36, 0x33, 0x39, 0x39, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x30, 0x34, 0x32, // .0176399, -0.042
+ 0x37, 0x37, 0x30, 0x36, 0x2c, 0x20, 0x30, 0x2e, 0x39, 0x34, 0x32, 0x31, 0x30, 0x33, 0x31, 0x29, // 7706, 0.9421031)
+ 0x20, 0x2a, 0x20, 0x28, 0x6d, 0x61, 0x74, 0x33, 0x28, 0x30, 0x2e, 0x34, 0x31, 0x32, 0x35, 0x35, // * (mat3(0.41255
+ 0x36, 0x34, 0x2c, 0x20, 0x30, 0x2e, 0x33, 0x35, 0x37, 0x35, 0x37, 0x36, 0x31, 0x2c, 0x20, 0x30, // 64, 0.3575761, 0
+ 0x2e, 0x31, 0x38, 0x30, 0x34, 0x33, 0x37, 0x35, 0x2c, 0x20, 0x30, 0x2e, 0x32, 0x31, 0x32, 0x36, // .1804375, 0.2126
+ 0x37, 0x32, 0x39, 0x2c, 0x20, 0x30, 0x2e, 0x37, 0x31, 0x35, 0x31, 0x35, 0x32, 0x32, 0x2c, 0x20, // 729, 0.7151522,
+ 0x30, 0x2e, 0x30, 0x37, 0x32, 0x31, 0x37, 0x35, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x31, 0x39, 0x33, // 0.072175, 0.0193
+ 0x33, 0x33, 0x39, 0x2c, 0x20, 0x30, 0x2e, 0x31, 0x31, 0x39, 0x31, 0x39, 0x32, 0x2c, 0x20, 0x30, // 339, 0.119192, 0
+ 0x2e, 0x39, 0x35, 0x30, 0x33, 0x30, 0x34, 0x31, 0x29, 0x20, 0x2a, 0x20, 0x63, 0x6f, 0x6c, 0x6f, // .9503041) * colo
+ 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x29, 0x29, 0x20, 0x2a, 0x20, 0x75, 0x5f, 0x70, 0x61, // r_1.xyz)) * u_pa
+ 0x72, 0x61, 0x6d, 0x73, 0x31, 0x2e, 0x79, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // rams1.y);.
+ 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x74, 0x6d, 0x70, 0x76, // lowp vec3 tmpv
+ 0x61, 0x72, 0x5f, 0x31, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, // ar_12;. t
+ 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x32, 0x20, 0x3d, 0x20, 0x70, 0x6f, 0x77, 0x20, 0x28, // mpvar_12 = pow (
+ 0x28, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x31, 0x20, 0x2a, 0x20, 0x30, 0x2e, 0x30, // (_color_11 * 0.0
+ 0x30, 0x30, 0x31, 0x29, 0x2c, 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x30, 0x2e, 0x31, 0x35, 0x39, // 001), vec3(0.159
+ 0x33, 0x30, 0x31, 0x38, 0x2c, 0x20, 0x30, 0x2e, 0x31, 0x35, 0x39, 0x33, 0x30, 0x31, 0x38, 0x2c, // 3018, 0.1593018,
+ 0x20, 0x30, 0x2e, 0x31, 0x35, 0x39, 0x33, 0x30, 0x31, 0x38, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, // 0.1593018));.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, // lowp vec3
+ 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, // tmpvar_13;.
+ 0x20, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x33, 0x20, 0x3d, 0x20, 0x70, // tmpvar_13 = p
+ 0x6f, 0x77, 0x20, 0x28, 0x28, 0x28, 0x30, 0x2e, 0x38, 0x33, 0x35, 0x39, 0x33, 0x37, 0x35, 0x20, // ow (((0.8359375
+ 0x2b, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x38, // + . (18
+ 0x2e, 0x38, 0x35, 0x31, 0x35, 0x36, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // .85156 * tmpvar_
+ 0x31, 0x32, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x29, 0x20, 0x2f, 0x20, // 12). ) /
+ 0x28, 0x76, 0x65, 0x63, 0x33, 0x28, 0x31, 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x2c, 0x20, // (vec3(1.0, 1.0,
+ 0x31, 0x2e, 0x30, 0x29, 0x20, 0x2b, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // 1.0) + .
+ 0x20, 0x20, 0x28, 0x31, 0x38, 0x2e, 0x36, 0x38, 0x37, 0x35, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, // (18.6875 * tmp
+ 0x76, 0x61, 0x72, 0x5f, 0x31, 0x32, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // var_12).
+ 0x29, 0x29, 0x2c, 0x20, 0x76, 0x65, 0x63, 0x33, 0x28, 0x37, 0x38, 0x2e, 0x38, 0x34, 0x33, 0x37, // )), vec3(78.8437
+ 0x35, 0x2c, 0x20, 0x37, 0x38, 0x2e, 0x38, 0x34, 0x33, 0x37, 0x35, 0x2c, 0x20, 0x37, 0x38, 0x2e, // 5, 78.84375, 78.
+ 0x38, 0x34, 0x33, 0x37, 0x35, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // 84375));.
+ 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x31, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, // _color_11 = tmp
+ 0x76, 0x61, 0x72, 0x5f, 0x31, 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // var_13;.
+ 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x34, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, // outColor_4 = tmp
+ 0x76, 0x61, 0x72, 0x5f, 0x31, 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x3b, // var_13;. };
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x3b, 0x0a, 0x20, 0x20, 0x7d, 0x3b, 0x0a, 0x20, 0x20, 0x6c, // . };. };. l
+ 0x6f, 0x77, 0x70, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // owp vec4 tmpvar_
+ 0x31, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x34, 0x2e, // 14;. tmpvar_14.
+ 0x78, 0x79, 0x7a, 0x20, 0x3d, 0x20, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x34, // xyz = outColor_4
+ 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x34, 0x2e, 0x77, 0x20, // ;. tmpvar_14.w
+ 0x3d, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x2e, 0x77, 0x3b, 0x0a, 0x20, 0x20, 0x74, // = color_1.w;. t
+ 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x33, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // mpvar_3 = tmpvar
+ 0x5f, 0x31, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, // _14;. gl_FragCo
+ 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x33, 0x3b, 0x0a, // lor = tmpvar_3;.
+ 0x7d, 0x0a, 0x0a, 0x00, // }...
};
-static const uint8_t fs_texture_cube2_dx9[611] =
+static const uint8_t fs_texture_cube2_spv[4383] =
{
- 0x46, 0x53, 0x48, 0x06, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0a, 0x73, // FSH............s
- 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x01, 0x00, 0x00, 0x01, 0x00, 0x08, // _texColor0......
- 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x01, 0x00, 0x00, 0x01, 0x00, 0x30, 0x02, // u_params......0.
- 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xfe, 0xff, 0x2c, 0x00, 0x43, 0x54, 0x41, 0x42, 0x1c, 0x00, // ........,.CTAB..
- 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0x02, 0x00, 0x00, 0x00, 0x1c, 0x00, // ................
- 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x03, 0x00, // ......|...D.....
- 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, // ......P.......`.
- 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, // ..........l.....
- 0x00, 0x00, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x00, 0xab, 0x04, 0x00, // ..s_texColor....
- 0x0e, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, // ..............u_
- 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x00, 0xab, 0xab, 0xab, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, // params..........
- 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x73, 0x5f, 0x33, 0x5f, 0x30, // ..........ps_3_0
- 0x00, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, // .Microsoft (R) H
- 0x4c, 0x53, 0x4c, 0x20, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x69, // LSL Shader Compi
- 0x6c, 0x65, 0x72, 0x20, 0x31, 0x30, 0x2e, 0x31, 0x00, 0xab, 0x51, 0x00, 0x00, 0x05, 0x01, 0x00, // ler 10.1..Q.....
- 0x0f, 0xa0, 0xcd, 0xcc, 0x0c, 0x40, 0x2f, 0xba, 0xe8, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .....@/..>......
- 0x00, 0x00, 0x1f, 0x00, 0x00, 0x02, 0x0a, 0x00, 0x00, 0x80, 0x00, 0x00, 0x0f, 0x90, 0x1f, 0x00, // ................
- 0x00, 0x02, 0x05, 0x00, 0x00, 0x80, 0x01, 0x00, 0x07, 0x90, 0x1f, 0x00, 0x00, 0x02, 0x00, 0x00, // ................
- 0x00, 0x98, 0x00, 0x08, 0x0f, 0xa0, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x07, 0x80, 0x01, 0x00, // ................
- 0xe4, 0x90, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x08, 0x80, 0x00, 0x00, 0x00, 0xa0, 0x5f, 0x00, // .............._.
- 0x00, 0x03, 0x00, 0x00, 0x0f, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x00, 0x08, 0xe4, 0xa0, 0x05, 0x00, // ................
- 0x00, 0x03, 0x01, 0x00, 0x0f, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x00, 0x00, 0xe4, 0x90, 0x0f, 0x00, // ................
- 0x00, 0x02, 0x02, 0x00, 0x01, 0x80, 0x01, 0x00, 0x00, 0x8b, 0x0f, 0x00, 0x00, 0x02, 0x02, 0x00, // ................
- 0x02, 0x80, 0x01, 0x00, 0x55, 0x8b, 0x0f, 0x00, 0x00, 0x02, 0x02, 0x00, 0x04, 0x80, 0x01, 0x00, // ....U...........
- 0xaa, 0x8b, 0x01, 0x00, 0x00, 0x02, 0x00, 0x08, 0x08, 0x80, 0x01, 0x00, 0xff, 0x80, 0x05, 0x00, // ................
- 0x00, 0x03, 0x01, 0x00, 0x07, 0x80, 0x02, 0x00, 0xe4, 0x80, 0x01, 0x00, 0x00, 0xa0, 0x0e, 0x00, // ................
- 0x00, 0x02, 0x02, 0x00, 0x01, 0x80, 0x01, 0x00, 0x00, 0x80, 0x0e, 0x00, 0x00, 0x02, 0x02, 0x00, // ................
- 0x02, 0x80, 0x01, 0x00, 0x55, 0x80, 0x0e, 0x00, 0x00, 0x02, 0x02, 0x00, 0x04, 0x80, 0x01, 0x00, // ....U...........
- 0xaa, 0x80, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x00, 0x00, // ................
- 0xe4, 0x90, 0x02, 0x00, 0xe4, 0x81, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, // ................
- 0xaa, 0xa0, 0x00, 0x00, 0xe4, 0x80, 0x02, 0x00, 0xe4, 0x80, 0x0e, 0x00, 0x00, 0x02, 0x00, 0x00, // ................
- 0x08, 0x80, 0x00, 0x00, 0xff, 0xa0, 0x05, 0x00, 0x00, 0x03, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, // ................
- 0xff, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x0f, 0x00, 0x00, 0x02, 0x01, 0x00, 0x01, 0x80, 0x00, 0x00, // ................
- 0x00, 0x8b, 0x0f, 0x00, 0x00, 0x02, 0x01, 0x00, 0x02, 0x80, 0x00, 0x00, 0x55, 0x8b, 0x0f, 0x00, // ............U...
- 0x00, 0x02, 0x01, 0x00, 0x04, 0x80, 0x00, 0x00, 0xaa, 0x8b, 0x05, 0x00, 0x00, 0x03, 0x00, 0x00, // ................
- 0x07, 0x80, 0x01, 0x00, 0xe4, 0x80, 0x01, 0x00, 0x55, 0xa0, 0x0e, 0x00, 0x00, 0x02, 0x00, 0x08, // ........U.......
- 0x01, 0x80, 0x00, 0x00, 0x00, 0x80, 0x0e, 0x00, 0x00, 0x02, 0x00, 0x08, 0x02, 0x80, 0x00, 0x00, // ................
- 0x55, 0x80, 0x0e, 0x00, 0x00, 0x02, 0x00, 0x08, 0x04, 0x80, 0x00, 0x00, 0xaa, 0x80, 0xff, 0xff, // U...............
- 0x00, 0x00, 0x00, // ...
+ 0x46, 0x53, 0x48, 0x0b, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x09, 0x75, // FSH............u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // _params0........
+ 0xfd, 0x7f, 0x09, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x12, 0x00, 0x10, 0x00, // ...u_params1....
+ 0x01, 0x00, 0x00, 0x00, 0xfd, 0x7f, 0x0a, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, // .......s_texColo
+ 0x72, 0x30, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x04, 0x1a, 0x00, 0xcc, 0x10, 0x00, 0x00, 0x03, // r0..............
+ 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0a, 0x00, 0x08, 0x00, 0xc5, 0x02, 0x00, 0x00, 0x00, // .#..............
+ 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, // ................
+ 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, // ...GLSL.std.450.
+ 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, // ................
+ 0x00, 0x09, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, // ...........main.
+ 0x00, 0x00, 0x00, 0x62, 0x01, 0x00, 0x00, 0x65, 0x01, 0x00, 0x00, 0x69, 0x01, 0x00, 0x00, 0x76, // ...b...e...i...v
+ 0x01, 0x00, 0x00, 0x10, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, // ................
+ 0x00, 0x03, 0x00, 0x05, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, // ................
+ 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x4b, // ...main........K
+ 0x00, 0x00, 0x00, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x61, 0x6d, // ...s_texColorSam
+ 0x70, 0x6c, 0x65, 0x72, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x73, // pler.......N...s
+ 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, // _texColorTexture
+ 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x80, 0x00, 0x00, 0x00, 0x55, 0x6e, 0x69, 0x66, 0x6f, // ...........Unifo
+ 0x72, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x80, // rmBlock.........
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, // .......u_params0
+ 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x80, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x75, // ...............u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x82, // _params1........
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x62, 0x01, 0x00, 0x00, 0x67, // ...........b...g
+ 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x00, 0x00, 0x00, 0x00, 0x05, // l_FragCoord.....
+ 0x00, 0x05, 0x00, 0x65, 0x01, 0x00, 0x00, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x00, // ...e...v_color0.
+ 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x69, 0x01, 0x00, 0x00, 0x76, 0x5f, 0x74, 0x65, 0x78, // .......i...v_tex
+ 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x00, 0x05, 0x00, 0x06, 0x00, 0x76, 0x01, 0x00, 0x00, 0x62, // coord0.....v...b
+ 0x67, 0x66, 0x78, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x44, 0x61, 0x74, 0x61, 0x30, 0x00, 0x00, 0x47, // gfx_FragData0..G
+ 0x00, 0x04, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, // ...K...".......G
+ 0x00, 0x04, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x47, // ...K...!.......G
+ 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, // ...N...".......G
+ 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x48, // ...N...!.......H
+ 0x00, 0x05, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, // ...........#....
+ 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x80, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x23, // ...H...........#
+ 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x80, 0x00, 0x00, 0x00, 0x02, // .......G........
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x82, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, // ...G......."....
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x82, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, // ...G.......!....
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x62, 0x01, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0f, // ...G...b........
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x65, 0x01, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, // ...G...e........
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x69, 0x01, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x01, // ...G...i........
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x76, 0x01, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, // ...G...v........
+ 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, // ...........!....
+ 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x02, 0x00, 0x06, 0x00, 0x00, 0x00, 0x16, // ................
+ 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x08, // ....... ........
+ 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, // ................
+ 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x17, // ................
+ 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x20, // ...............
+ 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3b, // ...J...........;
+ 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, // ...J...K.......
+ 0x00, 0x04, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x3b, // ...M...........;
+ 0x00, 0x04, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, // ...M...N........
+ 0x00, 0x04, 0x00, 0x51, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, // ...Q... .......+
+ 0x00, 0x04, 0x00, 0x51, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, // ...Q...R.......+
+ 0x00, 0x04, 0x00, 0x51, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, // ...Q...V........
+ 0x00, 0x03, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, // ...Z.......+....
+ 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0xcd, 0xcc, 0x0c, 0x40, 0x1e, 0x00, 0x04, 0x00, 0x80, // ...v......@.....
+ 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x81, // ........... ....
+ 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x81, // ...........;....
+ 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x83, // ................
+ 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x83, // ... .......+....
+ 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x85, // ........... ....
+ 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, // ...........+....
+ 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x2b, 0x00, 0x04, 0x00, 0x83, // ..........@+....
+ 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, // ...........+....
+ 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x1c, 0x2e, 0x4d, 0x3b, 0x14, 0x00, 0x02, 0x00, 0x99, // .........M;.....
+ 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x52, // ...+...........R
+ 0xb8, 0x4e, 0x41, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0x3d, // .NA+...........=
+ 0x0a, 0x87, 0x3f, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x55, // ..?+...........U
+ 0x55, 0xd5, 0x3e, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0xae, // U.>+............
+ 0x47, 0x61, 0x3d, 0x2b, 0x00, 0x04, 0x00, 0x83, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, 0x00, // Ga=+............
+ 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x83, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, 0x01, // ...+............
+ 0x00, 0x00, 0x00, 0x18, 0x00, 0x04, 0x00, 0xbf, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x03, // ................
+ 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0x98, // ...+............
+ 0x3a, 0xd3, 0x3e, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x37, // :.>+...........7
+ 0x14, 0xb7, 0x3e, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0x9c, // ..>+............
+ 0xc4, 0x38, 0x3e, 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, 0xc2, // .8>,............
+ 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, // ...........+....
+ 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, 0xed, 0xc6, 0x59, 0x3e, 0x2b, 0x00, 0x04, 0x00, 0x07, // .........Y>+....
+ 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, 0x37, 0x14, 0x37, 0x3f, 0x2b, 0x00, 0x04, 0x00, 0x07, // .......7.7?+....
+ 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0x7d, 0xd0, 0x93, 0x3d, 0x2c, 0x00, 0x06, 0x00, 0x0b, // .......}..=,....
+ 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, 0xc8, // ................
+ 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, 0x21, // ...+...........!
+ 0x62, 0x9e, 0x3c, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, 0xef, // b.<+............
+ 0x1a, 0xf4, 0x3d, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0x21, // ..=+...........!
+ 0x47, 0x73, 0x3f, 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xcd, 0x00, 0x00, 0x00, 0xca, // Gs?,............
+ 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0xbf, // ...........,....
+ 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, 0xcd, // ................
+ 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0x3a, // ...+...........:
+ 0xbb, 0xdb, 0x3f, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, 0x7c, // ..?+...........|
+ 0x1a, 0xb6, 0xbe, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, 0x3a, // ...+...........:
+ 0xb9, 0x81, 0xbe, 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0xd5, // ...,............
+ 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, // ...........+....
+ 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, 0xd4, 0xab, 0x2a, 0xbf, 0x2b, 0x00, 0x04, 0x00, 0x07, // .........*.+....
+ 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, 0xdb, 0xe8, 0xce, 0x3f, 0x2b, 0x00, 0x04, 0x00, 0x07, // ..........?+....
+ 0x00, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, 0xf1, 0x2c, 0x81, 0x3c, 0x2c, 0x00, 0x06, 0x00, 0x0b, // ........,.<,....
+ 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, 0xdb, // ................
+ 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0x8d, // ...+............
+ 0x81, 0x90, 0x3c, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, 0x3a, // ..<+...........:
+ 0x30, 0x2f, 0xbd, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, 0xab, // 0/.+............
+ 0x2d, 0x71, 0x3f, 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0xdd, // -q?,............
+ 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0xbf, // ...........,....
+ 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, 0xe0, // ................
+ 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, 0x00, // ...+............
+ 0x20, 0x23, 0x3e, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x00, // #>+............
+ 0xb0, 0x9d, 0x42, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, 0x00, // ..B+............
+ 0x00, 0x56, 0x3f, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xee, 0x00, 0x00, 0x00, 0x00, // .V?+............
+ 0xd0, 0x96, 0x41, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, // ..A+............
+ 0x80, 0x95, 0x41, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, 0x17, // ..A+............
+ 0xb7, 0xd1, 0x38, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, // ..8+............
+ 0x00, 0x80, 0x3f, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x01, 0x00, 0x00, 0x00, // ..?+............
+ 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x13, 0x01, 0x00, 0x00, 0x00, // ...+............
+ 0x00, 0x00, 0x3f, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, 0x00, // ..?+....... ....
+ 0x00, 0xc0, 0x3f, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x28, 0x01, 0x00, 0x00, 0x00, // ..?+.......(....
+ 0x00, 0x20, 0x40, 0x20, 0x00, 0x04, 0x00, 0x61, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0e, // . @ ...a........
+ 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x61, 0x01, 0x00, 0x00, 0x62, 0x01, 0x00, 0x00, 0x01, // ...;...a...b....
+ 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x61, 0x01, 0x00, 0x00, 0x65, 0x01, 0x00, 0x00, 0x01, // ...;...a...e....
+ 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x68, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, // ... ...h........
+ 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x68, 0x01, 0x00, 0x00, 0x69, 0x01, 0x00, 0x00, 0x01, // ...;...h...i....
+ 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x75, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0e, // ... ...u........
+ 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x75, 0x01, 0x00, 0x00, 0x76, 0x01, 0x00, 0x00, 0x03, // ...;...u...v....
+ 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xb3, 0x02, 0x00, 0x00, 0x76, // ...,...........v
+ 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x0b, // ...v...v...,....
+ 0x00, 0x00, 0x00, 0xb4, 0x02, 0x00, 0x00, 0x0f, 0x01, 0x00, 0x00, 0x0f, 0x01, 0x00, 0x00, 0x0f, // ................
+ 0x01, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x00, 0x00, 0xe8, // ...,............
+ 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x0b, // ...........,....
+ 0x00, 0x00, 0x00, 0xb6, 0x02, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, 0xec, // ................
+ 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xb7, 0x02, 0x00, 0x00, 0xff, // ...,............
+ 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x0b, // ...........,....
+ 0x00, 0x00, 0x00, 0xb8, 0x02, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0xea, // ................
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xc4, 0x02, 0x00, 0x00, 0x36, // ...............6
+ 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, // ................
+ 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, // ...........=....
+ 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x08, // ...L...K...=....
+ 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0e, // ...O...N...=....
+ 0x00, 0x00, 0x00, 0x66, 0x01, 0x00, 0x00, 0x65, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, // ...f...e...=....
+ 0x00, 0x00, 0x00, 0x6a, 0x01, 0x00, 0x00, 0x69, 0x01, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x85, // ...j...i...A....
+ 0x00, 0x00, 0x00, 0xa0, 0x01, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0xac, // ...........V....
+ 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xa1, 0x01, 0x00, 0x00, 0xa0, // ...=............
+ 0x01, 0x00, 0x00, 0x56, 0x00, 0x05, 0x00, 0x5a, 0x00, 0x00, 0x00, 0xbe, 0x01, 0x00, 0x00, 0x4f, // ...V...Z.......O
+ 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x58, 0x00, 0x07, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xc1, // ...L...X........
+ 0x01, 0x00, 0x00, 0xbe, 0x01, 0x00, 0x00, 0x6a, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xa1, // .......j........
+ 0x01, 0x00, 0x00, 0x4f, 0x00, 0x08, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xa4, 0x01, 0x00, 0x00, 0xc1, // ...O............
+ 0x01, 0x00, 0x00, 0xc1, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, // ................
+ 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xd9, 0x01, 0x00, 0x00, 0x01, // ................
+ 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xa4, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x0b, // ................
+ 0x00, 0x00, 0x00, 0xdb, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0xd9, // ................
+ 0x01, 0x00, 0x00, 0xb3, 0x02, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x85, 0x00, 0x00, 0x00, 0xcb, // .......A........
+ 0x01, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x3d, // .......V.......=
+ 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xcc, 0x01, 0x00, 0x00, 0xcb, 0x01, 0x00, 0x00, 0x50, // ...............P
+ 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xcd, 0x01, 0x00, 0x00, 0xcc, 0x01, 0x00, 0x00, 0xcc, // ................
+ 0x01, 0x00, 0x00, 0xcc, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xe7, // ................
+ 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0xdb, 0x01, 0x00, 0x00, 0xa4, // ................
+ 0x01, 0x00, 0x00, 0xcd, 0x01, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x85, 0x00, 0x00, 0x00, 0xd1, // .......A........
+ 0x01, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x3d, // .......V.......=
+ 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xd2, 0x01, 0x00, 0x00, 0xd1, 0x01, 0x00, 0x00, 0x0c, // ................
+ 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00, 0xd3, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1a, // ................
+ 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, 0xd2, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x0b, // ................
+ 0x00, 0x00, 0x00, 0xd4, 0x01, 0x00, 0x00, 0xe7, 0x01, 0x00, 0x00, 0xd3, 0x01, 0x00, 0x00, 0x4f, // ...............O
+ 0x00, 0x09, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xa7, 0x01, 0x00, 0x00, 0xc1, 0x01, 0x00, 0x00, 0xd4, // ................
+ 0x01, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, // ................
+ 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xaa, 0x01, 0x00, 0x00, 0xa7, // ................
+ 0x01, 0x00, 0x00, 0x66, 0x01, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x85, 0x00, 0x00, 0x00, 0xac, // ...f...A........
+ 0x01, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, 0x3d, // .......R.......=
+ 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xad, 0x01, 0x00, 0x00, 0xac, 0x01, 0x00, 0x00, 0x41, // ...............A
+ 0x00, 0x06, 0x00, 0x85, 0x00, 0x00, 0x00, 0xae, 0x01, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x52, // ...............R
+ 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xaf, // .......=........
+ 0x01, 0x00, 0x00, 0xae, 0x01, 0x00, 0x00, 0xb8, 0x00, 0x05, 0x00, 0x99, 0x00, 0x00, 0x00, 0xf3, // ................
+ 0x01, 0x00, 0x00, 0xad, 0x01, 0x00, 0x00, 0x13, 0x01, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x10, // ................
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0xf3, 0x01, 0x00, 0x00, 0xf4, // ................
+ 0x01, 0x00, 0x00, 0xfb, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xfb, 0x01, 0x00, 0x00, 0xb8, // ................
+ 0x00, 0x05, 0x00, 0x99, 0x00, 0x00, 0x00, 0xfd, 0x01, 0x00, 0x00, 0xad, 0x01, 0x00, 0x00, 0x20, // ...............
+ 0x01, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x0f, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, // ................
+ 0x00, 0x04, 0x00, 0xfd, 0x01, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xf8, // ................
+ 0x00, 0x02, 0x00, 0x01, 0x02, 0x00, 0x00, 0xb8, 0x00, 0x05, 0x00, 0x99, 0x00, 0x00, 0x00, 0x03, // ................
+ 0x02, 0x00, 0x00, 0xad, 0x01, 0x00, 0x00, 0x28, 0x01, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x0e, // .......(........
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x03, 0x02, 0x00, 0x00, 0x04, // ................
+ 0x02, 0x00, 0x00, 0x0e, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x04, 0x02, 0x00, 0x00, 0x4f, // ...............O
+ 0x00, 0x08, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x06, 0x02, 0x00, 0x00, 0xaa, 0x01, 0x00, 0x00, 0xaa, // ................
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x90, // ................
+ 0x00, 0x05, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x6b, 0x02, 0x00, 0x00, 0x06, 0x02, 0x00, 0x00, 0xce, // .......k........
+ 0x00, 0x00, 0x00, 0x90, 0x00, 0x05, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x71, 0x02, 0x00, 0x00, 0x6b, // ...........q...k
+ 0x02, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0c, // ................
+ 0x02, 0x00, 0x00, 0x71, 0x02, 0x00, 0x00, 0xaf, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x0b, // ...q............
+ 0x00, 0x00, 0x00, 0x7e, 0x02, 0x00, 0x00, 0x0c, 0x02, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, 0x0c, // ...~............
+ 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x81, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1a, // ................
+ 0x00, 0x00, 0x00, 0x7e, 0x02, 0x00, 0x00, 0xb5, 0x02, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x0b, // ...~............
+ 0x00, 0x00, 0x00, 0x85, 0x02, 0x00, 0x00, 0x81, 0x02, 0x00, 0x00, 0xee, 0x00, 0x00, 0x00, 0x81, // ................
+ 0x00, 0x05, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x87, 0x02, 0x00, 0x00, 0xb6, 0x02, 0x00, 0x00, 0x85, // ................
+ 0x02, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x8b, 0x02, 0x00, 0x00, 0x81, // ................
+ 0x02, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x8c, // ................
+ 0x02, 0x00, 0x00, 0xb7, 0x02, 0x00, 0x00, 0x8b, 0x02, 0x00, 0x00, 0x88, 0x00, 0x05, 0x00, 0x0b, // ................
+ 0x00, 0x00, 0x00, 0x8d, 0x02, 0x00, 0x00, 0x87, 0x02, 0x00, 0x00, 0x8c, 0x02, 0x00, 0x00, 0x0c, // ................
+ 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x90, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1a, // ................
+ 0x00, 0x00, 0x00, 0x8d, 0x02, 0x00, 0x00, 0xb8, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x0e, // ................
+ 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x0e, 0x02, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x0b, // ................
+ 0x00, 0x00, 0x00, 0xc1, 0x02, 0x00, 0x00, 0xb4, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x90, // ................
+ 0x02, 0x00, 0x00, 0x04, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x0f, 0x02, 0x00, 0x00, 0xf8, // ................
+ 0x00, 0x02, 0x00, 0xfe, 0x01, 0x00, 0x00, 0x4f, 0x00, 0x08, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x00, // .......O........
+ 0x02, 0x00, 0x00, 0xaa, 0x01, 0x00, 0x00, 0xaa, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, // ................
+ 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x0f, 0x02, 0x00, 0x00, 0xf8, // ................
+ 0x00, 0x02, 0x00, 0x0f, 0x02, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xc0, // ................
+ 0x02, 0x00, 0x00, 0xc1, 0x02, 0x00, 0x00, 0x0e, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xfe, // ................
+ 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x10, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xf4, // ................
+ 0x01, 0x00, 0x00, 0x4f, 0x00, 0x08, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xf6, 0x01, 0x00, 0x00, 0xaa, // ...O............
+ 0x01, 0x00, 0x00, 0xaa, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, // ................
+ 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xf9, 0x01, 0x00, 0x00, 0x01, // ................
+ 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0xf6, 0x01, 0x00, 0x00, 0xb4, 0x02, 0x00, 0x00, 0xb7, // ...+............
+ 0x02, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x24, 0x02, 0x00, 0x00, 0xf9, // ...Q.......$....
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x40, 0x02, 0x00, 0x00, 0x00, // ...........@....
+ 0x00, 0x00, 0x00, 0xfb, 0x00, 0x03, 0x00, 0xac, 0x00, 0x00, 0x00, 0x34, 0x02, 0x00, 0x00, 0xf8, // ...........4....
+ 0x00, 0x02, 0x00, 0x34, 0x02, 0x00, 0x00, 0xbc, 0x00, 0x05, 0x00, 0x99, 0x00, 0x00, 0x00, 0x36, // ...4...........6
+ 0x02, 0x00, 0x00, 0x24, 0x02, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x3f, // ...$...........?
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x36, 0x02, 0x00, 0x00, 0x37, // ...........6...7
+ 0x02, 0x00, 0x00, 0x3a, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x3a, 0x02, 0x00, 0x00, 0x0c, // ...:.......:....
+ 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3c, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1a, // .......<........
+ 0x00, 0x00, 0x00, 0x24, 0x02, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x07, // ...$............
+ 0x00, 0x00, 0x00, 0x3d, 0x02, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0x3c, 0x02, 0x00, 0x00, 0x83, // ...=.......<....
+ 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3e, 0x02, 0x00, 0x00, 0x3d, 0x02, 0x00, 0x00, 0xa7, // .......>...=....
+ 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x40, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x37, // .......@.......7
+ 0x02, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x39, 0x02, 0x00, 0x00, 0x9d, // ...........9....
+ 0x00, 0x00, 0x00, 0x24, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x40, 0x02, 0x00, 0x00, 0xf8, // ...$.......@....
+ 0x00, 0x02, 0x00, 0x3f, 0x02, 0x00, 0x00, 0xff, 0x00, 0x01, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x40, // ...?...........@
+ 0x02, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00, 0xb9, 0x02, 0x00, 0x00, 0x3e, // ...............>
+ 0x02, 0x00, 0x00, 0x3a, 0x02, 0x00, 0x00, 0x39, 0x02, 0x00, 0x00, 0x37, 0x02, 0x00, 0x00, 0x52, // ...:...9...7...R
+ 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xaa, 0x02, 0x00, 0x00, 0xb9, 0x02, 0x00, 0x00, 0xc4, // ................
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x28, // .......Q.......(
+ 0x02, 0x00, 0x00, 0xf9, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x52, // ...............R
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x03, 0x00, 0xac, 0x00, 0x00, 0x00, 0x46, // ...............F
+ 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x46, 0x02, 0x00, 0x00, 0xbc, 0x00, 0x05, 0x00, 0x99, // .......F........
+ 0x00, 0x00, 0x00, 0x48, 0x02, 0x00, 0x00, 0x28, 0x02, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0xf7, // ...H...(........
+ 0x00, 0x03, 0x00, 0x51, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x48, // ...Q...........H
+ 0x02, 0x00, 0x00, 0x49, 0x02, 0x00, 0x00, 0x4c, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x4c, // ...I...L.......L
+ 0x02, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00, 0x4e, 0x02, 0x00, 0x00, 0x01, // ...........N....
+ 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x28, 0x02, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x85, // .......(........
+ 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x4f, 0x02, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0x4e, // .......O.......N
+ 0x02, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x50, 0x02, 0x00, 0x00, 0x4f, // ...........P...O
+ 0x02, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x52, 0x02, 0x00, 0x00, 0xf8, // ...........R....
+ 0x00, 0x02, 0x00, 0x49, 0x02, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x4b, // ...I...........K
+ 0x02, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x28, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x52, // .......(.......R
+ 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x51, 0x02, 0x00, 0x00, 0xff, 0x00, 0x01, 0x00, 0xf8, // .......Q........
+ 0x00, 0x02, 0x00, 0x52, 0x02, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00, 0xbb, // ...R............
+ 0x02, 0x00, 0x00, 0x50, 0x02, 0x00, 0x00, 0x4c, 0x02, 0x00, 0x00, 0x4b, 0x02, 0x00, 0x00, 0x49, // ...P...L...K...I
+ 0x02, 0x00, 0x00, 0x52, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xad, 0x02, 0x00, 0x00, 0xbb, // ...R............
+ 0x02, 0x00, 0x00, 0xaa, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, // ...........Q....
+ 0x00, 0x00, 0x00, 0x2c, 0x02, 0x00, 0x00, 0xf9, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xf7, // ...,............
+ 0x00, 0x03, 0x00, 0x64, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x03, 0x00, 0xac, // ...d............
+ 0x00, 0x00, 0x00, 0x58, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x58, 0x02, 0x00, 0x00, 0xbc, // ...X.......X....
+ 0x00, 0x05, 0x00, 0x99, 0x00, 0x00, 0x00, 0x5a, 0x02, 0x00, 0x00, 0x2c, 0x02, 0x00, 0x00, 0x98, // .......Z...,....
+ 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x63, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, // .......c........
+ 0x00, 0x04, 0x00, 0x5a, 0x02, 0x00, 0x00, 0x5b, 0x02, 0x00, 0x00, 0x5e, 0x02, 0x00, 0x00, 0xf8, // ...Z...[...^....
+ 0x00, 0x02, 0x00, 0x5e, 0x02, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00, 0x60, // ...^...........`
+ 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x2c, 0x02, 0x00, 0x00, 0xa4, // ...........,....
+ 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x61, 0x02, 0x00, 0x00, 0xa2, // ...........a....
+ 0x00, 0x00, 0x00, 0x60, 0x02, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x62, // ...`...........b
+ 0x02, 0x00, 0x00, 0x61, 0x02, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x64, // ...a...........d
+ 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x5b, 0x02, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x07, // .......[........
+ 0x00, 0x00, 0x00, 0x5d, 0x02, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x2c, 0x02, 0x00, 0x00, 0xf9, // ...].......,....
+ 0x00, 0x02, 0x00, 0x64, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x63, 0x02, 0x00, 0x00, 0xff, // ...d.......c....
+ 0x00, 0x01, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x64, 0x02, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x07, // .......d........
+ 0x00, 0x00, 0x00, 0xbd, 0x02, 0x00, 0x00, 0x62, 0x02, 0x00, 0x00, 0x5e, 0x02, 0x00, 0x00, 0x5d, // .......b...^...]
+ 0x02, 0x00, 0x00, 0x5b, 0x02, 0x00, 0x00, 0x52, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xb0, // ...[...R........
+ 0x02, 0x00, 0x00, 0xbd, 0x02, 0x00, 0x00, 0xad, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xf9, // ................
+ 0x00, 0x02, 0x00, 0x10, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x10, 0x02, 0x00, 0x00, 0xf5, // ................
+ 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xbf, 0x02, 0x00, 0x00, 0xc0, 0x02, 0x00, 0x00, 0x0f, // ................
+ 0x02, 0x00, 0x00, 0xb0, 0x02, 0x00, 0x00, 0x64, 0x02, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, // .......d...Q....
+ 0x00, 0x00, 0x00, 0x13, 0x02, 0x00, 0x00, 0xaa, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x51, // ...............Q
+ 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x14, 0x02, 0x00, 0x00, 0xbf, 0x02, 0x00, 0x00, 0x00, // ................
+ 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x15, 0x02, 0x00, 0x00, 0xbf, // ...Q............
+ 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x16, // .......Q........
+ 0x02, 0x00, 0x00, 0xbf, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, 0x0e, // ...........P....
+ 0x00, 0x00, 0x00, 0x17, 0x02, 0x00, 0x00, 0x14, 0x02, 0x00, 0x00, 0x15, 0x02, 0x00, 0x00, 0x16, // ................
+ 0x02, 0x00, 0x00, 0x13, 0x02, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x76, 0x01, 0x00, 0x00, 0x17, // .......>...v....
+ 0x02, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, // .......8..... .
};
-static const uint8_t fs_texture_cube2_dx11[770] =
+static const uint8_t fs_texture_cube2_dx9[1448] =
{
- 0x46, 0x53, 0x48, 0x06, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x08, 0x75, // FSH............u
- 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0a, 0x73, 0x5f, // _params.......s_
- 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x01, 0x00, 0x00, 0x01, 0x00, 0xcc, 0x02, // texColor0.......
- 0x00, 0x00, 0x44, 0x58, 0x42, 0x43, 0x32, 0x0d, 0xe1, 0x0b, 0xad, 0x35, 0x1f, 0xb7, 0x80, 0x3e, // ..DXBC2....5...>
- 0xa3, 0x13, 0x8a, 0x22, 0xfa, 0x7a, 0x01, 0x00, 0x00, 0x00, 0xcc, 0x02, 0x00, 0x00, 0x03, 0x00, // ...".z..........
- 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, 0x49, 0x53, // ..,...........IS
- 0x47, 0x4e, 0x6c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x50, 0x00, // GNl...........P.
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
- 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
- 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x62, 0x00, // ..............b.
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, // ................
- 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, // ......SV_POSITIO
- 0x4e, 0x00, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, // N.COLOR.TEXCOORD
- 0x00, 0xab, 0x4f, 0x53, 0x47, 0x4e, 0x2c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, // ..OSGN,.........
- 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, // .. .............
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x54, 0x41, 0x52, // ..........SV_TAR
- 0x47, 0x45, 0x54, 0x00, 0xab, 0xab, 0x53, 0x48, 0x44, 0x52, 0xf0, 0x01, 0x00, 0x00, 0x40, 0x00, // GET...SHDR....@.
- 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x04, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, // ..|...Y...F. ...
- 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x03, 0x00, 0x60, 0x10, 0x00, 0x00, 0x00, // ......Z....`....
- 0x00, 0x00, 0x58, 0x30, 0x00, 0x04, 0x00, 0x70, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, // ..X0...p......UU
- 0x00, 0x00, 0x62, 0x10, 0x00, 0x03, 0xf2, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x62, 0x10, // ..b...........b.
- 0x00, 0x03, 0x72, 0x10, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x03, 0xf2, 0x20, // ..r.......e....
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x48, 0x00, // ......h.......H.
- 0x00, 0x0c, 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x12, 0x10, 0x00, 0x02, 0x00, // ..........F.....
- 0x00, 0x00, 0x46, 0x7e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x00, 0x00, // ..F~.......`....
- 0x00, 0x00, 0x0a, 0x80, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, // .... .........8.
- 0x00, 0x07, 0xf2, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, // ..........F.....
- 0x00, 0x00, 0x46, 0x1e, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x06, 0x72, 0x00, // ..F......./...r.
- 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x80, 0x81, 0x00, 0x00, 0x00, 0x01, 0x00, // ......F.........
- 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0x82, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x00, // ..6.... ......:.
- 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x0a, 0x72, 0x00, 0x10, 0x00, 0x01, 0x00, // ......8...r.....
- 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0xcd, 0xcc, // ..F........@....
- 0x0c, 0x40, 0xcd, 0xcc, 0x0c, 0x40, 0xcd, 0xcc, 0x0c, 0x40, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, // .@...@...@......
- 0x00, 0x05, 0x72, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x01, 0x00, // ..r.......F.....
- 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, 0x72, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, // ..2...r.......F.
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x12, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x02, // ......F.......F.
- 0x10, 0x80, 0x41, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, 0x72, 0x00, // ..A.......2...r.
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0x8a, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........ .......
- 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x01, 0x00, // ..F.......F.....
- 0x00, 0x00, 0x19, 0x00, 0x00, 0x06, 0x82, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x80, // ..............:.
- 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x07, 0x72, 0x00, // .........8...r.
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0x0f, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, // ..............F.
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x06, 0x72, 0x00, 0x10, 0x00, 0x00, 0x00, // ....../...r.....
- 0x00, 0x00, 0x46, 0x02, 0x10, 0x80, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, // ..F...........8.
- 0x00, 0x0a, 0x72, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, // ..r.......F.....
- 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x2f, 0xba, 0xe8, 0x3e, 0x2f, 0xba, 0xe8, 0x3e, 0x2f, 0xba, // ...@../..>/..>/.
- 0xe8, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x05, 0x72, 0x20, 0x10, 0x00, 0x00, 0x00, // .>........r ....
- 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x01, 0x00, 0x00, // ..F.......>.....
- 0x10, 0x00, // ..
+ 0x46, 0x53, 0x48, 0x0b, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x0a, 0x73, // FSH............s
+ 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, // _texColor0......
+ 0x00, 0x00, 0x00, 0x09, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x12, 0x01, 0x00, // ....u_params0...
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, // ........u_params
+ 0x31, 0x12, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x05, 0x00, 0x00, 0x00, // 1..........X....
+ 0x03, 0xff, 0xff, 0xfe, 0xff, 0x34, 0x00, 0x43, 0x54, 0x41, 0x42, 0x1c, 0x00, 0x00, 0x00, 0xa1, // .....4.CTAB.....
+ 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, // ................
+ 0x91, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, // .......X........
+ 0x00, 0x02, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x02, // ...d.......t....
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, // ................
+ 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, // ................
+ 0x00, 0x00, 0x00, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x00, 0xab, 0x04, // ...s_texColor...
+ 0x00, 0x0e, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, // ...............u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x00, 0xab, 0xab, 0x01, 0x00, 0x03, 0x00, 0x01, // _params0........
+ 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x70, 0x61, 0x72, // ...........u_par
+ 0x61, 0x6d, 0x73, 0x31, 0x00, 0x70, 0x73, 0x5f, 0x33, 0x5f, 0x30, 0x00, 0x4d, 0x69, 0x63, 0x72, // ams1.ps_3_0.Micr
+ 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4c, 0x53, 0x4c, 0x20, 0x53, // osoft (R) HLSL S
+ 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x20, 0x31, // hader Compiler 1
+ 0x30, 0x2e, 0x31, 0x00, 0xab, 0xab, 0xab, 0x51, 0x00, 0x00, 0x05, 0x02, 0x00, 0x0f, 0xa0, 0x00, // 0.1....Q........
+ 0xd0, 0x96, 0x41, 0x00, 0x00, 0x56, 0x3f, 0x00, 0x80, 0x95, 0x41, 0x00, 0x00, 0x80, 0x3f, 0x51, // ..A..V?...A...?Q
+ 0x00, 0x00, 0x05, 0x03, 0x00, 0x0f, 0xa0, 0xcd, 0xcc, 0x0c, 0x40, 0x00, 0x00, 0x00, 0x3f, 0x1c, // ..........@...?.
+ 0x2e, 0x4d, 0x3b, 0x52, 0xb8, 0x4e, 0x41, 0x51, 0x00, 0x00, 0x05, 0x04, 0x00, 0x0f, 0xa0, 0x55, // .M;R.NAQ.......U
+ 0x55, 0xd5, 0x3e, 0x3d, 0x0a, 0x87, 0x3f, 0xae, 0x47, 0x61, 0xbd, 0x17, 0xb7, 0xd1, 0x38, 0x51, // U.>=..?.Ga....8Q
+ 0x00, 0x00, 0x05, 0x05, 0x00, 0x0f, 0xa0, 0x00, 0x00, 0xc0, 0xbf, 0x00, 0x00, 0x20, 0xc0, 0x00, // ............. ..
+ 0x20, 0x23, 0x3e, 0x00, 0xb0, 0x9d, 0x42, 0x51, 0x00, 0x00, 0x05, 0x06, 0x00, 0x0f, 0xa0, 0x98, // #>...BQ........
+ 0x3a, 0xd3, 0x3e, 0x37, 0x14, 0xb7, 0x3e, 0x9c, 0xc4, 0x38, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x51, // :.>7..>..8>....Q
+ 0x00, 0x00, 0x05, 0x07, 0x00, 0x0f, 0xa0, 0xed, 0xc6, 0x59, 0x3e, 0x37, 0x14, 0x37, 0x3f, 0x7d, // .........Y>7.7?}
+ 0xd0, 0x93, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x05, 0x08, 0x00, 0x0f, 0xa0, 0x21, // ..=....Q.......!
+ 0x62, 0x9e, 0x3c, 0xef, 0x1a, 0xf4, 0x3d, 0x21, 0x47, 0x73, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x51, // b.<...=!Gs?....Q
+ 0x00, 0x00, 0x05, 0x09, 0x00, 0x0f, 0xa0, 0x3a, 0xbb, 0xdb, 0x3f, 0x7c, 0x1a, 0xb6, 0xbe, 0x3a, // .......:..?|...:
+ 0xb9, 0x81, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x05, 0x0a, 0x00, 0x0f, 0xa0, 0xd4, // .......Q........
+ 0xab, 0x2a, 0xbf, 0xdb, 0xe8, 0xce, 0x3f, 0xf1, 0x2c, 0x81, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x51, // .*....?.,.<....Q
+ 0x00, 0x00, 0x05, 0x0b, 0x00, 0x0f, 0xa0, 0x8d, 0x81, 0x90, 0x3c, 0x3a, 0x30, 0x2f, 0xbd, 0xab, // ..........<:0/..
+ 0x2d, 0x71, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x02, 0x0a, 0x00, 0x00, 0x80, 0x00, // -q?.............
+ 0x00, 0x0f, 0x90, 0x1f, 0x00, 0x00, 0x02, 0x05, 0x00, 0x00, 0x80, 0x01, 0x00, 0x07, 0x90, 0x1f, // ................
+ 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x98, 0x00, 0x08, 0x0f, 0xa0, 0x01, 0x00, 0x00, 0x02, 0x00, // ................
+ 0x00, 0x08, 0x80, 0x00, 0x00, 0x00, 0xa0, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x07, 0x80, 0x01, // ................
+ 0x00, 0xe4, 0x90, 0x5f, 0x00, 0x00, 0x03, 0x00, 0x00, 0x0f, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x00, // ..._............
+ 0x08, 0xe4, 0xa0, 0x0f, 0x00, 0x00, 0x02, 0x01, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x8b, 0x0f, // ................
+ 0x00, 0x00, 0x02, 0x01, 0x00, 0x02, 0x80, 0x00, 0x00, 0x55, 0x8b, 0x0f, 0x00, 0x00, 0x02, 0x01, // .........U......
+ 0x00, 0x04, 0x80, 0x00, 0x00, 0xaa, 0x8b, 0x05, 0x00, 0x00, 0x03, 0x01, 0x00, 0x07, 0x80, 0x01, // ................
+ 0x00, 0xe4, 0x80, 0x03, 0x00, 0x00, 0xa0, 0x0e, 0x00, 0x00, 0x02, 0x02, 0x00, 0x01, 0x80, 0x01, // ................
+ 0x00, 0x00, 0x80, 0x0e, 0x00, 0x00, 0x02, 0x02, 0x00, 0x02, 0x80, 0x01, 0x00, 0x55, 0x80, 0x0e, // .............U..
+ 0x00, 0x00, 0x02, 0x02, 0x00, 0x04, 0x80, 0x01, 0x00, 0xaa, 0x80, 0x12, 0x00, 0x00, 0x04, 0x01, // ................
+ 0x00, 0x07, 0x80, 0x00, 0x00, 0xaa, 0xa0, 0x00, 0x00, 0xe4, 0x80, 0x02, 0x00, 0xe4, 0x80, 0x0e, // ................
+ 0x00, 0x00, 0x02, 0x01, 0x00, 0x08, 0x80, 0x00, 0x00, 0xff, 0xa0, 0x05, 0x00, 0x00, 0x03, 0x00, // ................
+ 0x00, 0x07, 0x80, 0x01, 0x00, 0xff, 0x80, 0x01, 0x00, 0xe4, 0x80, 0x05, 0x00, 0x00, 0x03, 0x00, // ................
+ 0x00, 0x0f, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x00, 0x00, 0xe4, 0x90, 0x01, 0x00, 0x00, 0x02, 0x01, // ................
+ 0x00, 0x02, 0x80, 0x03, 0x00, 0x55, 0xa0, 0x29, 0x00, 0x04, 0x02, 0x01, 0x00, 0x00, 0xa0, 0x01, // .....U.)........
+ 0x00, 0x55, 0x80, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x17, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x20, // .U.............
+ 0x00, 0x00, 0x03, 0x01, 0x00, 0x01, 0x80, 0x00, 0x00, 0xaa, 0x80, 0x04, 0x00, 0x00, 0xa0, 0x04, // ................
+ 0x00, 0x00, 0x04, 0x01, 0x00, 0x01, 0x80, 0x01, 0x00, 0x00, 0x80, 0x04, 0x00, 0x55, 0xa0, 0x04, // .............U..
+ 0x00, 0xaa, 0xa0, 0x20, 0x00, 0x00, 0x03, 0x01, 0x00, 0x02, 0x80, 0x00, 0x00, 0x00, 0x80, 0x04, // ... ............
+ 0x00, 0x00, 0xa0, 0x04, 0x00, 0x00, 0x04, 0x01, 0x00, 0x02, 0x80, 0x01, 0x00, 0x55, 0x80, 0x04, // .............U..
+ 0x00, 0x55, 0xa0, 0x04, 0x00, 0xaa, 0xa0, 0x20, 0x00, 0x00, 0x03, 0x01, 0x00, 0x04, 0x80, 0x00, // .U..... ........
+ 0x00, 0x55, 0x80, 0x04, 0x00, 0x00, 0xa0, 0x04, 0x00, 0x00, 0x04, 0x01, 0x00, 0x04, 0x80, 0x01, // .U..............
+ 0x00, 0xaa, 0x80, 0x04, 0x00, 0x55, 0xa0, 0x04, 0x00, 0xaa, 0xa0, 0x02, 0x00, 0x00, 0x03, 0x02, // .....U..........
+ 0x00, 0x07, 0x80, 0x00, 0x00, 0xe4, 0x81, 0x03, 0x00, 0xaa, 0xa0, 0x05, 0x00, 0x00, 0x03, 0x03, // ................
+ 0x00, 0x07, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x03, 0x00, 0xff, 0xa0, 0x58, 0x00, 0x00, 0x04, 0x00, // ...........X....
+ 0x00, 0x07, 0x80, 0x02, 0x00, 0xe4, 0x80, 0x03, 0x00, 0xe4, 0x80, 0x01, 0x00, 0xc9, 0x80, 0x2a, // ...............*
+ 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x03, 0x01, 0x00, 0x01, 0x80, 0x06, 0x00, 0xe4, 0xa0, 0x00, // ................
+ 0x00, 0xe4, 0x80, 0x08, 0x00, 0x00, 0x03, 0x01, 0x00, 0x02, 0x80, 0x07, 0x00, 0xe4, 0xa0, 0x00, // ................
+ 0x00, 0xe4, 0x80, 0x08, 0x00, 0x00, 0x03, 0x01, 0x00, 0x04, 0x80, 0x08, 0x00, 0xe4, 0xa0, 0x00, // ................
+ 0x00, 0xe4, 0x80, 0x08, 0x00, 0x00, 0x03, 0x02, 0x00, 0x04, 0x80, 0x0b, 0x00, 0xe4, 0xa0, 0x01, // ................
+ 0x00, 0xe4, 0x80, 0x08, 0x00, 0x00, 0x03, 0x02, 0x00, 0x01, 0x80, 0x09, 0x00, 0xe4, 0xa0, 0x01, // ................
+ 0x00, 0xe4, 0x80, 0x08, 0x00, 0x00, 0x03, 0x02, 0x00, 0x02, 0x80, 0x0a, 0x00, 0xe4, 0xa0, 0x01, // ................
+ 0x00, 0xe4, 0x80, 0x05, 0x00, 0x00, 0x03, 0x01, 0x00, 0x07, 0x80, 0x02, 0x00, 0xe4, 0x80, 0x01, // ................
+ 0x00, 0x55, 0xa0, 0x05, 0x00, 0x00, 0x03, 0x01, 0x00, 0x07, 0x80, 0x01, 0x00, 0xe4, 0x80, 0x04, // .U..............
+ 0x00, 0xff, 0xa0, 0x0f, 0x00, 0x00, 0x02, 0x02, 0x00, 0x01, 0x80, 0x01, 0x00, 0x00, 0x80, 0x0f, // ................
+ 0x00, 0x00, 0x02, 0x02, 0x00, 0x02, 0x80, 0x01, 0x00, 0x55, 0x80, 0x0f, 0x00, 0x00, 0x02, 0x02, // .........U......
+ 0x00, 0x04, 0x80, 0x01, 0x00, 0xaa, 0x80, 0x05, 0x00, 0x00, 0x03, 0x01, 0x00, 0x07, 0x80, 0x02, // ................
+ 0x00, 0xe4, 0x80, 0x05, 0x00, 0xaa, 0xa0, 0x0e, 0x00, 0x00, 0x02, 0x02, 0x00, 0x01, 0x80, 0x01, // ................
+ 0x00, 0x00, 0x80, 0x0e, 0x00, 0x00, 0x02, 0x02, 0x00, 0x02, 0x80, 0x01, 0x00, 0x55, 0x80, 0x0e, // .............U..
+ 0x00, 0x00, 0x02, 0x02, 0x00, 0x04, 0x80, 0x01, 0x00, 0xaa, 0x80, 0x04, 0x00, 0x00, 0x04, 0x01, // ................
+ 0x00, 0x07, 0x80, 0x02, 0x00, 0xe4, 0x80, 0x02, 0x00, 0xaa, 0xa0, 0x02, 0x00, 0xff, 0xa0, 0x06, // ................
+ 0x00, 0x00, 0x02, 0x03, 0x00, 0x01, 0x80, 0x01, 0x00, 0x00, 0x80, 0x06, 0x00, 0x00, 0x02, 0x03, // ................
+ 0x00, 0x02, 0x80, 0x01, 0x00, 0x55, 0x80, 0x06, 0x00, 0x00, 0x02, 0x03, 0x00, 0x04, 0x80, 0x01, // .....U..........
+ 0x00, 0xaa, 0x80, 0x01, 0x00, 0x00, 0x02, 0x01, 0x00, 0x03, 0x80, 0x05, 0x00, 0xe4, 0xa0, 0x02, // ................
+ 0x00, 0x00, 0x03, 0x01, 0x00, 0x03, 0x80, 0x01, 0x00, 0xe4, 0x80, 0x01, 0x00, 0x00, 0xa0, 0x04, // ................
+ 0x00, 0x00, 0x04, 0x02, 0x00, 0x07, 0x80, 0x02, 0x00, 0xe4, 0x80, 0x02, 0x00, 0x00, 0xa0, 0x02, // ................
+ 0x00, 0x55, 0xa0, 0x05, 0x00, 0x00, 0x03, 0x02, 0x00, 0x07, 0x80, 0x03, 0x00, 0xe4, 0x80, 0x02, // .U..............
+ 0x00, 0xe4, 0x80, 0x0f, 0x00, 0x00, 0x02, 0x03, 0x00, 0x01, 0x80, 0x02, 0x00, 0x00, 0x80, 0x0f, // ................
+ 0x00, 0x00, 0x02, 0x03, 0x00, 0x02, 0x80, 0x02, 0x00, 0x55, 0x80, 0x0f, 0x00, 0x00, 0x02, 0x03, // .........U......
+ 0x00, 0x04, 0x80, 0x02, 0x00, 0xaa, 0x80, 0x05, 0x00, 0x00, 0x03, 0x02, 0x00, 0x07, 0x80, 0x03, // ................
+ 0x00, 0xe4, 0x80, 0x05, 0x00, 0xff, 0xa0, 0x0e, 0x00, 0x00, 0x02, 0x03, 0x00, 0x01, 0x80, 0x02, // ................
+ 0x00, 0x00, 0x80, 0x0e, 0x00, 0x00, 0x02, 0x03, 0x00, 0x02, 0x80, 0x02, 0x00, 0x55, 0x80, 0x0e, // .............U..
+ 0x00, 0x00, 0x02, 0x03, 0x00, 0x04, 0x80, 0x02, 0x00, 0xaa, 0x80, 0x58, 0x00, 0x00, 0x04, 0x01, // ...........X....
+ 0x00, 0x0e, 0x80, 0x01, 0x00, 0x55, 0x80, 0x06, 0x00, 0xff, 0xa0, 0x03, 0x00, 0x90, 0x80, 0x58, // .....U.........X
+ 0x00, 0x00, 0x04, 0x00, 0x00, 0x07, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0xf9, 0x80, 0x00, // ................
+ 0x00, 0xe4, 0x80, 0x2b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x02, 0x00, 0x08, 0x0f, 0x80, 0x00, // ...+............
+ 0x00, 0xe4, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, // ........
};
-static const uint8_t fs_texture_cube2_mtl[937] =
+static const uint8_t fs_texture_cube2_dx11[1784] =
{
- 0x46, 0x53, 0x48, 0x06, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x03, // FSH.............
- 0x00, 0x00, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, // ..using namespac
- 0x65, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, // e metal;.struct
- 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x70, // xlatMtlShaderInp
- 0x75, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x76, 0x5f, // ut {. float4 v_
- 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, // color0;. float3
- 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, 0x0a, 0x7d, 0x3b, // v_texcoord0;.};
- 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, // .struct xlatMtlS
- 0x68, 0x61, 0x64, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, // haderOutput {.
- 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, // float4 gl_FragCo
- 0x6c, 0x6f, 0x72, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x78, // lor;.};.struct x
- 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x55, 0x6e, 0x69, 0x66, // latMtlShaderUnif
- 0x6f, 0x72, 0x6d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x75, // orm {. float4 u
- 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x66, 0x72, 0x61, 0x67, // _params;.};.frag
- 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, // ment xlatMtlShad
- 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, // erOutput xlatMtl
- 0x4d, 0x61, 0x69, 0x6e, 0x20, 0x28, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, // Main (xlatMtlSha
- 0x64, 0x65, 0x72, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x69, 0x20, // derInput _mtl_i
- 0x5b, 0x5b, 0x73, 0x74, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x5d, 0x5d, 0x2c, 0x20, 0x63, 0x6f, // [[stage_in]], co
- 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, // nstant xlatMtlSh
- 0x61, 0x64, 0x65, 0x72, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x26, 0x20, 0x5f, 0x6d, 0x74, // aderUniform& _mt
- 0x6c, 0x5f, 0x75, 0x20, 0x5b, 0x5b, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x28, 0x30, 0x29, 0x5d, // l_u [[buffer(0)]
- 0x5d, 0x0a, 0x20, 0x20, 0x2c, 0x20, 0x20, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x63, // ]. , texturec
- 0x75, 0x62, 0x65, 0x3c, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x20, 0x73, 0x5f, 0x74, 0x65, 0x78, // ube<float> s_tex
- 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x5b, 0x5b, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x28, // Color [[texture(
- 0x30, 0x29, 0x5d, 0x5d, 0x2c, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x20, 0x5f, 0x6d, // 0)]], sampler _m
- 0x74, 0x6c, 0x73, 0x6d, 0x70, 0x5f, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, // tlsmp_s_texColor
- 0x20, 0x5b, 0x5b, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x29, // [[sampler(0)]])
- 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, // .{. xlatMtlShad
- 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x6f, 0x3b, // erOutput _mtl_o;
- 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, // . float4 _color
- 0x5f, 0x31, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, // _1 = 0;. _color
- 0x5f, 0x31, 0x20, 0x3d, 0x20, 0x28, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, // _1 = (s_texColor
- 0x2e, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x28, 0x5f, 0x6d, 0x74, 0x6c, 0x73, 0x6d, 0x70, 0x5f, // .sample(_mtlsmp_
- 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x2c, 0x20, 0x28, 0x66, 0x6c, 0x6f, // s_texColor, (flo
- 0x61, 0x74, 0x33, 0x29, 0x28, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x69, 0x2e, 0x76, 0x5f, 0x74, 0x65, // at3)(_mtl_i.v_te
- 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x29, 0x2c, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x28, // xcoord0), level(
- 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x2e, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, // _mtl_u.u_params.
- 0x78, 0x29, 0x29, 0x20, 0x2a, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x69, 0x2e, 0x76, 0x5f, 0x63, // x)) * _mtl_i.v_c
- 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, // olor0);. float4
- 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x0a, 0x20, // tmpvar_2 = 0;.
- 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x2e, 0x78, 0x79, 0x7a, 0x20, 0x3d, 0x20, // tmpvar_2.xyz =
- 0x70, 0x6f, 0x77, 0x20, 0x28, 0x61, 0x62, 0x73, 0x28, 0x28, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, // pow (abs((. m
- 0x69, 0x78, 0x20, 0x28, 0x70, 0x6f, 0x77, 0x20, 0x28, 0x61, 0x62, 0x73, 0x28, 0x5f, 0x63, 0x6f, // ix (pow (abs(_co
- 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, // lor_1.xyz), floa
- 0x74, 0x33, 0x28, 0x32, 0x2e, 0x32, 0x2c, 0x20, 0x32, 0x2e, 0x32, 0x2c, 0x20, 0x32, 0x2e, 0x32, // t3(2.2, 2.2, 2.2
- 0x29, 0x29, 0x2c, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x79, 0x7a, // )), _color_1.xyz
- 0x2c, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x2e, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, // , _mtl_u.u_param
- 0x73, 0x2e, 0x7a, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x2a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, // s.z). * . e
- 0x78, 0x70, 0x32, 0x28, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x2e, 0x75, 0x5f, 0x70, 0x61, 0x72, // xp2(_mtl_u.u_par
- 0x61, 0x6d, 0x73, 0x2e, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x29, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, // ams.w). )), flo
- 0x61, 0x74, 0x33, 0x28, 0x30, 0x2e, 0x34, 0x35, 0x34, 0x35, 0x34, 0x35, 0x34, 0x2c, 0x20, 0x30, // at3(0.4545454, 0
- 0x2e, 0x34, 0x35, 0x34, 0x35, 0x34, 0x35, 0x34, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x35, 0x34, 0x35, // .4545454, 0.4545
- 0x34, 0x35, 0x34, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // 454));. tmpvar_
- 0x32, 0x2e, 0x77, 0x20, 0x3d, 0x20, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x31, 0x2e, 0x77, // 2.w = _color_1.w
- 0x3b, 0x0a, 0x20, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x6f, 0x2e, 0x67, 0x6c, 0x5f, 0x46, 0x72, // ;. _mtl_o.gl_Fr
- 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // agColor = tmpvar
- 0x5f, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x5f, 0x6d, 0x74, // _2;. return _mt
- 0x6c, 0x5f, 0x6f, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x00, // l_o;.}...
+ 0x46, 0x53, 0x48, 0x0b, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x09, 0x75, // FSH............u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // _params0........
+ 0x00, 0x00, 0x09, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x12, 0x00, 0x10, 0x00, // ...u_params1....
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, // .......s_texColo
+ 0x72, 0x30, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x73, 0x5f, 0x74, 0x65, // r0..........s_te
+ 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // xColor0.........
+ 0x90, 0x06, 0x00, 0x00, 0x44, 0x58, 0x42, 0x43, 0xf6, 0xeb, 0xb4, 0x17, 0x2a, 0x57, 0x03, 0xc9, // ....DXBC....*W..
+ 0xa5, 0x0c, 0x41, 0x19, 0xa4, 0x74, 0xfe, 0x03, 0x01, 0x00, 0x00, 0x00, 0x90, 0x06, 0x00, 0x00, // ..A..t..........
+ 0x03, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, // ....,...........
+ 0x49, 0x53, 0x47, 0x4e, 0x6c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, // ISGNl...........
+ 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, // P...............
+ 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, // ................
+ 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, // b...............
+ 0x02, 0x00, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, // ........SV_POSIT
+ 0x49, 0x4f, 0x4e, 0x00, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, // ION.COLOR.TEXCOO
+ 0x52, 0x44, 0x00, 0xab, 0x4f, 0x53, 0x47, 0x4e, 0x2c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // RD..OSGN,.......
+ 0x08, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .... ...........
+ 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x54, // ............SV_T
+ 0x41, 0x52, 0x47, 0x45, 0x54, 0x00, 0xab, 0xab, 0x53, 0x48, 0x44, 0x52, 0xb4, 0x05, 0x00, 0x00, // ARGET...SHDR....
+ 0x40, 0x00, 0x00, 0x00, 0x6d, 0x01, 0x00, 0x00, 0x59, 0x00, 0x00, 0x04, 0x46, 0x8e, 0x20, 0x00, // @...m...Y...F. .
+ 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x03, 0x00, 0x60, 0x10, 0x00, // ........Z....`..
+ 0x00, 0x00, 0x00, 0x00, 0x58, 0x30, 0x00, 0x04, 0x00, 0x70, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ....X0...p......
+ 0x55, 0x55, 0x00, 0x00, 0x62, 0x10, 0x00, 0x03, 0xf2, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, // UU..b...........
+ 0x62, 0x10, 0x00, 0x03, 0x72, 0x10, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x03, // b...r.......e...
+ 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, // . ......h.......
+ 0x48, 0x00, 0x00, 0x0c, 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x12, 0x10, 0x00, // H...........F...
+ 0x02, 0x00, 0x00, 0x00, 0x46, 0x7e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, // ....F~.......`..
+ 0x00, 0x00, 0x00, 0x00, 0x0a, 0x80, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ...... .........
+ 0x2f, 0x00, 0x00, 0x06, 0x72, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x80, // /...r.......F...
+ 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x0a, 0x72, 0x00, 0x10, 0x00, // ........8...r...
+ 0x01, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, // ....F........@..
+ 0xcd, 0xcc, 0x0c, 0x40, 0xcd, 0xcc, 0x0c, 0x40, 0xcd, 0xcc, 0x0c, 0x40, 0x00, 0x00, 0x00, 0x00, // ...@...@...@....
+ 0x19, 0x00, 0x00, 0x05, 0x72, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, // ....r.......F...
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x72, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, // ........r.......
+ 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x80, 0x41, 0x00, 0x00, 0x00, // F.......F...A...
+ 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, 0x72, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, // ....2...r.......
+ 0xa6, 0x8a, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, // .. .........F...
+ 0x02, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x06, // ....F...........
+ 0x82, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3a, 0x80, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, // ........:. .....
+ 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x07, 0x72, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ....8...r.......
+ 0xf6, 0x0f, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, // ........F.......
+ 0x38, 0x00, 0x00, 0x07, 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, // 8...........F...
+ 0x00, 0x00, 0x00, 0x00, 0x46, 0x1e, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x08, // ....F.......1...
+ 0x12, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0a, 0x80, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, // .......... .....
+ 0x01, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x1f, 0x00, 0x04, 0x03, // .....@.....?....
+ 0x0a, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x36, 0x20, 0x00, 0x05, 0x72, 0x00, 0x10, 0x00, // ........6 ..r...
+ 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x0a, // ....F...........
+ 0x72, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x1c, 0x2e, 0x4d, 0x3b, // r........@....M;
+ 0x1c, 0x2e, 0x4d, 0x3b, 0x1c, 0x2e, 0x4d, 0x3b, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, // ..M;..M;....F...
+ 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x0a, 0x72, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, // ....8...r.......
+ 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x52, 0xb8, 0x4e, 0x41, // F........@..R.NA
+ 0x52, 0xb8, 0x4e, 0x41, 0x52, 0xb8, 0x4e, 0x41, 0x00, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x05, // R.NAR.NA..../...
+ 0x72, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // r.......F.......
+ 0x38, 0x00, 0x00, 0x0a, 0x72, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, // 8...r.......F...
+ 0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x55, 0x55, 0xd5, 0x3e, 0x55, 0x55, 0xd5, 0x3e, // .....@..UU.>UU.>
+ 0x55, 0x55, 0xd5, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x05, 0x72, 0x00, 0x10, 0x00, // UU.>........r...
+ 0x03, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0f, // ....F.......2...
+ 0x72, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, // r.......F.......
+ 0x02, 0x40, 0x00, 0x00, 0x3d, 0x0a, 0x87, 0x3f, 0x3d, 0x0a, 0x87, 0x3f, 0x3d, 0x0a, 0x87, 0x3f, // .@..=..?=..?=..?
+ 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0xae, 0x47, 0x61, 0xbd, 0xae, 0x47, 0x61, 0xbd, // .....@...Ga..Ga.
+ 0xae, 0x47, 0x61, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x09, 0x72, 0x00, 0x10, 0x00, // .Ga.....7...r...
+ 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, // ....F.......F...
+ 0x02, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x01, // ....F...........
+ 0x31, 0x00, 0x00, 0x0b, 0x32, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x80, 0x20, 0x00, // 1...2......... .
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f, // .........@.....?
+ 0x00, 0x00, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x0a, // .. @............
+ 0x12, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x98, 0x3a, 0xd3, 0x3e, // .........@...:.>
+ 0x37, 0x14, 0xb7, 0x3e, 0x9c, 0xc4, 0x38, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, // 7..>..8>....F...
+ 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x0a, 0x22, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, // ........".......
+ 0x02, 0x40, 0x00, 0x00, 0xed, 0xc6, 0x59, 0x3e, 0x37, 0x14, 0x37, 0x3f, 0x7d, 0xd0, 0x93, 0x3d, // .@....Y>7.7?}..=
+ 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x0a, // ....F...........
+ 0x42, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x21, 0x62, 0x9e, 0x3c, // B........@..!b.<
+ 0xef, 0x1a, 0xf4, 0x3d, 0x21, 0x47, 0x73, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, // ...=!Gs?....F...
+ 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x0a, 0x12, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, // ................
+ 0x02, 0x40, 0x00, 0x00, 0x3a, 0xbb, 0xdb, 0x3f, 0x7c, 0x1a, 0xb6, 0xbe, 0x3a, 0xb9, 0x81, 0xbe, // .@..:..?|...:...
+ 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x0a, // ....F...........
+ 0x22, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0xd4, 0xab, 0x2a, 0xbf, // "........@....*.
+ 0xdb, 0xe8, 0xce, 0x3f, 0xf1, 0x2c, 0x81, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, // ...?.,.<....F...
+ 0x02, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x0a, 0x42, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, // ........B.......
+ 0x02, 0x40, 0x00, 0x00, 0x8d, 0x81, 0x90, 0x3c, 0x3a, 0x30, 0x2f, 0xbd, 0xab, 0x2d, 0x71, 0x3f, // .@.....<:0/..-q?
+ 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x08, // ....F.......8...
+ 0x72, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, // r.......F.......
+ 0x56, 0x85, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x0a, // V. .........8...
+ 0x72, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, // r.......F.......
+ 0x02, 0x40, 0x00, 0x00, 0x17, 0xb7, 0xd1, 0x38, 0x17, 0xb7, 0xd1, 0x38, 0x17, 0xb7, 0xd1, 0x38, // .@.....8...8...8
+ 0x00, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x05, 0x72, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, // ..../...r.......
+ 0x46, 0x02, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x0a, 0x72, 0x00, 0x10, 0x00, // F.......8...r...
+ 0x02, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, // ....F........@..
+ 0x00, 0x20, 0x23, 0x3e, 0x00, 0x20, 0x23, 0x3e, 0x00, 0x20, 0x23, 0x3e, 0x00, 0x00, 0x00, 0x00, // . #>. #>. #>....
+ 0x19, 0x00, 0x00, 0x05, 0x72, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, // ....r.......F...
+ 0x02, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0f, 0x72, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, // ....2...r.......
+ 0x46, 0x02, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0xd0, 0x96, 0x41, // F........@.....A
+ 0x00, 0xd0, 0x96, 0x41, 0x00, 0xd0, 0x96, 0x41, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, // ...A...A.....@..
+ 0x00, 0x00, 0x56, 0x3f, 0x00, 0x00, 0x56, 0x3f, 0x00, 0x00, 0x56, 0x3f, 0x00, 0x00, 0x00, 0x00, // ..V?..V?..V?....
+ 0x32, 0x00, 0x00, 0x0f, 0x72, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, // 2...r.......F...
+ 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x80, 0x95, 0x41, 0x00, 0x80, 0x95, 0x41, // .....@.....A...A
+ 0x00, 0x80, 0x95, 0x41, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, // ...A.....@.....?
+ 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x07, // ...?...?........
+ 0x72, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, // r.......F.......
+ 0x46, 0x02, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x05, 0x72, 0x00, 0x10, 0x00, // F......./...r...
+ 0x02, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x0a, // ....F.......8...
+ 0x72, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, // r.......F.......
+ 0x02, 0x40, 0x00, 0x00, 0x00, 0xb0, 0x9d, 0x42, 0x00, 0xb0, 0x9d, 0x42, 0x00, 0xb0, 0x9d, 0x42, // .@.....B...B...B
+ 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x05, 0x72, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, // ........r.......
+ 0x46, 0x02, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x07, 0xe2, 0x00, 0x10, 0x00, // F...............
+ 0x01, 0x00, 0x00, 0x00, 0x56, 0x05, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x09, 0x10, 0x00, // ....V...........
+ 0x02, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x09, 0x72, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ....7...r.......
+ 0x06, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ........F.......
+ 0x96, 0x07, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x01, 0x36, 0x00, 0x00, 0x05, // ............6...
+ 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // . ......F.......
+ 0x3e, 0x00, 0x00, 0x01, 0x00, 0x00, 0x20, 0x00, // >..... .
+};
+static const uint8_t fs_texture_cube2_mtl[3728] =
+{
+ 0x46, 0x53, 0x48, 0x0b, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x09, 0x75, // FSH............u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x12, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // _params0........
+ 0x00, 0x00, 0x11, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x61, 0x6d, // ...s_texColorSam
+ 0x70, 0x6c, 0x65, 0x72, 0x11, 0x01, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x73, // pler...........s
+ 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, // _texColorTexture
+ 0x11, 0x01, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x75, 0x5f, 0x70, 0x61, 0x72, // ...........u_par
+ 0x61, 0x6d, 0x73, 0x31, 0x12, 0x01, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x73, // ams1...........s
+ 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // _texColor.......
+ 0x00, 0x00, 0x00, 0x05, 0x0e, 0x00, 0x00, 0x23, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, // .......#include
+ 0x3c, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x64, 0x6c, 0x69, 0x62, 0x3e, 0x0a, 0x23, // <metal_stdlib>.#
+ 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3c, 0x73, 0x69, 0x6d, 0x64, 0x2f, 0x73, 0x69, // include <simd/si
+ 0x6d, 0x64, 0x2e, 0x68, 0x3e, 0x0a, 0x0a, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6e, 0x61, 0x6d, // md.h>..using nam
+ 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x0a, 0x73, // espace metal;..s
+ 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x0a, 0x7b, 0x0a, // truct _Global.{.
+ 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, // float4 u_par
+ 0x61, 0x6d, 0x73, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, // ams0;. float4
+ 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, // u_params1;.};..
+ 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, // constant float3
+ 0x5f, 0x37, 0x30, 0x38, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x3b, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x75, // _708 = {};..stru
+ 0x63, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x5f, 0x6f, // ct xlatMtlMain_o
+ 0x75, 0x74, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, // ut.{. float4
+ 0x62, 0x67, 0x66, 0x78, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x44, 0x61, 0x74, 0x61, 0x30, 0x20, 0x5b, // bgfx_FragData0 [
+ 0x5b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, // [color(0)]];.};.
+ 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, // .struct xlatMtlM
+ 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x6e, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, // ain_in.{. flo
+ 0x61, 0x74, 0x34, 0x20, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x20, 0x5b, 0x5b, 0x75, // at4 v_color0 [[u
+ 0x73, 0x65, 0x72, 0x28, 0x6c, 0x6f, 0x63, 0x6e, 0x30, 0x29, 0x5d, 0x5d, 0x3b, 0x0a, 0x20, 0x20, // ser(locn0)]];.
+ 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, // float3 v_texco
+ 0x6f, 0x72, 0x64, 0x30, 0x20, 0x5b, 0x5b, 0x75, 0x73, 0x65, 0x72, 0x28, 0x6c, 0x6f, 0x63, 0x6e, // ord0 [[user(locn
+ 0x31, 0x29, 0x5d, 0x5d, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, // 1)]];.};..fragme
+ 0x6e, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x5f, 0x6f, // nt xlatMtlMain_o
+ 0x75, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x28, 0x78, // ut xlatMtlMain(x
+ 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x6e, 0x20, 0x69, 0x6e, // latMtlMain_in in
+ 0x20, 0x5b, 0x5b, 0x73, 0x74, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x5d, 0x5d, 0x2c, 0x20, 0x63, // [[stage_in]], c
+ 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x20, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x26, // onstant _Global&
+ 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x20, 0x5b, 0x5b, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, // _mtl_u [[buffer
+ 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x2c, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x63, 0x75, // (0)]], texturecu
+ 0x62, 0x65, 0x3c, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x20, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, // be<float> s_texC
+ 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x5b, 0x5b, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x28, 0x30, // olor [[texture(0
+ 0x29, 0x5d, 0x5d, 0x2c, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x20, 0x73, 0x5f, 0x74, // )]], sampler s_t
+ 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x20, 0x5b, // exColorSampler [
+ 0x5b, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x29, 0x0a, 0x7b, // [sampler(0)]]).{
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, // . xlatMtlMain
+ 0x5f, 0x6f, 0x75, 0x74, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x3b, 0x0a, 0x20, // _out out = {};.
+ 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x5f, 0x34, 0x34, 0x39, 0x20, 0x3d, // float4 _449 =
+ 0x20, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x2e, 0x73, 0x61, 0x6d, 0x70, // s_texColor.samp
+ 0x6c, 0x65, 0x28, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x61, 0x6d, // le(s_texColorSam
+ 0x70, 0x6c, 0x65, 0x72, 0x2c, 0x20, 0x69, 0x6e, 0x2e, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, // pler, in.v_texco
+ 0x6f, 0x72, 0x64, 0x30, 0x2c, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x28, 0x5f, 0x6d, 0x74, 0x6c, // ord0, level(_mtl
+ 0x5f, 0x75, 0x2e, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x2e, 0x78, 0x29, 0x29, // _u.u_params0.x))
+ 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x5f, 0x34, 0x32, // ;. float3 _42
+ 0x30, 0x20, 0x3d, 0x20, 0x5f, 0x34, 0x34, 0x39, 0x2e, 0x78, 0x79, 0x7a, 0x3b, 0x0a, 0x20, 0x20, // 0 = _449.xyz;.
+ 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x5f, 0x34, 0x36, 0x38, 0x20, 0x3d, 0x20, // float3 _468 =
+ 0x6d, 0x69, 0x78, 0x28, 0x70, 0x6f, 0x77, 0x28, 0x61, 0x62, 0x73, 0x28, 0x5f, 0x34, 0x32, 0x30, // mix(pow(abs(_420
+ 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x32, 0x2e, 0x32, 0x30, 0x30, 0x30, // ), float3(2.2000
+ 0x30, 0x30, 0x30, 0x34, 0x37, 0x36, 0x38, 0x33, 0x37, 0x31, 0x35, 0x38, 0x29, 0x29, 0x2c, 0x20, // 000476837158)),
+ 0x5f, 0x34, 0x32, 0x30, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x5f, 0x6d, 0x74, // _420, float3(_mt
+ 0x6c, 0x5f, 0x75, 0x2e, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x2e, 0x7a, 0x29, // l_u.u_params0.z)
+ 0x29, 0x20, 0x2a, 0x20, 0x70, 0x6f, 0x77, 0x28, 0x32, 0x2e, 0x30, 0x2c, 0x20, 0x5f, 0x6d, 0x74, // ) * pow(2.0, _mt
+ 0x6c, 0x5f, 0x75, 0x2e, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x2e, 0x77, 0x29, // l_u.u_params0.w)
+ 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x5f, 0x34, 0x32, // ;. float4 _42
+ 0x36, 0x20, 0x3d, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x28, 0x5f, 0x34, 0x36, 0x38, 0x2e, // 6 = float4(_468.
+ 0x78, 0x2c, 0x20, 0x5f, 0x34, 0x36, 0x38, 0x2e, 0x79, 0x2c, 0x20, 0x5f, 0x34, 0x36, 0x38, 0x2e, // x, _468.y, _468.
+ 0x7a, 0x2c, 0x20, 0x5f, 0x34, 0x34, 0x39, 0x2e, 0x77, 0x29, 0x20, 0x2a, 0x20, 0x69, 0x6e, 0x2e, // z, _449.w) * in.
+ 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, // v_color0;. fl
+ 0x6f, 0x61, 0x74, 0x33, 0x20, 0x5f, 0x37, 0x30, 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, // oat3 _703;. i
+ 0x66, 0x20, 0x28, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x2e, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, // f (_mtl_u.u_para
+ 0x6d, 0x73, 0x31, 0x2e, 0x78, 0x20, 0x3c, 0x20, 0x30, 0x2e, 0x35, 0x29, 0x0a, 0x20, 0x20, 0x20, // ms1.x < 0.5).
+ 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, // {. float
+ 0x33, 0x20, 0x5f, 0x35, 0x30, 0x35, 0x20, 0x3d, 0x20, 0x66, 0x61, 0x73, 0x74, 0x3a, 0x3a, 0x63, // 3 _505 = fast::c
+ 0x6c, 0x61, 0x6d, 0x70, 0x28, 0x5f, 0x34, 0x32, 0x36, 0x2e, 0x78, 0x79, 0x7a, 0x2c, 0x20, 0x66, // lamp(_426.xyz, f
+ 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x30, 0x2e, 0x30, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, // loat3(0.0), floa
+ 0x74, 0x33, 0x28, 0x31, 0x2e, 0x30, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // t3(1.0));.
+ 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x5f, 0x35, 0x34, 0x38, 0x20, 0x3d, 0x20, 0x5f, // float _548 = _
+ 0x35, 0x30, 0x35, 0x2e, 0x78, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, // 505.x;. f
+ 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x5f, 0x36, 0x39, 0x37, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, // loat _697;.
+ 0x20, 0x20, 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, // do. {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, // if (
+ 0x5f, 0x35, 0x34, 0x38, 0x20, 0x3c, 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x30, 0x33, 0x31, 0x33, 0x30, // _548 <= 0.003130
+ 0x38, 0x30, 0x30, 0x30, 0x39, 0x30, 0x37, 0x33, 0x30, 0x31, 0x39, 0x30, 0x33, 0x29, 0x0a, 0x20, // 8000907301903).
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, // {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x36, 0x39, // _69
+ 0x37, 0x20, 0x3d, 0x20, 0x31, 0x32, 0x2e, 0x39, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x37, 0x36, // 7 = 12.920000076
+ 0x32, 0x39, 0x33, 0x39, 0x34, 0x35, 0x20, 0x2a, 0x20, 0x5f, 0x35, 0x34, 0x38, 0x3b, 0x0a, 0x20, // 293945 * _548;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, // b
+ 0x72, 0x65, 0x61, 0x6b, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // reak;.
+ 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // }.
+ 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // else.
+ 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // {.
+ 0x20, 0x20, 0x20, 0x5f, 0x36, 0x39, 0x37, 0x20, 0x3d, 0x20, 0x28, 0x31, 0x2e, 0x30, 0x35, 0x34, // _697 = (1.054
+ 0x39, 0x39, 0x39, 0x39, 0x34, 0x37, 0x35, 0x34, 0x37, 0x39, 0x31, 0x32, 0x36, 0x20, 0x2a, 0x20, // 9999475479126 *
+ 0x70, 0x6f, 0x77, 0x28, 0x5f, 0x35, 0x34, 0x38, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x31, 0x36, 0x36, // pow(_548, 0.4166
+ 0x36, 0x36, 0x36, 0x35, 0x36, 0x37, 0x33, 0x32, 0x35, 0x35, 0x39, 0x32, 0x29, 0x29, 0x20, 0x2d, // 666567325592)) -
+ 0x20, 0x30, 0x2e, 0x30, 0x35, 0x34, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x37, 0x30, 0x31, 0x39, // 0.0549999997019
+ 0x37, 0x36, 0x37, 0x37, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // 76776;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x3b, 0x0a, 0x20, 0x20, // break;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, // }.
+ 0x20, 0x20, 0x20, 0x20, 0x7d, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x28, 0x66, 0x61, 0x6c, 0x73, // } while(fals
+ 0x65, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, // e);. floa
+ 0x74, 0x33, 0x20, 0x5f, 0x36, 0x38, 0x32, 0x20, 0x3d, 0x20, 0x5f, 0x37, 0x30, 0x38, 0x3b, 0x0a, // t3 _682 = _708;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x36, 0x38, 0x32, 0x2e, 0x78, 0x20, 0x3d, // _682.x =
+ 0x20, 0x5f, 0x36, 0x39, 0x37, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, // _697;. f
+ 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x5f, 0x35, 0x35, 0x32, 0x20, 0x3d, 0x20, 0x5f, 0x35, 0x30, 0x35, // loat _552 = _505
+ 0x2e, 0x79, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, // .y;. floa
+ 0x74, 0x20, 0x5f, 0x36, 0x39, 0x39, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // t _699;.
+ 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, // do. {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x5f, 0x35, 0x35, // if (_55
+ 0x32, 0x20, 0x3c, 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x30, 0x33, 0x31, 0x33, 0x30, 0x38, 0x30, 0x30, // 2 <= 0.003130800
+ 0x30, 0x39, 0x30, 0x37, 0x33, 0x30, 0x31, 0x39, 0x30, 0x33, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, // 0907301903).
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x36, 0x39, 0x39, 0x20, 0x3d, // _699 =
+ 0x20, 0x31, 0x32, 0x2e, 0x39, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x37, 0x36, 0x32, 0x39, 0x33, // 12.920000076293
+ 0x39, 0x34, 0x35, 0x20, 0x2a, 0x20, 0x5f, 0x35, 0x35, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, // 945 * _552;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x72, 0x65, 0x61, // brea
+ 0x6b, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, // k;. }
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, // . els
+ 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, // e. {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //
+ 0x5f, 0x36, 0x39, 0x39, 0x20, 0x3d, 0x20, 0x28, 0x31, 0x2e, 0x30, 0x35, 0x34, 0x39, 0x39, 0x39, // _699 = (1.054999
+ 0x39, 0x34, 0x37, 0x35, 0x34, 0x37, 0x39, 0x31, 0x32, 0x36, 0x20, 0x2a, 0x20, 0x70, 0x6f, 0x77, // 9475479126 * pow
+ 0x28, 0x5f, 0x35, 0x35, 0x32, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x31, 0x36, 0x36, 0x36, 0x36, 0x36, // (_552, 0.4166666
+ 0x35, 0x36, 0x37, 0x33, 0x32, 0x35, 0x35, 0x39, 0x32, 0x29, 0x29, 0x20, 0x2d, 0x20, 0x30, 0x2e, // 567325592)) - 0.
+ 0x30, 0x35, 0x34, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x37, 0x30, 0x31, 0x39, 0x37, 0x36, 0x37, // 0549999997019767
+ 0x37, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // 76;.
+ 0x20, 0x20, 0x20, 0x20, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, // break;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // }.
+ 0x20, 0x7d, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x28, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, // } while(false);
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, // . float3
+ 0x5f, 0x36, 0x38, 0x35, 0x20, 0x3d, 0x20, 0x5f, 0x36, 0x38, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x20, // _685 = _682;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x36, 0x38, 0x35, 0x2e, 0x79, 0x20, 0x3d, 0x20, 0x5f, 0x36, // _685.y = _6
+ 0x39, 0x39, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, // 99;. floa
+ 0x74, 0x20, 0x5f, 0x35, 0x35, 0x36, 0x20, 0x3d, 0x20, 0x5f, 0x35, 0x30, 0x35, 0x2e, 0x7a, 0x3b, // t _556 = _505.z;
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x5f, // . float _
+ 0x37, 0x30, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x0a, // 701;. do.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x5f, 0x35, 0x35, 0x36, 0x20, 0x3c, // if (_556 <
+ 0x3d, 0x20, 0x30, 0x2e, 0x30, 0x30, 0x33, 0x31, 0x33, 0x30, 0x38, 0x30, 0x30, 0x30, 0x39, 0x30, // = 0.003130800090
+ 0x37, 0x33, 0x30, 0x31, 0x39, 0x30, 0x33, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // 7301903).
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x37, 0x30, 0x31, 0x20, 0x3d, 0x20, 0x31, 0x32, // _701 = 12
+ 0x2e, 0x39, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x37, 0x36, 0x32, 0x39, 0x33, 0x39, 0x34, 0x35, // .920000076293945
+ 0x20, 0x2a, 0x20, 0x5f, 0x35, 0x35, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // * _556;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x3b, 0x0a, // break;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, // }.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, // else.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, // {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x37, 0x30, // _70
+ 0x31, 0x20, 0x3d, 0x20, 0x28, 0x31, 0x2e, 0x30, 0x35, 0x34, 0x39, 0x39, 0x39, 0x39, 0x34, 0x37, // 1 = (1.054999947
+ 0x35, 0x34, 0x37, 0x39, 0x31, 0x32, 0x36, 0x20, 0x2a, 0x20, 0x70, 0x6f, 0x77, 0x28, 0x5f, 0x35, // 5479126 * pow(_5
+ 0x35, 0x36, 0x2c, 0x20, 0x30, 0x2e, 0x34, 0x31, 0x36, 0x36, 0x36, 0x36, 0x36, 0x35, 0x36, 0x37, // 56, 0.4166666567
+ 0x33, 0x32, 0x35, 0x35, 0x39, 0x32, 0x29, 0x29, 0x20, 0x2d, 0x20, 0x30, 0x2e, 0x30, 0x35, 0x34, // 325592)) - 0.054
+ 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x37, 0x30, 0x31, 0x39, 0x37, 0x36, 0x37, 0x37, 0x36, 0x3b, // 999999701976776;
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // .
+ 0x20, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // break;.
+ 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x20, // }. }
+ 0x77, 0x68, 0x69, 0x6c, 0x65, 0x28, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x20, 0x20, // while(false);.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x5f, 0x36, 0x38, // float3 _68
+ 0x38, 0x20, 0x3d, 0x20, 0x5f, 0x36, 0x38, 0x35, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // 8 = _685;.
+ 0x20, 0x20, 0x5f, 0x36, 0x38, 0x38, 0x2e, 0x7a, 0x20, 0x3d, 0x20, 0x5f, 0x37, 0x30, 0x31, 0x3b, // _688.z = _701;
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x37, 0x30, 0x33, 0x20, 0x3d, 0x20, // . _703 =
+ 0x5f, 0x36, 0x38, 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, // _688;. }.
+ 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, // else. {.
+ 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x5f, 0x37, 0x30, 0x34, 0x3b, 0x0a, // float3 _704;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x5f, 0x6d, 0x74, 0x6c, // if (_mtl
+ 0x5f, 0x75, 0x2e, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x2e, 0x78, 0x20, 0x3c, // _u.u_params1.x <
+ 0x20, 0x31, 0x2e, 0x35, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, // 1.5). {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x37, 0x30, 0x34, // _704
+ 0x20, 0x3d, 0x20, 0x5f, 0x34, 0x32, 0x36, 0x2e, 0x78, 0x79, 0x7a, 0x3b, 0x0a, 0x20, 0x20, 0x20, // = _426.xyz;.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, // }. e
+ 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, // lse. {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, // float3
+ 0x20, 0x5f, 0x37, 0x30, 0x35, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // _705;.
+ 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x2e, 0x75, 0x5f, // if (_mtl_u.u_
+ 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x2e, 0x78, 0x20, 0x3c, 0x20, 0x32, 0x2e, 0x35, 0x29, // params1.x < 2.5)
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, // . {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, // f
+ 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x5f, 0x36, 0x34, 0x31, 0x20, 0x3d, 0x20, 0x70, 0x6f, 0x77, // loat3 _641 = pow
+ 0x28, 0x28, 0x28, 0x28, 0x5f, 0x34, 0x32, 0x36, 0x2e, 0x78, 0x79, 0x7a, 0x20, 0x2a, 0x20, 0x66, // ((((_426.xyz * f
+ 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x78, 0x33, 0x28, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x30, // loat3x3(float3(0
+ 0x2e, 0x34, 0x31, 0x32, 0x35, 0x35, 0x36, 0x34, 0x30, 0x39, 0x38, 0x33, 0x35, 0x38, 0x31, 0x35, // .412556409835815
+ 0x34, 0x33, 0x2c, 0x20, 0x30, 0x2e, 0x33, 0x35, 0x37, 0x35, 0x37, 0x36, 0x31, 0x30, 0x32, 0x30, // 43, 0.3575761020
+ 0x31, 0x38, 0x33, 0x35, 0x36, 0x33, 0x32, 0x2c, 0x20, 0x30, 0x2e, 0x31, 0x38, 0x30, 0x34, 0x33, // 1835632, 0.18043
+ 0x37, 0x35, 0x30, 0x35, 0x32, 0x34, 0x35, 0x32, 0x30, 0x38, 0x37, 0x34, 0x29, 0x2c, 0x20, 0x66, // 750524520874), f
+ 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x30, 0x2e, 0x32, 0x31, 0x32, 0x36, 0x37, 0x32, 0x39, 0x30, // loat3(0.21267290
+ 0x34, 0x31, 0x33, 0x33, 0x37, 0x39, 0x36, 0x36, 0x39, 0x2c, 0x20, 0x30, 0x2e, 0x37, 0x31, 0x35, // 413379669, 0.715
+ 0x31, 0x35, 0x32, 0x32, 0x30, 0x34, 0x30, 0x33, 0x36, 0x37, 0x31, 0x32, 0x36, 0x35, 0x2c, 0x20, // 15220403671265,
+ 0x30, 0x2e, 0x30, 0x37, 0x32, 0x31, 0x37, 0x35, 0x30, 0x30, 0x33, 0x35, 0x38, 0x38, 0x31, 0x39, // 0.07217500358819
+ 0x39, 0x36, 0x31, 0x35, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x30, 0x2e, // 9615), float3(0.
+ 0x30, 0x31, 0x39, 0x33, 0x33, 0x33, 0x39, 0x30, 0x30, 0x38, 0x38, 0x33, 0x37, 0x39, 0x33, 0x38, // 0193339008837938
+ 0x33, 0x31, 0x2c, 0x20, 0x30, 0x2e, 0x31, 0x31, 0x39, 0x31, 0x39, 0x31, 0x39, 0x39, 0x36, 0x37, // 31, 0.1191919967
+ 0x35, 0x33, 0x32, 0x31, 0x35, 0x37, 0x39, 0x2c, 0x20, 0x30, 0x2e, 0x39, 0x35, 0x30, 0x33, 0x30, // 5321579, 0.95030
+ 0x34, 0x30, 0x39, 0x30, 0x39, 0x37, 0x36, 0x37, 0x31, 0x35, 0x30, 0x39, 0x29, 0x29, 0x29, 0x20, // 409097671509)))
+ 0x2a, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x78, 0x33, 0x28, 0x66, 0x6c, 0x6f, 0x61, 0x74, // * float3x3(float
+ 0x33, 0x28, 0x31, 0x2e, 0x37, 0x31, 0x36, 0x36, 0x35, 0x31, 0x32, 0x30, 0x31, 0x32, 0x34, 0x38, // 3(1.716651201248
+ 0x31, 0x36, 0x38, 0x39, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x33, 0x35, 0x35, 0x36, 0x37, 0x30, 0x38, // 1689, -0.3556708
+ 0x30, 0x39, 0x37, 0x34, 0x35, 0x37, 0x38, 0x38, 0x35, 0x37, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x32, // 0974578857, -0.2
+ 0x35, 0x33, 0x33, 0x36, 0x36, 0x32, 0x39, 0x31, 0x35, 0x32, 0x32, 0x39, 0x37, 0x39, 0x37, 0x34, // 5336629152297974
+ 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x2d, 0x30, 0x2e, 0x36, 0x36, 0x36, // ), float3(-0.666
+ 0x36, 0x38, 0x34, 0x33, 0x38, 0x39, 0x31, 0x31, 0x34, 0x33, 0x37, 0x39, 0x38, 0x38, 0x2c, 0x20, // 68438911437988,
+ 0x31, 0x2e, 0x36, 0x31, 0x36, 0x34, 0x38, 0x31, 0x31, 0x38, 0x34, 0x39, 0x35, 0x39, 0x34, 0x31, // 1.61648118495941
+ 0x31, 0x36, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x31, 0x35, 0x37, 0x36, 0x38, 0x35, 0x30, 0x30, 0x30, // 16, 0.0157685000
+ 0x34, 0x34, 0x39, 0x34, 0x31, 0x39, 0x30, 0x32, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, // 44941902), float
+ 0x33, 0x28, 0x30, 0x2e, 0x30, 0x31, 0x37, 0x36, 0x33, 0x39, 0x38, 0x39, 0x39, 0x36, 0x32, 0x36, // 3(0.017639899626
+ 0x33, 0x37, 0x34, 0x32, 0x34, 0x35, 0x2c, 0x20, 0x2d, 0x30, 0x2e, 0x30, 0x34, 0x32, 0x37, 0x37, // 374245, -0.04277
+ 0x30, 0x36, 0x30, 0x31, 0x38, 0x30, 0x39, 0x30, 0x32, 0x34, 0x38, 0x31, 0x31, 0x2c, 0x20, 0x30, // 0601809024811, 0
+ 0x2e, 0x39, 0x34, 0x32, 0x31, 0x30, 0x33, 0x30, 0x38, 0x37, 0x39, 0x30, 0x32, 0x30, 0x36, 0x39, // .942103087902069
+ 0x30, 0x39, 0x29, 0x29, 0x29, 0x20, 0x2a, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x2e, 0x75, // 09))) * _mtl_u.u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x31, 0x2e, 0x79, 0x29, 0x20, 0x2a, 0x20, 0x39, 0x2e, // _params1.y) * 9.
+ 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x37, 0x34, 0x37, 0x33, 0x37, 0x38, 0x37, 0x35, 0x31, 0x36, // 9999997473787516
+ 0x65, 0x2d, 0x30, 0x30, 0x35, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x30, 0x2e, // e-005, float3(0.
+ 0x31, 0x35, 0x39, 0x33, 0x30, 0x31, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x29, 0x29, 0x3b, // 1593017578125));
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // .
+ 0x20, 0x5f, 0x37, 0x30, 0x35, 0x20, 0x3d, 0x20, 0x70, 0x6f, 0x77, 0x28, 0x28, 0x66, 0x6c, 0x6f, // _705 = pow((flo
+ 0x61, 0x74, 0x33, 0x28, 0x30, 0x2e, 0x38, 0x33, 0x35, 0x39, 0x33, 0x37, 0x35, 0x29, 0x20, 0x2b, // at3(0.8359375) +
+ 0x20, 0x28, 0x5f, 0x36, 0x34, 0x31, 0x20, 0x2a, 0x20, 0x31, 0x38, 0x2e, 0x38, 0x35, 0x31, 0x35, // (_641 * 18.8515
+ 0x36, 0x32, 0x35, 0x29, 0x29, 0x20, 0x2f, 0x20, 0x28, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, // 625)) / (float3(
+ 0x31, 0x2e, 0x30, 0x29, 0x20, 0x2b, 0x20, 0x28, 0x5f, 0x36, 0x34, 0x31, 0x20, 0x2a, 0x20, 0x31, // 1.0) + (_641 * 1
+ 0x38, 0x2e, 0x36, 0x38, 0x37, 0x35, 0x29, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, // 8.6875)), float3
+ 0x28, 0x37, 0x38, 0x2e, 0x38, 0x34, 0x33, 0x37, 0x35, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, // (78.84375));.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, // }.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, // else.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // {.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x37, 0x30, 0x35, 0x20, 0x3d, // _705 =
+ 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x28, 0x30, 0x2e, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, // float3(0.0);.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, // }.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x37, 0x30, 0x34, 0x20, 0x3d, 0x20, 0x5f, // _704 = _
+ 0x37, 0x30, 0x35, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, // 705;. }.
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x37, 0x30, 0x33, 0x20, 0x3d, 0x20, 0x5f, 0x37, // _703 = _7
+ 0x30, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x75, // 04;. }. ou
+ 0x74, 0x2e, 0x62, 0x67, 0x66, 0x78, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x44, 0x61, 0x74, 0x61, 0x30, // t.bgfx_FragData0
+ 0x20, 0x3d, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x28, 0x5f, 0x37, 0x30, 0x33, 0x2c, 0x20, // = float4(_703,
+ 0x5f, 0x34, 0x32, 0x36, 0x2e, 0x77, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, // _426.w);. ret
+ 0x75, 0x72, 0x6e, 0x20, 0x6f, 0x75, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x00, 0x00, 0x40, 0x00, // urn out;.}....@.
};
extern const uint8_t* fs_texture_cube2_pssl;
extern const uint32_t fs_texture_cube2_pssl_size;
diff --git a/3rdparty/bgfx/tools/texturev/fs_texture_cube2.sc b/3rdparty/bgfx/tools/texturev/fs_texture_cube2.sc
index df1521f0ba1..6623595fa28 100644
--- a/3rdparty/bgfx/tools/texturev/fs_texture_cube2.sc
+++ b/3rdparty/bgfx/tools/texturev/fs_texture_cube2.sc
@@ -1,8 +1,8 @@
$input v_texcoord0, v_color0
/*
- * Copyright 2011-2018 Branimir Karadzic. All rights reserved.
- * License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause
+ * Copyright 2011-2022 Branimir Karadzic. All rights reserved.
+ * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE
*/
#include "common.sh"
@@ -12,5 +12,8 @@ SAMPLERCUBE(s_texColor, 0);
void main()
{
vec4 color = textureCubeLod(s_texColor, v_texcoord0, u_textureLod);
- gl_FragColor = toEv(color * v_color0);
+ color.xyz = applyExposure(color.xyz);
+ color *= v_color0;
+
+ gl_FragColor = toOutput(color, u_outputFormat, u_sdrWhiteNits);
}
diff --git a/3rdparty/bgfx/tools/texturev/fs_texture_msdf.bin.h b/3rdparty/bgfx/tools/texturev/fs_texture_msdf.bin.h
index aeccab82506..788276366c0 100644
--- a/3rdparty/bgfx/tools/texturev/fs_texture_msdf.bin.h
+++ b/3rdparty/bgfx/tools/texturev/fs_texture_msdf.bin.h
@@ -1,292 +1,334 @@
-static const uint8_t fs_texture_msdf_glsl[483] =
+static const uint8_t fs_texture_msdf_glsl[494] =
{
- 0x46, 0x53, 0x48, 0x06, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x08, 0x75, // FSH............u
- 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x02, 0x01, 0x00, 0x00, 0x01, 0x00, 0x0a, 0x73, 0x5f, // _params.......s_
- 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0xb0, 0x01, // texColor........
- 0x00, 0x00, 0x76, 0x61, 0x72, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x76, // ..varying vec3 v
- 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, // _texcoord0;.unif
- 0x6f, 0x72, 0x6d, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, // orm vec4 u_param
- 0x73, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, // s;.uniform sampl
- 0x65, 0x72, 0x32, 0x44, 0x20, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x3b, // er2D s_texColor;
- 0x0a, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x28, 0x29, 0x0a, 0x7b, 0x0a, // .void main ().{.
- 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x3b, // vec3 tmpvar_1;
- 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x20, 0x3d, 0x20, 0x74, 0x65, // . tmpvar_1 = te
- 0x78, 0x74, 0x75, 0x72, 0x65, 0x32, 0x44, 0x4c, 0x6f, 0x64, 0x20, 0x28, 0x73, 0x5f, 0x74, 0x65, // xture2DLod (s_te
- 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x2c, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, // xColor, v_texcoo
- 0x72, 0x64, 0x30, 0x2e, 0x78, 0x79, 0x2c, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, // rd0.xy, u_params
- 0x2e, 0x78, 0x29, 0x2e, 0x78, 0x79, 0x7a, 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, // .x).xyz;. float
- 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, // tmpvar_2;. tmp
- 0x76, 0x61, 0x72, 0x5f, 0x32, 0x20, 0x3d, 0x20, 0x28, 0x6d, 0x61, 0x78, 0x20, 0x28, 0x6d, 0x69, // var_2 = (max (mi
- 0x6e, 0x20, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x2c, 0x20, 0x74, // n (tmpvar_1.x, t
- 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x79, 0x29, 0x2c, 0x20, 0x6d, 0x69, 0x6e, 0x20, // mpvar_1.y), min
- 0x28, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, // (. max (tmpva
- 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x2c, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, // r_1.x, tmpvar_1.
- 0x79, 0x29, 0x0a, 0x20, 0x20, 0x2c, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, // y). , tmpvar_1.
- 0x7a, 0x29, 0x29, 0x20, 0x2d, 0x20, 0x30, 0x2e, 0x35, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x67, 0x6c, // z)) - 0.5);. gl
- 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x76, 0x65, 0x63, // _FragColor = vec
- 0x34, 0x28, 0x63, 0x6c, 0x61, 0x6d, 0x70, 0x20, 0x28, 0x28, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, // 4(clamp (((tmpva
- 0x72, 0x5f, 0x32, 0x20, 0x2f, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x28, 0x61, 0x62, 0x73, 0x28, // r_2 / . (abs(
- 0x64, 0x46, 0x64, 0x78, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x29, 0x29, 0x20, // dFdx(tmpvar_2))
- 0x2b, 0x20, 0x61, 0x62, 0x73, 0x28, 0x64, 0x46, 0x64, 0x79, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, // + abs(dFdy(tmpva
- 0x72, 0x5f, 0x32, 0x29, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x29, 0x20, 0x2b, 0x20, 0x30, 0x2e, 0x35, // r_2))). ) + 0.5
- 0x29, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x29, 0x3b, 0x0a, 0x7d, // ), 0.0, 1.0));.}
- 0x0a, 0x0a, 0x00, // ...
+ 0x46, 0x53, 0x48, 0x0b, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x09, 0x75, // FSH............u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x02, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // _params0........
+ 0x00, 0x00, 0x0a, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x00, 0x01, 0x00, // ...s_texColor...
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb2, 0x01, 0x00, 0x00, 0x76, 0x61, 0x72, 0x79, 0x69, // ...........varyi
+ 0x6e, 0x67, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, // ng vec3 v_texcoo
+ 0x72, 0x64, 0x30, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x76, 0x65, 0x63, // rd0;.uniform vec
+ 0x34, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x3b, 0x0a, 0x75, 0x6e, 0x69, // 4 u_params0;.uni
+ 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x32, 0x44, 0x20, 0x73, // form sampler2D s
+ 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x3b, 0x0a, 0x76, 0x6f, 0x69, 0x64, 0x20, // _texColor;.void
+ 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x76, 0x65, 0x63, 0x33, // main ().{. vec3
+ 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, // tmpvar_1;. tmp
+ 0x76, 0x61, 0x72, 0x5f, 0x31, 0x20, 0x3d, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x32, // var_1 = texture2
+ 0x44, 0x4c, 0x6f, 0x64, 0x20, 0x28, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, // DLod (s_texColor
+ 0x2c, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x2e, 0x78, 0x79, // , v_texcoord0.xy
+ 0x2c, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x2e, 0x78, 0x29, 0x2e, 0x78, // , u_params0.x).x
+ 0x79, 0x7a, 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x74, 0x6d, 0x70, 0x76, // yz;. float tmpv
+ 0x61, 0x72, 0x5f, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, // ar_2;. tmpvar_2
+ 0x20, 0x3d, 0x20, 0x28, 0x6d, 0x61, 0x78, 0x20, 0x28, 0x6d, 0x69, 0x6e, 0x20, 0x28, 0x74, 0x6d, // = (max (min (tm
+ 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x2c, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // pvar_1.x, tmpvar
+ 0x5f, 0x31, 0x2e, 0x79, 0x29, 0x2c, 0x20, 0x6d, 0x69, 0x6e, 0x20, 0x28, 0x0a, 0x20, 0x20, 0x20, // _1.y), min (.
+ 0x20, 0x6d, 0x61, 0x78, 0x20, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x78, // max (tmpvar_1.x
+ 0x2c, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x79, 0x29, 0x0a, 0x20, 0x20, // , tmpvar_1.y).
+ 0x2c, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x7a, 0x29, 0x29, 0x20, 0x2d, // , tmpvar_1.z)) -
+ 0x20, 0x30, 0x2e, 0x35, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, // 0.5);. gl_Frag
+ 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x76, 0x65, 0x63, 0x34, 0x28, 0x63, 0x6c, 0x61, // Color = vec4(cla
+ 0x6d, 0x70, 0x20, 0x28, 0x28, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x20, 0x2f, // mp (((tmpvar_2 /
+ 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x28, 0x61, 0x62, 0x73, 0x28, 0x64, 0x46, 0x64, 0x78, 0x28, // . (abs(dFdx(
+ 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x29, 0x29, 0x20, 0x2b, 0x20, 0x61, 0x62, 0x73, // tmpvar_2)) + abs
+ 0x28, 0x64, 0x46, 0x64, 0x79, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x29, 0x29, // (dFdy(tmpvar_2))
+ 0x29, 0x0a, 0x20, 0x20, 0x29, 0x20, 0x2b, 0x20, 0x30, 0x2e, 0x35, 0x29, 0x2c, 0x20, 0x30, 0x2e, // ). ) + 0.5), 0.
+ 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x29, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x00, // 0, 1.0));.}...
};
-static const uint8_t fs_texture_msdf_spv[1817] =
+static const uint8_t fs_texture_msdf_essl[613] =
{
- 0x46, 0x53, 0x48, 0x06, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x75, // FSH............u
- 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x01, 0x00, 0x00, 0x01, 0x00, 0xf4, 0x06, 0x00, // _params.........
- 0x00, 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x07, 0x00, 0x08, 0x00, 0x03, 0x01, 0x00, // ...#............
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, // ................
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, // .....GLSL.std.45
- 0x30, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // 0...............
- 0x00, 0x0f, 0x00, 0x08, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, // .............mai
- 0x6e, 0x00, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, // n...............
- 0x00, 0x10, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, // ................
- 0x00, 0x05, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, // ................
- 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x09, 0x00, 0x00, // .main...........
- 0x00, 0x42, 0x67, 0x66, 0x78, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x32, 0x44, 0x00, 0x00, // .BgfxSampler2D..
- 0x00, 0x06, 0x00, 0x06, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6d, 0x5f, 0x73, // .............m_s
- 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x09, 0x00, 0x00, // ampler..........
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x6d, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x00, 0x00, // .....m_texture..
- 0x00, 0x05, 0x00, 0x05, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, // .....-...s_texCo
- 0x6c, 0x6f, 0x72, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x73, 0x5f, 0x74, // lor....../...s_t
- 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x00, 0x00, // exColorSampler..
- 0x00, 0x05, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, // .....2...s_texCo
- 0x6c, 0x6f, 0x72, 0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, // lorTexture......
- 0x00, 0x70, 0x00, 0x00, 0x00, 0x24, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x00, 0x06, 0x00, 0x06, // .p...$Global....
- 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, // .p.......u_param
- 0x73, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // s........r......
- 0x00, 0x05, 0x00, 0x05, 0x00, 0x95, 0x00, 0x00, 0x00, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, // .........v_color
- 0x30, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x99, 0x00, 0x00, 0x00, 0x76, 0x5f, 0x74, // 0............v_t
- 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x00, 0x05, 0x00, 0x06, 0x00, 0xa4, 0x00, 0x00, // excoord0........
- 0x00, 0x62, 0x67, 0x66, 0x78, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x44, 0x61, 0x74, 0x61, 0x30, 0x00, // .bgfx_FragData0.
- 0x00, 0x47, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .G...2..."......
- 0x00, 0x47, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .G...2...!......
- 0x00, 0x48, 0x00, 0x05, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, // .H...p.......#..
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x70, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, // .....G...p......
- 0x00, 0x47, 0x00, 0x04, 0x00, 0x72, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .G...r..."......
- 0x00, 0x47, 0x00, 0x04, 0x00, 0x95, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .G..............
- 0x00, 0x47, 0x00, 0x04, 0x00, 0x99, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // .G..............
- 0x00, 0x47, 0x00, 0x04, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .G..............
- 0x00, 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, // .........!......
- 0x00, 0x02, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x02, 0x00, 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, // ................
- 0x00, 0x07, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x08, 0x00, 0x00, // ..... ..........
- 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x04, // ................
- 0x00, 0x09, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, // ................
- 0x00, 0x0b, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, // ................
- 0x00, 0x0e, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, // ................
- 0x00, 0x20, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, // . ........... ..
- 0x00, 0x2c, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, // .,...........;..
- 0x00, 0x2c, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, // .,...-....... ..
- 0x00, 0x2e, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, // .............;..
- 0x00, 0x2e, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, // ...../....... ..
- 0x00, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, // .1...........;..
- 0x00, 0x31, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, // .1...2..........
- 0x00, 0x35, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, // .5... .......+..
- 0x00, 0x35, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, // .5...:..........
- 0x00, 0x3e, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x52, 0x00, 0x00, // .>...........R..
- 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x52, 0x00, 0x00, // . .......+...R..
- 0x00, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, // .S.......+......
- 0x00, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x07, 0x00, 0x0e, 0x00, 0x00, // .g.......,......
- 0x00, 0x6b, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, // .k...g...g...g..
- 0x00, 0x67, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, // .g...+.......m..
- 0x00, 0x00, 0x00, 0x80, 0x3f, 0x2c, 0x00, 0x07, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, // ....?,.......n..
- 0x00, 0x6d, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, // .m...m...m...m..
- 0x00, 0x1e, 0x00, 0x03, 0x00, 0x70, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, // .....p....... ..
- 0x00, 0x71, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, // .q.......p...;..
- 0x00, 0x71, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, // .q...r....... ..
- 0x00, 0x79, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, // .y...........+..
- 0x00, 0x07, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, 0x00, 0x04, // ............? ..
- 0x00, 0x94, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, // .............;..
- 0x00, 0x94, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, // ............. ..
- 0x00, 0x98, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, // ......... ...;..
- 0x00, 0x98, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, // ............. ..
- 0x00, 0xa3, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, // .............;..
- 0x00, 0xa3, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, // .............6..
- 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, // ................
- 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, // .........=......
- 0x00, 0x30, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, // .0.../...=......
- 0x00, 0x33, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x09, 0x00, 0x00, // .3...2...P......
- 0x00, 0x34, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, // .4...0...3...>..
- 0x00, 0x2d, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, // .-...4...=... ..
- 0x00, 0x9a, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, // .........=......
- 0x00, 0xc7, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, // .....-...Q......
- 0x00, 0x01, 0x01, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, // .............Q..
- 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // ................
- 0x00, 0x4f, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, // .O..............
- 0x00, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, // .............A..
- 0x00, 0x79, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, // .y.......r...:..
- 0x00, 0x53, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, // .S...=..........
- 0x00, 0xca, 0x00, 0x00, 0x00, 0x56, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, 0xe7, 0x00, 0x00, // .....V...>......
- 0x00, 0x02, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x58, 0x00, 0x07, 0x00, 0x0e, 0x00, 0x00, // .........X......
- 0x00, 0xea, 0x00, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, // ................
- 0x00, 0xcb, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0xed, 0x00, 0x00, // .....Q..........
- 0x00, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, // .........Q......
- 0x00, 0xef, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, // ................
- 0x00, 0x07, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, // .............%..
- 0x00, 0xed, 0x00, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, // .........Q......
- 0x00, 0xf2, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, // .............Q..
- 0x00, 0x07, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // ................
- 0x00, 0x0c, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // ................
- 0x00, 0x28, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, // .(...........Q..
- 0x00, 0x07, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, // ................
- 0x00, 0x0c, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // ................
- 0x00, 0x25, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, // .%..............
- 0x00, 0x07, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, // .............(..
- 0x00, 0xf0, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, // ................
- 0x00, 0xd0, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x04, // ................
- 0x00, 0x07, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, 0x88, 0x00, 0x05, // ................
- 0x00, 0x07, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, // ................
- 0x00, 0x81, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, // ................
- 0x00, 0x82, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x07, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, // ................
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, // .....+.......g..
- 0x00, 0x6d, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, // .m...P..........
- 0x00, 0xd6, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, // ................
- 0x00, 0x0c, 0x00, 0x08, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // ................
- 0x00, 0x2e, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, // .....k...n......
- 0x00, 0x3e, 0x00, 0x03, 0x00, 0xa4, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, // .>..............
- 0x00, 0x38, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00, // .8.......
+ 0x46, 0x53, 0x48, 0x0b, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x09, 0x75, // FSH............u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x02, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // _params0........
+ 0x00, 0x00, 0x0a, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x00, 0x01, 0x00, // ...s_texColor...
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0x02, 0x00, 0x00, 0x76, 0x61, 0x72, 0x79, 0x69, // .......)...varyi
+ 0x6e, 0x67, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x76, 0x5f, // ng highp vec3 v_
+ 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, // texcoord0;.unifo
+ 0x72, 0x6d, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x75, 0x5f, // rm highp vec4 u_
+ 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, // params0;.uniform
+ 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x32, 0x44, 0x20, 0x73, 0x5f, 0x74, 0x65, 0x78, // sampler2D s_tex
+ 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x3b, 0x0a, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x6d, 0x61, 0x69, 0x6e, // Color;.void main
+ 0x20, 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x76, 0x65, 0x63, // ().{. lowp vec
+ 0x33, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, // 3 tmpvar_1;. tm
+ 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x20, 0x3d, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, // pvar_1 = texture
+ 0x32, 0x44, 0x4c, 0x6f, 0x64, 0x20, 0x20, 0x20, 0x20, 0x28, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, // 2DLod (s_texC
+ 0x6f, 0x6c, 0x6f, 0x72, 0x2c, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, // olor, v_texcoord
+ 0x30, 0x2e, 0x78, 0x79, 0x2c, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x2e, // 0.xy, u_params0.
+ 0x78, 0x29, 0x2e, 0x78, 0x79, 0x7a, 0x3b, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x66, // x).xyz;. lowp f
+ 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x3b, 0x0a, 0x20, // loat tmpvar_2;.
+ 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x20, 0x3d, 0x20, 0x28, 0x6d, 0x61, 0x78, // tmpvar_2 = (max
+ 0x20, 0x28, 0x6d, 0x69, 0x6e, 0x20, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, // (min (tmpvar_1.
+ 0x78, 0x2c, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x79, 0x29, 0x2c, 0x20, // x, tmpvar_1.y),
+ 0x6d, 0x69, 0x6e, 0x20, 0x28, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x28, 0x74, // min (. max (t
+ 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x2c, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, // mpvar_1.x, tmpva
+ 0x72, 0x5f, 0x31, 0x2e, 0x79, 0x29, 0x0a, 0x20, 0x20, 0x2c, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, // r_1.y). , tmpva
+ 0x72, 0x5f, 0x31, 0x2e, 0x7a, 0x29, 0x29, 0x20, 0x2d, 0x20, 0x30, 0x2e, 0x35, 0x29, 0x3b, 0x0a, // r_1.z)) - 0.5);.
+ 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x74, 0x6d, 0x70, // lowp float tmp
+ 0x76, 0x61, 0x72, 0x5f, 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // var_3;. tmpvar_
+ 0x33, 0x20, 0x3d, 0x20, 0x63, 0x6c, 0x61, 0x6d, 0x70, 0x20, 0x28, 0x28, 0x28, 0x74, 0x6d, 0x70, // 3 = clamp (((tmp
+ 0x76, 0x61, 0x72, 0x5f, 0x32, 0x20, 0x2f, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x28, 0x61, 0x62, // var_2 / . (ab
+ 0x73, 0x28, 0x64, 0x46, 0x64, 0x78, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x29, // s(dFdx(tmpvar_2)
+ 0x29, 0x20, 0x2b, 0x20, 0x61, 0x62, 0x73, 0x28, 0x64, 0x46, 0x64, 0x79, 0x28, 0x74, 0x6d, 0x70, // ) + abs(dFdy(tmp
+ 0x76, 0x61, 0x72, 0x5f, 0x32, 0x29, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x29, 0x20, 0x2b, 0x20, 0x30, // var_2))). ) + 0
+ 0x2e, 0x35, 0x29, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x3b, 0x0a, // .5), 0.0, 1.0);.
+ 0x20, 0x20, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x70, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x74, // mediump vec4 t
+ 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, // mpvar_4;. tmpva
+ 0x72, 0x5f, 0x34, 0x20, 0x3d, 0x20, 0x76, 0x65, 0x63, 0x34, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, // r_4 = vec4(tmpva
+ 0x72, 0x5f, 0x33, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, // r_3);. gl_FragC
+ 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x34, 0x3b, // olor = tmpvar_4;
+ 0x0a, 0x7d, 0x0a, 0x0a, 0x00, // .}...
};
-static const uint8_t fs_texture_msdf_dx9[499] =
+static const uint8_t fs_texture_msdf_spv[1731] =
{
- 0x46, 0x53, 0x48, 0x06, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0a, 0x73, // FSH............s
- 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x01, 0x00, 0x00, 0x01, 0x00, 0x08, // _texColor0......
- 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x01, 0x00, 0x00, 0x01, 0x00, 0xc0, 0x01, // u_params........
- 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xfe, 0xff, 0x2c, 0x00, 0x43, 0x54, 0x41, 0x42, 0x1c, 0x00, // ........,.CTAB..
- 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0x02, 0x00, 0x00, 0x00, 0x1c, 0x00, // ................
- 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x03, 0x00, // ......|...D.....
- 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, // ......P.......`.
- 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, // ..........l.....
- 0x00, 0x00, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x00, 0xab, 0x04, 0x00, // ..s_texColor....
- 0x0c, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, // ..............u_
- 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x00, 0xab, 0xab, 0xab, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, // params..........
- 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x73, 0x5f, 0x33, 0x5f, 0x30, // ..........ps_3_0
- 0x00, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, // .Microsoft (R) H
- 0x4c, 0x53, 0x4c, 0x20, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x69, // LSL Shader Compi
- 0x6c, 0x65, 0x72, 0x20, 0x31, 0x30, 0x2e, 0x31, 0x00, 0xab, 0x51, 0x00, 0x00, 0x05, 0x01, 0x00, // ler 10.1..Q.....
- 0x0f, 0xa0, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, // .....?..........
- 0x00, 0x3f, 0x1f, 0x00, 0x00, 0x02, 0x05, 0x00, 0x00, 0x80, 0x00, 0x00, 0x03, 0x90, 0x1f, 0x00, // .?..............
- 0x00, 0x02, 0x00, 0x00, 0x00, 0x90, 0x00, 0x08, 0x0f, 0xa0, 0x05, 0x00, 0x00, 0x03, 0x00, 0x00, // ................
- 0x07, 0x80, 0x01, 0x00, 0xd0, 0xa0, 0x00, 0x00, 0xc4, 0x90, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, // ................
- 0x08, 0x80, 0x00, 0x00, 0x00, 0xa0, 0x5f, 0x00, 0x00, 0x03, 0x00, 0x00, 0x0f, 0x80, 0x00, 0x00, // ......_.........
- 0xe4, 0x80, 0x00, 0x08, 0xe4, 0xa0, 0x02, 0x00, 0x00, 0x03, 0x00, 0x00, 0x08, 0x80, 0x00, 0x00, // ................
- 0x55, 0x81, 0x00, 0x00, 0x00, 0x80, 0x58, 0x00, 0x00, 0x04, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, // U.....X.........
- 0xff, 0x80, 0x00, 0x00, 0xe1, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x0a, 0x00, 0x00, 0x03, 0x01, 0x00, // ................
- 0x01, 0x80, 0x00, 0x00, 0xaa, 0x80, 0x00, 0x00, 0x55, 0x80, 0x0b, 0x00, 0x00, 0x03, 0x02, 0x00, // ........U.......
- 0x01, 0x80, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x03, 0x00, 0x00, // ................
- 0x01, 0x80, 0x02, 0x00, 0x00, 0x80, 0x01, 0x00, 0xaa, 0xa0, 0x5b, 0x00, 0x00, 0x02, 0x00, 0x00, // ..........[.....
- 0x02, 0x80, 0x00, 0x00, 0x00, 0x80, 0x5c, 0x00, 0x00, 0x02, 0x00, 0x00, 0x04, 0x80, 0x00, 0x00, // ................
- 0x00, 0x80, 0x02, 0x00, 0x00, 0x03, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0xaa, 0x8b, 0x00, 0x00, // ................
- 0x55, 0x8b, 0x06, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x55, 0x80, 0x04, 0x00, // U...........U...
- 0x00, 0x04, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x55, 0x80, 0x01, 0x00, // ............U...
- 0xff, 0xa0, 0x01, 0x00, 0x00, 0x02, 0x00, 0x08, 0x1f, 0x80, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, // ................
- 0x00, 0x00, 0x00, // ...
+ 0x46, 0x53, 0x48, 0x0b, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x09, 0x75, // FSH............u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // _params0........
+ 0xfd, 0x7f, 0x0a, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x00, 0x02, // ...s_texColor0..
+ 0x00, 0x00, 0x00, 0x00, 0x02, 0x1a, 0x00, 0x84, 0x06, 0x00, 0x00, 0x03, 0x02, 0x23, 0x07, 0x00, // .............#..
+ 0x00, 0x01, 0x00, 0x0a, 0x00, 0x08, 0x00, 0x0b, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, // ................
+ 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, // ...............G
+ 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0e, // LSL.std.450.....
+ 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x09, 0x00, 0x04, // ................
+ 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x96, // .......main.....
+ 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0x10, // ................
+ 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x05, // ................
+ 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, // ...............m
+ 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x30, 0x00, 0x00, 0x00, 0x73, // ain........0...s
+ 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, // _texColorSampler
+ 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x33, 0x00, 0x00, 0x00, 0x73, 0x5f, 0x74, 0x65, 0x78, // .......3...s_tex
+ 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x00, 0x00, 0x00, 0x05, // ColorTexture....
+ 0x00, 0x06, 0x00, 0x71, 0x00, 0x00, 0x00, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0x6c, // ...q...UniformBl
+ 0x6f, 0x63, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x71, 0x00, 0x00, 0x00, 0x00, // ock........q....
+ 0x00, 0x00, 0x00, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x00, 0x00, 0x00, 0x05, // ...u_params0....
+ 0x00, 0x03, 0x00, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x96, // ...s............
+ 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x00, // ...gl_FragCoord.
+ 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x99, 0x00, 0x00, 0x00, 0x76, 0x5f, 0x63, 0x6f, 0x6c, // ...........v_col
+ 0x6f, 0x72, 0x30, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x76, // or0............v
+ 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x00, 0x05, 0x00, 0x06, 0x00, 0xaa, // _texcoord0......
+ 0x00, 0x00, 0x00, 0x62, 0x67, 0x66, 0x78, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x44, 0x61, 0x74, 0x61, // ...bgfx_FragData
+ 0x30, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x30, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, // 0..G...0..."....
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x30, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x12, // ...G...0...!....
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, // ...G...3..."....
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, // ...G...3...!....
+ 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, // ...H...q.......#
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x71, 0x00, 0x00, 0x00, 0x02, // .......G...q....
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x73, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, // ...G...s..."....
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x73, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, // ...G...s...!....
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x96, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0f, // ...G............
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x99, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, // ...G............
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x01, // ...G............
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xaa, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, // ...G............
+ 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, // ...........!....
+ 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x02, 0x00, 0x06, 0x00, 0x00, 0x00, 0x16, // ................
+ 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x08, // ....... ........
+ 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, // ................
+ 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x17, // ................
+ 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x17, // ................
+ 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, // ... ...........
+ 0x00, 0x04, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3b, // .../...........;
+ 0x00, 0x04, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, // .../...0.......
+ 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x3b, // ...2...........;
+ 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, // ...2...3........
+ 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, // ...6... .......+
+ 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, // ...6...;........
+ 0x00, 0x03, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x53, // ...?...........S
+ 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x53, // ... .......+...S
+ 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, // ...T.......+....
+ 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x07, 0x00, 0x0e, // ...h.......,....
+ 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x68, // ...l...h...h...h
+ 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x6e, // ...h...+.......n
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x2c, 0x00, 0x07, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x6f, // ......?,.......o
+ 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x6e, // ...n...n...n...n
+ 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x71, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x20, // .......q.......
+ 0x00, 0x04, 0x00, 0x72, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x3b, // ...r.......q...;
+ 0x00, 0x04, 0x00, 0x72, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, // ...r...s.......
+ 0x00, 0x04, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x2b, // ...z...........+
+ 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, // ..............?
+ 0x00, 0x04, 0x00, 0x95, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x3b, // ...............;
+ 0x00, 0x04, 0x00, 0x95, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3b, // ...............;
+ 0x00, 0x04, 0x00, 0x95, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, // ...............
+ 0x00, 0x04, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3b, // ........... ...;
+ 0x00, 0x04, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, // ...............
+ 0x00, 0x04, 0x00, 0xa9, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x3b, // ...............;
+ 0x00, 0x04, 0x00, 0xa9, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x36, // ...............6
+ 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, // ................
+ 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, // ...........=....
+ 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x08, // ...1...0...=....
+ 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x20, // ...4...3...=...
+ 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x0b, // ...........O....
+ 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x00, // ................
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x7a, 0x00, 0x00, 0x00, 0xd2, // .......A...z....
+ 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x3d, // ...s...;...T...=
+ 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, 0x56, // ...............V
+ 0x00, 0x05, 0x00, 0x3f, 0x00, 0x00, 0x00, 0xf1, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x31, // ...?.......4...1
+ 0x00, 0x00, 0x00, 0x58, 0x00, 0x07, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0xf1, // ...X............
+ 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0x51, // ...............Q
+ 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0x00, // ................
+ 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0xf4, // ...Q............
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00, 0xfb, // ................
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0xfa, // .......%........
+ 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x00, 0x00, 0xf4, // ...Q............
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0xff, // .......Q........
+ 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x07, // ................
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0xfd, // ...........(....
+ 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x02, // .......Q........
+ 0x01, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x07, // ................
+ 0x00, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x00, // ...........%....
+ 0x01, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00, 0x04, // ................
+ 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, 0x03, // .......(........
+ 0x01, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0x04, // ................
+ 0x01, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xdb, // ................
+ 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0x88, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0xdc, // ................
+ 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x07, // ................
+ 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x0c, // ................
+ 0x00, 0x08, 0x00, 0x07, 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, // ...............+
+ 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x50, // .......h...n...P
+ 0x00, 0x07, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, 0xde, // ................
+ 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x0e, // ................
+ 0x00, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x6c, // ...............l
+ 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0xaa, // ...o.......>....
+ 0x00, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00, 0x00, // ...........8....
+ 0x00, 0x10, 0x00, // ...
};
-static const uint8_t fs_texture_msdf_dx11[674] =
+static const uint8_t fs_texture_msdf_dx9[508] =
{
- 0x46, 0x53, 0x48, 0x06, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x08, 0x75, // FSH............u
- 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0a, 0x73, 0x5f, // _params.......s_
- 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x01, 0x00, 0x00, 0x01, 0x00, 0x6c, 0x02, // texColor0.....l.
- 0x00, 0x00, 0x44, 0x58, 0x42, 0x43, 0xde, 0xd6, 0xcf, 0x5a, 0x51, 0xb1, 0xc9, 0x93, 0x7e, 0x1e, // ..DXBC...ZQ...~.
- 0x77, 0x4e, 0x30, 0x56, 0xcd, 0x6a, 0x01, 0x00, 0x00, 0x00, 0x6c, 0x02, 0x00, 0x00, 0x03, 0x00, // wN0V.j....l.....
- 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, 0x49, 0x53, // ..,...........IS
- 0x47, 0x4e, 0x6c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x50, 0x00, // GNl...........P.
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
- 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
- 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x62, 0x00, // ..............b.
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, // ................
- 0x00, 0x00, 0x07, 0x03, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, // ......SV_POSITIO
- 0x4e, 0x00, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, // N.COLOR.TEXCOORD
- 0x00, 0xab, 0x4f, 0x53, 0x47, 0x4e, 0x2c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, // ..OSGN,.........
- 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, // .. .............
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x54, 0x41, 0x52, // ..........SV_TAR
- 0x47, 0x45, 0x54, 0x00, 0xab, 0xab, 0x53, 0x48, 0x44, 0x52, 0x90, 0x01, 0x00, 0x00, 0x40, 0x00, // GET...SHDR....@.
- 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x04, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, // ..d...Y...F. ...
- 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x03, 0x00, 0x60, 0x10, 0x00, 0x00, 0x00, // ......Z....`....
- 0x00, 0x00, 0x58, 0x18, 0x00, 0x04, 0x00, 0x70, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, // ..X....p......UU
- 0x00, 0x00, 0x62, 0x10, 0x00, 0x03, 0x32, 0x10, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x65, 0x00, // ..b...2.......e.
- 0x00, 0x03, 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x01, 0x00, // ... ......h.....
- 0x00, 0x00, 0x48, 0x00, 0x00, 0x0c, 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x10, // ..H...........F.
- 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x7e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, // ......F~.......`
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x80, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........ .......
- 0x00, 0x00, 0x34, 0x00, 0x00, 0x07, 0x82, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, // ..4.............
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, // ..............3.
- 0x00, 0x07, 0x52, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x06, 0x10, 0x00, 0x00, 0x00, // ..R.......V.....
- 0x00, 0x00, 0x06, 0x03, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x07, 0x12, 0x00, // ..........4.....
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, // ......*.........
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x12, 0x00, 0x10, 0x00, 0x00, 0x00, // ................
- 0x00, 0x00, 0x0a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, // ...........@....
- 0x00, 0xbf, 0x0b, 0x00, 0x00, 0x05, 0x22, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, // ......".........
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x05, 0x42, 0x00, 0x10, 0x00, 0x00, 0x00, // ..........B.....
- 0x00, 0x00, 0x0a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x22, 0x00, // ..............".
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x10, 0x80, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, // ......*.........
- 0x00, 0x00, 0x1a, 0x00, 0x10, 0x80, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, // ................
- 0x00, 0x07, 0x12, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x10, 0x00, 0x00, 0x00, // ................
- 0x00, 0x00, 0x1a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x12, 0x00, // ................
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x40, // ...............@
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x36, 0x20, 0x00, 0x05, 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, // .....?6 ... ....
- 0x00, 0x00, 0x06, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x01, 0x00, 0x00, // ..........>.....
- 0x10, 0x00, // ..
+ 0x46, 0x53, 0x48, 0x0b, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0a, 0x73, // FSH............s
+ 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, // _texColor0......
+ 0x00, 0x00, 0x00, 0x09, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x12, 0x01, 0x00, // ....u_params0...
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xfe, // ................
+ 0xff, 0x2c, 0x00, 0x43, 0x54, 0x41, 0x42, 0x1c, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, // .,.CTAB.........
+ 0x03, 0xff, 0xff, 0x02, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x7c, // ...............|
+ 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x50, // ...D...........P
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, // .......`........
+ 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x5f, 0x74, 0x65, 0x78, // ...l.......s_tex
+ 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x00, 0xab, 0x04, 0x00, 0x0c, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, // Color...........
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, // .......u_params0
+ 0x00, 0xab, 0xab, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, // ................
+ 0x00, 0x00, 0x00, 0x70, 0x73, 0x5f, 0x33, 0x5f, 0x30, 0x00, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, // ...ps_3_0.Micros
+ 0x6f, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4c, 0x53, 0x4c, 0x20, 0x53, 0x68, 0x61, // oft (R) HLSL Sha
+ 0x64, 0x65, 0x72, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x20, 0x31, 0x30, 0x2e, // der Compiler 10.
+ 0x31, 0x00, 0xab, 0x51, 0x00, 0x00, 0x05, 0x01, 0x00, 0x0f, 0xa0, 0x00, 0x00, 0x80, 0x3f, 0x00, // 1..Q..........?.
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0x3f, 0x1f, 0x00, 0x00, 0x02, 0x05, // ..........?.....
+ 0x00, 0x00, 0x80, 0x00, 0x00, 0x03, 0x90, 0x1f, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x90, 0x00, // ................
+ 0x08, 0x0f, 0xa0, 0x05, 0x00, 0x00, 0x03, 0x00, 0x00, 0x07, 0x80, 0x01, 0x00, 0xd0, 0xa0, 0x00, // ................
+ 0x00, 0xc4, 0x90, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x08, 0x80, 0x00, 0x00, 0x00, 0xa0, 0x5f, // ..............._
+ 0x00, 0x00, 0x03, 0x00, 0x00, 0x0f, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x00, 0x08, 0xe4, 0xa0, 0x02, // ................
+ 0x00, 0x00, 0x03, 0x00, 0x00, 0x08, 0x80, 0x00, 0x00, 0x55, 0x81, 0x00, 0x00, 0x00, 0x80, 0x58, // .........U.....X
+ 0x00, 0x00, 0x04, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xe1, 0x80, 0x00, // ................
+ 0x00, 0xe4, 0x80, 0x0a, 0x00, 0x00, 0x03, 0x01, 0x00, 0x01, 0x80, 0x00, 0x00, 0xaa, 0x80, 0x00, // ................
+ 0x00, 0x55, 0x80, 0x0b, 0x00, 0x00, 0x03, 0x02, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x80, 0x01, // .U..............
+ 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x03, 0x00, 0x00, 0x01, 0x80, 0x02, 0x00, 0x00, 0x80, 0x01, // ................
+ 0x00, 0xaa, 0xa0, 0x5b, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x00, 0x80, 0x5c, // ...[............
+ 0x00, 0x00, 0x02, 0x00, 0x00, 0x04, 0x80, 0x00, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x03, 0x00, // ................
+ 0x00, 0x02, 0x80, 0x00, 0x00, 0xaa, 0x8b, 0x00, 0x00, 0x55, 0x8b, 0x06, 0x00, 0x00, 0x02, 0x00, // .........U......
+ 0x00, 0x02, 0x80, 0x00, 0x00, 0x55, 0x80, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x01, 0x80, 0x00, // .....U..........
+ 0x00, 0x00, 0x80, 0x00, 0x00, 0x55, 0x80, 0x01, 0x00, 0xff, 0xa0, 0x01, 0x00, 0x00, 0x02, 0x00, // .....U..........
+ 0x08, 0x1f, 0x80, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, // ............
};
-static const uint8_t fs_texture_msdf_mtl[879] =
+static const uint8_t fs_texture_msdf_dx11[704] =
{
- 0x46, 0x53, 0x48, 0x06, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x03, // FSH.............
- 0x00, 0x00, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, // ..using namespac
- 0x65, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, // e metal;.struct
- 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x70, // xlatMtlShaderInp
- 0x75, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x76, 0x5f, // ut {. float3 v_
- 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x73, 0x74, // texcoord0;.};.st
- 0x72, 0x75, 0x63, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, // ruct xlatMtlShad
- 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, // erOutput {. flo
- 0x61, 0x74, 0x34, 0x20, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, // at4 gl_FragColor
- 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, // ;.};.struct xlat
- 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, // MtlShaderUniform
- 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x75, 0x5f, 0x70, 0x61, // {. float4 u_pa
- 0x72, 0x61, 0x6d, 0x73, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, // rams;.};.fragmen
- 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x4f, // t xlatMtlShaderO
- 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, // utput xlatMtlMai
- 0x6e, 0x20, 0x28, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, // n (xlatMtlShader
- 0x49, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x69, 0x20, 0x5b, 0x5b, 0x73, // Input _mtl_i [[s
- 0x74, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x5d, 0x5d, 0x2c, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x74, // tage_in]], const
- 0x61, 0x6e, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, 0x65, // ant xlatMtlShade
- 0x72, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x26, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, // rUniform& _mtl_u
- 0x20, 0x5b, 0x5b, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x0a, 0x20, // [[buffer(0)]].
- 0x20, 0x2c, 0x20, 0x20, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x32, 0x64, 0x3c, 0x66, // , texture2d<f
- 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x20, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, // loat> s_texColor
- 0x20, 0x5b, 0x5b, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x2c, // [[texture(0)]],
- 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x73, 0x6d, 0x70, // sampler _mtlsmp
- 0x5f, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x5b, 0x5b, 0x73, 0x61, // _s_texColor [[sa
- 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, // mpler(0)]]).{.
- 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x4f, 0x75, 0x74, // xlatMtlShaderOut
- 0x70, 0x75, 0x74, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x6f, 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x6c, // put _mtl_o;. fl
- 0x6f, 0x61, 0x74, 0x33, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x20, 0x3d, 0x20, // oat3 tmpvar_1 =
- 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x20, 0x3d, 0x20, // 0;. tmpvar_1 =
- 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x2e, 0x73, 0x61, 0x6d, 0x70, 0x6c, // s_texColor.sampl
- 0x65, 0x28, 0x5f, 0x6d, 0x74, 0x6c, 0x73, 0x6d, 0x70, 0x5f, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, // e(_mtlsmp_s_texC
- 0x6f, 0x6c, 0x6f, 0x72, 0x2c, 0x20, 0x28, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x32, 0x29, 0x28, 0x5f, // olor, (float2)(_
- 0x6d, 0x74, 0x6c, 0x5f, 0x69, 0x2e, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, // mtl_i.v_texcoord
- 0x30, 0x2e, 0x78, 0x79, 0x29, 0x2c, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x28, 0x5f, 0x6d, 0x74, // 0.xy), level(_mt
- 0x6c, 0x5f, 0x75, 0x2e, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x78, 0x29, 0x29, // l_u.u_params.x))
- 0x2e, 0x78, 0x79, 0x7a, 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x74, 0x6d, // .xyz;. float tm
- 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, // pvar_2 = 0;. tm
- 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x20, 0x3d, 0x20, 0x28, 0x6d, 0x61, 0x78, 0x20, 0x28, 0x6d, // pvar_2 = (max (m
- 0x69, 0x6e, 0x20, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x2c, 0x20, // in (tmpvar_1.x,
- 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x79, 0x29, 0x2c, 0x20, 0x6d, 0x69, 0x6e, // tmpvar_1.y), min
- 0x20, 0x28, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x28, 0x74, 0x6d, 0x70, 0x76, // (. max (tmpv
- 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x2c, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, // ar_1.x, tmpvar_1
- 0x2e, 0x79, 0x29, 0x0a, 0x20, 0x20, 0x2c, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, // .y). , tmpvar_1
- 0x2e, 0x7a, 0x29, 0x29, 0x20, 0x2d, 0x20, 0x30, 0x2e, 0x35, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x5f, // .z)) - 0.5);. _
- 0x6d, 0x74, 0x6c, 0x5f, 0x6f, 0x2e, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, // mtl_o.gl_FragCol
- 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x28, 0x63, 0x6c, 0x61, 0x6d, // or = float4(clam
- 0x70, 0x20, 0x28, 0x28, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x20, 0x2f, 0x20, // p (((tmpvar_2 /
- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x28, 0x61, 0x62, 0x73, 0x28, 0x64, 0x66, 0x64, 0x78, 0x28, 0x74, // . (abs(dfdx(t
- 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x29, 0x29, 0x20, 0x2b, 0x20, 0x61, 0x62, 0x73, 0x28, // mpvar_2)) + abs(
- 0x64, 0x66, 0x64, 0x79, 0x28, 0x2d, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x29, 0x29, // dfdy(-tmpvar_2))
- 0x29, 0x0a, 0x20, 0x20, 0x29, 0x20, 0x2b, 0x20, 0x30, 0x2e, 0x35, 0x29, 0x2c, 0x20, 0x30, 0x2e, // ). ) + 0.5), 0.
- 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, // 0, 1.0));. retu
- 0x72, 0x6e, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x6f, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x00, // rn _mtl_o;.}...
+ 0x46, 0x53, 0x48, 0x0b, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x09, 0x75, // FSH............u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // _params0........
+ 0x00, 0x00, 0x0a, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x01, 0x00, // ...s_texColor0..
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, // ........s_texCol
+ 0x6f, 0x72, 0x30, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x02, 0x00, 0x00, // or0.........l...
+ 0x44, 0x58, 0x42, 0x43, 0xde, 0xd6, 0xcf, 0x5a, 0x51, 0xb1, 0xc9, 0x93, 0x7e, 0x1e, 0x77, 0x4e, // DXBC...ZQ...~.wN
+ 0x30, 0x56, 0xcd, 0x6a, 0x01, 0x00, 0x00, 0x00, 0x6c, 0x02, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, // 0V.j....l.......
+ 0x2c, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, 0x49, 0x53, 0x47, 0x4e, // ,...........ISGN
+ 0x6c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, // l...........P...
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
+ 0x0f, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
+ 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, // ............b...
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, // ................
+ 0x07, 0x03, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x00, // ....SV_POSITION.
+ 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x00, 0xab, // COLOR.TEXCOORD..
+ 0x4f, 0x53, 0x47, 0x4e, 0x2c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, // OSGN,...........
+ 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, // ...............
+ 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x54, 0x41, 0x52, 0x47, 0x45, // ........SV_TARGE
+ 0x54, 0x00, 0xab, 0xab, 0x53, 0x48, 0x44, 0x52, 0x90, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // T...SHDR....@...
+ 0x64, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x04, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, // d...Y...F. .....
+ 0x01, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x03, 0x00, 0x60, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ....Z....`......
+ 0x58, 0x18, 0x00, 0x04, 0x00, 0x70, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, 0x00, 0x00, // X....p......UU..
+ 0x62, 0x10, 0x00, 0x03, 0x32, 0x10, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x03, // b...2.......e...
+ 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, // . ......h.......
+ 0x48, 0x00, 0x00, 0x0c, 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x10, 0x10, 0x00, // H...........F...
+ 0x02, 0x00, 0x00, 0x00, 0x46, 0x7e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, // ....F~.......`..
+ 0x00, 0x00, 0x00, 0x00, 0x0a, 0x80, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ...... .........
+ 0x34, 0x00, 0x00, 0x07, 0x82, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x10, 0x00, // 4...............
+ 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x07, // ............3...
+ 0x52, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x06, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // R.......V.......
+ 0x06, 0x03, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x07, 0x12, 0x00, 0x10, 0x00, // ........4.......
+ 0x00, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x10, 0x00, // ....*...........
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x12, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
+ 0x0a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, // .........@......
+ 0x0b, 0x00, 0x00, 0x05, 0x22, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x10, 0x00, // ...."...........
+ 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x05, 0x42, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ........B.......
+ 0x0a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x22, 0x00, 0x10, 0x00, // ............"...
+ 0x00, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x10, 0x80, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ....*...........
+ 0x1a, 0x00, 0x10, 0x80, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x07, // ................
+ 0x12, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
+ 0x1a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x12, 0x00, 0x10, 0x00, // ................
+ 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, // .............@..
+ 0x00, 0x00, 0x00, 0x3f, 0x36, 0x20, 0x00, 0x05, 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ...?6 ... ......
+ 0x06, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x01, 0x00, 0x00, 0x10, 0x00, // ........>.......
+};
+static const uint8_t fs_texture_msdf_mtl[942] =
+{
+ 0x46, 0x53, 0x48, 0x0b, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x11, 0x73, // FSH............s
+ 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, // _texColorSampler
+ 0x11, 0x01, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x11, 0x73, 0x5f, 0x74, 0x65, 0x78, // ...........s_tex
+ 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x11, 0x01, 0xff, 0xff, // ColorTexture....
+ 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x09, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, // .......u_params0
+ 0x12, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x0a, 0x73, 0x5f, 0x74, 0x65, 0x78, // ...........s_tex
+ 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x37, // Color..........7
+ 0x03, 0x00, 0x00, 0x23, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3c, 0x6d, 0x65, 0x74, // ...#include <met
+ 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x64, 0x6c, 0x69, 0x62, 0x3e, 0x0a, 0x23, 0x69, 0x6e, 0x63, 0x6c, // al_stdlib>.#incl
+ 0x75, 0x64, 0x65, 0x20, 0x3c, 0x73, 0x69, 0x6d, 0x64, 0x2f, 0x73, 0x69, 0x6d, 0x64, 0x2e, 0x68, // ude <simd/simd.h
+ 0x3e, 0x0a, 0x0a, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, // >..using namespa
+ 0x63, 0x65, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, // ce metal;..struc
+ 0x74, 0x20, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, // t _Global.{.
+ 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, // float4 u_params0
+ 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x78, 0x6c, 0x61, // ;.};..struct xla
+ 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x5f, 0x6f, 0x75, 0x74, 0x0a, 0x7b, 0x0a, 0x20, // tMtlMain_out.{.
+ 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x62, 0x67, 0x66, 0x78, 0x5f, 0x46, // float4 bgfx_F
+ 0x72, 0x61, 0x67, 0x44, 0x61, 0x74, 0x61, 0x30, 0x20, 0x5b, 0x5b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, // ragData0 [[color
+ 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, // (0)]];.};..struc
+ 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x6e, // t xlatMtlMain_in
+ 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x76, 0x5f, // .{. float3 v_
+ 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x20, 0x5b, 0x5b, 0x75, 0x73, 0x65, 0x72, // texcoord0 [[user
+ 0x28, 0x6c, 0x6f, 0x63, 0x6e, 0x31, 0x29, 0x5d, 0x5d, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x66, // (locn1)]];.};..f
+ 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, // ragment xlatMtlM
+ 0x61, 0x69, 0x6e, 0x5f, 0x6f, 0x75, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, // ain_out xlatMtlM
+ 0x61, 0x69, 0x6e, 0x28, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x5f, // ain(xlatMtlMain_
+ 0x69, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x5b, 0x5b, 0x73, 0x74, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x6e, // in in [[stage_in
+ 0x5d, 0x5d, 0x2c, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x20, 0x5f, 0x47, 0x6c, // ]], constant _Gl
+ 0x6f, 0x62, 0x61, 0x6c, 0x26, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x20, 0x5b, 0x5b, 0x62, // obal& _mtl_u [[b
+ 0x75, 0x66, 0x66, 0x65, 0x72, 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x2c, 0x20, 0x74, 0x65, 0x78, 0x74, // uffer(0)]], text
+ 0x75, 0x72, 0x65, 0x32, 0x64, 0x3c, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x20, 0x73, 0x5f, 0x74, // ure2d<float> s_t
+ 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x5b, 0x5b, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, // exColor [[textur
+ 0x65, 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x2c, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x20, // e(0)]], sampler
+ 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, // s_texColorSample
+ 0x72, 0x20, 0x5b, 0x5b, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x28, 0x30, 0x29, 0x5d, 0x5d, // r [[sampler(0)]]
+ 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, // ).{. xlatMtlM
+ 0x61, 0x69, 0x6e, 0x5f, 0x6f, 0x75, 0x74, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x7b, 0x7d, // ain_out out = {}
+ 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x5f, 0x32, 0x34, // ;. float4 _24
+ 0x34, 0x20, 0x3d, 0x20, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x2e, 0x73, // 4 = s_texColor.s
+ 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x28, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, // ample(s_texColor
+ 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x2c, 0x20, 0x69, 0x6e, 0x2e, 0x76, 0x5f, 0x74, 0x65, // Sampler, in.v_te
+ 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x2e, 0x78, 0x79, 0x2c, 0x20, 0x6c, 0x65, 0x76, 0x65, // xcoord0.xy, leve
+ 0x6c, 0x28, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x2e, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, // l(_mtl_u.u_param
+ 0x73, 0x30, 0x2e, 0x78, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, // s0.x));. floa
+ 0x74, 0x20, 0x5f, 0x32, 0x31, 0x36, 0x20, 0x3d, 0x20, 0x66, 0x61, 0x73, 0x74, 0x3a, 0x3a, 0x6d, // t _216 = fast::m
+ 0x61, 0x78, 0x28, 0x66, 0x61, 0x73, 0x74, 0x3a, 0x3a, 0x6d, 0x69, 0x6e, 0x28, 0x5f, 0x32, 0x34, // ax(fast::min(_24
+ 0x34, 0x2e, 0x78, 0x2c, 0x20, 0x5f, 0x32, 0x34, 0x34, 0x2e, 0x79, 0x29, 0x2c, 0x20, 0x66, 0x61, // 4.x, _244.y), fa
+ 0x73, 0x74, 0x3a, 0x3a, 0x6d, 0x69, 0x6e, 0x28, 0x66, 0x61, 0x73, 0x74, 0x3a, 0x3a, 0x6d, 0x61, // st::min(fast::ma
+ 0x78, 0x28, 0x5f, 0x32, 0x34, 0x34, 0x2e, 0x78, 0x2c, 0x20, 0x5f, 0x32, 0x34, 0x34, 0x2e, 0x79, // x(_244.x, _244.y
+ 0x29, 0x2c, 0x20, 0x5f, 0x32, 0x34, 0x34, 0x2e, 0x7a, 0x29, 0x29, 0x20, 0x2d, 0x20, 0x30, 0x2e, // ), _244.z)) - 0.
+ 0x35, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x2e, 0x62, 0x67, 0x66, 0x78, 0x5f, // 5;. out.bgfx_
+ 0x46, 0x72, 0x61, 0x67, 0x44, 0x61, 0x74, 0x61, 0x30, 0x20, 0x3d, 0x20, 0x6d, 0x69, 0x78, 0x28, // FragData0 = mix(
+ 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x28, 0x30, 0x2e, 0x30, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, // float4(0.0), flo
+ 0x61, 0x74, 0x34, 0x28, 0x31, 0x2e, 0x30, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, // at4(1.0), float4
+ 0x28, 0x66, 0x61, 0x73, 0x74, 0x3a, 0x3a, 0x63, 0x6c, 0x61, 0x6d, 0x70, 0x28, 0x28, 0x5f, 0x32, // (fast::clamp((_2
+ 0x31, 0x36, 0x20, 0x2f, 0x20, 0x66, 0x77, 0x69, 0x64, 0x74, 0x68, 0x28, 0x5f, 0x32, 0x31, 0x36, // 16 / fwidth(_216
+ 0x29, 0x29, 0x20, 0x2b, 0x20, 0x30, 0x2e, 0x35, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x2c, 0x20, 0x31, // )) + 0.5, 0.0, 1
+ 0x2e, 0x30, 0x29, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, // .0)));. retur
+ 0x6e, 0x20, 0x6f, 0x75, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x00, 0x00, 0x30, 0x00, // n out;.}....0.
};
extern const uint8_t* fs_texture_msdf_pssl;
extern const uint32_t fs_texture_msdf_pssl_size;
diff --git a/3rdparty/bgfx/tools/texturev/fs_texture_msdf.sc b/3rdparty/bgfx/tools/texturev/fs_texture_msdf.sc
index 224cca0d4e7..4adbe3d1974 100644
--- a/3rdparty/bgfx/tools/texturev/fs_texture_msdf.sc
+++ b/3rdparty/bgfx/tools/texturev/fs_texture_msdf.sc
@@ -1,8 +1,8 @@
$input v_texcoord0, v_color0
/*
- * Copyright 2011-2018 Branimir Karadzic. All rights reserved.
- * License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause
+ * Copyright 2011-2022 Branimir Karadzic. All rights reserved.
+ * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE
*/
#include "common.sh"
diff --git a/3rdparty/bgfx/tools/texturev/fs_texture_sdf.bin.h b/3rdparty/bgfx/tools/texturev/fs_texture_sdf.bin.h
index 3babccd2aff..c3a65c654ac 100644
--- a/3rdparty/bgfx/tools/texturev/fs_texture_sdf.bin.h
+++ b/3rdparty/bgfx/tools/texturev/fs_texture_sdf.bin.h
@@ -1,301 +1,338 @@
-static const uint8_t fs_texture_sdf_glsl[575] =
+static const uint8_t fs_texture_sdf_glsl[586] =
{
- 0x46, 0x53, 0x48, 0x06, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x08, 0x75, // FSH............u
- 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x02, 0x01, 0x00, 0x00, 0x01, 0x00, 0x0a, 0x73, 0x5f, // _params.......s_
- 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x0c, 0x02, // texColor........
- 0x00, 0x00, 0x76, 0x61, 0x72, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x76, // ..varying vec3 v
- 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, // _texcoord0;.unif
- 0x6f, 0x72, 0x6d, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, // orm vec4 u_param
- 0x73, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, // s;.uniform sampl
- 0x65, 0x72, 0x32, 0x44, 0x20, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x3b, // er2D s_texColor;
- 0x0a, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x28, 0x29, 0x0a, 0x7b, 0x0a, // .void main ().{.
- 0x20, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x3b, // vec4 tmpvar_1;
- 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x20, 0x3d, 0x20, 0x74, 0x65, // . tmpvar_1 = te
- 0x78, 0x74, 0x75, 0x72, 0x65, 0x32, 0x44, 0x4c, 0x6f, 0x64, 0x20, 0x28, 0x73, 0x5f, 0x74, 0x65, // xture2DLod (s_te
- 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x2c, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, // xColor, v_texcoo
- 0x72, 0x64, 0x30, 0x2e, 0x78, 0x79, 0x2c, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, // rd0.xy, u_params
- 0x2e, 0x78, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x74, 0x6d, 0x70, // .x);. float tmp
- 0x76, 0x61, 0x72, 0x5f, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // var_2;. tmpvar_
- 0x32, 0x20, 0x3d, 0x20, 0x28, 0x61, 0x62, 0x73, 0x28, 0x64, 0x46, 0x64, 0x78, 0x28, 0x74, 0x6d, // 2 = (abs(dFdx(tm
- 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x29, 0x29, 0x20, 0x2b, 0x20, 0x61, 0x62, 0x73, // pvar_1.x)) + abs
- 0x28, 0x64, 0x46, 0x64, 0x79, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x78, // (dFdy(tmpvar_1.x
- 0x29, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x65, 0x64, 0x67, // )));. float edg
- 0x65, 0x30, 0x5f, 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x65, 0x64, 0x67, 0x65, 0x30, 0x5f, 0x33, 0x20, // e0_3;. edge0_3
- 0x3d, 0x20, 0x28, 0x30, 0x2e, 0x35, 0x20, 0x2d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // = (0.5 - tmpvar_
- 0x32, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x74, 0x6d, 0x70, 0x76, // 2);. float tmpv
- 0x61, 0x72, 0x5f, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x34, // ar_4;. tmpvar_4
- 0x20, 0x3d, 0x20, 0x63, 0x6c, 0x61, 0x6d, 0x70, 0x20, 0x28, 0x28, 0x28, 0x74, 0x6d, 0x70, 0x76, // = clamp (((tmpv
- 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x20, 0x2d, 0x20, 0x65, 0x64, 0x67, 0x65, 0x30, 0x5f, 0x33, // ar_1.x - edge0_3
- 0x29, 0x20, 0x2f, 0x20, 0x28, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x28, 0x30, 0x2e, 0x35, 0x20, 0x2b, // ) / (. (0.5 +
- 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x2d, 0x20, // tmpvar_2). -
- 0x65, 0x64, 0x67, 0x65, 0x30, 0x5f, 0x33, 0x29, 0x29, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x2c, 0x20, // edge0_3)), 0.0,
- 0x31, 0x2e, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, // 1.0);. gl_FragC
- 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x76, 0x65, 0x63, 0x34, 0x28, 0x63, 0x6c, 0x61, 0x6d, // olor = vec4(clam
+ 0x46, 0x53, 0x48, 0x0b, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x09, 0x75, // FSH............u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x02, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // _params0........
+ 0x00, 0x00, 0x0a, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x00, 0x01, 0x00, // ...s_texColor...
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x02, 0x00, 0x00, 0x76, 0x61, 0x72, 0x79, 0x69, // ...........varyi
+ 0x6e, 0x67, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, // ng vec3 v_texcoo
+ 0x72, 0x64, 0x30, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x76, 0x65, 0x63, // rd0;.uniform vec
+ 0x34, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x3b, 0x0a, 0x75, 0x6e, 0x69, // 4 u_params0;.uni
+ 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x32, 0x44, 0x20, 0x73, // form sampler2D s
+ 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x3b, 0x0a, 0x76, 0x6f, 0x69, 0x64, 0x20, // _texColor;.void
+ 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x76, 0x65, 0x63, 0x34, // main ().{. vec4
+ 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, // tmpvar_1;. tmp
+ 0x76, 0x61, 0x72, 0x5f, 0x31, 0x20, 0x3d, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x32, // var_1 = texture2
+ 0x44, 0x4c, 0x6f, 0x64, 0x20, 0x28, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, // DLod (s_texColor
+ 0x2c, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x2e, 0x78, 0x79, // , v_texcoord0.xy
+ 0x2c, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x2e, 0x78, 0x29, 0x3b, 0x0a, // , u_params0.x);.
+ 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, // float tmpvar_2
+ 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x20, 0x3d, 0x20, 0x28, // ;. tmpvar_2 = (
+ 0x61, 0x62, 0x73, 0x28, 0x64, 0x46, 0x64, 0x78, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // abs(dFdx(tmpvar_
+ 0x31, 0x2e, 0x78, 0x29, 0x29, 0x20, 0x2b, 0x20, 0x61, 0x62, 0x73, 0x28, 0x64, 0x46, 0x64, 0x79, // 1.x)) + abs(dFdy
+ 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x29, 0x29, 0x29, 0x3b, 0x0a, // (tmpvar_1.x)));.
+ 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x65, 0x64, 0x67, 0x65, 0x30, 0x5f, 0x33, 0x3b, // float edge0_3;
+ 0x0a, 0x20, 0x20, 0x65, 0x64, 0x67, 0x65, 0x30, 0x5f, 0x33, 0x20, 0x3d, 0x20, 0x28, 0x30, 0x2e, // . edge0_3 = (0.
+ 0x35, 0x20, 0x2d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x29, 0x3b, 0x0a, 0x20, // 5 - tmpvar_2);.
+ 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x34, 0x3b, // float tmpvar_4;
+ 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x34, 0x20, 0x3d, 0x20, 0x63, 0x6c, // . tmpvar_4 = cl
+ 0x61, 0x6d, 0x70, 0x20, 0x28, 0x28, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, // amp (((tmpvar_1.
+ 0x78, 0x20, 0x2d, 0x20, 0x65, 0x64, 0x67, 0x65, 0x30, 0x5f, 0x33, 0x29, 0x20, 0x2f, 0x20, 0x28, // x - edge0_3) / (
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x28, 0x30, 0x2e, 0x35, 0x20, 0x2b, 0x20, 0x74, 0x6d, 0x70, 0x76, // . (0.5 + tmpv
+ 0x61, 0x72, 0x5f, 0x32, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x65, 0x64, 0x67, 0x65, 0x30, // ar_2). - edge0
+ 0x5f, 0x33, 0x29, 0x29, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x3b, // _3)), 0.0, 1.0);
+ 0x0a, 0x20, 0x20, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, // . gl_FragColor
+ 0x3d, 0x20, 0x76, 0x65, 0x63, 0x34, 0x28, 0x63, 0x6c, 0x61, 0x6d, 0x70, 0x20, 0x28, 0x28, 0x74, // = vec4(clamp ((t
+ 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x34, 0x20, 0x2a, 0x20, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, // mpvar_4 * (tmpva
+ 0x72, 0x5f, 0x34, 0x20, 0x2a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x28, 0x33, 0x2e, 0x30, 0x20, // r_4 * . (3.0
+ 0x2d, 0x20, 0x28, 0x32, 0x2e, 0x30, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // - (2.0 * tmpvar_
+ 0x34, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x29, 0x29, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x2c, 0x20, 0x31, // 4)). )), 0.0, 1
+ 0x2e, 0x30, 0x29, 0x29, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x00, // .0));.}...
+};
+static const uint8_t fs_texture_sdf_essl[666] =
+{
+ 0x46, 0x53, 0x48, 0x0b, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x09, 0x75, // FSH............u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x02, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // _params0........
+ 0x00, 0x00, 0x0a, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x00, 0x01, 0x00, // ...s_texColor...
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5e, 0x02, 0x00, 0x00, 0x76, 0x61, 0x72, 0x79, 0x69, // .......^...varyi
+ 0x6e, 0x67, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x76, 0x5f, // ng highp vec3 v_
+ 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, // texcoord0;.unifo
+ 0x72, 0x6d, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x75, 0x5f, // rm highp vec4 u_
+ 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, // params0;.uniform
+ 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x32, 0x44, 0x20, 0x73, 0x5f, 0x74, 0x65, 0x78, // sampler2D s_tex
+ 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x3b, 0x0a, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x6d, 0x61, 0x69, 0x6e, // Color;.void main
+ 0x20, 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x76, 0x65, 0x63, // ().{. lowp vec
+ 0x34, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, // 4 tmpvar_1;. tm
+ 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x20, 0x3d, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, // pvar_1 = texture
+ 0x32, 0x44, 0x4c, 0x6f, 0x64, 0x20, 0x20, 0x20, 0x20, 0x28, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, // 2DLod (s_texC
+ 0x6f, 0x6c, 0x6f, 0x72, 0x2c, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, // olor, v_texcoord
+ 0x30, 0x2e, 0x78, 0x79, 0x2c, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x2e, // 0.xy, u_params0.
+ 0x78, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, // x);. lowp float
+ 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, // tmpvar_2;. tmp
+ 0x76, 0x61, 0x72, 0x5f, 0x32, 0x20, 0x3d, 0x20, 0x28, 0x61, 0x62, 0x73, 0x28, 0x64, 0x46, 0x64, // var_2 = (abs(dFd
+ 0x78, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x29, 0x29, 0x20, 0x2b, // x(tmpvar_1.x)) +
+ 0x20, 0x61, 0x62, 0x73, 0x28, 0x64, 0x46, 0x64, 0x79, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // abs(dFdy(tmpvar
+ 0x5f, 0x31, 0x2e, 0x78, 0x29, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, 0x20, // _1.x)));. lowp
+ 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x65, 0x64, 0x67, 0x65, 0x30, 0x5f, 0x33, 0x3b, 0x0a, 0x20, // float edge0_3;.
+ 0x20, 0x65, 0x64, 0x67, 0x65, 0x30, 0x5f, 0x33, 0x20, 0x3d, 0x20, 0x28, 0x30, 0x2e, 0x35, 0x20, // edge0_3 = (0.5
+ 0x2d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x6c, // - tmpvar_2);. l
+ 0x6f, 0x77, 0x70, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // owp float tmpvar
+ 0x5f, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x34, 0x20, 0x3d, // _4;. tmpvar_4 =
+ 0x20, 0x63, 0x6c, 0x61, 0x6d, 0x70, 0x20, 0x28, 0x28, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // clamp (((tmpvar
+ 0x5f, 0x31, 0x2e, 0x78, 0x20, 0x2d, 0x20, 0x65, 0x64, 0x67, 0x65, 0x30, 0x5f, 0x33, 0x29, 0x20, // _1.x - edge0_3)
+ 0x2f, 0x20, 0x28, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x28, 0x30, 0x2e, 0x35, 0x20, 0x2b, 0x20, 0x74, // / (. (0.5 + t
+ 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x65, 0x64, // mpvar_2). - ed
+ 0x67, 0x65, 0x30, 0x5f, 0x33, 0x29, 0x29, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, // ge0_3)), 0.0, 1.
+ 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, // 0);. lowp vec4
+ 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x35, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, // tmpvar_5;. tmpv
+ 0x61, 0x72, 0x5f, 0x35, 0x20, 0x3d, 0x20, 0x76, 0x65, 0x63, 0x34, 0x28, 0x63, 0x6c, 0x61, 0x6d, // ar_5 = vec4(clam
0x70, 0x20, 0x28, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x34, 0x20, 0x2a, 0x20, 0x28, // p ((tmpvar_4 * (
0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x34, 0x20, 0x2a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, // tmpvar_4 * .
0x28, 0x33, 0x2e, 0x30, 0x20, 0x2d, 0x20, 0x28, 0x32, 0x2e, 0x30, 0x20, 0x2a, 0x20, 0x74, 0x6d, // (3.0 - (2.0 * tm
0x70, 0x76, 0x61, 0x72, 0x5f, 0x34, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x29, 0x29, 0x2c, 0x20, 0x30, // pvar_4)). )), 0
- 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x29, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x00, // .0, 1.0));.}...
+ 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x67, 0x6c, 0x5f, // .0, 1.0));. gl_
+ 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, // FragColor = tmpv
+ 0x61, 0x72, 0x5f, 0x35, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x00, // ar_5;.}...
};
-static const uint8_t fs_texture_sdf_spv[1637] =
+static const uint8_t fs_texture_sdf_spv[1551] =
{
- 0x46, 0x53, 0x48, 0x06, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x75, // FSH............u
- 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x01, 0x00, 0x00, 0x01, 0x00, 0x40, 0x06, 0x00, // _params......@..
- 0x00, 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x07, 0x00, 0x08, 0x00, 0xe2, 0x00, 0x00, // ...#............
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, // ................
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, // .....GLSL.std.45
- 0x30, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // 0...............
- 0x00, 0x0f, 0x00, 0x08, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, // .............mai
- 0x6e, 0x00, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, // n...............
- 0x00, 0x10, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, // ................
- 0x00, 0x05, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, // ................
- 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x09, 0x00, 0x00, // .main...........
- 0x00, 0x42, 0x67, 0x66, 0x78, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x32, 0x44, 0x00, 0x00, // .BgfxSampler2D..
- 0x00, 0x06, 0x00, 0x06, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6d, 0x5f, 0x73, // .............m_s
- 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x09, 0x00, 0x00, // ampler..........
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x6d, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x00, 0x00, // .....m_texture..
- 0x00, 0x05, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, // .....)...s_texCo
- 0x6c, 0x6f, 0x72, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x73, 0x5f, 0x74, // lor......+...s_t
- 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x00, 0x00, // exColorSampler..
- 0x00, 0x05, 0x00, 0x07, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, // .........s_texCo
- 0x6c, 0x6f, 0x72, 0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, // lorTexture......
- 0x00, 0x58, 0x00, 0x00, 0x00, 0x24, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x00, 0x06, 0x00, 0x06, // .X...$Global....
- 0x00, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, // .X.......u_param
- 0x73, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // s........Z......
- 0x00, 0x05, 0x00, 0x05, 0x00, 0x81, 0x00, 0x00, 0x00, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, // .........v_color
- 0x30, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x85, 0x00, 0x00, 0x00, 0x76, 0x5f, 0x74, // 0............v_t
- 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x00, 0x05, 0x00, 0x06, 0x00, 0x90, 0x00, 0x00, // excoord0........
- 0x00, 0x62, 0x67, 0x66, 0x78, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x44, 0x61, 0x74, 0x61, 0x30, 0x00, // .bgfx_FragData0.
- 0x00, 0x47, 0x00, 0x04, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .G......."......
- 0x00, 0x47, 0x00, 0x04, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .G.......!......
- 0x00, 0x48, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, // .H...X.......#..
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x58, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, // .....G...X......
- 0x00, 0x47, 0x00, 0x04, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .G...Z..."......
- 0x00, 0x47, 0x00, 0x04, 0x00, 0x81, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .G..............
- 0x00, 0x47, 0x00, 0x04, 0x00, 0x85, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // .G..............
- 0x00, 0x47, 0x00, 0x04, 0x00, 0x90, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .G..............
- 0x00, 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, // .........!......
- 0x00, 0x02, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x02, 0x00, 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, // ................
- 0x00, 0x07, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x08, 0x00, 0x00, // ..... ..........
- 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x04, // ................
- 0x00, 0x09, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, // ................
- 0x00, 0x0b, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, // ................
- 0x00, 0x0e, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, // ................
- 0x00, 0x20, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, // . ........... ..
- 0x00, 0x28, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, // .(...........;..
- 0x00, 0x28, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, // .(...)....... ..
- 0x00, 0x2a, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, // .*...........;..
- 0x00, 0x2a, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, // .*...+....... ..
- 0x00, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, // .-...........;..
- 0x00, 0x2d, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, // .-..............
- 0x00, 0x31, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, // .1... .......+..
- 0x00, 0x31, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, // .1...6..........
- 0x00, 0x3a, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, // .:.......+......
- 0x00, 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x07, 0x00, 0x0e, 0x00, 0x00, // .O.......,......
- 0x00, 0x53, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, // .S...O...O...O..
- 0x00, 0x4f, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, // .O...+.......U..
- 0x00, 0x00, 0x00, 0x80, 0x3f, 0x2c, 0x00, 0x07, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, // ....?,.......V..
- 0x00, 0x55, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, // .U...U...U...U..
- 0x00, 0x1e, 0x00, 0x03, 0x00, 0x58, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, // .....X....... ..
- 0x00, 0x59, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, // .Y.......X...;..
- 0x00, 0x59, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, // .Y...Z..........
- 0x00, 0x61, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, // .a... .......+..
- 0x00, 0x61, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, // .a...b....... ..
- 0x00, 0x63, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, // .c...........+..
- 0x00, 0x07, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, 0x00, 0x04, // .....l......? ..
- 0x00, 0x80, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, // .............;..
- 0x00, 0x80, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, // ............. ..
- 0x00, 0x84, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, // ......... ...;..
- 0x00, 0x84, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, // ............. ..
- 0x00, 0x8f, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, // .............;..
- 0x00, 0x8f, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, // .............6..
- 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, // ................
- 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, // .........=......
- 0x00, 0x2c, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, // .,...+...=......
- 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x09, 0x00, 0x00, // ./.......P......
- 0x00, 0x30, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, // .0...,.../...>..
- 0x00, 0x29, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, // .)...0...=... ..
- 0x00, 0x86, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, // .........=......
- 0x00, 0xb3, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, // .....)...Q......
- 0x00, 0xe0, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, // .............Q..
- 0x00, 0x08, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // ................
- 0x00, 0x4f, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, // .O..............
- 0x00, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, // .............A..
- 0x00, 0x63, 0x00, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, // .c.......Z...6..
- 0x00, 0x62, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, // .b...=..........
- 0x00, 0xb6, 0x00, 0x00, 0x00, 0x56, 0x00, 0x05, 0x00, 0x3a, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, // .....V...:......
- 0x00, 0xe1, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x58, 0x00, 0x07, 0x00, 0x0e, 0x00, 0x00, // .........X......
- 0x00, 0xd8, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, // ................
- 0x00, 0xb7, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, // .....Q..........
- 0x00, 0xd8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, // ................
- 0x00, 0xbb, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, // ................
- 0x00, 0xbe, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, // .....l..........
- 0x00, 0x07, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, // .........l......
- 0x00, 0x0c, 0x00, 0x08, 0x00, 0x07, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // ................
- 0x00, 0x31, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, // .1..............
- 0x00, 0x0c, 0x00, 0x08, 0x00, 0x07, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // ................
- 0x00, 0x2b, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, // .+.......O...U..
- 0x00, 0x50, 0x00, 0x07, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, // .P..............
- 0x00, 0xc4, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, // ................
- 0x00, 0x0e, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, // ................
- 0x00, 0x53, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, // .S...V.......>..
- 0x00, 0x90, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, // .............8..
- 0x00, 0x00, 0x00, 0x10, 0x00, // .....
+ 0x46, 0x53, 0x48, 0x0b, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x09, 0x75, // FSH............u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // _params0........
+ 0xfd, 0x7f, 0x0a, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x00, 0x02, // ...s_texColor0..
+ 0x00, 0x00, 0x00, 0x00, 0x02, 0x1a, 0x00, 0xd0, 0x05, 0x00, 0x00, 0x03, 0x02, 0x23, 0x07, 0x00, // .............#..
+ 0x00, 0x01, 0x00, 0x0a, 0x00, 0x08, 0x00, 0xe9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, // ................
+ 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, // ...............G
+ 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0e, // LSL.std.450.....
+ 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x09, 0x00, 0x04, // ................
+ 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x82, // .......main.....
+ 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x10, // ................
+ 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x05, // ................
+ 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, // ...............m
+ 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x73, // ain........,...s
+ 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, // _texColorSampler
+ 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x73, 0x5f, 0x74, 0x65, 0x78, // ......./...s_tex
+ 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x00, 0x00, 0x00, 0x05, // ColorTexture....
+ 0x00, 0x06, 0x00, 0x59, 0x00, 0x00, 0x00, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0x6c, // ...Y...UniformBl
+ 0x6f, 0x63, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x59, 0x00, 0x00, 0x00, 0x00, // ock........Y....
+ 0x00, 0x00, 0x00, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x00, 0x00, 0x00, 0x05, // ...u_params0....
+ 0x00, 0x03, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x82, // ...[............
+ 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x00, // ...gl_FragCoord.
+ 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x85, 0x00, 0x00, 0x00, 0x76, 0x5f, 0x63, 0x6f, 0x6c, // ...........v_col
+ 0x6f, 0x72, 0x30, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x89, 0x00, 0x00, 0x00, 0x76, // or0............v
+ 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x00, 0x05, 0x00, 0x06, 0x00, 0x96, // _texcoord0......
+ 0x00, 0x00, 0x00, 0x62, 0x67, 0x66, 0x78, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x44, 0x61, 0x74, 0x61, // ...bgfx_FragData
+ 0x30, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, // 0..G...,..."....
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x12, // ...G...,...!....
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, // ...G.../..."....
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, // ...G.../...!....
+ 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, // ...H...Y.......#
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x59, 0x00, 0x00, 0x00, 0x02, // .......G...Y....
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, // ...G...[..."....
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, // ...G...[...!....
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x82, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0f, // ...G............
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x85, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, // ...G............
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x89, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x01, // ...G............
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x96, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, // ...G............
+ 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, // ...........!....
+ 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x02, 0x00, 0x06, 0x00, 0x00, 0x00, 0x16, // ................
+ 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x08, // ....... ........
+ 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, // ................
+ 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x17, // ................
+ 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x17, // ................
+ 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, // ... ...........
+ 0x00, 0x04, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3b, // ...+...........;
+ 0x00, 0x04, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, // ...+...,.......
+ 0x00, 0x04, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x3b, // ...............;
+ 0x00, 0x04, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, // ......./........
+ 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, // ...2... .......+
+ 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, // ...2...7........
+ 0x00, 0x03, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, // ...;.......+....
+ 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x07, 0x00, 0x0e, // ...P.......,....
+ 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x50, // ...T...P...P...P
+ 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x56, // ...P...+.......V
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x2c, 0x00, 0x07, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x57, // ......?,.......W
+ 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x56, // ...V...V...V...V
+ 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x59, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x20, // .......Y.......
+ 0x00, 0x04, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x3b, // ...Z.......Y...;
+ 0x00, 0x04, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, // ...Z...[........
+ 0x00, 0x04, 0x00, 0x62, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, // ...b... .......+
+ 0x00, 0x04, 0x00, 0x62, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, // ...b...c.......
+ 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x2b, // ...d...........+
+ 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, // .......m......?
+ 0x00, 0x04, 0x00, 0x81, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x3b, // ...............;
+ 0x00, 0x04, 0x00, 0x81, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3b, // ...............;
+ 0x00, 0x04, 0x00, 0x81, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, // ...............
+ 0x00, 0x04, 0x00, 0x88, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3b, // ........... ...;
+ 0x00, 0x04, 0x00, 0x88, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, // ...............
+ 0x00, 0x04, 0x00, 0x95, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x3b, // ...............;
+ 0x00, 0x04, 0x00, 0x95, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x36, // ...............6
+ 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, // ................
+ 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, // ...........=....
+ 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x08, // ...-...,...=....
+ 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x20, // ...0.../...=...
+ 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x0b, // ...........O....
+ 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0x00, // ................
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x64, 0x00, 0x00, 0x00, 0xbe, // .......A...d....
+ 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x3d, // ...[...7...c...=
+ 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, 0x56, // ...............V
+ 0x00, 0x05, 0x00, 0x3b, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x2d, // ...;.......0...-
+ 0x00, 0x00, 0x00, 0x58, 0x00, 0x07, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0xdf, // ...X............
+ 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0x51, // ...............Q
+ 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0x00, // ................
+ 0x00, 0x00, 0x00, 0xd1, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xc1, // ................
+ 0x00, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, 0x6d, // ...............m
+ 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0xc9, // ................
+ 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x07, // ...m............
+ 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0xc6, // ...........1....
+ 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x07, // ................
+ 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0xcb, // ...........+....
+ 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, 0x0e, // ...P...V...P....
+ 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, // ................
+ 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xe8, // ................
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x57, // ...........T...W
+ 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x96, 0x00, 0x00, 0x00, 0xe8, // .......>........
+ 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00, // .......8.......
};
-static const uint8_t fs_texture_sdf_dx9[535] =
+static const uint8_t fs_texture_sdf_dx9[544] =
{
- 0x46, 0x53, 0x48, 0x06, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0a, 0x73, // FSH............s
- 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x01, 0x00, 0x00, 0x01, 0x00, 0x08, // _texColor0......
- 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x01, 0x00, 0x00, 0x01, 0x00, 0xe4, 0x01, // u_params........
- 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xfe, 0xff, 0x2c, 0x00, 0x43, 0x54, 0x41, 0x42, 0x1c, 0x00, // ........,.CTAB..
- 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0x02, 0x00, 0x00, 0x00, 0x1c, 0x00, // ................
- 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x03, 0x00, // ......|...D.....
- 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, // ......P.......`.
- 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, // ..........l.....
- 0x00, 0x00, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x00, 0xab, 0x04, 0x00, // ..s_texColor....
- 0x0c, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, // ..............u_
- 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x00, 0xab, 0xab, 0xab, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, // params..........
- 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x73, 0x5f, 0x33, 0x5f, 0x30, // ..........ps_3_0
- 0x00, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, // .Microsoft (R) H
- 0x4c, 0x53, 0x4c, 0x20, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x69, // LSL Shader Compi
- 0x6c, 0x65, 0x72, 0x20, 0x31, 0x30, 0x2e, 0x31, 0x00, 0xab, 0x51, 0x00, 0x00, 0x05, 0x01, 0x00, // ler 10.1..Q.....
- 0x0f, 0xa0, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, // .....?.......?..
- 0x00, 0x00, 0x51, 0x00, 0x00, 0x05, 0x02, 0x00, 0x0f, 0xa0, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, // ..Q.............
- 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x02, 0x05, 0x00, // @@..............
- 0x00, 0x80, 0x00, 0x00, 0x03, 0x90, 0x1f, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x90, 0x00, 0x08, // ................
- 0x0f, 0xa0, 0x05, 0x00, 0x00, 0x03, 0x00, 0x00, 0x07, 0x80, 0x01, 0x00, 0xd0, 0xa0, 0x00, 0x00, // ................
- 0xc4, 0x90, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x08, 0x80, 0x00, 0x00, 0x00, 0xa0, 0x5f, 0x00, // .............._.
- 0x00, 0x03, 0x00, 0x00, 0x0f, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x00, 0x08, 0xe4, 0xa0, 0x5b, 0x00, // ..............[.
- 0x00, 0x02, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x00, 0x80, 0x5c, 0x00, 0x00, 0x02, 0x00, 0x00, // ................
- 0x04, 0x80, 0x00, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x03, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, // ................
- 0xaa, 0x8b, 0x00, 0x00, 0x55, 0x8b, 0x02, 0x00, 0x00, 0x03, 0x00, 0x00, 0x04, 0x80, 0x00, 0x00, // ....U...........
- 0x55, 0x80, 0x01, 0x00, 0xaa, 0xa0, 0x02, 0x00, 0x00, 0x03, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, // U...............
- 0x55, 0x81, 0x01, 0x00, 0xaa, 0xa0, 0x02, 0x00, 0x00, 0x03, 0x00, 0x00, 0x05, 0x80, 0x00, 0x00, // U...............
- 0x55, 0x81, 0x00, 0x00, 0xe4, 0x80, 0x06, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, // U...............
- 0xaa, 0x80, 0x05, 0x00, 0x00, 0x03, 0x00, 0x00, 0x11, 0x80, 0x00, 0x00, 0x55, 0x80, 0x00, 0x00, // ............U...
- 0x00, 0x80, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x00, 0x80, 0x02, 0x00, // ................
- 0x00, 0xa0, 0x02, 0x00, 0x55, 0xa0, 0x05, 0x00, 0x00, 0x03, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, // ....U...........
- 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x05, 0x00, 0x00, 0x03, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, // ................
- 0x00, 0x80, 0x00, 0x00, 0x55, 0x80, 0x01, 0x00, 0x00, 0x02, 0x00, 0x08, 0x1f, 0x80, 0x00, 0x00, // ....U...........
- 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, // .......
+ 0x46, 0x53, 0x48, 0x0b, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0a, 0x73, // FSH............s
+ 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, // _texColor0......
+ 0x00, 0x00, 0x00, 0x09, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x12, 0x01, 0x00, // ....u_params0...
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x01, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xfe, // ................
+ 0xff, 0x2c, 0x00, 0x43, 0x54, 0x41, 0x42, 0x1c, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, // .,.CTAB.........
+ 0x03, 0xff, 0xff, 0x02, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x7c, // ...............|
+ 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x50, // ...D...........P
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, // .......`........
+ 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x5f, 0x74, 0x65, 0x78, // ...l.......s_tex
+ 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x00, 0xab, 0x04, 0x00, 0x0c, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, // Color...........
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, // .......u_params0
+ 0x00, 0xab, 0xab, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, // ................
+ 0x00, 0x00, 0x00, 0x70, 0x73, 0x5f, 0x33, 0x5f, 0x30, 0x00, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, // ...ps_3_0.Micros
+ 0x6f, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4c, 0x53, 0x4c, 0x20, 0x53, 0x68, 0x61, // oft (R) HLSL Sha
+ 0x64, 0x65, 0x72, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x20, 0x31, 0x30, 0x2e, // der Compiler 10.
+ 0x31, 0x00, 0xab, 0x51, 0x00, 0x00, 0x05, 0x01, 0x00, 0x0f, 0xa0, 0x00, 0x00, 0x80, 0x3f, 0x00, // 1..Q..........?.
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x05, 0x02, // ......?....Q....
+ 0x00, 0x0f, 0xa0, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, // .........@@.....
+ 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x02, 0x05, 0x00, 0x00, 0x80, 0x00, 0x00, 0x03, 0x90, 0x1f, // ................
+ 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x90, 0x00, 0x08, 0x0f, 0xa0, 0x05, 0x00, 0x00, 0x03, 0x00, // ................
+ 0x00, 0x07, 0x80, 0x01, 0x00, 0xd0, 0xa0, 0x00, 0x00, 0xc4, 0x90, 0x01, 0x00, 0x00, 0x02, 0x00, // ................
+ 0x00, 0x08, 0x80, 0x00, 0x00, 0x00, 0xa0, 0x5f, 0x00, 0x00, 0x03, 0x00, 0x00, 0x0f, 0x80, 0x00, // ......._........
+ 0x00, 0xe4, 0x80, 0x00, 0x08, 0xe4, 0xa0, 0x5b, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x80, 0x00, // .......[........
+ 0x00, 0x00, 0x80, 0x5c, 0x00, 0x00, 0x02, 0x00, 0x00, 0x04, 0x80, 0x00, 0x00, 0x00, 0x80, 0x02, // ................
+ 0x00, 0x00, 0x03, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0xaa, 0x8b, 0x00, 0x00, 0x55, 0x8b, 0x02, // .............U..
+ 0x00, 0x00, 0x03, 0x00, 0x00, 0x04, 0x80, 0x00, 0x00, 0x55, 0x80, 0x01, 0x00, 0xaa, 0xa0, 0x02, // .........U......
+ 0x00, 0x00, 0x03, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x55, 0x81, 0x01, 0x00, 0xaa, 0xa0, 0x02, // .........U......
+ 0x00, 0x00, 0x03, 0x00, 0x00, 0x05, 0x80, 0x00, 0x00, 0x55, 0x81, 0x00, 0x00, 0xe4, 0x80, 0x06, // .........U......
+ 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0xaa, 0x80, 0x05, 0x00, 0x00, 0x03, 0x00, // ................
+ 0x00, 0x11, 0x80, 0x00, 0x00, 0x55, 0x80, 0x00, 0x00, 0x00, 0x80, 0x04, 0x00, 0x00, 0x04, 0x00, // .....U..........
+ 0x00, 0x02, 0x80, 0x00, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0xa0, 0x02, 0x00, 0x55, 0xa0, 0x05, // .............U..
+ 0x00, 0x00, 0x03, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x05, // ................
+ 0x00, 0x00, 0x03, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x55, 0x80, 0x01, // .............U..
+ 0x00, 0x00, 0x02, 0x00, 0x08, 0x1f, 0x80, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, // ................
};
-static const uint8_t fs_texture_sdf_dx11[778] =
+static const uint8_t fs_texture_sdf_dx11[808] =
{
- 0x46, 0x53, 0x48, 0x06, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x08, 0x75, // FSH............u
- 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0a, 0x73, 0x5f, // _params.......s_
- 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x01, 0x00, 0x00, 0x01, 0x00, 0xd4, 0x02, // texColor0.......
- 0x00, 0x00, 0x44, 0x58, 0x42, 0x43, 0x03, 0x0d, 0x91, 0x21, 0x8e, 0x75, 0xa6, 0x21, 0xba, 0xe2, // ..DXBC...!.u.!..
- 0x0d, 0xbb, 0xa4, 0xa3, 0xae, 0x51, 0x01, 0x00, 0x00, 0x00, 0xd4, 0x02, 0x00, 0x00, 0x03, 0x00, // .....Q..........
- 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, 0x49, 0x53, // ..,...........IS
- 0x47, 0x4e, 0x6c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x50, 0x00, // GNl...........P.
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
- 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
- 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x62, 0x00, // ..............b.
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, // ................
- 0x00, 0x00, 0x07, 0x03, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, // ......SV_POSITIO
- 0x4e, 0x00, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, // N.COLOR.TEXCOORD
- 0x00, 0xab, 0x4f, 0x53, 0x47, 0x4e, 0x2c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, // ..OSGN,.........
- 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, // .. .............
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x54, 0x41, 0x52, // ..........SV_TAR
- 0x47, 0x45, 0x54, 0x00, 0xab, 0xab, 0x53, 0x48, 0x44, 0x52, 0xf8, 0x01, 0x00, 0x00, 0x40, 0x00, // GET...SHDR....@.
- 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x04, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, // ..~...Y...F. ...
- 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x03, 0x00, 0x60, 0x10, 0x00, 0x00, 0x00, // ......Z....`....
- 0x00, 0x00, 0x58, 0x18, 0x00, 0x04, 0x00, 0x70, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, // ..X....p......UU
- 0x00, 0x00, 0x62, 0x10, 0x00, 0x03, 0x32, 0x10, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x65, 0x00, // ..b...2.......e.
- 0x00, 0x03, 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x01, 0x00, // ... ......h.....
- 0x00, 0x00, 0x48, 0x00, 0x00, 0x0c, 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x10, // ..H...........F.
- 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x7e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, // ......F~.......`
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x80, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........ .......
- 0x00, 0x00, 0x0b, 0x00, 0x00, 0x05, 0x22, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, // ......".........
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x05, 0x42, 0x00, 0x10, 0x00, 0x00, 0x00, // ..........B.....
- 0x00, 0x00, 0x0a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x22, 0x00, // ..............".
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x10, 0x80, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, // ......*.........
- 0x00, 0x00, 0x1a, 0x00, 0x10, 0x80, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
- 0x00, 0x07, 0x42, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x10, 0x00, 0x00, 0x00, // ..B.............
- 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x08, 0x22, 0x00, // ...@.....?....".
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x10, 0x80, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, // ..........A.....
- 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x08, 0x52, 0x00, // ...@.....?....R.
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x05, 0x10, 0x80, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, // ......V...A.....
- 0x00, 0x00, 0x06, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x0a, 0x22, 0x00, // ..............".
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, // .......@.....?..
- 0x80, 0x3f, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x80, 0x3f, 0x2a, 0x00, 0x10, 0x00, 0x00, 0x00, // .?...?...?*.....
- 0x00, 0x00, 0x38, 0x20, 0x00, 0x07, 0x12, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, // ..8 ............
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, // ..............2.
- 0x00, 0x09, 0x22, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x10, 0x00, 0x00, 0x00, // ..".............
- 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, // ...@.......@....
- 0x40, 0x40, 0x38, 0x00, 0x00, 0x07, 0x12, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, // @@8.............
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, // ..............8.
- 0x00, 0x07, 0x12, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x10, 0x00, 0x00, 0x00, // ................
- 0x00, 0x00, 0x1a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x0a, 0xf2, 0x20, // ..........3....
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, // ...............@
- 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, // .....?...?...?..
- 0x80, 0x3f, 0x3e, 0x00, 0x00, 0x01, 0x00, 0x00, 0x10, 0x00, // .?>.......
+ 0x46, 0x53, 0x48, 0x0b, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x09, 0x75, // FSH............u
+ 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // _params0........
+ 0x00, 0x00, 0x0a, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x01, 0x00, // ...s_texColor0..
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, // ........s_texCol
+ 0x6f, 0x72, 0x30, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x02, 0x00, 0x00, // or0.............
+ 0x44, 0x58, 0x42, 0x43, 0x03, 0x0d, 0x91, 0x21, 0x8e, 0x75, 0xa6, 0x21, 0xba, 0xe2, 0x0d, 0xbb, // DXBC...!.u.!....
+ 0xa4, 0xa3, 0xae, 0x51, 0x01, 0x00, 0x00, 0x00, 0xd4, 0x02, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, // ...Q............
+ 0x2c, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, 0x49, 0x53, 0x47, 0x4e, // ,...........ISGN
+ 0x6c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, // l...........P...
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
+ 0x0f, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
+ 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, // ............b...
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, // ................
+ 0x07, 0x03, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x00, // ....SV_POSITION.
+ 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x00, 0xab, // COLOR.TEXCOORD..
+ 0x4f, 0x53, 0x47, 0x4e, 0x2c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, // OSGN,...........
+ 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, // ...............
+ 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x54, 0x41, 0x52, 0x47, 0x45, // ........SV_TARGE
+ 0x54, 0x00, 0xab, 0xab, 0x53, 0x48, 0x44, 0x52, 0xf8, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // T...SHDR....@...
+ 0x7e, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x04, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, // ~...Y...F. .....
+ 0x01, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x03, 0x00, 0x60, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ....Z....`......
+ 0x58, 0x18, 0x00, 0x04, 0x00, 0x70, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, 0x00, 0x00, // X....p......UU..
+ 0x62, 0x10, 0x00, 0x03, 0x32, 0x10, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x03, // b...2.......e...
+ 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, // . ......h.......
+ 0x48, 0x00, 0x00, 0x0c, 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x10, 0x10, 0x00, // H...........F...
+ 0x02, 0x00, 0x00, 0x00, 0x46, 0x7e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, // ....F~.......`..
+ 0x00, 0x00, 0x00, 0x00, 0x0a, 0x80, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ...... .........
+ 0x0b, 0x00, 0x00, 0x05, 0x22, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x10, 0x00, // ...."...........
+ 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x05, 0x42, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ........B.......
+ 0x0a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x22, 0x00, 0x10, 0x00, // ............"...
+ 0x00, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x10, 0x80, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ....*...........
+ 0x1a, 0x00, 0x10, 0x80, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, // ................
+ 0x42, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // B...............
+ 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x08, 0x22, 0x00, 0x10, 0x00, // .@.....?...."...
+ 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x10, 0x80, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........A.......
+ 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x08, 0x52, 0x00, 0x10, 0x00, // .@.....?....R...
+ 0x00, 0x00, 0x00, 0x00, 0x56, 0x05, 0x10, 0x80, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ....V...A.......
+ 0x06, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x0a, 0x22, 0x00, 0x10, 0x00, // ............"...
+ 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x80, 0x3f, // .....@.....?...?
+ 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x80, 0x3f, 0x2a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ...?...?*.......
+ 0x38, 0x20, 0x00, 0x07, 0x12, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x10, 0x00, // 8 ..............
+ 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x09, // ............2...
+ 0x22, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // "...............
+ 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, // .@.......@....@@
+ 0x38, 0x00, 0x00, 0x07, 0x12, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x10, 0x00, // 8...............
+ 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x07, // ............8...
+ 0x12, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
+ 0x1a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x0a, 0xf2, 0x20, 0x10, 0x00, // ........3.... ..
+ 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, // .............@..
+ 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x80, 0x3f, // ...?...?...?...?
+ 0x3e, 0x00, 0x00, 0x01, 0x00, 0x00, 0x10, 0x00, // >.......
};
-static const uint8_t fs_texture_sdf_mtl[979] =
+static const uint8_t fs_texture_sdf_mtl[904] =
{
- 0x46, 0x53, 0x48, 0x06, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, // FSH.............
- 0x00, 0x00, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, // ..using namespac
- 0x65, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, // e metal;.struct
- 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x70, // xlatMtlShaderInp
- 0x75, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x76, 0x5f, // ut {. float3 v_
- 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x73, 0x74, // texcoord0;.};.st
- 0x72, 0x75, 0x63, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, // ruct xlatMtlShad
- 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, // erOutput {. flo
- 0x61, 0x74, 0x34, 0x20, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, // at4 gl_FragColor
- 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, // ;.};.struct xlat
- 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, // MtlShaderUniform
- 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x75, 0x5f, 0x70, 0x61, // {. float4 u_pa
- 0x72, 0x61, 0x6d, 0x73, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, // rams;.};.fragmen
- 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x4f, // t xlatMtlShaderO
- 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, // utput xlatMtlMai
- 0x6e, 0x20, 0x28, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, // n (xlatMtlShader
- 0x49, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x69, 0x20, 0x5b, 0x5b, 0x73, // Input _mtl_i [[s
- 0x74, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x5d, 0x5d, 0x2c, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x74, // tage_in]], const
- 0x61, 0x6e, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, 0x65, // ant xlatMtlShade
- 0x72, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x26, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, // rUniform& _mtl_u
- 0x20, 0x5b, 0x5b, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x0a, 0x20, // [[buffer(0)]].
- 0x20, 0x2c, 0x20, 0x20, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x32, 0x64, 0x3c, 0x66, // , texture2d<f
- 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x20, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, // loat> s_texColor
- 0x20, 0x5b, 0x5b, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x2c, // [[texture(0)]],
- 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x73, 0x6d, 0x70, // sampler _mtlsmp
- 0x5f, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x5b, 0x5b, 0x73, 0x61, // _s_texColor [[sa
- 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, // mpler(0)]]).{.
- 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x4f, 0x75, 0x74, // xlatMtlShaderOut
- 0x70, 0x75, 0x74, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x6f, 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x6c, // put _mtl_o;. fl
- 0x6f, 0x61, 0x74, 0x34, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x20, 0x3d, 0x20, // oat4 tmpvar_1 =
- 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x20, 0x3d, 0x20, // 0;. tmpvar_1 =
- 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x2e, 0x73, 0x61, 0x6d, 0x70, 0x6c, // s_texColor.sampl
- 0x65, 0x28, 0x5f, 0x6d, 0x74, 0x6c, 0x73, 0x6d, 0x70, 0x5f, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, // e(_mtlsmp_s_texC
- 0x6f, 0x6c, 0x6f, 0x72, 0x2c, 0x20, 0x28, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x32, 0x29, 0x28, 0x5f, // olor, (float2)(_
- 0x6d, 0x74, 0x6c, 0x5f, 0x69, 0x2e, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, // mtl_i.v_texcoord
- 0x30, 0x2e, 0x78, 0x79, 0x29, 0x2c, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x28, 0x5f, 0x6d, 0x74, // 0.xy), level(_mt
- 0x6c, 0x5f, 0x75, 0x2e, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x78, 0x29, 0x29, // l_u.u_params.x))
- 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // ;. float tmpvar
- 0x5f, 0x32, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // _2 = 0;. tmpvar
- 0x5f, 0x32, 0x20, 0x3d, 0x20, 0x28, 0x61, 0x62, 0x73, 0x28, 0x64, 0x66, 0x64, 0x78, 0x28, 0x74, // _2 = (abs(dfdx(t
- 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x29, 0x29, 0x20, 0x2b, 0x20, 0x61, 0x62, // mpvar_1.x)) + ab
- 0x73, 0x28, 0x64, 0x66, 0x64, 0x79, 0x28, 0x2d, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, // s(dfdy(-tmpvar_1
- 0x2e, 0x78, 0x29, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x65, // .x)));. float e
- 0x64, 0x67, 0x65, 0x30, 0x5f, 0x33, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x65, 0x64, // dge0_3 = 0;. ed
- 0x67, 0x65, 0x30, 0x5f, 0x33, 0x20, 0x3d, 0x20, 0x28, 0x30, 0x2e, 0x35, 0x20, 0x2d, 0x20, 0x74, // ge0_3 = (0.5 - t
- 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, // mpvar_2);. floa
- 0x74, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x34, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x0a, // t tmpvar_4 = 0;.
- 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x34, 0x20, 0x3d, 0x20, 0x63, 0x6c, 0x61, // tmpvar_4 = cla
- 0x6d, 0x70, 0x20, 0x28, 0x28, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x78, // mp (((tmpvar_1.x
- 0x20, 0x2d, 0x20, 0x65, 0x64, 0x67, 0x65, 0x30, 0x5f, 0x33, 0x29, 0x20, 0x2f, 0x20, 0x28, 0x0a, // - edge0_3) / (.
- 0x20, 0x20, 0x20, 0x20, 0x28, 0x30, 0x2e, 0x35, 0x20, 0x2b, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, // (0.5 + tmpva
- 0x72, 0x5f, 0x32, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x65, 0x64, 0x67, 0x65, 0x30, 0x5f, // r_2). - edge0_
- 0x33, 0x29, 0x29, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x3b, 0x0a, // 3)), 0.0, 1.0);.
- 0x20, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x6f, 0x2e, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, // _mtl_o.gl_Frag
- 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x28, 0x63, // Color = float4(c
- 0x6c, 0x61, 0x6d, 0x70, 0x20, 0x28, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x34, 0x20, // lamp ((tmpvar_4
- 0x2a, 0x20, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x34, 0x20, 0x2a, 0x20, 0x0a, 0x20, // * (tmpvar_4 * .
- 0x20, 0x20, 0x20, 0x28, 0x33, 0x2e, 0x30, 0x20, 0x2d, 0x20, 0x28, 0x32, 0x2e, 0x30, 0x20, 0x2a, // (3.0 - (2.0 *
- 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x34, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x29, 0x29, // tmpvar_4)). ))
- 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, // , 0.0, 1.0));.
- 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x6f, 0x3b, 0x0a, 0x7d, // return _mtl_o;.}
- 0x0a, 0x0a, 0x00, // ...
+ 0x46, 0x53, 0x48, 0x0b, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x11, 0x73, // FSH............s
+ 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, // _texColorSampler
+ 0x11, 0x01, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x73, 0x5f, 0x74, 0x65, 0x78, // ...........s_tex
+ 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x11, 0x01, 0xff, 0xff, // ColorTexture....
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, // .......u_params0
+ 0x12, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x73, 0x5f, 0x74, 0x65, 0x78, // ...........s_tex
+ 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, // Color...........
+ 0x03, 0x00, 0x00, 0x23, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3c, 0x6d, 0x65, 0x74, // ...#include <met
+ 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x64, 0x6c, 0x69, 0x62, 0x3e, 0x0a, 0x23, 0x69, 0x6e, 0x63, 0x6c, // al_stdlib>.#incl
+ 0x75, 0x64, 0x65, 0x20, 0x3c, 0x73, 0x69, 0x6d, 0x64, 0x2f, 0x73, 0x69, 0x6d, 0x64, 0x2e, 0x68, // ude <simd/simd.h
+ 0x3e, 0x0a, 0x0a, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, // >..using namespa
+ 0x63, 0x65, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, // ce metal;..struc
+ 0x74, 0x20, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, // t _Global.{.
+ 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x30, // float4 u_params0
+ 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x78, 0x6c, 0x61, // ;.};..struct xla
+ 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x5f, 0x6f, 0x75, 0x74, 0x0a, 0x7b, 0x0a, 0x20, // tMtlMain_out.{.
+ 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x62, 0x67, 0x66, 0x78, 0x5f, 0x46, // float4 bgfx_F
+ 0x72, 0x61, 0x67, 0x44, 0x61, 0x74, 0x61, 0x30, 0x20, 0x5b, 0x5b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, // ragData0 [[color
+ 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, // (0)]];.};..struc
+ 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x6e, // t xlatMtlMain_in
+ 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x76, 0x5f, // .{. float3 v_
+ 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x20, 0x5b, 0x5b, 0x75, 0x73, 0x65, 0x72, // texcoord0 [[user
+ 0x28, 0x6c, 0x6f, 0x63, 0x6e, 0x31, 0x29, 0x5d, 0x5d, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x66, // (locn1)]];.};..f
+ 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, // ragment xlatMtlM
+ 0x61, 0x69, 0x6e, 0x5f, 0x6f, 0x75, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, // ain_out xlatMtlM
+ 0x61, 0x69, 0x6e, 0x28, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x5f, // ain(xlatMtlMain_
+ 0x69, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x5b, 0x5b, 0x73, 0x74, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x6e, // in in [[stage_in
+ 0x5d, 0x5d, 0x2c, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x20, 0x5f, 0x47, 0x6c, // ]], constant _Gl
+ 0x6f, 0x62, 0x61, 0x6c, 0x26, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x20, 0x5b, 0x5b, 0x62, // obal& _mtl_u [[b
+ 0x75, 0x66, 0x66, 0x65, 0x72, 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x2c, 0x20, 0x74, 0x65, 0x78, 0x74, // uffer(0)]], text
+ 0x75, 0x72, 0x65, 0x32, 0x64, 0x3c, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x20, 0x73, 0x5f, 0x74, // ure2d<float> s_t
+ 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x5b, 0x5b, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, // exColor [[textur
+ 0x65, 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x2c, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x20, // e(0)]], sampler
+ 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, // s_texColorSample
+ 0x72, 0x20, 0x5b, 0x5b, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x28, 0x30, 0x29, 0x5d, 0x5d, // r [[sampler(0)]]
+ 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, // ).{. xlatMtlM
+ 0x61, 0x69, 0x6e, 0x5f, 0x6f, 0x75, 0x74, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x7b, 0x7d, // ain_out out = {}
+ 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x5f, 0x32, 0x32, // ;. float4 _22
+ 0x36, 0x20, 0x3d, 0x20, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x2e, 0x73, // 6 = s_texColor.s
+ 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x28, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, // ample(s_texColor
+ 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x2c, 0x20, 0x69, 0x6e, 0x2e, 0x76, 0x5f, 0x74, 0x65, // Sampler, in.v_te
+ 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x2e, 0x78, 0x79, 0x2c, 0x20, 0x6c, 0x65, 0x76, 0x65, // xcoord0.xy, leve
+ 0x6c, 0x28, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x2e, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, // l(_mtl_u.u_param
+ 0x73, 0x30, 0x2e, 0x78, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, // s0.x));. floa
+ 0x74, 0x20, 0x5f, 0x31, 0x39, 0x33, 0x20, 0x3d, 0x20, 0x5f, 0x32, 0x32, 0x36, 0x2e, 0x78, 0x3b, // t _193 = _226.x;
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x5f, 0x31, 0x39, 0x35, 0x20, // . float _195
+ 0x3d, 0x20, 0x66, 0x77, 0x69, 0x64, 0x74, 0x68, 0x28, 0x5f, 0x31, 0x39, 0x33, 0x29, 0x3b, 0x0a, // = fwidth(_193);.
+ 0x20, 0x20, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x2e, 0x62, 0x67, 0x66, 0x78, 0x5f, 0x46, 0x72, 0x61, // out.bgfx_Fra
+ 0x67, 0x44, 0x61, 0x74, 0x61, 0x30, 0x20, 0x3d, 0x20, 0x6d, 0x69, 0x78, 0x28, 0x66, 0x6c, 0x6f, // gData0 = mix(flo
+ 0x61, 0x74, 0x34, 0x28, 0x30, 0x2e, 0x30, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, // at4(0.0), float4
+ 0x28, 0x31, 0x2e, 0x30, 0x29, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x28, 0x66, 0x61, // (1.0), float4(fa
+ 0x73, 0x74, 0x3a, 0x3a, 0x63, 0x6c, 0x61, 0x6d, 0x70, 0x28, 0x73, 0x6d, 0x6f, 0x6f, 0x74, 0x68, // st::clamp(smooth
+ 0x73, 0x74, 0x65, 0x70, 0x28, 0x30, 0x2e, 0x35, 0x20, 0x2d, 0x20, 0x5f, 0x31, 0x39, 0x35, 0x2c, // step(0.5 - _195,
+ 0x20, 0x30, 0x2e, 0x35, 0x20, 0x2b, 0x20, 0x5f, 0x31, 0x39, 0x35, 0x2c, 0x20, 0x5f, 0x31, 0x39, // 0.5 + _195, _19
+ 0x33, 0x29, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x29, 0x29, 0x3b, // 3), 0.0, 1.0)));
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6f, 0x75, 0x74, 0x3b, // . return out;
+ 0x0a, 0x7d, 0x0a, 0x0a, 0x00, 0x00, 0x30, 0x00, // .}....0.
};
extern const uint8_t* fs_texture_sdf_pssl;
extern const uint32_t fs_texture_sdf_pssl_size;
diff --git a/3rdparty/bgfx/tools/texturev/fs_texture_sdf.sc b/3rdparty/bgfx/tools/texturev/fs_texture_sdf.sc
index 1a0f0bbaeed..4f5aff3bd4b 100644
--- a/3rdparty/bgfx/tools/texturev/fs_texture_sdf.sc
+++ b/3rdparty/bgfx/tools/texturev/fs_texture_sdf.sc
@@ -1,8 +1,8 @@
$input v_texcoord0, v_color0
/*
- * Copyright 2011-2018 Branimir Karadzic. All rights reserved.
- * License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause
+ * Copyright 2011-2022 Branimir Karadzic. All rights reserved.
+ * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE
*/
#include "common.sh"
diff --git a/3rdparty/bgfx/tools/texturev/makefile b/3rdparty/bgfx/tools/texturev/makefile
index c5c113b7579..cf80177eab1 100644
--- a/3rdparty/bgfx/tools/texturev/makefile
+++ b/3rdparty/bgfx/tools/texturev/makefile
@@ -1,6 +1,6 @@
#
-# Copyright 2011-2018 Branimir Karadzic. All rights reserved.
-# License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause
+# Copyright 2011-2022 Branimir Karadzic. All rights reserved.
+# License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE
#
-include ../../../bgfx/scripts/shader-embeded.mk
+include ../../scripts/shader-embeded.mk
diff --git a/3rdparty/bgfx/tools/texturev/texturev.cpp b/3rdparty/bgfx/tools/texturev/texturev.cpp
index edd3b9b1a6b..5a26388c8a0 100644
--- a/3rdparty/bgfx/tools/texturev/texturev.cpp
+++ b/3rdparty/bgfx/tools/texturev/texturev.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright 2011-2018 Branimir Karadzic. All rights reserved.
- * License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause
+ * Copyright 2011-2022 Branimir Karadzic. All rights reserved.
+ * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE
*/
#include "common.h"
@@ -20,11 +20,10 @@
#include <entry/entry.h>
#include <entry/input.h>
#include <entry/cmd.h>
+#include <entry/dialog.h>
#include <imgui/imgui.h>
#include <bgfx_utils.h>
-#include <dirent.h>
-
#include <tinystl/allocator.h>
#include <tinystl/vector.h>
namespace stl = tinystl;
@@ -114,6 +113,18 @@ struct Geometry
};
};
+struct Output
+{
+ enum Enum
+ {
+ sRGB,
+ scRGB,
+ HDR10,
+
+ Count
+ };
+};
+
static const InputBinding s_bindingApp[] =
{
{ entry::Key::KeyQ, entry::Modifier::None, 1, NULL, "exit" },
@@ -213,10 +224,50 @@ static const InputBinding* s_binding[] =
};
BX_STATIC_ASSERT(Binding::Count == BX_COUNTOF(s_binding) );
+static const char* s_filter = ""
+ "All Image Formats (bmp, dds, exr, gif, gnf, jpg, jpeg, hdr, ktx, pgm, png, ppm, psd, pvr, tga) | *.bmp *.dds *.exr *.gif *.gnf *.jpg *.jpeg *.hdr *.ktx *.pgm *.png *.ppm *.psd *.pvr *.tga\n"
+ "Windows Bitmap (bmp) | *.bmp\n"
+ "Direct Draw Surface (dds) | *.dds\n"
+ "OpenEXR (exr) | *.exr\n"
+ "Graphics Interchange Format (gif) | *.gif\n"
+ "JPEG Interchange Format (jpg, jpeg) | *.jpg *.jpeg\n"
+ "Radiance RGBE (hdr) | *.hdr\n"
+ "Khronos Texture (ktx) | *.ktx\n"
+ "Portable Graymap/Pixmap Format (pgm, ppm) | *.pgm *.ppm\n"
+ "Portable Network Graphics (png) | *.png\n"
+ "Photoshop Document (psd) | *.psd\n"
+ "PowerVR (pvr) | *.pvr\n"
+ "Truevision TGA (tga) | *.tga\n"
+ ;
+
+#if BX_PLATFORM_WINDOWS
+
+extern "C" void* __stdcall GetModuleHandleA(const char* _moduleName);
+extern "C" uint32_t __stdcall GetModuleFileNameA(void* _module, char* _outFilePath, uint32_t _size);
+
+#endif // BX_PLATFORM_WINDOWS
+
+struct RendererTypeRemap
+{
+ bx::StringView name;
+ bgfx::RendererType::Enum type;
+};
+
+static RendererTypeRemap s_rendererTypeRemap[] =
+{
+ { "gl", bgfx::RendererType::OpenGL },
+ { "d3d11", bgfx::RendererType::Direct3D11 },
+ { "d3d11", bgfx::RendererType::Direct3D12 },
+ { "vk", bgfx::RendererType::Vulkan },
+ { "mtl", bgfx::RendererType::Metal },
+};
+
struct View
{
View()
- : m_cubeMapGeo(Geometry::Quad)
+ : m_rendererType(bgfx::RendererType::Count)
+ , m_cubeMapGeo(Geometry::Quad)
+ , m_outputFormat(Output::sRGB)
, m_fileIndex(0)
, m_scaleFn(0)
, m_mip(0)
@@ -586,6 +637,46 @@ struct View
m_cubeMapGeo = Geometry::Enum( (m_cubeMapGeo + 1) % Geometry::Count);
}
}
+ else if (0 == bx::strCmp(_argv[1], "output") )
+ {
+ Output::Enum outputPrev = m_outputFormat;
+ if (_argc >= 3)
+ {
+ if (0 == bx::strCmp(_argv[2], "srgb") )
+ {
+ m_outputFormat = Output::sRGB;
+ }
+ else if (0 == bx::strCmp(_argv[2], "scrgb") )
+ {
+ m_outputFormat = Output::scRGB;
+ }
+ else if (0 == bx::strCmp(_argv[2], "hdr10") )
+ {
+ m_outputFormat = Output::HDR10;
+ }
+ }
+ else
+ {
+ m_outputFormat = Output::Enum( (m_outputFormat + 1) % Output::Count);
+ }
+
+ if (outputPrev != m_outputFormat)
+ {
+ bgfx::TextureFormat::Enum format = bgfx::TextureFormat::RGBA8;
+ uint32_t formatFlag = 0;
+ if (Output::scRGB == m_outputFormat)
+ {
+ format = bgfx::TextureFormat::RGBA16F;
+ }
+ else if (Output::HDR10 == m_outputFormat)
+ {
+ format = bgfx::TextureFormat::RGB10A2;
+ formatFlag = BGFX_RESET_HDR10;
+ }
+
+ bgfx::reset(m_width, m_height, BGFX_RESET_VSYNC | formatFlag, format);
+ }
+ }
else if (0 == bx::strCmp(_argv[1], "help") )
{
m_help ^= true;
@@ -618,68 +709,84 @@ struct View
void updateFileList(const bx::FilePath& _filePath)
{
- DIR* dir = opendir(_filePath.get() );
+ bx::DirectoryReader dr;
- if (NULL == dir)
+ if (bx::open(&dr, _filePath) )
+ {
+ m_path = _filePath;
+ }
+ else if (bx::open(&dr, _filePath.getPath() ) )
{
m_path = _filePath.getPath();
- dir = opendir(m_path.get() );
}
else
{
- m_path = _filePath;
+ DBG("File path `%s` not found.", _filePath.getCPtr() );
+ return;
}
- if (NULL != dir)
+ bx::Error err;
+
+ m_fileList.clear();
+
+ while (err.isOk() )
{
- for (dirent* item = readdir(dir); NULL != item; item = readdir(dir) )
+ bx::FileInfo fi;
+ bx::read(&dr, fi, &err);
+
+ if (err.isOk()
+ && bx::FileType::File == fi.type)
{
- if (0 == (item->d_type & DT_DIR) )
+ bx::StringView ext = fi.filePath.getExt();
+
+ if (!ext.isEmpty() )
{
- const bx::StringView fileName(item->d_name);
- bx::StringView ext = bx::strRFind(fileName, '.');
- if (!ext.isEmpty() )
+ ext.set(ext.getPtr()+1, ext.getTerm() );
+
+ bool supported = false;
+ for (uint32_t ii = 0; ii < BX_COUNTOF(s_supportedExt); ++ii)
{
- ext.set(ext.getPtr()+1, fileName.getTerm() );
- bool supported = false;
- for (uint32_t ii = 0; ii < BX_COUNTOF(s_supportedExt); ++ii)
- {
- if (0 == bx::strCmpI(ext, s_supportedExt[ii]) )
- {
- supported = true;
- break;
- }
- }
+ const bx::StringView supportedExt(s_supportedExt[ii]);
- if (supported)
+ if (0 == bx::strCmpI(bx::max(ext.getPtr(), ext.getTerm() - supportedExt.getLength() ), supportedExt) )
{
- m_fileList.push_back(item->d_name);
+ supported = true;
+ break;
}
}
+
+ if (supported)
+ {
+ const bx::StringView fileName = fi.filePath.getFileName();
+ m_fileList.push_back(std::string(fileName.getPtr(), fileName.getTerm() ) );
+ }
}
}
+ }
+
+ bx::close(&dr);
+
+ std::sort(m_fileList.begin(), m_fileList.end(), sortNameAscending);
- std::sort(m_fileList.begin(), m_fileList.end(), sortNameAscending);
+ m_fileIndex = 0;
+ uint32_t idx = 0;
- m_fileIndex = 0;
- uint32_t idx = 0;
- for (FileList::const_iterator it = m_fileList.begin(); it != m_fileList.end(); ++it, ++idx)
+ const bx::StringView fileName = _filePath.getFileName();
+
+ for (FileList::const_iterator it = m_fileList.begin(); it != m_fileList.end(); ++it, ++idx)
+ {
+ if (0 == bx::strCmpI(it->c_str(), fileName) )
{
- if (0 == bx::strCmpI(it->c_str(), _filePath.getFileName() ) )
- {
- // If it is case-insensitive match then might be correct one, but keep
- // searching.
- m_fileIndex = idx;
+ // If it is case-insensitive match then might be correct one, but keep
+ // searching.
+ m_fileIndex = idx;
- if (0 == bx::strCmp(it->c_str(), _filePath.getFileName() ) )
- {
- // If it is exact match we're done.
- break;
- }
+ if (0 == bx::strCmp(it->c_str(), fileName) )
+ {
+ // If it is exact match we're done.
+ break;
}
}
-
- closedir(dir);
}
}
@@ -693,7 +800,7 @@ struct View
bx::FileReader reader;
if (bx::open(&reader, filePath) )
{
- bx::read(&reader, settings);
+ bx::read(&reader, settings, bx::ErrorAssert{});
bx::close(&reader);
if (!bx::fromString(&m_transitionTime, settings.get("view/transition") ) )
@@ -710,6 +817,8 @@ struct View
{
m_height = 720;
}
+
+ m_rendererType = getType(settings.get("view/renderer") );
}
}
@@ -732,10 +841,15 @@ struct View
bx::toString(tmp, sizeof(tmp), m_height);
settings.set("view/height", tmp);
+ if (m_rendererType != bgfx::RendererType::Count)
+ {
+ settings.set("view/renderer", getName(m_rendererType) );
+ }
+
bx::FileWriter writer;
if (bx::open(&writer, filePath) )
{
- bx::write(&writer, settings);
+ bx::write(&writer, settings, bx::ErrorAssert{});
bx::close(&writer);
}
}
@@ -746,8 +860,10 @@ struct View
typedef stl::vector<std::string> FileList;
FileList m_fileList;
+ bgfx::RendererType::Enum m_rendererType;
bgfx::TextureInfo m_textureInfo;
Geometry::Enum m_cubeMapGeo;
+ Output::Enum m_outputFormat;
uint32_t m_fileIndex;
uint32_t m_scaleFn;
uint32_t m_mip;
@@ -796,7 +912,7 @@ struct PosUvwColorVertex
static void init()
{
- ms_decl
+ ms_layout
.begin()
.add(bgfx::Attrib::Position, 2, bgfx::AttribType::Float)
.add(bgfx::Attrib::TexCoord0, 3, bgfx::AttribType::Float)
@@ -814,10 +930,10 @@ struct PosUvwColorVertex
m_abgr = _abgr;
}
- static bgfx::VertexDecl ms_decl;
+ static bgfx::VertexLayout ms_layout;
};
-bgfx::VertexDecl PosUvwColorVertex::ms_decl;
+bgfx::VertexLayout PosUvwColorVertex::ms_layout;
static uint32_t addQuad(uint16_t* _indices, uint16_t _idx0, uint16_t _idx1, uint16_t _idx2, uint16_t _idx3)
{
@@ -845,10 +961,10 @@ void setGeometry(
{
if (Geometry::Quad == _type)
{
- if (6 == bgfx::getAvailTransientVertexBuffer(6, PosUvwColorVertex::ms_decl) )
+ if (6 == bgfx::getAvailTransientVertexBuffer(6, PosUvwColorVertex::ms_layout) )
{
bgfx::TransientVertexBuffer vb;
- bgfx::allocTransientVertexBuffer(&vb, 6, PosUvwColorVertex::ms_decl);
+ bgfx::allocTransientVertexBuffer(&vb, 6, PosUvwColorVertex::ms_layout);
PosUvwColorVertex* vertex = (PosUvwColorVertex*)vb.data;
const float widthf = float(_width);
@@ -879,10 +995,10 @@ void setGeometry(
{
const uint32_t numVertices = 14;
const uint32_t numIndices = 36;
- if (checkAvailTransientBuffers(numVertices, PosUvwColorVertex::ms_decl, numIndices) )
+ if (checkAvailTransientBuffers(numVertices, PosUvwColorVertex::ms_layout, numIndices) )
{
bgfx::TransientVertexBuffer tvb;
- bgfx::allocTransientVertexBuffer(&tvb, numVertices, PosUvwColorVertex::ms_decl);
+ bgfx::allocTransientVertexBuffer(&tvb, numVertices, PosUvwColorVertex::ms_layout);
bgfx::TransientIndexBuffer tib;
bgfx::allocTransientIndexBuffer(&tib, numIndices);
@@ -981,7 +1097,7 @@ struct InterpolatorT
{
from = _value;
to = _value;
- duration = 0.0;
+ duration = 0.0f;
offset = bx::getHPCounter();
}
@@ -1003,7 +1119,7 @@ struct InterpolatorT
const double freq = double(bx::getHPFrequency() );
int64_t now = bx::getHPCounter();
float time = (float)(double(now - offset) / freq);
- float lerp = bx::clamp(time, 0.0f, duration) / duration;
+ float lerp = duration != 0.0f ? bx::clamp(time, 0.0f, duration) / duration : 0.0f;
return lerpT(from, to, easeT(lerp) );
}
@@ -1012,11 +1128,16 @@ struct InterpolatorT
bool isActive() const
{
- const double freq = double(bx::getHPFrequency() );
- int64_t now = bx::getHPCounter();
- float time = (float)(double(now - offset) / freq);
- float lerp = bx::clamp(time, 0.0f, duration) / duration;
- return lerp < 1.0f;
+ if (0.0f < duration)
+ {
+ const double freq = double(bx::getHPFrequency() );
+ int64_t now = bx::getHPCounter();
+ float time = (float)(double(now - offset) / freq);
+ float lerp = bx::clamp(time, 0.0f, duration) / duration;
+ return lerp < 1.0f;
+ }
+
+ return false;
}
};
@@ -1026,9 +1147,24 @@ typedef InterpolatorT<bx::lerp, bx::easeLinear> InterpolatorLinear;
void keyBindingHelp(const char* _bindings, const char* _description)
{
- ImGui::TextColored(ImVec4(1.0f, 1.0f, 0.0f, 1.0f), _bindings);
+ ImGui::TextColored(ImVec4(1.0f, 1.0f, 0.0f, 1.0f), "%s", _bindings);
ImGui::SameLine(100);
- ImGui::Text(_description);
+ ImGui::Text("%s", _description);
+}
+
+inline std::string replaceAll(const char* _str, const char* _from, const char* _to)
+{
+ std::string str = _str;
+ size_t startPos = 0;
+ const size_t fromLen = bx::strLen(_from);
+ const size_t toLen = bx::strLen(_to);
+ while ( (startPos = str.find(_from, startPos) ) != std::string::npos)
+ {
+ str.replace(startPos, fromLen, _to);
+ startPos += toLen;
+ }
+
+ return str;
}
void associate()
@@ -1036,10 +1172,10 @@ void associate()
#if BX_PLATFORM_WINDOWS
std::string str;
- char exec[MAX_PATH];
- GetModuleFileNameA(GetModuleHandleA(NULL), exec, MAX_PATH);
+ char exec[bx::kMaxFilePath];
+ GetModuleFileNameA(GetModuleHandleA(NULL), exec, sizeof(exec) );
- std::string strExec = bx::replaceAll<std::string>(exec, "\\", "\\\\");
+ std::string strExec = replaceAll(exec, "\\", "\\\\");
std::string value;
bx::stringPrintf(value, "@=\"\\\"%s\\\" \\\"%%1\\\"\"\r\n\r\n", strExec.c_str() );
@@ -1076,7 +1212,7 @@ void associate()
if (err.isOk() )
{
std::string cmd;
- bx::stringPrintf(cmd, "/s %s", filePath.get() );
+ bx::stringPrintf(cmd, "/s %s", filePath.getCPtr() );
bx::ProcessReader reader;
if (bx::open(&reader, "regedit.exe", cmd.c_str(), &err) )
@@ -1122,31 +1258,31 @@ void help(const char* _error = NULL)
{
if (NULL != _error)
{
- fprintf(stderr, "Error:\n%s\n\n", _error);
+ bx::printf("Error:\n%s\n\n", _error);
}
- fprintf(stderr
- , "texturev, bgfx texture viewer tool, version %d.%d.%d.\n"
- "Copyright 2011-2018 Branimir Karadzic. All rights reserved.\n"
- "License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause\n\n"
+ bx::printf(
+ "texturev, bgfx texture viewer tool, version %d.%d.%d.\n"
+ "Copyright 2011-2022 Branimir Karadzic. All rights reserved.\n"
+ "License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE\n\n"
, BGFX_TEXTUREV_VERSION_MAJOR
, BGFX_TEXTUREV_VERSION_MINOR
, BGFX_API_VERSION
);
- fprintf(stderr
- , "Usage: texturev <file path>\n"
+ bx::printf(
+ "Usage: texturev <file path>\n"
"\n"
"Supported input file types:\n"
);
for (uint32_t ii = 0; ii < BX_COUNTOF(s_supportedExt); ++ii)
{
- fprintf(stderr, " *.%s\n", s_supportedExt[ii]);
+ bx::printf(" *.%s\n", s_supportedExt[ii]);
}
- fprintf(stderr
- , "\n"
+ bx::printf(
+ "\n"
"Options:\n"
" -h, --help Help.\n"
" -v, --version Version information only.\n"
@@ -1162,8 +1298,8 @@ int _main_(int _argc, char** _argv)
if (cmdLine.hasArg('v', "version") )
{
- fprintf(stderr
- , "texturev, bgfx texture viewer tool, version %d.%d.%d.\n"
+ bx::printf(
+ "texturev, bgfx texture viewer tool, version %d.%d.%d.\n"
, BGFX_TEXTUREV_VERSION_MAJOR
, BGFX_TEXTUREV_VERSION_MINOR
, BGFX_API_VERSION
@@ -1190,13 +1326,16 @@ int _main_(int _argc, char** _argv)
View view;
cmdAdd("view", cmdView, &view);
- entry::setWindowFlags(entry::WindowHandle{0}, ENTRY_WINDOW_FLAG_ASPECT_RATIO, false);
- entry::setWindowSize(entry::WindowHandle{0}, view.m_width, view.m_height);
+ entry::setWindowFlags(entry::kDefaultWindowHandle, ENTRY_WINDOW_FLAG_ASPECT_RATIO, false);
+ entry::setWindowSize(entry::kDefaultWindowHandle, view.m_width, view.m_height);
bgfx::Init init;
- init.resolution.width = view.m_width;
- init.resolution.width = view.m_height;
- init.resolution.reset = BGFX_RESET_VSYNC;
+ init.type = view.m_rendererType;
+ init.platformData.nwh = entry::getNativeWindowHandle(entry::kDefaultWindowHandle);
+ init.platformData.ndt = entry::getNativeDisplayHandle();
+ init.resolution.width = view.m_width;
+ init.resolution.height = view.m_height;
+ init.resolution.reset = BGFX_RESET_VSYNC;
bgfx::init(init);
@@ -1215,9 +1354,10 @@ int _main_(int _argc, char** _argv)
const bgfx::Caps* caps = bgfx::getCaps();
bgfx::RendererType::Enum type = caps->rendererType;
- bgfx::UniformHandle s_texColor = bgfx::createUniform("s_texColor", bgfx::UniformType::Int1);
+ bgfx::UniformHandle s_texColor = bgfx::createUniform("s_texColor", bgfx::UniformType::Sampler);
bgfx::UniformHandle u_mtx = bgfx::createUniform("u_mtx", bgfx::UniformType::Mat4);
- bgfx::UniformHandle u_params = bgfx::createUniform("u_params", bgfx::UniformType::Vec4);
+ bgfx::UniformHandle u_params0 = bgfx::createUniform("u_params0", bgfx::UniformType::Vec4);
+ bgfx::UniformHandle u_params1 = bgfx::createUniform("u_params1", bgfx::UniformType::Vec4);
bgfx::ShaderHandle vsTexture = bgfx::createEmbeddedShader(s_embeddedShaders, type, "vs_texture");
bgfx::ShaderHandle fsTexture = bgfx::createEmbeddedShader(s_embeddedShaders, type, "fs_texture");
@@ -1381,6 +1521,20 @@ int _main_(int _argc, char** _argv)
{
if (ImGui::BeginMenu("File"))
{
+ if (ImGui::MenuItem("Open File") )
+ {
+ bx::FilePath tmp = view.m_path;
+ if (openFileSelectionDialog(
+ tmp
+ , FileSelectionDialogType::Open
+ , "texturev: Open File"
+ , s_filter
+ ) )
+ {
+ view.updateFileList(tmp);
+ }
+ }
+
if (ImGui::MenuItem("Show File List", NULL, view.m_files) )
{
cmdExec("view files");
@@ -1440,6 +1594,31 @@ int _main_(int _argc, char** _argv)
ImGui::EndMenu();
}
+ if (ImGui::BeginMenu("Output") )
+ {
+ const bool hdrCap = (bgfx::getCaps()->supported & BGFX_CAPS_HDR10);
+
+ if (ImGui::MenuItem("sRGB", NULL, Output::sRGB == view.m_outputFormat) )
+ {
+ cmdExec("view output srgb");
+ }
+
+ if (hdrCap)
+ {
+ if (ImGui::MenuItem("scRGB", NULL, Output::scRGB == view.m_outputFormat) )
+ {
+ cmdExec("view output scrgb");
+ }
+
+ if (ImGui::MenuItem("HDR10", NULL, Output::HDR10 == view.m_outputFormat) )
+ {
+ cmdExec("view output hdr10");
+ }
+ }
+
+ ImGui::EndMenu();
+ }
+
bool sdf = view.m_sdf;
if (ImGui::MenuItem("SDF", NULL, &sdf) )
{
@@ -1501,6 +1680,7 @@ int _main_(int _argc, char** _argv)
ImGui::Separator();
ImGui::TextColored(
ImVec4(0.0f, 1.0f, 1.0f, 1.0f)
+ , "%s"
, view.m_fileList[view.m_fileIndex].c_str()
);
@@ -1675,7 +1855,7 @@ int _main_(int _argc, char** _argv)
if (view.m_files)
{
char temp[bx::kMaxFilePath];
- bx::snprintf(temp, BX_COUNTOF(temp), "%s##File", view.m_path.get() );
+ bx::snprintf(temp, BX_COUNTOF(temp), "%s##File", view.m_path.getCPtr() );
ImGui::SetNextWindowSize(
ImVec2(400.0f, 400.0f)
@@ -1694,12 +1874,15 @@ int _main_(int _argc, char** _argv)
;
ImGui::PushItemWidth(-1);
- if (ImGui::ListBoxHeader("##empty", ImVec2(0.0f, listHeight) ) )
+ if (ImGui::BeginListBox("##empty", ImVec2(0.0f, listHeight) ) )
{
const int32_t itemCount = int32_t(view.m_fileList.size() );
- int32_t start, end;
- ImGui::CalcListClipping(itemCount, itemHeight, &start, &end);
+ ImGuiListClipper clipper;
+ clipper.Begin(itemCount, itemHeight);
+
+ int32_t start = clipper.DisplayStart;
+ int32_t end = clipper.DisplayEnd;
const int32_t index = int32_t(view.m_fileIndex);
if (index <= start)
@@ -1711,24 +1894,25 @@ int _main_(int _argc, char** _argv)
ImGui::SetScrollY(ImGui::GetScrollY() + (index-end+1)*itemHeight);
}
- ImGuiListClipper clipper(itemCount, itemHeight);
-
- for (int32_t pos = clipper.DisplayStart; pos < clipper.DisplayEnd; ++pos)
+ while (clipper.Step() )
{
- ImGui::PushID(pos);
-
- bool isSelected = uint32_t(pos) == view.m_fileIndex;
- if (ImGui::Selectable(view.m_fileList[pos].c_str(), &isSelected) )
+ for (int32_t pos = clipper.DisplayStart; pos < clipper.DisplayEnd; ++pos)
{
- view.m_fileIndex = pos;
- }
+ ImGui::PushID(pos);
+
+ bool isSelected = uint32_t(pos) == view.m_fileIndex;
+ if (ImGui::Selectable(view.m_fileList[pos].c_str(), &isSelected) )
+ {
+ view.m_fileIndex = pos;
+ }
- ImGui::PopID();
+ ImGui::PopID();
+ }
}
clipper.End();
- ImGui::ListBoxFooter();
+ ImGui::EndListBox();
}
ImGui::PopFont();
@@ -1745,8 +1929,8 @@ int _main_(int _argc, char** _argv)
ImGui::Text(
"texturev, bgfx texture viewer tool " ICON_KI_WRENCH ", version %d.%d.%d.\n"
- "Copyright 2011-2018 Branimir Karadzic. All rights reserved.\n"
- "License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause\n"
+ "Copyright 2011-2022 Branimir Karadzic. All rights reserved.\n"
+ "License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE\n"
, BGFX_TEXTUREV_VERSION_MAJOR
, BGFX_TEXTUREV_VERSION_MINOR
, BGFX_API_VERSION
@@ -1834,7 +2018,7 @@ int _main_(int _argc, char** _argv)
fp.join(view.m_fileList[view.m_fileIndex].c_str() );
bimg::Orientation::Enum orientation;
- texture = loadTexture(fp.get()
+ texture = loadTexture(fp.getCPtr()
, 0
| BGFX_SAMPLER_U_CLAMP
| BGFX_SAMPLER_V_CLAMP
@@ -1883,7 +2067,7 @@ int _main_(int _argc, char** _argv)
}
bx::stringPrintf(title, "%s (%d x %d%s, mips: %d, layers %d, %s)"
- , fp.get()
+ , fp.getCPtr()
, view.m_textureInfo.width
, view.m_textureInfo.height
, name
@@ -1897,8 +2081,7 @@ int _main_(int _argc, char** _argv)
bx::stringPrintf(title, "Failed to load %s!", filePath);
}
- entry::WindowHandle handle = { 0 };
- entry::setWindowTitle(handle, title.c_str() );
+ entry::setWindowTitle(entry::kDefaultWindowHandle, title.c_str() );
}
int64_t now = bx::getHPCounter();
@@ -1974,14 +2157,11 @@ int _main_(int _argc, char** _argv)
if (view.m_fit)
{
- float wh[3] = { float(view.m_textureInfo.width), float(view.m_textureInfo.height), 0.0f };
- float result[3];
- bx::vec3MulMtx(result, wh, orientation);
- result[0] = bx::round(bx::abs(result[0]) );
- result[1] = bx::round(bx::abs(result[1]) );
-
- scale.set(bx::min(float(view.m_width) / result[0]
- , float(view.m_height) / result[1])
+ const bx::Vec3 wh = { float(view.m_textureInfo.width), float(view.m_textureInfo.height), 0.0f };
+ const bx::Vec3 result = bx::round(bx::abs(bx::mul(wh, orientation) ) );
+
+ scale.set(bx::min(float(view.m_width) / result.x
+ , float(view.m_height) / result.y)
, 0.1f*view.m_transitionTime
);
}
@@ -2023,7 +2203,10 @@ int _main_(int _argc, char** _argv)
params[1] = layer.getValue()/float(bx::max(1, view.m_textureInfo.depth >> view.m_mip) );
}
- bgfx::setUniform(u_params, params);
+ bgfx::setUniform(u_params0, params);
+
+ float params1[4] = { float(view.m_outputFormat), 80.0f, 0.0, 0.0f };
+ bgfx::setUniform(u_params1, params1);
const uint32_t textureFlags = 0
| BGFX_SAMPLER_U_CLAMP
@@ -2103,7 +2286,8 @@ int _main_(int _argc, char** _argv)
bgfx::destroy(checkerBoard);
bgfx::destroy(s_texColor);
bgfx::destroy(u_mtx);
- bgfx::destroy(u_params);
+ bgfx::destroy(u_params0);
+ bgfx::destroy(u_params1);
bgfx::destroy(textureProgram);
bgfx::destroy(textureArrayProgram);
bgfx::destroy(textureCubeProgram);
diff --git a/3rdparty/bgfx/tools/texturev/vs_texture.bin.h b/3rdparty/bgfx/tools/texturev/vs_texture.bin.h
index 9f9ee0d9644..3000b297f9a 100644
--- a/3rdparty/bgfx/tools/texturev/vs_texture.bin.h
+++ b/3rdparty/bgfx/tools/texturev/vs_texture.bin.h
@@ -1,229 +1,264 @@
-static const uint8_t vs_texture_glsl[396] =
+static const uint8_t vs_texture_glsl[400] =
{
- 0x56, 0x53, 0x48, 0x06, 0x00, 0x00, 0x00, 0x00, 0x01, 0x83, 0xf2, 0xe1, 0x01, 0x00, 0x0f, 0x75, // VSH............u
+ 0x56, 0x53, 0x48, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x01, 0x83, 0xf2, 0xe1, 0x01, 0x00, 0x0f, 0x75, // VSH............u
0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x04, 0x01, // _modelViewProj..
- 0x00, 0x00, 0x01, 0x00, 0x63, 0x01, 0x00, 0x00, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, // ....c...attribut
- 0x65, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x3b, // e vec4 a_color0;
- 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, // .attribute vec3
- 0x61, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3b, 0x0a, 0x61, 0x74, 0x74, 0x72, // a_position;.attr
- 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x61, 0x5f, 0x74, 0x65, 0x78, // ibute vec3 a_tex
- 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, 0x0a, 0x76, 0x61, 0x72, 0x79, 0x69, 0x6e, 0x67, 0x20, // coord0;.varying
- 0x76, 0x65, 0x63, 0x34, 0x20, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x76, // vec4 v_color0;.v
- 0x61, 0x72, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x76, 0x5f, 0x74, 0x65, // arying vec3 v_te
- 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, // xcoord0;.uniform
- 0x20, 0x6d, 0x61, 0x74, 0x34, 0x20, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, // mat4 u_modelVie
- 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x3b, 0x0a, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x6d, 0x61, 0x69, 0x6e, // wProj;.void main
- 0x20, 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x74, 0x6d, 0x70, // ().{. vec4 tmp
- 0x76, 0x61, 0x72, 0x5f, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // var_1;. tmpvar_
- 0x31, 0x2e, 0x7a, 0x77, 0x20, 0x3d, 0x20, 0x76, 0x65, 0x63, 0x32, 0x28, 0x30, 0x2e, 0x30, 0x2c, // 1.zw = vec2(0.0,
- 0x20, 0x31, 0x2e, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // 1.0);. tmpvar_
- 0x31, 0x2e, 0x78, 0x79, 0x20, 0x3d, 0x20, 0x61, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, // 1.xy = a_positio
- 0x6e, 0x2e, 0x78, 0x79, 0x3b, 0x0a, 0x20, 0x20, 0x67, 0x6c, 0x5f, 0x50, 0x6f, 0x73, 0x69, 0x74, // n.xy;. gl_Posit
- 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x28, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, // ion = (u_modelVi
- 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // ewProj * tmpvar_
- 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, // 1);. v_texcoord
- 0x30, 0x20, 0x3d, 0x20, 0x61, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, // 0 = a_texcoord0;
- 0x0a, 0x20, 0x20, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x20, 0x3d, 0x20, 0x61, 0x5f, // . v_color0 = a_
- 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x00, // color0;.}...
+ 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x01, 0x00, 0x00, 0x61, 0x74, 0x74, 0x72, // ........c...attr
+ 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x61, 0x5f, 0x63, 0x6f, 0x6c, // ibute vec4 a_col
+ 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x76, // or0;.attribute v
+ 0x65, 0x63, 0x33, 0x20, 0x61, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3b, 0x0a, // ec3 a_position;.
+ 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x61, // attribute vec3 a
+ 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, 0x0a, 0x76, 0x61, 0x72, 0x79, // _texcoord0;.vary
+ 0x69, 0x6e, 0x67, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, // ing vec4 v_color
+ 0x30, 0x3b, 0x0a, 0x76, 0x61, 0x72, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, // 0;.varying vec3
+ 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, 0x0a, 0x75, 0x6e, 0x69, // v_texcoord0;.uni
+ 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x6d, 0x61, 0x74, 0x34, 0x20, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, // form mat4 u_mode
+ 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x3b, 0x0a, 0x76, 0x6f, 0x69, 0x64, 0x20, // lViewProj;.void
+ 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x76, 0x65, 0x63, 0x34, // main ().{. vec4
+ 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, // tmpvar_1;. tmp
+ 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x7a, 0x77, 0x20, 0x3d, 0x20, 0x76, 0x65, 0x63, 0x32, 0x28, // var_1.zw = vec2(
+ 0x30, 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, // 0.0, 1.0);. tmp
+ 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x79, 0x20, 0x3d, 0x20, 0x61, 0x5f, 0x70, 0x6f, 0x73, // var_1.xy = a_pos
+ 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x78, 0x79, 0x3b, 0x0a, 0x20, 0x20, 0x67, 0x6c, 0x5f, 0x50, // ition.xy;. gl_P
+ 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x28, 0x75, 0x5f, 0x6d, 0x6f, 0x64, // osition = (u_mod
+ 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, // elViewProj * tmp
+ 0x76, 0x61, 0x72, 0x5f, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, // var_1);. v_texc
+ 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x20, 0x3d, 0x20, 0x61, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, // oord0 = a_texcoo
+ 0x72, 0x64, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x20, // rd0;. v_color0
+ 0x3d, 0x20, 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x00, // = a_color0;.}...
};
-static const uint8_t vs_texture_spv[1266] =
+static const uint8_t vs_texture_essl[442] =
{
- 0x56, 0x53, 0x48, 0x06, 0x00, 0x00, 0x00, 0x00, 0x01, 0x83, 0xf2, 0xe1, 0x01, 0x00, 0x0f, 0x75, // VSH............u
+ 0x56, 0x53, 0x48, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x01, 0x83, 0xf2, 0xe1, 0x01, 0x00, 0x0f, 0x75, // VSH............u
0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x04, 0x01, // _modelViewProj..
- 0x00, 0x00, 0x04, 0x00, 0xc0, 0x04, 0x00, 0x00, 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, // ..........#.....
- 0x07, 0x00, 0x08, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, // ................
- 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, // ............GLSL
- 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, // .std.450........
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
- 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, // ....main....=...
- 0x41, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, // A...D...O...R...
- 0x56, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x05, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, // V...............
- 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, // ........main....
- 0x05, 0x00, 0x04, 0x00, 0x25, 0x00, 0x00, 0x00, 0x24, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x00, // ....%...$Global.
- 0x06, 0x00, 0x07, 0x00, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x6d, 0x6f, // ....%.......u_mo
- 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x05, 0x00, 0x03, 0x00, // delViewProj.....
- 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x3d, 0x00, 0x00, 0x00, // '...........=...
- 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, // a_color0........
- 0x41, 0x00, 0x00, 0x00, 0x61, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x00, 0x00, // A...a_position..
- 0x05, 0x00, 0x05, 0x00, 0x44, 0x00, 0x00, 0x00, 0x61, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, // ....D...a_texcoo
- 0x72, 0x64, 0x30, 0x00, 0x05, 0x00, 0x0a, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x40, 0x65, 0x6e, 0x74, // rd0.....O...@ent
- 0x72, 0x79, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2e, 0x67, 0x6c, // ryPointOutput.gl
- 0x5f, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x00, 0x00, 0x00, 0x05, 0x00, 0x09, 0x00, // _Position.......
- 0x52, 0x00, 0x00, 0x00, 0x40, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x4f, // R...@entryPointO
- 0x75, 0x74, 0x70, 0x75, 0x74, 0x2e, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x00, 0x00, // utput.v_color0..
- 0x05, 0x00, 0x0a, 0x00, 0x56, 0x00, 0x00, 0x00, 0x40, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x6f, // ....V...@entryPo
- 0x69, 0x6e, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2e, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, // intOutput.v_texc
- 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x00, 0x00, 0x00, 0x48, 0x00, 0x04, 0x00, 0x25, 0x00, 0x00, 0x00, // oord0...H...%...
- 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x25, 0x00, 0x00, 0x00, // ........H...%...
- 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, // ....#.......H...
- 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, // %...............
- 0x47, 0x00, 0x03, 0x00, 0x25, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, // G...%.......G...
- 0x27, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, // '...".......G...
- 0x3d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, // =...........G...
- 0x41, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, // A...........G...
- 0x44, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, // D...........G...
- 0x4f, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, // O...........G...
- 0x52, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, // R...........G...
- 0x56, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, // V...............
- 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, // ....!...........
- 0x16, 0x00, 0x03, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, // ........ .......
- 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, // ................
- 0x09, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, // ................
- 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, // .... .......+...
- 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x2b, 0x00, 0x04, 0x00, // ...........?+...
- 0x06, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, // ............+...
- 0x14, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x04, 0x00, // ................
- 0x24, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, // $...............
- 0x25, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x26, 0x00, 0x00, 0x00, // %...$... ...&...
- 0x02, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x26, 0x00, 0x00, 0x00, // ....%...;...&...
- 0x27, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x28, 0x00, 0x00, 0x00, // '....... ...(...
- 0x02, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x3c, 0x00, 0x00, 0x00, // ....$... ...<...
- 0x01, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x3c, 0x00, 0x00, 0x00, // ........;...<...
- 0x3d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x40, 0x00, 0x00, 0x00, // =....... ...@...
- 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x40, 0x00, 0x00, 0x00, // ........;...@...
- 0x41, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x40, 0x00, 0x00, 0x00, // A.......;...@...
- 0x44, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, // D....... ...N...
- 0x03, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, // ........;...N...
- 0x4f, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, // O.......;...N...
- 0x52, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x55, 0x00, 0x00, 0x00, // R....... ...U...
- 0x03, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x55, 0x00, 0x00, 0x00, // ........;...U...
- 0x56, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, // V.......6.......
- 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, // ................
- 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, // ....=.......>...
- 0x3d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, // =...=.......B...
- 0x41, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, // A...=.......E...
- 0x44, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, // D...Q.......o...
- 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, // B.......Q.......
- 0x70, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, // p...B.......P...
- 0x07, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, // ....q...o...p...
- 0x1a, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x28, 0x00, 0x00, 0x00, // ........A...(...
- 0x72, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, // r...'.......=...
- 0x24, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x90, 0x00, 0x05, 0x00, // $...s...r.......
- 0x07, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, // ....t...q...s...
- 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, // Q.......{...t...
- 0x01, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, // ............|...
- 0x7b, 0x00, 0x00, 0x00, 0x52, 0x00, 0x06, 0x00, 0x07, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, // {...R...........
- 0x7c, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, // |...t.......>...
- 0x4f, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x52, 0x00, 0x00, 0x00, // O.......>...R...
- 0x3e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x56, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, // >...>...V...E...
+ 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8d, 0x01, 0x00, 0x00, 0x61, 0x74, 0x74, 0x72, // ............attr
+ 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, 0x34, // ibute highp vec4
+ 0x20, 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, // a_color0;.attri
+ 0x62, 0x75, 0x74, 0x65, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, // bute highp vec3
+ 0x61, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3b, 0x0a, 0x61, 0x74, 0x74, 0x72, // a_position;.attr
+ 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, 0x33, // ibute highp vec3
+ 0x20, 0x61, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, 0x0a, 0x76, 0x61, // a_texcoord0;.va
+ 0x72, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, 0x34, // rying highp vec4
+ 0x20, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x76, 0x61, 0x72, 0x79, 0x69, // v_color0;.varyi
+ 0x6e, 0x67, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x76, 0x5f, // ng highp vec3 v_
+ 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, // texcoord0;.unifo
+ 0x72, 0x6d, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x6d, 0x61, 0x74, 0x34, 0x20, 0x75, 0x5f, // rm highp mat4 u_
+ 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x3b, 0x0a, 0x76, // modelViewProj;.v
+ 0x6f, 0x69, 0x64, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, // oid main ().{.
+ 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, // highp vec4 tmpva
+ 0x72, 0x5f, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, // r_1;. tmpvar_1.
+ 0x7a, 0x77, 0x20, 0x3d, 0x20, 0x76, 0x65, 0x63, 0x32, 0x28, 0x30, 0x2e, 0x30, 0x2c, 0x20, 0x31, // zw = vec2(0.0, 1
+ 0x2e, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, // .0);. tmpvar_1.
+ 0x78, 0x79, 0x20, 0x3d, 0x20, 0x61, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, // xy = a_position.
+ 0x78, 0x79, 0x3b, 0x0a, 0x20, 0x20, 0x67, 0x6c, 0x5f, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, // xy;. gl_Positio
+ 0x6e, 0x20, 0x3d, 0x20, 0x28, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, // n = (u_modelView
+ 0x50, 0x72, 0x6f, 0x6a, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x29, // Proj * tmpvar_1)
+ 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x20, // ;. v_texcoord0
+ 0x3d, 0x20, 0x61, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, 0x0a, 0x20, // = a_texcoord0;.
+ 0x20, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x20, 0x3d, 0x20, 0x61, 0x5f, 0x63, 0x6f, // v_color0 = a_co
+ 0x6c, 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x00, // lor0;.}...
+};
+static const uint8_t vs_texture_spv[1234] =
+{
+ 0x56, 0x53, 0x48, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x01, 0x83, 0xf2, 0xe1, 0x01, 0x00, 0x0f, 0x75, // VSH............u
+ 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x04, 0x00, // _modelViewProj..
+ 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9c, 0x04, 0x00, 0x00, 0x03, 0x02, 0x23, 0x07, // ..............#.
+ 0x00, 0x00, 0x01, 0x00, 0x0a, 0x00, 0x08, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........p.......
+ 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, // ................
+ 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, // GLSL.std.450....
+ 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x0b, 0x00, // ................
+ 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, // ........main....
+ 0x36, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, // 6...:...=...H...
+ 0x4b, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x05, 0x00, 0x00, 0x00, // K...O...........
+ 0xf4, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, // ............main
+ 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x25, 0x00, 0x00, 0x00, 0x55, 0x6e, 0x69, 0x66, // ........%...Unif
+ 0x6f, 0x72, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x07, 0x00, // ormBlock........
+ 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, // %.......u_modelV
+ 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x05, 0x00, 0x03, 0x00, 0x27, 0x00, 0x00, 0x00, // iewProj.....'...
+ 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x36, 0x00, 0x00, 0x00, 0x61, 0x5f, 0x63, 0x6f, // ........6...a_co
+ 0x6c, 0x6f, 0x72, 0x30, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x3a, 0x00, 0x00, 0x00, // lor0........:...
+ 0x61, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, // a_position......
+ 0x3d, 0x00, 0x00, 0x00, 0x61, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x00, // =...a_texcoord0.
+ 0x05, 0x00, 0x0a, 0x00, 0x48, 0x00, 0x00, 0x00, 0x40, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x6f, // ....H...@entryPo
+ 0x69, 0x6e, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2e, 0x67, 0x6c, 0x5f, 0x50, 0x6f, 0x73, // intOutput.gl_Pos
+ 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x00, 0x00, 0x00, 0x05, 0x00, 0x09, 0x00, 0x4b, 0x00, 0x00, 0x00, // ition.......K...
+ 0x40, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, // @entryPointOutpu
+ 0x74, 0x2e, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x00, 0x00, 0x05, 0x00, 0x0a, 0x00, // t.v_color0......
+ 0x4f, 0x00, 0x00, 0x00, 0x40, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x4f, // O...@entryPointO
+ 0x75, 0x74, 0x70, 0x75, 0x74, 0x2e, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, // utput.v_texcoord
+ 0x30, 0x00, 0x00, 0x00, 0x48, 0x00, 0x04, 0x00, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0...H...%.......
+ 0x04, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ....H...%.......
+ 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x25, 0x00, 0x00, 0x00, // #.......H...%...
+ 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, // ............G...
+ 0x25, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x27, 0x00, 0x00, 0x00, // %.......G...'...
+ 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x27, 0x00, 0x00, 0x00, // ".......G...'...
+ 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, // !.......G...6...
+ 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x3a, 0x00, 0x00, 0x00, // ........G...:...
+ 0x1e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x3d, 0x00, 0x00, 0x00, // ........G...=...
+ 0x1e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x48, 0x00, 0x00, 0x00, // ........G...H...
+ 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x4b, 0x00, 0x00, 0x00, // ........G...K...
+ 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x4f, 0x00, 0x00, 0x00, // ........G...O...
+ 0x1e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, // ................
+ 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, // !...............
+ 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, // .... ...........
+ 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, // ................
+ 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, // ................
+ 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, // .......+.......
+ 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, // .......?+.......
+ 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, // ........+.......
+ 0x1d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00, // ............$...
+ 0x07, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x25, 0x00, 0x00, 0x00, // ............%...
+ 0x24, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x26, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, // $... ...&.......
+ 0x25, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x26, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, // %...;...&...'...
+ 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x28, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, // .... ...(.......
+ 0x24, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // $... ...5.......
+ 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, // ....;...5...6...
+ 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x39, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // .... ...9.......
+ 0x09, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x39, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, // ....;...9...:...
+ 0x01, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x39, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, // ....;...9...=...
+ 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x47, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, // .... ...G.......
+ 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x47, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, // ....;...G...H...
+ 0x03, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x47, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, // ....;...G...K...
+ 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, // .... ...N.......
+ 0x09, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, // ....;...N...O...
+ 0x03, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, // ....6...........
+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, // ................
+ 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, // =.......7...6...
+ 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, // =.......;...:...
+ 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, // =.......>...=...
+ 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, // Q.......j...;...
+ 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, // ....Q.......k...
+ 0x3b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00, // ;.......P.......
+ 0x6c, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, // l...j...k.......
+ 0x16, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x28, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, // ....A...(...m...
+ 0x27, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00, // '.......=...$...
+ 0x6e, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x90, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, // n...m...........
+ 0x6f, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, // o...l...n...>...
+ 0x48, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x4b, 0x00, 0x00, 0x00, // H...o...>...K...
+ 0x37, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, // 7...>...O...>...
0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00, 0x00, 0x03, 0x05, 0x00, 0x01, 0x00, 0x10, 0x00, // ....8...........
0x40, 0x00, // @.
};
-static const uint8_t vs_texture_dx9[333] =
+static const uint8_t vs_texture_dx9[337] =
{
- 0x56, 0x53, 0x48, 0x06, 0x00, 0x00, 0x00, 0x00, 0x01, 0x83, 0xf2, 0xe1, 0x01, 0x00, 0x0f, 0x75, // VSH............u
+ 0x56, 0x53, 0x48, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x01, 0x83, 0xf2, 0xe1, 0x01, 0x00, 0x0f, 0x75, // VSH............u
0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x04, 0x01, // _modelViewProj..
- 0x00, 0x00, 0x04, 0x00, 0x24, 0x01, 0x00, 0x00, 0x00, 0x03, 0xfe, 0xff, 0xfe, 0xff, 0x21, 0x00, // ....$.........!.
- 0x43, 0x54, 0x41, 0x42, 0x1c, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x00, 0x03, 0xfe, 0xff, // CTAB....W.......
- 0x01, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, // ............P...
- 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // 0...........@...
- 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, // ....u_modelViewP
- 0x72, 0x6f, 0x6a, 0x00, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, // roj.............
- 0x00, 0x00, 0x00, 0x00, 0x76, 0x73, 0x5f, 0x33, 0x5f, 0x30, 0x00, 0x4d, 0x69, 0x63, 0x72, 0x6f, // ....vs_3_0.Micro
- 0x73, 0x6f, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4c, 0x53, 0x4c, 0x20, 0x53, 0x68, // soft (R) HLSL Sh
- 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x20, 0x31, 0x30, // ader Compiler 10
- 0x2e, 0x31, 0x00, 0xab, 0x1f, 0x00, 0x00, 0x02, 0x0a, 0x00, 0x00, 0x80, 0x00, 0x00, 0x0f, 0x90, // .1..............
- 0x1f, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x0f, 0x90, 0x1f, 0x00, 0x00, 0x02, // ................
- 0x05, 0x00, 0x00, 0x80, 0x02, 0x00, 0x0f, 0x90, 0x1f, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x80, // ................
- 0x00, 0x00, 0x0f, 0xe0, 0x1f, 0x00, 0x00, 0x02, 0x0a, 0x00, 0x00, 0x80, 0x01, 0x00, 0x0f, 0xe0, // ................
- 0x1f, 0x00, 0x00, 0x02, 0x05, 0x00, 0x00, 0x80, 0x02, 0x00, 0x07, 0xe0, 0x05, 0x00, 0x00, 0x03, // ................
- 0x00, 0x00, 0x0f, 0x80, 0x01, 0x00, 0xe4, 0xa0, 0x01, 0x00, 0x55, 0x90, 0x04, 0x00, 0x00, 0x04, // ..........U.....
- 0x00, 0x00, 0x0f, 0x80, 0x00, 0x00, 0xe4, 0xa0, 0x01, 0x00, 0x00, 0x90, 0x00, 0x00, 0xe4, 0x80, // ................
- 0x02, 0x00, 0x00, 0x03, 0x00, 0x00, 0x0f, 0xe0, 0x00, 0x00, 0xe4, 0x80, 0x03, 0x00, 0xe4, 0xa0, // ................
- 0x01, 0x00, 0x00, 0x02, 0x01, 0x00, 0x0f, 0xe0, 0x00, 0x00, 0xe4, 0x90, 0x01, 0x00, 0x00, 0x02, // ................
- 0x02, 0x00, 0x07, 0xe0, 0x02, 0x00, 0xe4, 0x90, 0xff, 0xff, 0x00, 0x00, 0x00, // .............
+ 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x01, 0x00, 0x00, 0x00, 0x03, 0xfe, 0xff, // ........$.......
+ 0xfe, 0xff, 0x21, 0x00, 0x43, 0x54, 0x41, 0x42, 0x1c, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, // ..!.CTAB....W...
+ 0x00, 0x03, 0xfe, 0xff, 0x01, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, // ................
+ 0x50, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, // P...0...........
+ 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, // @.......u_modelV
+ 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, // iewProj.........
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0x73, 0x5f, 0x33, 0x5f, 0x30, 0x00, 0x4d, // ........vs_3_0.M
+ 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4c, 0x53, // icrosoft (R) HLS
+ 0x4c, 0x20, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, // L Shader Compile
+ 0x72, 0x20, 0x31, 0x30, 0x2e, 0x31, 0x00, 0xab, 0x1f, 0x00, 0x00, 0x02, 0x0a, 0x00, 0x00, 0x80, // r 10.1..........
+ 0x00, 0x00, 0x0f, 0x90, 0x1f, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x0f, 0x90, // ................
+ 0x1f, 0x00, 0x00, 0x02, 0x05, 0x00, 0x00, 0x80, 0x02, 0x00, 0x0f, 0x90, 0x1f, 0x00, 0x00, 0x02, // ................
+ 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x0f, 0xe0, 0x1f, 0x00, 0x00, 0x02, 0x0a, 0x00, 0x00, 0x80, // ................
+ 0x01, 0x00, 0x0f, 0xe0, 0x1f, 0x00, 0x00, 0x02, 0x05, 0x00, 0x00, 0x80, 0x02, 0x00, 0x07, 0xe0, // ................
+ 0x05, 0x00, 0x00, 0x03, 0x00, 0x00, 0x0f, 0x80, 0x01, 0x00, 0xe4, 0xa0, 0x01, 0x00, 0x55, 0x90, // ..............U.
+ 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x0f, 0x80, 0x00, 0x00, 0xe4, 0xa0, 0x01, 0x00, 0x00, 0x90, // ................
+ 0x00, 0x00, 0xe4, 0x80, 0x02, 0x00, 0x00, 0x03, 0x00, 0x00, 0x0f, 0xe0, 0x00, 0x00, 0xe4, 0x80, // ................
+ 0x03, 0x00, 0xe4, 0xa0, 0x01, 0x00, 0x00, 0x02, 0x01, 0x00, 0x0f, 0xe0, 0x00, 0x00, 0xe4, 0x90, // ................
+ 0x01, 0x00, 0x00, 0x02, 0x02, 0x00, 0x07, 0xe0, 0x02, 0x00, 0xe4, 0x90, 0xff, 0xff, 0x00, 0x00, // ................
+ 0x00, // .
};
-static const uint8_t vs_texture_dx11[586] =
+static const uint8_t vs_texture_dx11[590] =
{
- 0x56, 0x53, 0x48, 0x06, 0x00, 0x00, 0x00, 0x00, 0x01, 0x83, 0xf2, 0xe1, 0x01, 0x00, 0x0f, 0x75, // VSH............u
+ 0x56, 0x53, 0x48, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x01, 0x83, 0xf2, 0xe1, 0x01, 0x00, 0x0f, 0x75, // VSH............u
0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x04, 0x00, // _modelViewProj..
- 0x00, 0x00, 0x04, 0x00, 0x18, 0x02, 0x00, 0x00, 0x44, 0x58, 0x42, 0x43, 0xa1, 0x0d, 0xa3, 0xb8, // ........DXBC....
- 0x34, 0x19, 0x93, 0x74, 0x94, 0x6c, 0x61, 0x11, 0xe8, 0x09, 0x5f, 0x2c, 0x01, 0x00, 0x00, 0x00, // 4..t.la..._,....
- 0x18, 0x02, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, // ........,.......
- 0x10, 0x01, 0x00, 0x00, 0x49, 0x53, 0x47, 0x4e, 0x68, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, // ....ISGNh.......
- 0x08, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ....P...........
- 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, // ............V...
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // ................
- 0x07, 0x03, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ...._...........
- 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, 0x43, 0x4f, 0x4c, 0x4f, // ............COLO
- 0x52, 0x00, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, // R.POSITION.TEXCO
- 0x4f, 0x52, 0x44, 0x00, 0x4f, 0x53, 0x47, 0x4e, 0x6c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, // ORD.OSGNl.......
- 0x08, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // ....P...........
- 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, // ................
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // ................
- 0x0f, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ....b...........
- 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x07, 0x08, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x50, // ............SV_P
- 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x00, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x00, 0x54, 0x45, // OSITION.COLOR.TE
- 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x00, 0xab, 0x53, 0x48, 0x44, 0x52, 0x00, 0x01, 0x00, 0x00, // XCOORD..SHDR....
- 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x04, 0x46, 0x8e, 0x20, 0x00, // @...@...Y...F. .
- 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x03, 0xf2, 0x10, 0x10, 0x00, // ........_.......
- 0x00, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x03, 0x32, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, // ...._...2.......
- 0x5f, 0x00, 0x00, 0x03, 0x72, 0x10, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x04, // _...r.......g...
- 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x03, // . ..........e...
- 0xf2, 0x20, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x03, 0x72, 0x20, 0x10, 0x00, // . ......e...r ..
- 0x02, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x08, // ....h.......8...
- 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x15, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, // ........V.......
- 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, // F. .........2...
- 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, // ........F. .....
- 0x00, 0x00, 0x00, 0x00, 0x06, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, // ............F...
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ......... ......
- 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, // F.......F. .....
- 0x03, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0xf2, 0x20, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, // ....6.... ......
- 0x46, 0x1e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0x72, 0x20, 0x10, 0x00, // F.......6...r ..
- 0x02, 0x00, 0x00, 0x00, 0x46, 0x12, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x01, // ....F.......>...
- 0x00, 0x03, 0x05, 0x00, 0x01, 0x00, 0x10, 0x00, 0x40, 0x00, // ........@.
+ 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x02, 0x00, 0x00, 0x44, 0x58, 0x42, 0x43, // ............DXBC
+ 0xa1, 0x0d, 0xa3, 0xb8, 0x34, 0x19, 0x93, 0x74, 0x94, 0x6c, 0x61, 0x11, 0xe8, 0x09, 0x5f, 0x2c, // ....4..t.la..._,
+ 0x01, 0x00, 0x00, 0x00, 0x18, 0x02, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, // ............,...
+ 0x9c, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x49, 0x53, 0x47, 0x4e, 0x68, 0x00, 0x00, 0x00, // ........ISGNh...
+ 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........P.......
+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, // ................
+ 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, // V...............
+ 0x01, 0x00, 0x00, 0x00, 0x07, 0x03, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........_.......
+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, // ................
+ 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x00, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x00, 0x54, // COLOR.POSITION.T
+ 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x00, 0x4f, 0x53, 0x47, 0x4e, 0x6c, 0x00, 0x00, 0x00, // EXCOORD.OSGNl...
+ 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........P.......
+ 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, // ................
+ 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, // ................
+ 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........b.......
+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x07, 0x08, 0x00, 0x00, // ................
+ 0x53, 0x56, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x00, 0x43, 0x4f, 0x4c, 0x4f, // SV_POSITION.COLO
+ 0x52, 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x00, 0xab, 0x53, 0x48, 0x44, 0x52, // R.TEXCOORD..SHDR
+ 0x00, 0x01, 0x00, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x04, // ....@...@...Y...
+ 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x03, // F. ........._...
+ 0xf2, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x03, 0x32, 0x10, 0x10, 0x00, // ........_...2...
+ 0x01, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x03, 0x72, 0x10, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, // ...._...r.......
+ 0x67, 0x00, 0x00, 0x04, 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // g.... ..........
+ 0x65, 0x00, 0x00, 0x03, 0xf2, 0x20, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x03, // e.... ......e...
+ 0x72, 0x20, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, // r ......h.......
+ 0x38, 0x00, 0x00, 0x08, 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x15, 0x10, 0x00, // 8...........V...
+ 0x01, 0x00, 0x00, 0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // ....F. .........
+ 0x32, 0x00, 0x00, 0x0a, 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x8e, 0x20, 0x00, // 2...........F. .
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, // ................
+ 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xf2, 0x20, 0x10, 0x00, // F............ ..
+ 0x00, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x8e, 0x20, 0x00, // ....F.......F. .
+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0xf2, 0x20, 0x10, 0x00, // ........6.... ..
+ 0x01, 0x00, 0x00, 0x00, 0x46, 0x1e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, // ....F.......6...
+ 0x72, 0x20, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x12, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, // r ......F.......
+ 0x3e, 0x00, 0x00, 0x01, 0x00, 0x03, 0x05, 0x00, 0x01, 0x00, 0x10, 0x00, 0x40, 0x00, // >...........@.
};
-static const uint8_t vs_texture_mtl[775] =
+static const uint8_t vs_texture_mtl[850] =
{
- 0x56, 0x53, 0x48, 0x06, 0x00, 0x00, 0x00, 0x00, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0xf4, 0x02, // VSH.............
- 0x00, 0x00, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, // ..using namespac
- 0x65, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, // e metal;.struct
- 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x70, // xlatMtlShaderInp
- 0x75, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x61, 0x5f, // ut {. float4 a_
- 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x20, 0x5b, 0x5b, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, // color0 [[attribu
- 0x74, 0x65, 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, // te(0)]];. float
- 0x33, 0x20, 0x61, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x5b, 0x5b, 0x61, // 3 a_position [[a
- 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x31, 0x29, 0x5d, 0x5d, 0x3b, 0x0a, 0x20, // ttribute(1)]];.
- 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x61, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, // float3 a_texcoo
- 0x72, 0x64, 0x30, 0x20, 0x5b, 0x5b, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, // rd0 [[attribute(
- 0x32, 0x29, 0x5d, 0x5d, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, // 2)]];.};.struct
- 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x4f, 0x75, 0x74, // xlatMtlShaderOut
- 0x70, 0x75, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x67, // put {. float4 g
- 0x6c, 0x5f, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x5b, 0x5b, 0x70, 0x6f, 0x73, // l_Position [[pos
- 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5d, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, // ition]];. float
- 0x34, 0x20, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x6c, // 4 v_color0;. fl
- 0x6f, 0x61, 0x74, 0x33, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, // oat3 v_texcoord0
- 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, // ;.};.struct xlat
- 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, // MtlShaderUniform
- 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x78, 0x34, 0x20, 0x75, 0x5f, // {. float4x4 u_
- 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x3b, 0x0a, 0x7d, // modelViewProj;.}
- 0x3b, 0x0a, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, // ;.vertex xlatMtl
- 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x78, 0x6c, 0x61, // ShaderOutput xla
- 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x20, 0x28, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, // tMtlMain (xlatMt
- 0x6c, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x5f, 0x6d, 0x74, // lShaderInput _mt
- 0x6c, 0x5f, 0x69, 0x20, 0x5b, 0x5b, 0x73, 0x74, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x5d, 0x5d, // l_i [[stage_in]]
- 0x2c, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, // , constant xlatM
- 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x26, // tlShaderUniform&
- 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x20, 0x5b, 0x5b, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, // _mtl_u [[buffer
- 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, // (0)]]).{. xlatM
- 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x5f, // tlShaderOutput _
- 0x6d, 0x74, 0x6c, 0x5f, 0x6f, 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, // mtl_o;. float4
- 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, // tmpvar_1 = 0;.
- 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x7a, 0x77, 0x20, 0x3d, 0x20, 0x66, 0x6c, // tmpvar_1.zw = fl
- 0x6f, 0x61, 0x74, 0x32, 0x28, 0x30, 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x3b, 0x0a, // oat2(0.0, 1.0);.
- 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x79, 0x20, 0x3d, 0x20, // tmpvar_1.xy =
- 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x69, 0x2e, 0x61, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, // _mtl_i.a_positio
- 0x6e, 0x2e, 0x78, 0x79, 0x3b, 0x0a, 0x20, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x6f, 0x2e, 0x67, // n.xy;. _mtl_o.g
- 0x6c, 0x5f, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x28, 0x5f, 0x6d, // l_Position = (_m
+ 0x56, 0x53, 0x48, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x01, 0x83, 0xf2, 0xe1, 0x01, 0x00, 0x0f, 0x75, // VSH............u
+ 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x04, 0x01, // _modelViewProj..
+ 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x03, 0x00, 0x00, 0x23, 0x69, 0x6e, 0x63, // ............#inc
+ 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3c, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x64, 0x6c, // lude <metal_stdl
+ 0x69, 0x62, 0x3e, 0x0a, 0x23, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3c, 0x73, 0x69, // ib>.#include <si
+ 0x6d, 0x64, 0x2f, 0x73, 0x69, 0x6d, 0x64, 0x2e, 0x68, 0x3e, 0x0a, 0x0a, 0x75, 0x73, 0x69, 0x6e, // md/simd.h>..usin
+ 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x20, 0x6d, 0x65, 0x74, 0x61, // g namespace meta
+ 0x6c, 0x3b, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x5f, 0x47, 0x6c, 0x6f, 0x62, // l;..struct _Glob
+ 0x61, 0x6c, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x78, // al.{. float4x
+ 0x34, 0x20, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, // 4 u_modelViewPro
+ 0x6a, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x78, 0x6c, // j;.};..struct xl
+ 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x5f, 0x6f, 0x75, 0x74, 0x0a, 0x7b, 0x0a, // atMtlMain_out.{.
+ 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x5f, 0x65, 0x6e, 0x74, 0x72, // float4 _entr
+ 0x79, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x76, 0x5f, 0x63, // yPointOutput_v_c
+ 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x20, 0x5b, 0x5b, 0x75, 0x73, 0x65, 0x72, 0x28, 0x6c, 0x6f, 0x63, // olor0 [[user(loc
+ 0x6e, 0x30, 0x29, 0x5d, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, // n0)]];. float
+ 0x33, 0x20, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x4f, 0x75, 0x74, // 3 _entryPointOut
+ 0x70, 0x75, 0x74, 0x5f, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x20, // put_v_texcoord0
+ 0x5b, 0x5b, 0x75, 0x73, 0x65, 0x72, 0x28, 0x6c, 0x6f, 0x63, 0x6e, 0x31, 0x29, 0x5d, 0x5d, 0x3b, // [[user(locn1)]];
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x67, 0x6c, 0x5f, 0x50, // . float4 gl_P
+ 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x5b, 0x5b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, // osition [[positi
+ 0x6f, 0x6e, 0x5d, 0x5d, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, // on]];.};..struct
+ 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x6e, 0x0a, // xlatMtlMain_in.
+ 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x61, 0x5f, 0x63, // {. float4 a_c
+ 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x20, 0x5b, 0x5b, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, // olor0 [[attribut
+ 0x65, 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, // e(0)]];. floa
+ 0x74, 0x33, 0x20, 0x61, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x5b, 0x5b, // t3 a_position [[
+ 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x31, 0x29, 0x5d, 0x5d, 0x3b, 0x0a, // attribute(1)]];.
+ 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x61, 0x5f, 0x74, 0x65, 0x78, // float3 a_tex
+ 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x20, 0x5b, 0x5b, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, // coord0 [[attribu
+ 0x74, 0x65, 0x28, 0x32, 0x29, 0x5d, 0x5d, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x76, 0x65, 0x72, // te(2)]];.};..ver
+ 0x74, 0x65, 0x78, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x5f, // tex xlatMtlMain_
+ 0x6f, 0x75, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x28, // out xlatMtlMain(
+ 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x6e, 0x20, 0x69, // xlatMtlMain_in i
+ 0x6e, 0x20, 0x5b, 0x5b, 0x73, 0x74, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x5d, 0x5d, 0x2c, 0x20, // n [[stage_in]],
+ 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x20, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, // constant _Global
+ 0x26, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x20, 0x5b, 0x5b, 0x62, 0x75, 0x66, 0x66, 0x65, // & _mtl_u [[buffe
+ 0x72, 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x78, 0x6c, // r(0)]]).{. xl
+ 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x5f, 0x6f, 0x75, 0x74, 0x20, 0x6f, 0x75, // atMtlMain_out ou
+ 0x74, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x2e, // t = {};. out.
+ 0x67, 0x6c, 0x5f, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x5f, 0x6d, // gl_Position = _m
0x74, 0x6c, 0x5f, 0x75, 0x2e, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, // tl_u.u_modelView
- 0x50, 0x72, 0x6f, 0x6a, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x29, // Proj * tmpvar_1)
- 0x3b, 0x0a, 0x20, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x6f, 0x2e, 0x76, 0x5f, 0x74, 0x65, 0x78, // ;. _mtl_o.v_tex
- 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x20, 0x3d, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x69, 0x2e, // coord0 = _mtl_i.
- 0x61, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x5f, // a_texcoord0;. _
- 0x6d, 0x74, 0x6c, 0x5f, 0x6f, 0x2e, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x20, 0x3d, // mtl_o.v_color0 =
- 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x69, 0x2e, 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, // _mtl_i.a_color0
- 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, // ;. return _mtl_
- 0x6f, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x00, // o;.}...
+ 0x50, 0x72, 0x6f, 0x6a, 0x20, 0x2a, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x28, 0x69, 0x6e, // Proj * float4(in
+ 0x2e, 0x61, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x78, 0x79, 0x2c, 0x20, // .a_position.xy,
+ 0x30, 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, // 0.0, 1.0);. o
+ 0x75, 0x74, 0x2e, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x4f, 0x75, // ut._entryPointOu
+ 0x74, 0x70, 0x75, 0x74, 0x5f, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x20, 0x3d, 0x20, // tput_v_color0 =
+ 0x69, 0x6e, 0x2e, 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, // in.a_color0;.
+ 0x20, 0x6f, 0x75, 0x74, 0x2e, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x69, 0x6e, 0x74, // out._entryPoint
+ 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, // Output_v_texcoor
+ 0x64, 0x30, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x2e, 0x61, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, // d0 = in.a_texcoo
+ 0x72, 0x64, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, // rd0;. return
+ 0x6f, 0x75, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x00, 0x03, 0x05, 0x00, 0x01, 0x00, 0x10, 0x00, // out;.}..........
+ 0x40, 0x00, // @.
};
extern const uint8_t* vs_texture_pssl;
extern const uint32_t vs_texture_pssl_size;
diff --git a/3rdparty/bgfx/tools/texturev/vs_texture.sc b/3rdparty/bgfx/tools/texturev/vs_texture.sc
index e5a1df84083..54267951770 100644
--- a/3rdparty/bgfx/tools/texturev/vs_texture.sc
+++ b/3rdparty/bgfx/tools/texturev/vs_texture.sc
@@ -2,8 +2,8 @@ $input a_position, a_texcoord0, a_color0
$output v_texcoord0, v_color0
/*
- * Copyright 2011-2018 Branimir Karadzic. All rights reserved.
- * License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause
+ * Copyright 2011-2022 Branimir Karadzic. All rights reserved.
+ * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE
*/
#include <bgfx_shader.sh>
diff --git a/3rdparty/bgfx/tools/texturev/vs_texture_cube.bin.h b/3rdparty/bgfx/tools/texturev/vs_texture_cube.bin.h
index e66ba7320db..9dd901f195d 100644
--- a/3rdparty/bgfx/tools/texturev/vs_texture_cube.bin.h
+++ b/3rdparty/bgfx/tools/texturev/vs_texture_cube.bin.h
@@ -1,232 +1,266 @@
-static const uint8_t vs_texture_cube_glsl[382] =
+static const uint8_t vs_texture_cube_glsl[386] =
{
- 0x56, 0x53, 0x48, 0x06, 0x00, 0x00, 0x00, 0x00, 0x01, 0x83, 0xf2, 0xe1, 0x01, 0x00, 0x0f, 0x75, // VSH............u
+ 0x56, 0x53, 0x48, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x01, 0x83, 0xf2, 0xe1, 0x01, 0x00, 0x0f, 0x75, // VSH............u
0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x04, 0x01, // _modelViewProj..
- 0x00, 0x00, 0x01, 0x00, 0x55, 0x01, 0x00, 0x00, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, // ....U...attribut
- 0x65, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x3b, // e vec4 a_color0;
- 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, // .attribute vec3
- 0x61, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3b, 0x0a, 0x61, 0x74, 0x74, 0x72, // a_position;.attr
- 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x61, 0x5f, 0x74, 0x65, 0x78, // ibute vec3 a_tex
- 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, 0x0a, 0x76, 0x61, 0x72, 0x79, 0x69, 0x6e, 0x67, 0x20, // coord0;.varying
- 0x76, 0x65, 0x63, 0x34, 0x20, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x76, // vec4 v_color0;.v
- 0x61, 0x72, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x76, 0x5f, 0x74, 0x65, // arying vec3 v_te
- 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, // xcoord0;.uniform
- 0x20, 0x6d, 0x61, 0x74, 0x34, 0x20, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, // mat4 u_modelVie
- 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x3b, 0x0a, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x6d, 0x61, 0x69, 0x6e, // wProj;.void main
- 0x20, 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x74, 0x6d, 0x70, // ().{. vec4 tmp
- 0x76, 0x61, 0x72, 0x5f, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // var_1;. tmpvar_
- 0x31, 0x2e, 0x77, 0x20, 0x3d, 0x20, 0x31, 0x2e, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, // 1.w = 1.0;. tmp
- 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x20, 0x3d, 0x20, 0x61, 0x5f, 0x70, 0x6f, // var_1.xyz = a_po
- 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x67, 0x6c, 0x5f, 0x50, 0x6f, 0x73, // sition;. gl_Pos
- 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x28, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, // ition = (u_model
- 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, // ViewProj * tmpva
- 0x72, 0x5f, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, // r_1);. v_texcoo
- 0x72, 0x64, 0x30, 0x20, 0x3d, 0x20, 0x61, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, // rd0 = a_texcoord
- 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x20, 0x3d, 0x20, // 0;. v_color0 =
- 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x00, // a_color0;.}...
+ 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x01, 0x00, 0x00, 0x61, 0x74, 0x74, 0x72, // ........U...attr
+ 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x61, 0x5f, 0x63, 0x6f, 0x6c, // ibute vec4 a_col
+ 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x76, // or0;.attribute v
+ 0x65, 0x63, 0x33, 0x20, 0x61, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3b, 0x0a, // ec3 a_position;.
+ 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x61, // attribute vec3 a
+ 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, 0x0a, 0x76, 0x61, 0x72, 0x79, // _texcoord0;.vary
+ 0x69, 0x6e, 0x67, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, // ing vec4 v_color
+ 0x30, 0x3b, 0x0a, 0x76, 0x61, 0x72, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, // 0;.varying vec3
+ 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, 0x0a, 0x75, 0x6e, 0x69, // v_texcoord0;.uni
+ 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x6d, 0x61, 0x74, 0x34, 0x20, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, // form mat4 u_mode
+ 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x3b, 0x0a, 0x76, 0x6f, 0x69, 0x64, 0x20, // lViewProj;.void
+ 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x76, 0x65, 0x63, 0x34, // main ().{. vec4
+ 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, // tmpvar_1;. tmp
+ 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x77, 0x20, 0x3d, 0x20, 0x31, 0x2e, 0x30, 0x3b, 0x0a, 0x20, // var_1.w = 1.0;.
+ 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x20, 0x3d, 0x20, // tmpvar_1.xyz =
+ 0x61, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x67, 0x6c, // a_position;. gl
+ 0x5f, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x28, 0x75, 0x5f, 0x6d, // _Position = (u_m
+ 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x20, 0x2a, 0x20, 0x74, // odelViewProj * t
+ 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x5f, 0x74, 0x65, // mpvar_1);. v_te
+ 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x20, 0x3d, 0x20, 0x61, 0x5f, 0x74, 0x65, 0x78, 0x63, // xcoord0 = a_texc
+ 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, // oord0;. v_color
+ 0x30, 0x20, 0x3d, 0x20, 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, // 0 = a_color0;.}.
+ 0x0a, 0x00, // ..
};
-static const uint8_t vs_texture_cube_spv[1270] =
+static const uint8_t vs_texture_cube_essl[428] =
{
- 0x56, 0x53, 0x48, 0x06, 0x00, 0x00, 0x00, 0x00, 0x01, 0x83, 0xf2, 0xe1, 0x01, 0x00, 0x0f, 0x75, // VSH............u
+ 0x56, 0x53, 0x48, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x01, 0x83, 0xf2, 0xe1, 0x01, 0x00, 0x0f, 0x75, // VSH............u
0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x04, 0x01, // _modelViewProj..
- 0x00, 0x00, 0x04, 0x00, 0xc4, 0x04, 0x00, 0x00, 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, // ..........#.....
- 0x07, 0x00, 0x08, 0x00, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, // ................
- 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, // ............GLSL
- 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, // .std.450........
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
- 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, // ....main....<...
- 0x40, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, // @...C...N...Q...
- 0x55, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x05, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, // U...............
- 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, // ........main....
- 0x05, 0x00, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00, 0x24, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x00, // ....$...$Global.
- 0x06, 0x00, 0x07, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x6d, 0x6f, // ....$.......u_mo
- 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x05, 0x00, 0x03, 0x00, // delViewProj.....
- 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x3c, 0x00, 0x00, 0x00, // &...........<...
- 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, // a_color0........
- 0x40, 0x00, 0x00, 0x00, 0x61, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x00, 0x00, // @...a_position..
- 0x05, 0x00, 0x05, 0x00, 0x43, 0x00, 0x00, 0x00, 0x61, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, // ....C...a_texcoo
- 0x72, 0x64, 0x30, 0x00, 0x05, 0x00, 0x0a, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x40, 0x65, 0x6e, 0x74, // rd0.....N...@ent
- 0x72, 0x79, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2e, 0x67, 0x6c, // ryPointOutput.gl
- 0x5f, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x00, 0x00, 0x00, 0x05, 0x00, 0x09, 0x00, // _Position.......
- 0x51, 0x00, 0x00, 0x00, 0x40, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x4f, // Q...@entryPointO
- 0x75, 0x74, 0x70, 0x75, 0x74, 0x2e, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x00, 0x00, // utput.v_color0..
- 0x05, 0x00, 0x0a, 0x00, 0x55, 0x00, 0x00, 0x00, 0x40, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x6f, // ....U...@entryPo
- 0x69, 0x6e, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2e, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, // intOutput.v_texc
- 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x00, 0x00, 0x00, 0x48, 0x00, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00, // oord0...H...$...
- 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, // ........H...$...
- 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, // ....#.......H...
- 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, // $...............
- 0x47, 0x00, 0x03, 0x00, 0x24, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, // G...$.......G...
- 0x26, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, // &...".......G...
- 0x3c, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, // <...........G...
- 0x40, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, // @...........G...
- 0x43, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, // C...........G...
- 0x4e, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, // N...........G...
- 0x51, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, // Q...........G...
- 0x55, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, // U...............
- 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, // ....!...........
- 0x16, 0x00, 0x03, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, // ........ .......
- 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, // ................
- 0x09, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, // ................
- 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, // .... .......+...
- 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x2b, 0x00, 0x04, 0x00, // ...........?+...
- 0x14, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x04, 0x00, // ................
- 0x23, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, // #...............
- 0x24, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x25, 0x00, 0x00, 0x00, // $...#... ...%...
- 0x02, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x25, 0x00, 0x00, 0x00, // ....$...;...%...
- 0x26, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x27, 0x00, 0x00, 0x00, // &....... ...'...
- 0x02, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x3b, 0x00, 0x00, 0x00, // ....#... ...;...
- 0x01, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x3b, 0x00, 0x00, 0x00, // ........;...;...
- 0x3c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, // <....... ...?...
- 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, // ........;...?...
- 0x40, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, // @.......;...?...
- 0x43, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x4d, 0x00, 0x00, 0x00, // C....... ...M...
- 0x03, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x4d, 0x00, 0x00, 0x00, // ........;...M...
- 0x4e, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x4d, 0x00, 0x00, 0x00, // N.......;...M...
- 0x51, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, // Q....... ...T...
- 0x03, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, // ........;...T...
- 0x55, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, // U.......6.......
- 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, // ................
- 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, // ....=.......=...
- 0x3c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, // <...=.......A...
- 0x40, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, // @...=.......D...
- 0x43, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, // C...Q.......m...
- 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, // A.......Q.......
- 0x6e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, // n...A.......Q...
- 0x06, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, // ....o...A.......
- 0x50, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, // P.......p...m...
- 0x6e, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, // n...o.......A...
- 0x27, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, // '...q...&.......
- 0x3d, 0x00, 0x04, 0x00, 0x23, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, // =...#...r...q...
- 0x90, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, // ........s...p...
- 0x72, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, // r...Q.......z...
- 0x73, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, // s...............
- 0x7b, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x52, 0x00, 0x06, 0x00, 0x07, 0x00, 0x00, 0x00, // {...z...R.......
- 0x99, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // ....{...s.......
- 0x3e, 0x00, 0x03, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, // >...N.......>...
- 0x51, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x55, 0x00, 0x00, 0x00, // Q...=...>...U...
- 0x44, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00, 0x00, 0x03, 0x05, 0x00, // D.......8.......
+ 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x01, 0x00, 0x00, 0x61, 0x74, 0x74, 0x72, // ............attr
+ 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, 0x34, // ibute highp vec4
+ 0x20, 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, // a_color0;.attri
+ 0x62, 0x75, 0x74, 0x65, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, // bute highp vec3
+ 0x61, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3b, 0x0a, 0x61, 0x74, 0x74, 0x72, // a_position;.attr
+ 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, 0x33, // ibute highp vec3
+ 0x20, 0x61, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, 0x0a, 0x76, 0x61, // a_texcoord0;.va
+ 0x72, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, 0x34, // rying highp vec4
+ 0x20, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x76, 0x61, 0x72, 0x79, 0x69, // v_color0;.varyi
+ 0x6e, 0x67, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, 0x33, 0x20, 0x76, 0x5f, // ng highp vec3 v_
+ 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, // texcoord0;.unifo
+ 0x72, 0x6d, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x6d, 0x61, 0x74, 0x34, 0x20, 0x75, 0x5f, // rm highp mat4 u_
+ 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x3b, 0x0a, 0x76, // modelViewProj;.v
+ 0x6f, 0x69, 0x64, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, // oid main ().{.
+ 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, // highp vec4 tmpva
+ 0x72, 0x5f, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, // r_1;. tmpvar_1.
+ 0x77, 0x20, 0x3d, 0x20, 0x31, 0x2e, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, // w = 1.0;. tmpva
+ 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x20, 0x3d, 0x20, 0x61, 0x5f, 0x70, 0x6f, 0x73, 0x69, // r_1.xyz = a_posi
+ 0x74, 0x69, 0x6f, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x67, 0x6c, 0x5f, 0x50, 0x6f, 0x73, 0x69, 0x74, // tion;. gl_Posit
+ 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x28, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, // ion = (u_modelVi
+ 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // ewProj * tmpvar_
+ 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, // 1);. v_texcoord
+ 0x30, 0x20, 0x3d, 0x20, 0x61, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, // 0 = a_texcoord0;
+ 0x0a, 0x20, 0x20, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x20, 0x3d, 0x20, 0x61, 0x5f, // . v_color0 = a_
+ 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x00, // color0;.}...
+};
+static const uint8_t vs_texture_cube_spv[1238] =
+{
+ 0x56, 0x53, 0x48, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x01, 0x83, 0xf2, 0xe1, 0x01, 0x00, 0x0f, 0x75, // VSH............u
+ 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x04, 0x00, // _modelViewProj..
+ 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x04, 0x00, 0x00, 0x03, 0x02, 0x23, 0x07, // ..............#.
+ 0x00, 0x00, 0x01, 0x00, 0x0a, 0x00, 0x08, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........o.......
+ 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, // ................
+ 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, // GLSL.std.450....
+ 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x0b, 0x00, // ................
+ 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, // ........main....
+ 0x35, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, // 5...9...<...G...
+ 0x4a, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x05, 0x00, 0x00, 0x00, // J...N...........
+ 0xf4, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, // ............main
+ 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x24, 0x00, 0x00, 0x00, 0x55, 0x6e, 0x69, 0x66, // ........$...Unif
+ 0x6f, 0x72, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x07, 0x00, // ormBlock........
+ 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, // $.......u_modelV
+ 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x05, 0x00, 0x03, 0x00, 0x26, 0x00, 0x00, 0x00, // iewProj.....&...
+ 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, 0x61, 0x5f, 0x63, 0x6f, // ........5...a_co
+ 0x6c, 0x6f, 0x72, 0x30, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x39, 0x00, 0x00, 0x00, // lor0........9...
+ 0x61, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, // a_position......
+ 0x3c, 0x00, 0x00, 0x00, 0x61, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x00, // <...a_texcoord0.
+ 0x05, 0x00, 0x0a, 0x00, 0x47, 0x00, 0x00, 0x00, 0x40, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x6f, // ....G...@entryPo
+ 0x69, 0x6e, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2e, 0x67, 0x6c, 0x5f, 0x50, 0x6f, 0x73, // intOutput.gl_Pos
+ 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x00, 0x00, 0x00, 0x05, 0x00, 0x09, 0x00, 0x4a, 0x00, 0x00, 0x00, // ition.......J...
+ 0x40, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, // @entryPointOutpu
+ 0x74, 0x2e, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x00, 0x00, 0x05, 0x00, 0x0a, 0x00, // t.v_color0......
+ 0x4e, 0x00, 0x00, 0x00, 0x40, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x4f, // N...@entryPointO
+ 0x75, 0x74, 0x70, 0x75, 0x74, 0x2e, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, // utput.v_texcoord
+ 0x30, 0x00, 0x00, 0x00, 0x48, 0x00, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0...H...$.......
+ 0x04, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ....H...$.......
+ 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, // #.......H...$...
+ 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, // ............G...
+ 0x24, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x26, 0x00, 0x00, 0x00, // $.......G...&...
+ 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x26, 0x00, 0x00, 0x00, // ".......G...&...
+ 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, // !.......G...5...
+ 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x39, 0x00, 0x00, 0x00, // ........G...9...
+ 0x1e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x3c, 0x00, 0x00, 0x00, // ........G...<...
+ 0x1e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x47, 0x00, 0x00, 0x00, // ........G...G...
+ 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, // ........G...J...
+ 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, // ........G...N...
+ 0x1e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, // ................
+ 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, // !...............
+ 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, // .... ...........
+ 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, // ................
+ 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, // ................
+ 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, // .......+.......
+ 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x2b, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, // .......?+.......
+ 0x1d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x04, 0x00, 0x23, 0x00, 0x00, 0x00, // ............#...
+ 0x07, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x24, 0x00, 0x00, 0x00, // ............$...
+ 0x23, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x25, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, // #... ...%.......
+ 0x24, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x25, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, // $...;...%...&...
+ 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x27, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, // .... ...'.......
+ 0x23, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x34, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // #... ...4.......
+ 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x34, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, // ....;...4...5...
+ 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // .... ...8.......
+ 0x09, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, // ....;...8...9...
+ 0x01, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, // ....;...8...<...
+ 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x46, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, // .... ...F.......
+ 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x46, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, // ....;...F...G...
+ 0x03, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x46, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, // ....;...F...J...
+ 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, // .... ...M.......
+ 0x09, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, // ....;...M...N...
+ 0x03, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, // ....6...........
+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, // ................
+ 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, // =.......6...5...
+ 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, // =.......:...9...
+ 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, // =.......=...<...
+ 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, // Q.......h...:...
+ 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, // ....Q.......i...
+ 0x3a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, // :.......Q.......
+ 0x6a, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, // j...:.......P...
+ 0x07, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, // ....k...h...i...
+ 0x6a, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x27, 0x00, 0x00, 0x00, // j.......A...'...
+ 0x6c, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, // l...&.......=...
+ 0x23, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x90, 0x00, 0x05, 0x00, // #...m...l.......
+ 0x07, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, // ....n...k...m...
+ 0x3e, 0x00, 0x03, 0x00, 0x47, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, // >...G...n...>...
+ 0x4a, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x4e, 0x00, 0x00, 0x00, // J...6...>...N...
+ 0x3d, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00, 0x00, 0x03, 0x05, 0x00, // =.......8.......
0x01, 0x00, 0x10, 0x00, 0x40, 0x00, // ....@.
};
-static const uint8_t vs_texture_cube_dx9[353] =
+static const uint8_t vs_texture_cube_dx9[357] =
{
- 0x56, 0x53, 0x48, 0x06, 0x00, 0x00, 0x00, 0x00, 0x01, 0x83, 0xf2, 0xe1, 0x01, 0x00, 0x0f, 0x75, // VSH............u
+ 0x56, 0x53, 0x48, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x01, 0x83, 0xf2, 0xe1, 0x01, 0x00, 0x0f, 0x75, // VSH............u
0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x04, 0x01, // _modelViewProj..
- 0x00, 0x00, 0x04, 0x00, 0x38, 0x01, 0x00, 0x00, 0x00, 0x03, 0xfe, 0xff, 0xfe, 0xff, 0x21, 0x00, // ....8.........!.
- 0x43, 0x54, 0x41, 0x42, 0x1c, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x00, 0x03, 0xfe, 0xff, // CTAB....W.......
- 0x01, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, // ............P...
- 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // 0...........@...
- 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, // ....u_modelViewP
- 0x72, 0x6f, 0x6a, 0x00, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, // roj.............
- 0x00, 0x00, 0x00, 0x00, 0x76, 0x73, 0x5f, 0x33, 0x5f, 0x30, 0x00, 0x4d, 0x69, 0x63, 0x72, 0x6f, // ....vs_3_0.Micro
- 0x73, 0x6f, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4c, 0x53, 0x4c, 0x20, 0x53, 0x68, // soft (R) HLSL Sh
- 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x20, 0x31, 0x30, // ader Compiler 10
- 0x2e, 0x31, 0x00, 0xab, 0x1f, 0x00, 0x00, 0x02, 0x0a, 0x00, 0x00, 0x80, 0x00, 0x00, 0x0f, 0x90, // .1..............
- 0x1f, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x0f, 0x90, 0x1f, 0x00, 0x00, 0x02, // ................
- 0x05, 0x00, 0x00, 0x80, 0x02, 0x00, 0x0f, 0x90, 0x1f, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x80, // ................
- 0x00, 0x00, 0x0f, 0xe0, 0x1f, 0x00, 0x00, 0x02, 0x0a, 0x00, 0x00, 0x80, 0x01, 0x00, 0x0f, 0xe0, // ................
- 0x1f, 0x00, 0x00, 0x02, 0x05, 0x00, 0x00, 0x80, 0x02, 0x00, 0x07, 0xe0, 0x05, 0x00, 0x00, 0x03, // ................
- 0x00, 0x00, 0x0f, 0x80, 0x01, 0x00, 0xe4, 0xa0, 0x01, 0x00, 0x55, 0x90, 0x04, 0x00, 0x00, 0x04, // ..........U.....
- 0x00, 0x00, 0x0f, 0x80, 0x00, 0x00, 0xe4, 0xa0, 0x01, 0x00, 0x00, 0x90, 0x00, 0x00, 0xe4, 0x80, // ................
- 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x0f, 0x80, 0x02, 0x00, 0xe4, 0xa0, 0x01, 0x00, 0xaa, 0x90, // ................
- 0x00, 0x00, 0xe4, 0x80, 0x02, 0x00, 0x00, 0x03, 0x00, 0x00, 0x0f, 0xe0, 0x00, 0x00, 0xe4, 0x80, // ................
- 0x03, 0x00, 0xe4, 0xa0, 0x01, 0x00, 0x00, 0x02, 0x01, 0x00, 0x0f, 0xe0, 0x00, 0x00, 0xe4, 0x90, // ................
- 0x01, 0x00, 0x00, 0x02, 0x02, 0x00, 0x07, 0xe0, 0x02, 0x00, 0xe4, 0x90, 0xff, 0xff, 0x00, 0x00, // ................
- 0x00, // .
+ 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x01, 0x00, 0x00, 0x00, 0x03, 0xfe, 0xff, // ........8.......
+ 0xfe, 0xff, 0x21, 0x00, 0x43, 0x54, 0x41, 0x42, 0x1c, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, // ..!.CTAB....W...
+ 0x00, 0x03, 0xfe, 0xff, 0x01, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, // ................
+ 0x50, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, // P...0...........
+ 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, // @.......u_modelV
+ 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, // iewProj.........
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0x73, 0x5f, 0x33, 0x5f, 0x30, 0x00, 0x4d, // ........vs_3_0.M
+ 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4c, 0x53, // icrosoft (R) HLS
+ 0x4c, 0x20, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, // L Shader Compile
+ 0x72, 0x20, 0x31, 0x30, 0x2e, 0x31, 0x00, 0xab, 0x1f, 0x00, 0x00, 0x02, 0x0a, 0x00, 0x00, 0x80, // r 10.1..........
+ 0x00, 0x00, 0x0f, 0x90, 0x1f, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x0f, 0x90, // ................
+ 0x1f, 0x00, 0x00, 0x02, 0x05, 0x00, 0x00, 0x80, 0x02, 0x00, 0x0f, 0x90, 0x1f, 0x00, 0x00, 0x02, // ................
+ 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x0f, 0xe0, 0x1f, 0x00, 0x00, 0x02, 0x0a, 0x00, 0x00, 0x80, // ................
+ 0x01, 0x00, 0x0f, 0xe0, 0x1f, 0x00, 0x00, 0x02, 0x05, 0x00, 0x00, 0x80, 0x02, 0x00, 0x07, 0xe0, // ................
+ 0x05, 0x00, 0x00, 0x03, 0x00, 0x00, 0x0f, 0x80, 0x01, 0x00, 0xe4, 0xa0, 0x01, 0x00, 0x55, 0x90, // ..............U.
+ 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x0f, 0x80, 0x00, 0x00, 0xe4, 0xa0, 0x01, 0x00, 0x00, 0x90, // ................
+ 0x00, 0x00, 0xe4, 0x80, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x0f, 0x80, 0x02, 0x00, 0xe4, 0xa0, // ................
+ 0x01, 0x00, 0xaa, 0x90, 0x00, 0x00, 0xe4, 0x80, 0x02, 0x00, 0x00, 0x03, 0x00, 0x00, 0x0f, 0xe0, // ................
+ 0x00, 0x00, 0xe4, 0x80, 0x03, 0x00, 0xe4, 0xa0, 0x01, 0x00, 0x00, 0x02, 0x01, 0x00, 0x0f, 0xe0, // ................
+ 0x00, 0x00, 0xe4, 0x90, 0x01, 0x00, 0x00, 0x02, 0x02, 0x00, 0x07, 0xe0, 0x02, 0x00, 0xe4, 0x90, // ................
+ 0xff, 0xff, 0x00, 0x00, 0x00, // .....
};
-static const uint8_t vs_texture_cube_dx11[626] =
+static const uint8_t vs_texture_cube_dx11[630] =
{
- 0x56, 0x53, 0x48, 0x06, 0x00, 0x00, 0x00, 0x00, 0x01, 0x83, 0xf2, 0xe1, 0x01, 0x00, 0x0f, 0x75, // VSH............u
+ 0x56, 0x53, 0x48, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x01, 0x83, 0xf2, 0xe1, 0x01, 0x00, 0x0f, 0x75, // VSH............u
0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x04, 0x00, // _modelViewProj..
- 0x00, 0x00, 0x04, 0x00, 0x40, 0x02, 0x00, 0x00, 0x44, 0x58, 0x42, 0x43, 0x52, 0x1b, 0xf0, 0x79, // ....@...DXBCR..y
- 0x87, 0x20, 0xa0, 0x2d, 0xbc, 0x22, 0x0f, 0xb3, 0x05, 0x0c, 0xbf, 0x92, 0x01, 0x00, 0x00, 0x00, // . .-."..........
- 0x40, 0x02, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, // @.......,.......
- 0x10, 0x01, 0x00, 0x00, 0x49, 0x53, 0x47, 0x4e, 0x68, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, // ....ISGNh.......
- 0x08, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ....P...........
- 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, // ............V...
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // ................
- 0x07, 0x07, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ...._...........
- 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, 0x43, 0x4f, 0x4c, 0x4f, // ............COLO
- 0x52, 0x00, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, // R.POSITION.TEXCO
- 0x4f, 0x52, 0x44, 0x00, 0x4f, 0x53, 0x47, 0x4e, 0x6c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, // ORD.OSGNl.......
- 0x08, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // ....P...........
- 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, // ................
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // ................
- 0x0f, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ....b...........
- 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x07, 0x08, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x50, // ............SV_P
- 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x00, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x00, 0x54, 0x45, // OSITION.COLOR.TE
- 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x00, 0xab, 0x53, 0x48, 0x44, 0x52, 0x28, 0x01, 0x00, 0x00, // XCOORD..SHDR(...
- 0x40, 0x00, 0x01, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x04, 0x46, 0x8e, 0x20, 0x00, // @...J...Y...F. .
- 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x03, 0xf2, 0x10, 0x10, 0x00, // ........_.......
- 0x00, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x03, 0x72, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, // ...._...r.......
- 0x5f, 0x00, 0x00, 0x03, 0x72, 0x10, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x04, // _...r.......g...
- 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x03, // . ..........e...
- 0xf2, 0x20, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x03, 0x72, 0x20, 0x10, 0x00, // . ......e...r ..
- 0x02, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x08, // ....h.......8...
- 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x15, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, // ........V.......
- 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, // F. .........2...
- 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, // ........F. .....
- 0x00, 0x00, 0x00, 0x00, 0x06, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, // ............F...
- 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ....2...........
- 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xa6, 0x1a, 0x10, 0x00, // F. .............
- 0x01, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, // ....F...........
- 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // . ......F.......
- 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, // F. .........6...
- 0xf2, 0x20, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x1e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // . ......F.......
- 0x36, 0x00, 0x00, 0x05, 0x72, 0x20, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x12, 0x10, 0x00, // 6...r ......F...
- 0x02, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x01, 0x00, 0x03, 0x05, 0x00, 0x01, 0x00, 0x10, 0x00, // ....>...........
- 0x40, 0x00, // @.
+ 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x44, 0x58, 0x42, 0x43, // ........@...DXBC
+ 0x52, 0x1b, 0xf0, 0x79, 0x87, 0x20, 0xa0, 0x2d, 0xbc, 0x22, 0x0f, 0xb3, 0x05, 0x0c, 0xbf, 0x92, // R..y. .-."......
+ 0x01, 0x00, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, // ....@.......,...
+ 0x9c, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x49, 0x53, 0x47, 0x4e, 0x68, 0x00, 0x00, 0x00, // ........ISGNh...
+ 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........P.......
+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, // ................
+ 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, // V...............
+ 0x01, 0x00, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........_.......
+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, // ................
+ 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x00, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x00, 0x54, // COLOR.POSITION.T
+ 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x00, 0x4f, 0x53, 0x47, 0x4e, 0x6c, 0x00, 0x00, 0x00, // EXCOORD.OSGNl...
+ 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........P.......
+ 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, // ................
+ 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, // ................
+ 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........b.......
+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x07, 0x08, 0x00, 0x00, // ................
+ 0x53, 0x56, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x00, 0x43, 0x4f, 0x4c, 0x4f, // SV_POSITION.COLO
+ 0x52, 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x00, 0xab, 0x53, 0x48, 0x44, 0x52, // R.TEXCOORD..SHDR
+ 0x28, 0x01, 0x00, 0x00, 0x40, 0x00, 0x01, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x04, // (...@...J...Y...
+ 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x03, // F. ........._...
+ 0xf2, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x03, 0x72, 0x10, 0x10, 0x00, // ........_...r...
+ 0x01, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x03, 0x72, 0x10, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, // ...._...r.......
+ 0x67, 0x00, 0x00, 0x04, 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // g.... ..........
+ 0x65, 0x00, 0x00, 0x03, 0xf2, 0x20, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x03, // e.... ......e...
+ 0x72, 0x20, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, // r ......h.......
+ 0x38, 0x00, 0x00, 0x08, 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x15, 0x10, 0x00, // 8...........V...
+ 0x01, 0x00, 0x00, 0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // ....F. .........
+ 0x32, 0x00, 0x00, 0x0a, 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x8e, 0x20, 0x00, // 2...........F. .
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, // ................
+ 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, 0xf2, 0x00, 0x10, 0x00, // F.......2.......
+ 0x00, 0x00, 0x00, 0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, // ....F. .........
+ 0xa6, 0x1a, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ........F.......
+ 0x00, 0x00, 0x00, 0x08, 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, // ..... ......F...
+ 0x00, 0x00, 0x00, 0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, // ....F. .........
+ 0x36, 0x00, 0x00, 0x05, 0xf2, 0x20, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x1e, 0x10, 0x00, // 6.... ......F...
+ 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0x72, 0x20, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, // ....6...r ......
+ 0x46, 0x12, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x01, 0x00, 0x03, 0x05, 0x00, // F.......>.......
+ 0x01, 0x00, 0x10, 0x00, 0x40, 0x00, // ....@.
};
-static const uint8_t vs_texture_cube_mtl[759] =
+static const uint8_t vs_texture_cube_mtl[842] =
{
- 0x56, 0x53, 0x48, 0x06, 0x00, 0x00, 0x00, 0x00, 0x01, 0x83, 0xf2, 0xe1, 0x00, 0x00, 0xe4, 0x02, // VSH.............
- 0x00, 0x00, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, // ..using namespac
- 0x65, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x3b, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, // e metal;.struct
- 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x70, // xlatMtlShaderInp
- 0x75, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x61, 0x5f, // ut {. float4 a_
- 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x20, 0x5b, 0x5b, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, // color0 [[attribu
- 0x74, 0x65, 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, // te(0)]];. float
- 0x33, 0x20, 0x61, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x5b, 0x5b, 0x61, // 3 a_position [[a
- 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x31, 0x29, 0x5d, 0x5d, 0x3b, 0x0a, 0x20, // ttribute(1)]];.
- 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x61, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, // float3 a_texcoo
- 0x72, 0x64, 0x30, 0x20, 0x5b, 0x5b, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, // rd0 [[attribute(
- 0x32, 0x29, 0x5d, 0x5d, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, // 2)]];.};.struct
- 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x4f, 0x75, 0x74, // xlatMtlShaderOut
- 0x70, 0x75, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x67, // put {. float4 g
- 0x6c, 0x5f, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x5b, 0x5b, 0x70, 0x6f, 0x73, // l_Position [[pos
- 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5d, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, // ition]];. float
- 0x34, 0x20, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x6c, // 4 v_color0;. fl
- 0x6f, 0x61, 0x74, 0x33, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, // oat3 v_texcoord0
- 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, // ;.};.struct xlat
- 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, // MtlShaderUniform
- 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x78, 0x34, 0x20, 0x75, 0x5f, // {. float4x4 u_
- 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x3b, 0x0a, 0x7d, // modelViewProj;.}
- 0x3b, 0x0a, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, // ;.vertex xlatMtl
- 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x78, 0x6c, 0x61, // ShaderOutput xla
- 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x20, 0x28, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, // tMtlMain (xlatMt
- 0x6c, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x5f, 0x6d, 0x74, // lShaderInput _mt
- 0x6c, 0x5f, 0x69, 0x20, 0x5b, 0x5b, 0x73, 0x74, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x5d, 0x5d, // l_i [[stage_in]]
- 0x2c, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, // , constant xlatM
- 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x26, // tlShaderUniform&
- 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x20, 0x5b, 0x5b, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, // _mtl_u [[buffer
- 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, // (0)]]).{. xlatM
- 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x5f, // tlShaderOutput _
- 0x6d, 0x74, 0x6c, 0x5f, 0x6f, 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, // mtl_o;. float4
- 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, // tmpvar_1 = 0;.
- 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x77, 0x20, 0x3d, 0x20, 0x31, 0x2e, 0x30, // tmpvar_1.w = 1.0
- 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x79, 0x7a, // ;. tmpvar_1.xyz
- 0x20, 0x3d, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x69, 0x2e, 0x61, 0x5f, 0x70, 0x6f, 0x73, 0x69, // = _mtl_i.a_posi
- 0x74, 0x69, 0x6f, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x6f, 0x2e, 0x67, // tion;. _mtl_o.g
- 0x6c, 0x5f, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x28, 0x5f, 0x6d, // l_Position = (_m
+ 0x56, 0x53, 0x48, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x01, 0x83, 0xf2, 0xe1, 0x01, 0x00, 0x0f, 0x75, // VSH............u
+ 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x04, 0x01, // _modelViewProj..
+ 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x03, 0x00, 0x00, 0x23, 0x69, 0x6e, 0x63, // ............#inc
+ 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3c, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x64, 0x6c, // lude <metal_stdl
+ 0x69, 0x62, 0x3e, 0x0a, 0x23, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3c, 0x73, 0x69, // ib>.#include <si
+ 0x6d, 0x64, 0x2f, 0x73, 0x69, 0x6d, 0x64, 0x2e, 0x68, 0x3e, 0x0a, 0x0a, 0x75, 0x73, 0x69, 0x6e, // md/simd.h>..usin
+ 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x20, 0x6d, 0x65, 0x74, 0x61, // g namespace meta
+ 0x6c, 0x3b, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x5f, 0x47, 0x6c, 0x6f, 0x62, // l;..struct _Glob
+ 0x61, 0x6c, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x78, // al.{. float4x
+ 0x34, 0x20, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, // 4 u_modelViewPro
+ 0x6a, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x78, 0x6c, // j;.};..struct xl
+ 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x5f, 0x6f, 0x75, 0x74, 0x0a, 0x7b, 0x0a, // atMtlMain_out.{.
+ 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x5f, 0x65, 0x6e, 0x74, 0x72, // float4 _entr
+ 0x79, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x76, 0x5f, 0x63, // yPointOutput_v_c
+ 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x20, 0x5b, 0x5b, 0x75, 0x73, 0x65, 0x72, 0x28, 0x6c, 0x6f, 0x63, // olor0 [[user(loc
+ 0x6e, 0x30, 0x29, 0x5d, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, // n0)]];. float
+ 0x33, 0x20, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x4f, 0x75, 0x74, // 3 _entryPointOut
+ 0x70, 0x75, 0x74, 0x5f, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x20, // put_v_texcoord0
+ 0x5b, 0x5b, 0x75, 0x73, 0x65, 0x72, 0x28, 0x6c, 0x6f, 0x63, 0x6e, 0x31, 0x29, 0x5d, 0x5d, 0x3b, // [[user(locn1)]];
+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x67, 0x6c, 0x5f, 0x50, // . float4 gl_P
+ 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x5b, 0x5b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, // osition [[positi
+ 0x6f, 0x6e, 0x5d, 0x5d, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, // on]];.};..struct
+ 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x6e, 0x0a, // xlatMtlMain_in.
+ 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x61, 0x5f, 0x63, // {. float4 a_c
+ 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x20, 0x5b, 0x5b, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, // olor0 [[attribut
+ 0x65, 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, // e(0)]];. floa
+ 0x74, 0x33, 0x20, 0x61, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x5b, 0x5b, // t3 a_position [[
+ 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x31, 0x29, 0x5d, 0x5d, 0x3b, 0x0a, // attribute(1)]];.
+ 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x61, 0x5f, 0x74, 0x65, 0x78, // float3 a_tex
+ 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x20, 0x5b, 0x5b, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, // coord0 [[attribu
+ 0x74, 0x65, 0x28, 0x32, 0x29, 0x5d, 0x5d, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x76, 0x65, 0x72, // te(2)]];.};..ver
+ 0x74, 0x65, 0x78, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x5f, // tex xlatMtlMain_
+ 0x6f, 0x75, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x28, // out xlatMtlMain(
+ 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x6e, 0x20, 0x69, // xlatMtlMain_in i
+ 0x6e, 0x20, 0x5b, 0x5b, 0x73, 0x74, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x5d, 0x5d, 0x2c, 0x20, // n [[stage_in]],
+ 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x20, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, // constant _Global
+ 0x26, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x20, 0x5b, 0x5b, 0x62, 0x75, 0x66, 0x66, 0x65, // & _mtl_u [[buffe
+ 0x72, 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x78, 0x6c, // r(0)]]).{. xl
+ 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x5f, 0x6f, 0x75, 0x74, 0x20, 0x6f, 0x75, // atMtlMain_out ou
+ 0x74, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x2e, // t = {};. out.
+ 0x67, 0x6c, 0x5f, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x5f, 0x6d, // gl_Position = _m
0x74, 0x6c, 0x5f, 0x75, 0x2e, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, // tl_u.u_modelView
- 0x50, 0x72, 0x6f, 0x6a, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x29, // Proj * tmpvar_1)
- 0x3b, 0x0a, 0x20, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x6f, 0x2e, 0x76, 0x5f, 0x74, 0x65, 0x78, // ;. _mtl_o.v_tex
- 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x20, 0x3d, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x69, 0x2e, // coord0 = _mtl_i.
- 0x61, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x5f, // a_texcoord0;. _
- 0x6d, 0x74, 0x6c, 0x5f, 0x6f, 0x2e, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x20, 0x3d, // mtl_o.v_color0 =
- 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x69, 0x2e, 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, // _mtl_i.a_color0
- 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, // ;. return _mtl_
- 0x6f, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x00, // o;.}...
+ 0x50, 0x72, 0x6f, 0x6a, 0x20, 0x2a, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x28, 0x69, 0x6e, // Proj * float4(in
+ 0x2e, 0x61, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x2e, 0x30, // .a_position, 1.0
+ 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x2e, 0x5f, 0x65, 0x6e, 0x74, 0x72, // );. out._entr
+ 0x79, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x76, 0x5f, 0x63, // yPointOutput_v_c
+ 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x2e, 0x61, 0x5f, 0x63, 0x6f, 0x6c, // olor0 = in.a_col
+ 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x2e, 0x5f, 0x65, 0x6e, // or0;. out._en
+ 0x74, 0x72, 0x79, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x76, // tryPointOutput_v
+ 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x2e, // _texcoord0 = in.
+ 0x61, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, // a_texcoord0;.
+ 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6f, 0x75, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, // return out;.}..
+ 0x00, 0x03, 0x05, 0x00, 0x01, 0x00, 0x10, 0x00, 0x40, 0x00, // ........@.
};
extern const uint8_t* vs_texture_cube_pssl;
extern const uint32_t vs_texture_cube_pssl_size;
diff --git a/3rdparty/bgfx/tools/texturev/vs_texture_cube.sc b/3rdparty/bgfx/tools/texturev/vs_texture_cube.sc
index e5d82b89de7..073c7de47ef 100644
--- a/3rdparty/bgfx/tools/texturev/vs_texture_cube.sc
+++ b/3rdparty/bgfx/tools/texturev/vs_texture_cube.sc
@@ -2,8 +2,8 @@ $input a_position, a_texcoord0, a_color0
$output v_texcoord0, v_color0
/*
- * Copyright 2011-2018 Branimir Karadzic. All rights reserved.
- * License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause
+ * Copyright 2011-2022 Branimir Karadzic. All rights reserved.
+ * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE
*/
#include <bgfx_shader.sh>