Sign in to follow this  
SteveDeFacto

How to compile shaders into my project?

Recommended Posts

SteveDeFacto    109
I have some default shaders in my project that I would like to compile into it so I will not have to have separate files floating around. Currently I have a string in a function which I am compiling when the program starts. Example:


[code]
void BuildDefaultEffect( Ovgl::Instance* inst )
{
inst->DefaultEffect = new Ovgl::Effect;

// Create shader string.
std::string shader =
"Texture2D txDiffuse;"
"SamplerState samLinear"
"{"
" Filter = MIN_MAG_MIP_LINEAR;"
" AddressU = Wrap;"
" AddressV = Wrap;"
"};"
"TextureCube txEnvironment;"
"SamplerState envSampler"
"{"
" Filter = MIN_MAG_MIP_LINEAR;"
" AddressU = Clamp;"
" AddressV = Clamp;"
" AddressW = Clamp;"
"};"
"float4 Ambient = float4( 0.0f, 0.0f, 0.0f, 1.0f );"
"float4 Diffuse = float4( 0.75f, 0.75f, 0.75f, 1.0f );"
"float Environment_map_intensity = 1.0f;"
"int Light_Count : LIGHTCOUNT;"
"float4 ViewPos : VIEWPOS;"
"float4 Lights[255] : LIGHTARRAY;"
"float4 LightColors[255] : LIGHTCOLORARRAY;"
"float4x4 World : WORLD;"
"float4x4 View : WORLDVIEW;"
"float4x4 Projection : PROJECTION;"
"float4x4 Bones[255] : BONEARRAY;"
"struct VS_INPUT"
"{"
" float3 pos : POSITION;"
" float3 norm : NORMAL;"
" float2 tex : TEXCOORD0;"
" float4 bw : TEXCOORD1;"
" float4 bi : TEXCOORD2;"
"};"
"struct PS_INPUT"
"{"
" float4 posVS : SV_POSITION;"
" float4 posWS : POSITION;"
" float2 tex : TEXCOORD0;"
" float4 norm : NORMAL;"
"};"
"PS_INPUT VS( VS_INPUT In )"
"{"
" PS_INPUT Out = (PS_INPUT)0;"
" float4x4 skinTransform = 0;"
" float3x3 normTransform = 0;"
" skinTransform += Bones[In.bi.x] * In.bw.x;"
" skinTransform += Bones[In.bi.y] * In.bw.y;"
" skinTransform += Bones[In.bi.z] * In.bw.z;"
" skinTransform += Bones[In.bi.w] * In.bw.w;"
" normTransform += (float3x3)(Bones[In.bi.x] * In.bw.x);"
" normTransform += (float3x3)(Bones[In.bi.y] * In.bw.y);"
" normTransform += (float3x3)(Bones[In.bi.z] * In.bw.z);"
" normTransform += (float3x3)(Bones[In.bi.w] * In.bw.w);"
" Out.posVS = mul(float4(In.pos, 1), skinTransform);"
" Out.posWS = Out.posVS;"
" Out.norm = float4(mul(In.norm, normTransform), 0);"
" Out.posVS = mul(mul(Out.posVS, View), Projection);"
" Out.tex = In.tex;"
" return Out;"
"}"
"float4 PS( PS_INPUT In) : SV_Target"
"{"
" float4 light = float4( 0, 0, 0, 0 );"
" float txWidth, txHeight;"
" txEnvironment.GetDimensions(txWidth, txHeight);"
" float4 envColor = float4( 0, 0, 0, 1 );"
" if(txWidth > 0)"
" {"
" envColor = Environment_map_intensity * txEnvironment.Sample( envSampler, reflect( normalize( In.posWS.xyz - ViewPos.xyz ), In.norm.xyz ) );"
" }"
" txDiffuse.GetDimensions(txWidth, txHeight);"
" float4 texColor = float4( 1, 1, 1, 1 );"
" if(txWidth > 0)"
" {"
" texColor = txDiffuse.Sample( samLinear, In.tex );"
" }"
" for(int i = 0; i < Light_Count; i++)"
" {"
" float4 lightDir = Lights[i] - In.posWS;"
" float4 NdotL = saturate(dot(In.norm, normalize(lightDir)));"
" float4 attenuation = 1/length(lightDir);"
" light += LightColors[i] * NdotL * attenuation * 10;"
" }"
" light.w = 1;"
" return ( ((texColor + envColor) * Diffuse) * (light + Ambient) );"
"}"
"technique10 Render"
"{"
" pass P0"
" {"
" SetVertexShader( CompileShader( vs_4_0, VS() ) );"
" SetGeometryShader( NULL );"
" SetPixelShader( CompileShader( ps_4_0, PS() ) );"
" }"
"}";

// Create effect.
D3DX10CreateEffectFromMemory( shader.c_str(), shader.size(), NULL, NULL, NULL, "fx_4_0", D3D10_SHADER_ENABLE_STRICTNESS, 0, inst->D3DDevice, NULL, NULL, &inst->DefaultEffect->SFX, NULL, NULL );

// Get shader variables.
inst->DefaultEffect->Technique = inst->DefaultEffect->SFX->GetTechniqueByName( "Render" );
inst->DefaultEffect->Shadow_Maps = inst->DefaultEffect->SFX->GetVariableBySemantic( "SHADOWMAPS" )->AsShaderResource();
inst->DefaultEffect->Cube_Views = inst->DefaultEffect->SFX->GetVariableBySemantic( "CUBEVIEWS" )->AsMatrix();
inst->DefaultEffect->Light_Count = inst->DefaultEffect->SFX->GetVariableBySemantic( "LIGHTCOUNT" )->AsScalar();
inst->DefaultEffect->Lights = inst->DefaultEffect->SFX->GetVariableBySemantic( "LIGHTARRAY" )->AsVector();
inst->DefaultEffect->Light_Colors = inst->DefaultEffect->SFX->GetVariableBySemantic( "LIGHTCOLORARRAY" )->AsVector();
inst->DefaultEffect->Bones = inst->DefaultEffect->SFX->GetVariableBySemantic( "BONEARRAY" )->AsMatrix();
inst->DefaultEffect->View = inst->DefaultEffect->SFX->GetVariableBySemantic( "WORLDVIEW" )->AsMatrix();
inst->DefaultEffect->ViewPos = inst->DefaultEffect->SFX->GetVariableBySemantic( "VIEWPOS" )->AsVector();
inst->DefaultEffect->Projection = inst->DefaultEffect->SFX->GetVariableBySemantic( "PROJECTION" )->AsMatrix();

// Get technique.
D3D10_PASS_DESC PassDesc;
inst->DefaultEffect->Technique->GetPassByIndex( 0 )->GetDesc( &PassDesc );

// Create vertex layout desc.
D3D10_INPUT_ELEMENT_DESC vertexlayout[] =
{
{ "POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D10_INPUT_PER_VERTEX_DATA, 0 },
{ "NORMAL", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 12, D3D10_INPUT_PER_VERTEX_DATA, 0 },
{ "TEXCOORD", 0, DXGI_FORMAT_R32G32_FLOAT, 0, 24, D3D10_INPUT_PER_VERTEX_DATA, 0 },
{ "TEXCOORD", 1, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, 32, D3D10_INPUT_PER_VERTEX_DATA, 0 },
{ "TEXCOORD", 2, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, 48, D3D10_INPUT_PER_VERTEX_DATA, 0 },
};

// Create vertex layout.
inst->D3DDevice->CreateInputLayout( vertexlayout, sizeof(vertexlayout)/sizeof(vertexlayout[0]), PassDesc.pIAInputSignature, PassDesc.IAInputSignatureSize, &inst->DefaultEffect->Layout );
}
[/code]

This however results in my project initializing slowly and requires a developer to open the source files in order to modify the shaders. I was thinking maybe I could use a pre-build event with [color=#1C2837][size=2][font="Arial"]fxc.exe to compile the shader then somehow add the compiled shader to my project? I'm not sure how to do the last part though...[/font][/size][/color]

Share this post


Link to post
Share on other sites
Hodgman    51334
Check out the [font="Lucida Console"]/Fh[/font] option for [font="Lucida Console"]fxc[/font]. It outputs a header file that you can include, which contains the compiled shader code.

You could definitely hook that up as a pre-build event.

Share this post


Link to post
Share on other sites
SteveDeFacto    109
[quote name='Hodgman' timestamp='1302498611' post='4796943']
Check out the [font="Lucida Console"]/Fh[/font] option for [font="Lucida Console"]fxc[/font]. It outputs a header file that you can include, which contains the compiled shader code.

You could definitely hook that up as a pre-build event.
[/quote]

Alright, I compiled it into a header files but how do I use the header file?

Header file:

[code]

#if 0
//
// FX Version: fx_4_0
// Child effect (requires effect pool): false
//
// 1 local buffer(s)
//
cbuffer $Globals
{
float4 Ambient = { 0, 0, 0, 1 }; // Offset: 0, size: 16
float4 Diffuse = { 0.75, 0.75, 0.75, 1 };// Offset: 16, size: 16
float Environment_map_intensity = 1;// Offset: 32, size: 4
int Light_Count : LIGHTCOUNT; // Offset: 36, size: 4
float4 ViewPos : VIEWPOS; // Offset: 48, size: 16
float4 Lights[255] : LIGHTARRAY; // Offset: 64, size: 4080
float4 LightColors[255] : LIGHTCOLORARRAY;// Offset: 4144, size: 4080
float4x4 World : WORLD; // Offset: 8224, size: 64
float4x4 View : WORLDVIEW; // Offset: 8288, size: 64
float4x4 Projection : PROJECTION; // Offset: 8352, size: 64
float4x4 Bones[255] : BONEARRAY; // Offset: 8416, size: 16320
}

//
// 4 local object(s)
//
Texture2D txDiffuse;
SamplerState samLinear
{
Filter = uint(MIN_MAG_MIP_LINEAR /* 21 */);
AddressU = uint(WRAP /* 1 */);
AddressV = uint(WRAP /* 1 */);
};
TextureCube txEnvironment;
SamplerState envSampler
{
Filter = uint(MIN_MAG_MIP_LINEAR /* 21 */);
AddressU = uint(CLAMP /* 3 */);
AddressV = uint(CLAMP /* 3 */);
AddressW = uint(CLAMP /* 3 */);
};

//
// 1 technique(s)
//
technique10 Render
{
pass P0
{
VertexShader = asm {
//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
//
// Buffer Definitions:
//
// cbuffer $Globals
// {
//
// float4 Ambient; // Offset: 0 Size: 16 [unused]
// = 0x00000000 0x00000000 0x00000000 0x3f800000
// float4 Diffuse; // Offset: 16 Size: 16 [unused]
// = 0x3f400000 0x3f400000 0x3f400000 0x3f800000
// float Environment_map_intensity; // Offset: 32 Size: 4 [unused]
// = 0x3f800000
// int Light_Count; // Offset: 36 Size: 4 [unused]
// float4 ViewPos; // Offset: 48 Size: 16 [unused]
// float4 Lights[255]; // Offset: 64 Size: 4080 [unused]
// float4 LightColors[255]; // Offset: 4144 Size: 4080 [unused]
// float4x4 World; // Offset: 8224 Size: 64 [unused]
// float4x4 View; // Offset: 8288 Size: 64
// float4x4 Projection; // Offset: 8352 Size: 64
// float4x4 Bones[255]; // Offset: 8416 Size: 16320
//
// }
//
//
// Resource Bindings:
//
// Name Type Format Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// $Globals cbuffer NA NA 0 1
//
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------ ------
// POSITION 0 xyz 0 NONE float xyz
// NORMAL 0 xyz 1 NONE float xyz
// TEXCOORD 0 xy 2 NONE float xy
// TEXCOORD 1 xyzw 3 NONE float xyzw
// TEXCOORD 2 xyzw 4 NONE float xyzw
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------ ------
// SV_POSITION 0 xyzw 0 POS float xyzw
// POSITION 0 xyzw 1 NONE float xyzw
// TEXCOORD 0 xy 2 NONE float xy
// NORMAL 0 xyzw 3 NONE float xyzw
//
vs_4_0
dcl_constantbuffer cb0[1546], dynamicIndexed
dcl_input v0.xyz
dcl_input v1.xyz
dcl_input v2.xy
dcl_input v3.xyzw
dcl_input v4.xyzw
dcl_output_siv o0.xyzw, position
dcl_output o1.xyzw
dcl_output o2.xy
dcl_output o3.xyzw
dcl_temps 4
ftou r0.xyzw, v4.xyzw
ishl r0.xyzw, r0.xyzw, l(2)
mul r1.xyzw, v3.yyyy, cb0[r0.y + 529].xyzw
mad r1.xyzw, cb0[r0.x + 529].xyzw, v3.xxxx, r1.xyzw
mad r1.xyzw, cb0[r0.z + 529].xyzw, v3.zzzz, r1.xyzw
mad r1.xyzw, cb0[r0.w + 529].xyzw, v3.wwww, r1.xyzw
mov r2.xyz, v0.xyzx
mov r2.w, l(1.000000)
dp4 r1.w, r2.xyzw, r1.xyzw
mul r3.xyzw, v3.yyyy, cb0[r0.y + 526].xyzw
mad r3.xyzw, cb0[r0.x + 526].xyzw, v3.xxxx, r3.xyzw
mad r3.xyzw, cb0[r0.z + 526].xyzw, v3.zzzz, r3.xyzw
mad r3.xyzw, cb0[r0.w + 526].xyzw, v3.wwww, r3.xyzw
dp4 r1.x, r2.xyzw, r3.xyzw
dp3 o3.x, v1.xyzx, r3.xyzx
mul r3.xyzw, v3.yyyy, cb0[r0.y + 527].xyzw
mad r3.xyzw, cb0[r0.x + 527].xyzw, v3.xxxx, r3.xyzw
mad r3.xyzw, cb0[r0.z + 527].xyzw, v3.zzzz, r3.xyzw
mad r3.xyzw, cb0[r0.w + 527].xyzw, v3.wwww, r3.xyzw
dp4 r1.y, r2.xyzw, r3.xyzw
dp3 o3.y, v1.xyzx, r3.xyzx
mul r3.xyzw, v3.yyyy, cb0[r0.y + 528].xyzw
mad r3.xyzw, cb0[r0.x + 528].xyzw, v3.xxxx, r3.xyzw
mad r3.xyzw, cb0[r0.z + 528].xyzw, v3.zzzz, r3.xyzw
mad r0.xyzw, cb0[r0.w + 528].xyzw, v3.wwww, r3.xyzw
dp4 r1.z, r2.xyzw, r0.xyzw
dp3 o3.z, v1.xyzx, r0.xyzx
dp4 r0.x, r1.xyzw, cb0[518].xyzw
dp4 r0.y, r1.xyzw, cb0[519].xyzw
dp4 r0.z, r1.xyzw, cb0[520].xyzw
dp4 r0.w, r1.xyzw, cb0[521].xyzw
mov o1.xyzw, r1.xyzw
dp4 o0.x, r0.xyzw, cb0[522].xyzw
dp4 o0.y, r0.xyzw, cb0[523].xyzw
dp4 o0.z, r0.xyzw, cb0[524].xyzw
dp4 o0.w, r0.xyzw, cb0[525].xyzw
mov o2.xy, v2.xyxx
mov o3.w, l(0)
ret
// Approximately 39 instruction slots used

};
GeometryShader = NULL;
PixelShader = asm {
//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
//
// Buffer Definitions:
//
// cbuffer $Globals
// {
//
// float4 Ambient; // Offset: 0 Size: 16
// = 0x00000000 0x00000000 0x00000000 0x3f800000
// float4 Diffuse; // Offset: 16 Size: 16
// = 0x3f400000 0x3f400000 0x3f400000 0x3f800000
// float Environment_map_intensity; // Offset: 32 Size: 4
// = 0x3f800000
// int Light_Count; // Offset: 36 Size: 4
// float4 ViewPos; // Offset: 48 Size: 16
// float4 Lights[255]; // Offset: 64 Size: 4080
// float4 LightColors[255]; // Offset: 4144 Size: 4080
// float4x4 World; // Offset: 8224 Size: 64 [unused]
// float4x4 View; // Offset: 8288 Size: 64 [unused]
// float4x4 Projection; // Offset: 8352 Size: 64 [unused]
// float4x4 Bones[255]; // Offset: 8416 Size: 16320 [unused]
//
// }
//
//
// Resource Bindings:
//
// Name Type Format Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// samLinear sampler NA NA 0 1
// envSampler sampler NA NA 1 1
// txDiffuse texture float4 2d 0 1
// txEnvironment texture float4 cube 1 1
// $Globals cbuffer NA NA 0 1
//
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------ ------
// SV_POSITION 0 xyzw 0 POS float
// POSITION 0 xyzw 1 NONE float xyzw
// TEXCOORD 0 xy 2 NONE float xy
// NORMAL 0 xyzw 3 NONE float xyzw
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------ ------
// SV_Target 0 xyzw 0 TARGET float xyzw
//
ps_4_0
dcl_constantbuffer cb0[514], dynamicIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_resource_texturecube (float,float,float,float) t1
dcl_input_ps linear v1.xyzw
dcl_input_ps linear v2.xy
dcl_input_ps linear v3.xyzw
dcl_output o0.xyzw
dcl_temps 5
resinfo r0.xyzw, l(0), t1.xyzw
lt r0.x, l(0.000000), r0.x
if_nz r0.x
add r0.xyz, v1.xyzx, -cb0[3].xyzx
dp3 r0.w, r0.xyzx, r0.xyzx
rsq r0.w, r0.w
mul r0.xyz, r0.wwww, r0.xyzx
dp3 r0.w, r0.xyzx, v3.xyzx
add r0.w, r0.w, r0.w
mad r0.xyz, v3.xyzx, -r0.wwww, r0.xyzx
sample r0.xyzw, r0.xyzx, t1.xyzw, s1
mul r0.xyzw, r0.xyzw, cb0[2].xxxx
else
mov r0.xyzw, l(0,0,0,1.000000)
endif
resinfo r1.xyzw, l(0), t0.xyzw
lt r1.x, l(0.000000), r1.x
if_nz r1.x
sample r1.xyzw, v2.xyxx, t0.xyzw, s0
else
mov r1.xyzw, l(1.000000,1.000000,1.000000,1.000000)
endif
mov r2.xyz, l(0,0,0,0)
mov r3.x, l(0)
loop
ige r3.y, r3.x, cb0[2].y
breakc_nz r3.y
add r4.xyzw, -v1.xyzw, cb0[r3.x + 4].xyzw
dp4 r3.y, r4.xyzw, r4.xyzw
rsq r3.z, r3.y
mul r4.xyzw, r3.zzzz, r4.xyzw
dp4_sat r3.z, v3.xyzw, r4.xyzw
sqrt r3.y, r3.y
div r3.y, l(1.000000, 1.000000, 1.000000, 1.000000), r3.y
mul r4.xyz, r3.zzzz, cb0[r3.x + 259].xyzx
mul r3.yzw, r3.yyyy, r4.xxyz
mad r2.xyz, r3.yzwy, l(10.000000, 10.000000, 10.000000, 0.000000), r2.xyzx
iadd r3.x, r3.x, l(1)
endloop
add r0.xyzw, r0.xyzw, r1.xyzw
mul r0.xyzw, r0.xyzw, cb0[1].xyzw
mov r2.w, l(1.000000)
add r1.xyzw, r2.xyzw, cb0[0].xyzw
mul o0.xyzw, r0.xyzw, r1.xyzw
ret
// Approximately 45 instruction slots used

};
}

}

#endif

const BYTE g_main[] =
{
68, 88, 66, 67, 44, 8,
184, 217, 17, 248, 179, 56,
147, 237, 47, 151, 5, 32,
18, 245, 1, 0, 0, 0,
229, 25, 0, 0, 1, 0,
0, 0, 36, 0, 0, 0,
70, 88, 49, 48, 185, 25,
0, 0, 1, 16, 255, 254,
1, 0, 0, 0, 11, 0,
0, 0, 4, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 17, 23,
0, 0, 0, 0, 0, 0,
2, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 2, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 2, 0,
0, 0, 2, 0, 0, 0,
0, 0, 0, 0, 36, 71,
108, 111, 98, 97, 108, 115,
0, 102, 108, 111, 97, 116,
52, 0, 13, 0, 0, 0,
1, 0, 0, 0, 0, 0,
0, 0, 16, 0, 0, 0,
16, 0, 0, 0, 16, 0,
0, 0, 10, 33, 0, 0,
65, 109, 98, 105, 101, 110,
116, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 128, 63,
68, 105, 102, 102, 117, 115,
101, 0, 0, 0, 64, 63,
0, 0, 64, 63, 0, 0,
64, 63, 0, 0, 128, 63,
102, 108, 111, 97, 116, 0,
96, 0, 0, 0, 1, 0,
0, 0, 0, 0, 0, 0,
4, 0, 0, 0, 16, 0,
0, 0, 4, 0, 0, 0,
9, 9, 0, 0, 69, 110,
118, 105, 114, 111, 110, 109,
101, 110, 116, 95, 109, 97,
112, 95, 105, 110, 116, 101,
110, 115, 105, 116, 121, 0,
0, 0, 128, 63, 105, 110,
116, 0, 160, 0, 0, 0,
1, 0, 0, 0, 0, 0,
0, 0, 4, 0, 0, 0,
16, 0, 0, 0, 4, 0,
0, 0, 17, 9, 0, 0,
76, 105, 103, 104, 116, 95,
67, 111, 117, 110, 116, 0,
76, 73, 71, 72, 84, 67,
79, 85, 78, 84, 0, 86,
105, 101, 119, 80, 111, 115,
0, 86, 73, 69, 87, 80,
79, 83, 0, 13, 0, 0,
0, 1, 0, 0, 0, 255,
0, 0, 0, 240, 15, 0,
0, 16, 0, 0, 0, 240,
15, 0, 0, 10, 33, 0,
0, 76, 105, 103, 104, 116,
115, 0, 76, 73, 71, 72,
84, 65, 82, 82, 65, 89,
0, 76, 105, 103, 104, 116,
67, 111, 108, 111, 114, 115,
0, 76, 73, 71, 72, 84,
67, 79, 76, 79, 82, 65,
82, 82, 65, 89, 0, 102,
108, 111, 97, 116, 52, 120,
52, 0, 49, 1, 0, 0,
1, 0, 0, 0, 0, 0,
0, 0, 64, 0, 0, 0,
64, 0, 0, 0, 64, 0,
0, 0, 11, 100, 0, 0,
87, 111, 114, 108, 100, 0,
87, 79, 82, 76, 68, 0,
86, 105, 101, 119, 0, 87,
79, 82, 76, 68, 86, 73,
69, 87, 0, 80, 114, 111,
106, 101, 99, 116, 105, 111,
110, 0, 80, 82, 79, 74,
69, 67, 84, 73, 79, 78,
0, 49, 1, 0, 0, 1,
0, 0, 0, 255, 0, 0,
0, 192, 63, 0, 0, 64,
0, 0, 0, 192, 63, 0,
0, 11, 100, 0, 0, 66,
111, 110, 101, 115, 0, 66,
79, 78, 69, 65, 82, 82,
65, 89, 0, 84, 101, 120,
116, 117, 114, 101, 50, 68,
0, 179, 1, 0, 0, 2,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 12, 0, 0, 0, 116,
120, 68, 105, 102, 102, 117,
115, 101, 0, 83, 97, 109,
112, 108, 101, 114, 83, 116,
97, 116, 101, 0, 227, 1,
0, 0, 2, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 21, 0,
0, 0, 115, 97, 109, 76,
105, 110, 101, 97, 114, 0,
1, 0, 0, 0, 2, 0,
0, 0, 21, 0, 0, 0,
1, 0, 0, 0, 2, 0,
0, 0, 1, 0, 0, 0,
1, 0, 0, 0, 2, 0,
0, 0, 1, 0, 0, 0,
84, 101, 120, 116, 117, 114,
101, 67, 117, 98, 101, 0,
58, 2, 0, 0, 2, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
17, 0, 0, 0, 116, 120,
69, 110, 118, 105, 114, 111,
110, 109, 101, 110, 116, 0,
101, 110, 118, 83, 97, 109,
112, 108, 101, 114, 0, 1,
0, 0, 0, 2, 0, 0,
0, 21, 0, 0, 0, 1,
0, 0, 0, 2, 0, 0,
0, 3, 0, 0, 0, 1,
0, 0, 0, 2, 0, 0,
0, 3, 0, 0, 0, 1,
0, 0, 0, 2, 0, 0,
0, 3, 0, 0, 0, 82,
101, 110, 100, 101, 114, 0,
80, 48, 0, 108, 10, 0,
0, 68, 88, 66, 67, 161,
105, 133, 81, 106, 253, 9,
17, 204, 236, 193, 126, 163,
68, 93, 107, 1, 0, 0,
0, 108, 10, 0, 0, 5,
0, 0, 0, 52, 0, 0,
0, 224, 2, 0, 0, 132,
3, 0, 0, 28, 4, 0,
0, 240, 9, 0, 0, 82,
68, 69, 70, 164, 2, 0,
0, 1, 0, 0, 0, 72,
0, 0, 0, 1, 0, 0,
0, 28, 0, 0, 0, 0,
4, 254, 255, 0, 1, 0,
0, 112, 2, 0, 0, 60,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0,
0, 36, 71, 108, 111, 98,
97, 108, 115, 0, 171, 171,
171, 60, 0, 0, 0, 11,
0, 0, 0, 96, 0, 0,
0, 160, 96, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 104, 1, 0, 0, 0,
0, 0, 0, 16, 0, 0,
0, 0, 0, 0, 0, 112,
1, 0, 0, 128, 1, 0,
0, 144, 1, 0, 0, 16,
0, 0, 0, 16, 0, 0,
0, 0, 0, 0, 0, 112,
1, 0, 0, 152, 1, 0,
0, 168, 1, 0, 0, 32,
0, 0, 0, 4, 0, 0,
0, 0, 0, 0, 0, 196,
1, 0, 0, 212, 1, 0,
0, 216, 1, 0, 0, 36,
0, 0, 0, 4, 0, 0,
0, 0, 0, 0, 0, 228,
1, 0, 0, 0, 0, 0,
0, 244, 1, 0, 0, 48,
0, 0, 0, 16, 0, 0,
0, 0, 0, 0, 0, 112,
1, 0, 0, 0, 0, 0,
0, 252, 1, 0, 0, 64,
0, 0, 0, 240, 15, 0,
0, 0, 0, 0, 0, 4,
2, 0, 0, 0, 0, 0,
0, 20, 2, 0, 0, 48,
16, 0, 0, 240, 15, 0,
0, 0, 0, 0, 0, 32,
2, 0, 0, 0, 0, 0,
0, 48, 2, 0, 0, 32,
32, 0, 0, 64, 0, 0,
0, 0, 0, 0, 0, 56,
2, 0, 0, 0, 0, 0,
0, 72, 2, 0, 0, 96,
32, 0, 0, 64, 0, 0,
0, 2, 0, 0, 0, 56,
2, 0, 0, 0, 0, 0,
0, 77, 2, 0, 0, 160,
32, 0, 0, 64, 0, 0,
0, 2, 0, 0, 0, 56,
2, 0, 0, 0, 0, 0,
0, 88, 2, 0, 0, 224,
32, 0, 0, 192, 63, 0,
0, 2, 0, 0, 0, 96,
2, 0, 0, 0, 0, 0,
0, 65, 109, 98, 105, 101,
110, 116, 0, 1, 0, 3,
0, 1, 0, 4, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 128, 63, 68,
105, 102, 102, 117, 115, 101,
0, 0, 0, 64, 63, 0,
0, 64, 63, 0, 0, 64,
63, 0, 0, 128, 63, 69,
110, 118, 105, 114, 111, 110,
109, 101, 110, 116, 95, 109,
97, 112, 95, 105, 110, 116,
101, 110, 115, 105, 116, 121,
0, 171, 171, 0, 0, 3,
0, 1, 0, 1, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 128, 63, 76,
105, 103, 104, 116, 95, 67,
111, 117, 110, 116, 0, 0,
0, 2, 0, 1, 0, 1,
0, 0, 0, 0, 0, 0,
0, 0, 0, 86, 105, 101,
119, 80, 111, 115, 0, 76,
105, 103, 104, 116, 115, 0,
171, 1, 0, 3, 0, 1,
0, 4, 0, 255, 0, 0,
0, 0, 0, 0, 0, 76,
105, 103, 104, 116, 67, 111,
108, 111, 114, 115, 0, 1,
0, 3, 0, 1, 0, 4,
0, 255, 0, 0, 0, 0,
0, 0, 0, 87, 111, 114,
108, 100, 0, 171, 171, 3,
0, 3, 0, 4, 0, 4,
0, 0, 0, 0, 0, 0,
0, 0, 0, 86, 105, 101,
119, 0, 80, 114, 111, 106,
101, 99, 116, 105, 111, 110,
0, 66, 111, 110, 101, 115,
0, 171, 171, 3, 0, 3,
0, 4, 0, 4, 0, 255,
0, 0, 0, 0, 0, 0,
0, 77, 105, 99, 114, 111,
115, 111, 102, 116, 32, 40,
82, 41, 32, 72, 76, 83,
76, 32, 83, 104, 97, 100,
101, 114, 32, 67, 111, 109,
112, 105, 108, 101, 114, 32,
57, 46, 50, 57, 46, 57,
53, 50, 46, 51, 49, 49,
49, 0, 171, 171, 171, 73,
83, 71, 78, 156, 0, 0,
0, 5, 0, 0, 0, 8,
0, 0, 0, 128, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 3, 0, 0,
0, 0, 0, 0, 0, 7,
7, 0, 0, 137, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 3, 0, 0,
0, 1, 0, 0, 0, 7,
7, 0, 0, 144, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 3, 0, 0,
0, 2, 0, 0, 0, 3,
3, 0, 0, 144, 0, 0,
0, 1, 0, 0, 0, 0,
0, 0, 0, 3, 0, 0,
0, 3, 0, 0, 0, 15,
15, 0, 0, 144, 0, 0,
0, 2, 0, 0, 0, 0,
0, 0, 0, 3, 0, 0,
0, 4, 0, 0, 0, 15,
15, 0, 0, 80, 79, 83,
73, 84, 73, 79, 78, 0,
78, 79, 82, 77, 65, 76,
0, 84, 69, 88, 67, 79,
79, 82, 68, 0, 171, 171,
171, 79, 83, 71, 78, 144,
0, 0, 0, 4, 0, 0,
0, 8, 0, 0, 0, 104,
0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 3,
0, 0, 0, 0, 0, 0,
0, 15, 0, 0, 0, 116,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 3,
0, 0, 0, 1, 0, 0,
0, 15, 0, 0, 0, 125,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 3,
0, 0, 0, 2, 0, 0,
0, 3, 12, 0, 0, 134,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 3,
0, 0, 0, 3, 0, 0,
0, 15, 0, 0, 0, 83,
86, 95, 80, 79, 83, 73,
84, 73, 79, 78, 0, 80,
79, 83, 73, 84, 73, 79,
78, 0, 84, 69, 88, 67,
79, 79, 82, 68, 0, 78,
79, 82, 77, 65, 76, 0,
171, 171, 171, 83, 72, 68,
82, 204, 5, 0, 0, 64,
0, 1, 0, 115, 1, 0,
0, 89, 8, 0, 4, 70,
142, 32, 0, 0, 0, 0,
0, 10, 6, 0, 0, 95,
0, 0, 3, 114, 16, 16,
0, 0, 0, 0, 0, 95,
0, 0, 3, 114, 16, 16,
0, 1, 0, 0, 0, 95,
0, 0, 3, 50, 16, 16,
0, 2, 0, 0, 0, 95,
0, 0, 3, 242, 16, 16,
0, 3, 0, 0, 0, 95,
0, 0, 3, 242, 16, 16,
0, 4, 0, 0, 0, 103,
0, 0, 4, 242, 32, 16,
0, 0, 0, 0, 0, 1,
0, 0, 0, 101, 0, 0,
3, 242, 32, 16, 0, 1,
0, 0, 0, 101, 0, 0,
3, 50, 32, 16, 0, 2,
0, 0, 0, 101, 0, 0,
3, 242, 32, 16, 0, 3,
0, 0, 0, 104, 0, 0,
2, 4, 0, 0, 0, 28,
0, 0, 5, 242, 0, 16,
0, 0, 0, 0, 0, 70,
30, 16, 0, 4, 0, 0,
0, 41, 0, 0, 7, 242,
0, 16, 0, 0, 0, 0,
0, 70, 14, 16, 0, 0,
0, 0, 0, 1, 64, 0,
0, 2, 0, 0, 0, 56,
0, 0, 10, 242, 0, 16,
0, 1, 0, 0, 0, 86,
21, 16, 0, 3, 0, 0,
0, 70, 142, 32, 6, 0,
0, 0, 0, 17, 2, 0,
0, 26, 0, 16, 0, 0,
0, 0, 0, 50, 0, 0,
12, 242, 0, 16, 0, 1,
0, 0, 0, 70, 142, 32,
6, 0, 0, 0, 0, 17,
2, 0, 0, 10, 0, 16,
0, 0, 0, 0, 0, 6,
16, 16, 0, 3, 0, 0,
0, 70, 14, 16, 0, 1,
0, 0, 0, 50, 0, 0,
12, 242, 0, 16, 0, 1,
0, 0, 0, 70, 142, 32,
6, 0, 0, 0, 0, 17,
2, 0, 0, 42, 0, 16,
0, 0, 0, 0, 0, 166,
26, 16, 0, 3, 0, 0,
0, 70, 14, 16, 0, 1,
0, 0, 0, 50, 0, 0,
12, 242, 0, 16, 0, 1,
0, 0, 0, 70, 142, 32,
6, 0, 0, 0, 0, 17,
2, 0, 0, 58, 0, 16,
0, 0, 0, 0, 0, 246,
31, 16, 0, 3, 0, 0,
0, 70, 14, 16, 0, 1,
0, 0, 0, 54, 0, 0,
5, 114, 0, 16, 0, 2,
0, 0, 0, 70, 18, 16,
0, 0, 0, 0, 0, 54,
0, 0, 5, 130, 0, 16,
0, 2, 0, 0, 0, 1,
64, 0, 0, 0, 0, 128,
63, 17, 0, 0, 7, 130,
0, 16, 0, 1, 0, 0,
0, 70, 14, 16, 0, 2,
0, 0, 0, 70, 14, 16,
0, 1, 0, 0, 0, 56,
0, 0, 10, 242, 0, 16,
0, 3, 0, 0, 0, 86,
21, 16, 0, 3, 0, 0,
0, 70, 142, 32, 6, 0,
0, 0, 0, 14, 2, 0,
0, 26, 0, 16, 0, 0,
0, 0, 0, 50, 0, 0,
12, 242, 0, 16, 0, 3,
0, 0, 0, 70, 142, 32,
6, 0, 0, 0, 0, 14,
2, 0, 0, 10, 0, 16,
0, 0, 0, 0, 0, 6,
16, 16, 0, 3, 0, 0,
0, 70, 14, 16, 0, 3,
0, 0, 0, 50, 0, 0,
12, 242, 0, 16, 0, 3,
0, 0, 0, 70, 142, 32,
6, 0, 0, 0, 0, 14,
2, 0, 0, 42, 0, 16,
0, 0, 0, 0, 0, 166,
26, 16, 0, 3, 0, 0,
0, 70, 14, 16, 0, 3,
0, 0, 0, 50, 0, 0,
12, 242, 0, 16, 0, 3,
0, 0, 0, 70, 142, 32,
6, 0, 0, 0, 0, 14,
2, 0, 0, 58, 0, 16,
0, 0, 0, 0, 0, 246,
31, 16, 0, 3, 0, 0,
0, 70, 14, 16, 0, 3,
0, 0, 0, 17, 0, 0,
7, 18, 0, 16, 0, 1,
0, 0, 0, 70, 14, 16,
0, 2, 0, 0, 0, 70,
14, 16, 0, 3, 0, 0,
0, 16, 0, 0, 7, 18,
32, 16, 0, 3, 0, 0,
0, 70, 18, 16, 0, 1,
0, 0, 0, 70, 2, 16,
0, 3, 0, 0, 0, 56,
0, 0, 10, 242, 0, 16,
0, 3, 0, 0, 0, 86,
21, 16, 0, 3, 0, 0,
0, 70, 142, 32, 6, 0,
0, 0, 0, 15, 2, 0,
0, 26, 0, 16, 0, 0,
0, 0, 0, 50, 0, 0,
12, 242, 0, 16, 0, 3,
0, 0, 0, 70, 142, 32,
6, 0, 0, 0, 0, 15,
2, 0, 0, 10, 0, 16,
0, 0, 0, 0, 0, 6,
16, 16, 0, 3, 0, 0,
0, 70, 14, 16, 0, 3,
0, 0, 0, 50, 0, 0,
12, 242, 0, 16, 0, 3,
0, 0, 0, 70, 142, 32,
6, 0, 0, 0, 0, 15,
2, 0, 0, 42, 0, 16,
0, 0, 0, 0, 0, 166,
26, 16, 0, 3, 0, 0,
0, 70, 14, 16, 0, 3,
0, 0, 0, 50, 0, 0,
12, 242, 0, 16, 0, 3,
0, 0, 0, 70, 142, 32,
6, 0, 0, 0, 0, 15,
2, 0, 0, 58, 0, 16,
0, 0, 0, 0, 0, 246,
31, 16, 0, 3, 0, 0,
0, 70, 14, 16, 0, 3,
0, 0, 0, 17, 0, 0,
7, 34, 0, 16, 0, 1,
0, 0, 0, 70, 14, 16,
0, 2, 0, 0, 0, 70,
14, 16, 0, 3, 0, 0,
0, 16, 0, 0, 7, 34,
32, 16, 0, 3, 0, 0,
0, 70, 18, 16, 0, 1,
0, 0, 0, 70, 2, 16,
0, 3, 0, 0, 0, 56,
0, 0, 10, 242, 0, 16,
0, 3, 0, 0, 0, 86,
21, 16, 0, 3, 0, 0,
0, 70, 142, 32, 6, 0,
0, 0, 0, 16, 2, 0,
0, 26, 0, 16, 0, 0,
0, 0, 0, 50, 0, 0,
12, 242, 0, 16, 0, 3,
0, 0, 0, 70, 142, 32,
6, 0, 0, 0, 0, 16,
2, 0, 0, 10, 0, 16,
0, 0, 0, 0, 0, 6,
16, 16, 0, 3, 0, 0,
0, 70, 14, 16, 0, 3,
0, 0, 0, 50, 0, 0,
12, 242, 0, 16, 0, 3,
0, 0, 0, 70, 142, 32,
6, 0, 0, 0, 0, 16,
2, 0, 0, 42, 0, 16,
0, 0, 0, 0, 0, 166,
26, 16, 0, 3, 0, 0,
0, 70, 14, 16, 0, 3,
0, 0, 0, 50, 0, 0,
12, 242, 0, 16, 0, 0,
0, 0, 0, 70, 142, 32,
6, 0, 0, 0, 0, 16,
2, 0, 0, 58, 0, 16,
0, 0, 0, 0, 0, 246,
31, 16, 0, 3, 0, 0,
0, 70, 14, 16, 0, 3,
0, 0, 0, 17, 0, 0,
7, 66, 0, 16, 0, 1,
0, 0, 0, 70, 14, 16,
0, 2, 0, 0, 0, 70,
14, 16, 0, 0, 0, 0,
0, 16, 0, 0, 7, 66,
32, 16, 0, 3, 0, 0,
0, 70, 18, 16, 0, 1,
0, 0, 0, 70, 2, 16,
0, 0, 0, 0, 0, 17,
0, 0, 8, 18, 0, 16,
0, 0, 0, 0, 0, 70,
14, 16, 0, 1, 0, 0,
0, 70, 142, 32, 0, 0,
0, 0, 0, 6, 2, 0,
0, 17, 0, 0, 8, 34,
0, 16, 0, 0, 0, 0,
0, 70, 14, 16, 0, 1,
0, 0, 0, 70, 142, 32,
0, 0, 0, 0, 0, 7,
2, 0, 0, 17, 0, 0,
8, 66, 0, 16, 0, 0,
0, 0, 0, 70, 14, 16,
0, 1, 0, 0, 0, 70,
142, 32, 0, 0, 0, 0,
0, 8, 2, 0, 0, 17,
0, 0, 8, 130, 0, 16,
0, 0, 0, 0, 0, 70,
14, 16, 0, 1, 0, 0,
0, 70, 142, 32, 0, 0,
0, 0, 0, 9, 2, 0,
0, 54, 0, 0, 5, 242,
32, 16, 0, 1, 0, 0,
0, 70, 14, 16, 0, 1,
0, 0, 0, 17, 0, 0,
8, 18, 32, 16, 0, 0,
0, 0, 0, 70, 14, 16,
0, 0, 0, 0, 0, 70,
142, 32, 0, 0, 0, 0,
0, 10, 2, 0, 0, 17,
0, 0, 8, 34, 32, 16,
0, 0, 0, 0, 0, 70,
14, 16, 0, 0, 0, 0,
0, 70, 142, 32, 0, 0,
0, 0, 0, 11, 2, 0,
0, 17, 0, 0, 8, 66,
32, 16, 0, 0, 0, 0,
0, 70, 14, 16, 0, 0,
0, 0, 0, 70, 142, 32,
0, 0, 0, 0, 0, 12,
2, 0, 0, 17, 0, 0,
8, 130, 32, 16, 0, 0,
0, 0, 0, 70, 14, 16,
0, 0, 0, 0, 0, 70,
142, 32, 0, 0, 0, 0,
0, 13, 2, 0, 0, 54,
0, 0, 5, 50, 32, 16,
0, 2, 0, 0, 0, 70,
16, 16, 0, 2, 0, 0,
0, 54, 0, 0, 5, 130,
32, 16, 0, 3, 0, 0,
0, 1, 64, 0, 0, 0,
0, 0, 0, 62, 0, 0,
1, 83, 84, 65, 84, 116,
0, 0, 0, 39, 0, 0,
0, 4, 0, 0, 0, 0,
0, 0, 0, 9, 0, 0,
0, 19, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 5, 0, 0, 0, 0,
0, 0, 0, 1, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 181,
2, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 2,
0, 0, 0, 0, 0, 0,
0, 204, 9, 0, 0, 68,
88, 66, 67, 45, 50, 163,
142, 242, 188, 47, 201, 187,
237, 164, 195, 29, 110, 43,
98, 1, 0, 0, 0, 204,
9, 0, 0, 5, 0, 0,
0, 52, 0, 0, 0, 140,
3, 0, 0, 36, 4, 0,
0, 88, 4, 0, 0, 80,
9, 0, 0, 82, 68, 69,
70, 80, 3, 0, 0, 1,
0, 0, 0, 244, 0, 0,
0, 5, 0, 0, 0, 28,
0, 0, 0, 0, 4, 255,
255, 0, 1, 0, 0, 28,
3, 0, 0, 188, 0, 0,
0, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 0, 0,
0, 0, 0, 0, 0, 198,
0, 0, 0, 3, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0,
0, 209, 0, 0, 0, 2,
0, 0, 0, 5, 0, 0,
0, 4, 0, 0, 0, 255,
255, 255, 255, 0, 0, 0,
0, 1, 0, 0, 0, 12,
0, 0, 0, 219, 0, 0,
0, 2, 0, 0, 0, 5,
0, 0, 0, 9, 0, 0,
0, 255, 255, 255, 255, 1,
0, 0, 0, 1, 0, 0,
0, 12, 0, 0, 0, 233,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0,
0, 115, 97, 109, 76, 105,
110, 101, 97, 114, 0, 101,
110, 118, 83, 97, 109, 112,
108, 101, 114, 0, 116, 120,
68, 105, 102, 102, 117, 115,
101, 0, 116, 120, 69, 110,
118, 105, 114, 111, 110, 109,
101, 110, 116, 0, 36, 71,
108, 111, 98, 97, 108, 115,
0, 171, 171, 233, 0, 0,
0, 11, 0, 0, 0, 12,
1, 0, 0, 160, 96, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 20, 2, 0,
0, 0, 0, 0, 0, 16,
0, 0, 0, 2, 0, 0,
0, 28, 2, 0, 0, 44,
2, 0, 0, 60, 2, 0,
0, 16, 0, 0, 0, 16,
0, 0, 0, 2, 0, 0,
0, 28, 2, 0, 0, 68,
2, 0, 0, 84, 2, 0,
0, 32, 0, 0, 0, 4,
0, 0, 0, 2, 0, 0,
0, 112, 2, 0, 0, 128,
2, 0, 0, 132, 2, 0,
0, 36, 0, 0, 0, 4,
0, 0, 0, 2, 0, 0,
0, 144, 2, 0, 0, 0,
0, 0, 0, 160, 2, 0,
0, 48, 0, 0, 0, 16,
0, 0, 0, 2, 0, 0,
0, 28, 2, 0, 0, 0,
0, 0, 0, 168, 2, 0,
0, 64, 0, 0, 0, 240,
15, 0, 0, 2, 0, 0,
0, 176, 2, 0, 0, 0,
0, 0, 0, 192, 2, 0,
0, 48, 16, 0, 0, 240,
15, 0, 0, 2, 0, 0,
0, 204, 2, 0, 0, 0,
0, 0, 0, 220, 2, 0,
0, 32, 32, 0, 0, 64,
0, 0, 0, 0, 0, 0,
0, 228, 2, 0, 0, 0,
0, 0, 0, 244, 2, 0,
0, 96, 32, 0, 0, 64,
0, 0, 0, 0, 0, 0,
0, 228, 2, 0, 0, 0,
0, 0, 0, 249, 2, 0,
0, 160, 32, 0, 0, 64,
0, 0, 0, 0, 0, 0,
0, 228, 2, 0, 0, 0,
0, 0, 0, 4, 3, 0,
0, 224, 32, 0, 0, 192,
63, 0, 0, 0, 0, 0,
0, 12, 3, 0, 0, 0,
0, 0, 0, 65, 109, 98,
105, 101, 110, 116, 0, 1,
0, 3, 0, 1, 0, 4,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 128,
63, 68, 105, 102, 102, 117,
115, 101, 0, 0, 0, 64,
63, 0, 0, 64, 63, 0,
0, 64, 63, 0, 0, 128,
63, 69, 110, 118, 105, 114,
111, 110, 109, 101, 110, 116,
95, 109, 97, 112, 95, 105,
110, 116, 101, 110, 115, 105,
116, 121, 0, 171, 171, 0,
0, 3, 0, 1, 0, 1,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 128,
63, 76, 105, 103, 104, 116,
95, 67, 111, 117, 110, 116,
0, 0, 0, 2, 0, 1,
0, 1, 0, 0, 0, 0,
0, 0, 0, 0, 0, 86,
105, 101, 119, 80, 111, 115,
0, 76, 105, 103, 104, 116,
115, 0, 171, 1, 0, 3,
0, 1, 0, 4, 0, 255,
0, 0, 0, 0, 0, 0,
0, 76, 105, 103, 104, 116,
67, 111, 108, 111, 114, 115,
0, 1, 0, 3, 0, 1,
0, 4, 0, 255, 0, 0,
0, 0, 0, 0, 0, 87,
111, 114, 108, 100, 0, 171,
171, 3, 0, 3, 0, 4,
0, 4, 0, 0, 0, 0,
0, 0, 0, 0, 0, 86,
105, 101, 119, 0, 80, 114,
111, 106, 101, 99, 116, 105,
111, 110, 0, 66, 111, 110,
101, 115, 0, 171, 171, 3,
0, 3, 0, 4, 0, 4,
0, 255, 0, 0, 0, 0,
0, 0, 0, 77, 105, 99,
114, 111, 115, 111, 102, 116,
32, 40, 82, 41, 32, 72,
76, 83, 76, 32, 83, 104,
97, 100, 101, 114, 32, 67,
111, 109, 112, 105, 108, 101,
114, 32, 57, 46, 50, 57,
46, 57, 53, 50, 46, 51,
49, 49, 49, 0, 171, 171,
171, 73, 83, 71, 78, 144,
0, 0, 0, 4, 0, 0,
0, 8, 0, 0, 0, 104,
0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 3,
0, 0, 0, 0, 0, 0,
0, 15, 0, 0, 0, 116,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 3,
0, 0, 0, 1, 0, 0,
0, 15, 15, 0, 0, 125,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 3,
0, 0, 0, 2, 0, 0,
0, 3, 3, 0, 0, 134,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 3,
0, 0, 0, 3, 0, 0,
0, 15, 15, 0, 0, 83,
86, 95, 80, 79, 83, 73,
84, 73, 79, 78, 0, 80,
79, 83, 73, 84, 73, 79,
78, 0, 84, 69, 88, 67,
79, 79, 82, 68, 0, 78,
79, 82, 77, 65, 76, 0,
171, 171, 171, 79, 83, 71,
78, 44, 0, 0, 0, 1,
0, 0, 0, 8, 0, 0,
0, 32, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 3, 0, 0, 0, 0,
0, 0, 0, 15, 0, 0,
0, 83, 86, 95, 84, 97,
114, 103, 101, 116, 0, 171,
171, 83, 72, 68, 82, 240,
4, 0, 0, 64, 0, 0,
0, 60, 1, 0, 0, 89,
8, 0, 4, 70, 142, 32,
0, 0, 0, 0, 0, 2,
2, 0, 0, 90, 0, 0,
3, 0, 96, 16, 0, 0,
0, 0, 0, 90, 0, 0,
3, 0, 96, 16, 0, 1,
0, 0, 0, 88, 24, 0,
4, 0, 112, 16, 0, 0,
0, 0, 0, 85, 85, 0,
0, 88, 48, 0, 4, 0,
112, 16, 0, 1, 0, 0,
0, 85, 85, 0, 0, 98,
16, 0, 3, 242, 16, 16,
0, 1, 0, 0, 0, 98,
16, 0, 3, 50, 16, 16,
0, 2, 0, 0, 0, 98,
16, 0, 3, 242, 16, 16,
0, 3, 0, 0, 0, 101,
0, 0, 3, 242, 32, 16,
0, 0, 0, 0, 0, 104,
0, 0, 2, 5, 0, 0,
0, 61, 0, 0, 7, 242,
0, 16, 0, 0, 0, 0,
0, 1, 64, 0, 0, 0,
0, 0, 0, 70, 126, 16,
0, 1, 0, 0, 0, 49,
0, 0, 7, 18, 0, 16,
0, 0, 0, 0, 0, 1,
64, 0, 0, 0, 0, 0,
0, 10, 0, 16, 0, 0,
0, 0, 0, 31, 0, 4,
3, 10, 0, 16, 0, 0,
0, 0, 0, 0, 0, 0,
9, 114, 0, 16, 0, 0,
0, 0, 0, 70, 18, 16,
0, 1, 0, 0, 0, 70,
130, 32, 128, 65, 0, 0,
0, 0, 0, 0, 0, 3,
0, 0, 0, 16, 0, 0,
7, 130, 0, 16, 0, 0,
0, 0, 0, 70, 2, 16,
0, 0, 0, 0, 0, 70,
2, 16, 0, 0, 0, 0,
0, 68, 0, 0, 5, 130,
0, 16, 0, 0, 0, 0,
0, 58, 0, 16, 0, 0,
0, 0, 0, 56, 0, 0,
7, 114, 0, 16, 0, 0,
0, 0, 0, 246, 15, 16,
0, 0, 0, 0, 0, 70,
2, 16, 0, 0, 0, 0,
0, 16, 0, 0, 7, 130,
0, 16, 0, 0, 0, 0,
0, 70, 2, 16, 0, 0,
0, 0, 0, 70, 18, 16,
0, 3, 0, 0, 0, 0,
0, 0, 7, 130, 0, 16,
0, 0, 0, 0, 0, 58,
0, 16, 0, 0, 0, 0,
0, 58, 0, 16, 0, 0,
0, 0, 0, 50, 0, 0,
10, 114, 0, 16, 0, 0,
0, 0, 0, 70, 18, 16,
0, 3, 0, 0, 0, 246,
15, 16, 128, 65, 0, 0,
0, 0, 0, 0, 0, 70,
2, 16, 0, 0, 0, 0,
0, 69, 0, 0, 9, 242,
0, 16, 0, 0, 0, 0,
0, 70, 2, 16, 0, 0,
0, 0, 0, 70, 126, 16,
0, 1, 0, 0, 0, 0,
96, 16, 0, 1, 0, 0,
0, 56, 0, 0, 8, 242,
0, 16, 0, 0, 0, 0,
0, 70, 14, 16, 0, 0,
0, 0, 0, 6, 128, 32,
0, 0, 0, 0, 0, 2,
0, 0, 0, 18, 0, 0,
1, 54, 0, 0, 8, 242,
0, 16, 0, 0, 0, 0,
0, 2, 64, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 128, 63, 21, 0, 0,
1, 61, 0, 0, 7, 242,
0, 16, 0, 1, 0, 0,
0, 1, 64, 0, 0, 0,
0, 0, 0, 70, 126, 16,
0, 0, 0, 0, 0, 49,
0, 0, 7, 18, 0, 16,
0, 1, 0, 0, 0, 1,
64, 0, 0, 0, 0, 0,
0, 10, 0, 16, 0, 1,
0, 0, 0, 31, 0, 4,
3, 10, 0, 16, 0, 1,
0, 0, 0, 69, 0, 0,
9, 242, 0, 16, 0, 1,
0, 0, 0, 70, 16, 16,
0, 2, 0, 0, 0, 70,
126, 16, 0, 0, 0, 0,
0, 0, 96, 16, 0, 0,
0, 0, 0, 18, 0, 0,
1, 54, 0, 0, 8, 242,
0, 16, 0, 1, 0, 0,
0, 2, 64, 0, 0, 0,
0, 128, 63, 0, 0, 128,
63, 0, 0, 128, 63, 0,
0, 128, 63, 21, 0, 0,
1, 54, 0, 0, 8, 114,
0, 16, 0, 2, 0, 0,
0, 2, 64, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 54, 0, 0,
5, 18, 0, 16, 0, 3,
0, 0, 0, 1, 64, 0,
0, 0, 0, 0, 0, 48,
0, 0, 1, 33, 0, 0,
8, 34, 0, 16, 0, 3,
0, 0, 0, 10, 0, 16,
0, 3, 0, 0, 0, 26,
128, 32, 0, 0, 0, 0,
0, 2, 0, 0, 0, 3,
0, 4, 3, 26, 0, 16,
0, 3, 0, 0, 0, 0,
0, 0, 11, 242, 0, 16,
0, 4, 0, 0, 0, 70,
30, 16, 128, 65, 0, 0,
0, 1, 0, 0, 0, 70,
142, 32, 6, 0, 0, 0,
0, 4, 0, 0, 0, 10,
0, 16, 0, 3, 0, 0,
0, 17, 0, 0, 7, 34,
0, 16, 0, 3, 0, 0,
0, 70, 14, 16, 0, 4,
0, 0, 0, 70, 14, 16,
0, 4, 0, 0, 0, 68,
0, 0, 5, 66, 0, 16,
0, 3, 0, 0, 0, 26,
0, 16, 0, 3, 0, 0,
0, 56, 0, 0, 7, 242,
0, 16, 0, 4, 0, 0,
0, 166, 10, 16, 0, 3,
0, 0, 0, 70, 14, 16,
0, 4, 0, 0, 0, 17,
32, 0, 7, 66, 0, 16,
0, 3, 0, 0, 0, 70,
30, 16, 0, 3, 0, 0,
0, 70, 14, 16, 0, 4,
0, 0, 0, 75, 0, 0,
5, 34, 0, 16, 0, 3,
0, 0, 0, 26, 0, 16,
0, 3, 0, 0, 0, 14,
0, 0, 10, 34, 0, 16,
0, 3, 0, 0, 0, 2,
64, 0, 0, 0, 0, 128,
63, 0, 0, 128, 63, 0,
0, 128, 63, 0, 0, 128,
63, 26, 0, 16, 0, 3,
0, 0, 0, 56, 0, 0,
10, 114, 0, 16, 0, 4,
0, 0, 0, 166, 10, 16,
0, 3, 0, 0, 0, 70,
130, 32, 6, 0, 0, 0,
0, 3, 1, 0, 0, 10,
0, 16, 0, 3, 0, 0,
0, 56, 0, 0, 7, 226,
0, 16, 0, 3, 0, 0,
0, 86, 5, 16, 0, 3,
0, 0, 0, 6, 9, 16,
0, 4, 0, 0, 0, 50,
0, 0, 12, 114, 0, 16,
0, 2, 0, 0, 0, 150,
7, 16, 0, 3, 0, 0,
0, 2, 64, 0, 0, 0,
0, 32, 65, 0, 0, 32,
65, 0, 0, 32, 65, 0,
0, 0, 0, 70, 2, 16,
0, 2, 0, 0, 0, 30,
0, 0, 7, 18, 0, 16,
0, 3, 0, 0, 0, 10,
0, 16, 0, 3, 0, 0,
0, 1, 64, 0, 0, 1,
0, 0, 0, 22, 0, 0,
1, 0, 0, 0, 7, 242,
0, 16, 0, 0, 0, 0,
0, 70, 14, 16, 0, 0,
0, 0, 0, 70, 14, 16,
0, 1, 0, 0, 0, 56,
0, 0, 8, 242, 0, 16,
0, 0, 0, 0, 0, 70,
14, 16, 0, 0, 0, 0,
0, 70, 142, 32, 0, 0,
0, 0, 0, 1, 0, 0,
0, 54, 0, 0, 5, 130,
0, 16, 0, 2, 0, 0,
0, 1, 64, 0, 0, 0,
0, 128, 63, 0, 0, 0,
8, 242, 0, 16, 0, 1,
0, 0, 0, 70, 14, 16,
0, 2, 0, 0, 0, 70,
142, 32, 0, 0, 0, 0,
0, 0, 0, 0, 0, 56,
0, 0, 7, 242, 32, 16,
0, 0, 0, 0, 0, 70,
14, 16, 0, 0, 0, 0,
0, 70, 14, 16, 0, 1,
0, 0, 0, 62, 0, 0,
1, 83, 84, 65, 84, 116,
0, 0, 0, 45, 0, 0,
0, 5, 0, 0, 0, 0,
0, 0, 0, 4, 0, 0,
0, 22, 0, 0, 0, 2,
0, 0, 0, 0, 0, 0,
0, 3, 0, 0, 0, 3,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 2,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 20, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 57,
13, 0, 0, 0, 0, 0,
0, 4, 0, 0, 0, 160,
96, 0, 0, 0, 0, 0,
0, 11, 0, 0, 0, 255,
255, 255, 255, 0, 0, 0,
0, 48, 0, 0, 0, 20,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 56,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 72,
0, 0, 0, 20, 0, 0,
0, 0, 0, 0, 0, 16,
0, 0, 0, 80, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 130, 0, 0,
0, 102, 0, 0, 0, 0,
0, 0, 0, 32, 0, 0,
0, 156, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 192, 0, 0, 0, 164,
0, 0, 0, 204, 0, 0,
0, 36, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 215,
0, 0, 0, 20, 0, 0,
0, 223, 0, 0, 0, 48,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 3, 1, 0,
0, 231, 0, 0, 0, 10,
1, 0, 0, 64, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 21, 1, 0, 0, 231,
0, 0, 0, 33, 1, 0,
0, 48, 16, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 86,
1, 0, 0, 58, 1, 0,
0, 92, 1, 0, 0, 32,
32, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 98, 1, 0,
0, 58, 1, 0, 0, 103,
1, 0, 0, 96, 32, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 113, 1, 0, 0, 58,
1, 0, 0, 124, 1, 0,
0, 160, 32, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 163,
1, 0, 0, 135, 1, 0,
0, 169, 1, 0, 0, 224,
32, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 217, 1, 0,
0, 189, 1, 0, 0, 0,
0, 0, 0, 255, 255, 255,
255, 0, 0, 0, 0, 12,
2, 0, 0, 240, 1, 0,
0, 0, 0, 0, 0, 255,
255, 255, 255, 3, 0, 0,
0, 45, 0, 0, 0, 0,
0, 0, 0, 1, 0, 0,
0, 22, 2, 0, 0, 46,
0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 34,
2, 0, 0, 47, 0, 0,
0, 0, 0, 0, 0, 1,
0, 0, 0, 46, 2, 0,
0, 0, 0, 0, 0, 98,
2, 0, 0, 70, 2, 0,
0, 0, 0, 0, 0, 255,
255, 255, 255, 0, 0, 0,
0, 112, 2, 0, 0, 240,
1, 0, 0, 0, 0, 0,
0, 255, 255, 255, 255, 4,
0, 0, 0, 45, 0, 0,
0, 0, 0, 0, 0, 1,
0, 0, 0, 123, 2, 0,
0, 46, 0, 0, 0, 0,
0, 0, 0, 1, 0, 0,
0, 135, 2, 0, 0, 47,
0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 147,
2, 0, 0, 48, 0, 0,
0, 0, 0, 0, 0, 1,
0, 0, 0, 159, 2, 0,
0, 0, 0, 0, 0, 171,
2, 0, 0, 1, 0, 0,
0, 0, 0, 0, 0, 178,
2, 0, 0, 3, 0, 0,
0, 0, 0, 0, 0, 6,
0, 0, 0, 0, 0, 0,
0, 7, 0, 0, 0, 37,
13, 0, 0, 8, 0, 0,
0, 0, 0, 0, 0, 1,
0, 0, 0, 45, 13, 0,
0, 7, 0, 0, 0, 0,
0, 0, 0, 7, 0, 0,
0, 9, 23, 0, 0
};
[/code]

Share this post


Link to post
Share on other sites
Hodgman    51334
I've not actually used the 'compile to header' option before, but I'm guessing you pass the compiled output into the [font="Lucida Console"]D3DX10CreateEffectFromMemory[/font] function as usual.

e.g.
[font="Lucida Console"]D3DX10CreateEffectFromMemory( g_main, sizeof(g_main), ...[/font]

Also, by the sounds of it you can use [font="Lucida Console"]/Vn[/font] to specify a variable name other than [font="Lucida Console"]g_main[/font] to be generated.

Share this post


Link to post
Share on other sites
Starfox    504
I wrote a program to solve this exact problem of embedding text files in C[++] source: [url="https://bitbucket.org/sherief/text-to-c-string"]https://bitbucket.or...ext-to-c-string[/url]

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this