/*!****************************************************************************

 @file         OGLES2/PVRTBackgroundShaders.h
 @ingroup      API_OGLES2
 @copyright    Copyright (c) Imagination Technologies Limited.
 @brief        The shaders used by PVRTBackground. Created by Filewrap 1.0. DO
               NOT EDIT.

******************************************************************************/

// This file was created by Filewrap 1.0
// DO NOT EDIT

// using 32 bit to guarantee alignment. Adds endianness dependency.
#ifndef A32BIT
 #define A32BIT PVRTuint32
#endif

// ******** Start: BackgroundFragShader.fsh ********

// File data
static const char _BackgroundFragShader_fsh[] =
	"uniform sampler2D sampler2d;\r\n"
	"\r\n"
	"varying mediump vec2\tvarCoord;\r\n"
	"\r\n"
	"void main()\r\n"
	"{\r\n"
	"\tgl_FragColor = texture2D(sampler2d, varCoord);\r\n"
	"}\r\n";

// ******** End: BackgroundFragShader.fsh ********

// ******** Start: BackgroundVertShader.vsh ********

// File data
static const char _BackgroundVertShader_vsh[] =
	"attribute mediump vec2\tmyVertex;\r\n"
	"attribute mediump vec2\tmyUV;\r\n"
	"\r\n"
	"varying mediump vec2\tvarCoord;\r\n"
	"\r\n"
	"void main()\r\n"
	"{\r\n"
	"\tgl_Position = vec4(myVertex, 1, 1);\r\n"
	"\tvarCoord = myUV;\r\n"
	"}\r\n";

// ******** End: BackgroundVertShader.vsh ********

// This file was created by Filewrap 1.0
// DO NOT EDIT

// using 32 bit to guarantee alignment. Adds endianness dependency.
#ifndef A32BIT
 #define A32BIT PVRTuint32
#endif

// ******** Start: BackgroundFragShader.fsc ********

// File data
A32BIT _BackgroundFragShader_fsc[] = {
0x10fab438,0xe9233faf,0x35050100,0x901,0xf121629f,0x0,0x0,0x1d020000,
0x1000000,0x4000200,0x0,0x8000000,0x2,0x0,0x20000,0x0,
0x0,0xdc000000,0x55535020,0x17,0xd0,0x1,0x0,0x48,
0x0,0x3,0x6d,0x1,0x0,0x0,0xffffffff,0x0,
0x770009,0xffff,0x1,0x0,0x1,0x0,0x0,0x0,
0x0,0xfffc0000,0x3,0x10004,0x0,0x110000,0xffffffff,0x0,
0x56780000,0x0,0x10000,0x0,0x4,0x50011,0x10000,0x80010000,
0x80018001,0x8001,0x0,0x120000,0xf0000,0x60a000f,0x30003,0x30003,
0x0,0x0,0x40004,0x40004,0x10000,0x30002,0x1,0x20001,
0x6,0xdc000000,0x55535020,0x17,0xd0,0x1,0x0,0x148,
0x0,0x3,0x6d,0x1,0x0,0x0,0xffffffff,0x0,
0x770009,0xffff,0x10001,0x0,0x1,0x0,0x0,0x0,
0x0,0xfffc0000,0x1,0x10004,0x0,0x110000,0xffffffff,0x0,
0x56780000,0x0,0x10000,0x0,0x4,0x50011,0x10000,0x80010000,
0x80018001,0x8001,0x0,0x120000,0xf0000,0x60a000f,0x10001,0x10001,
0x0,0x0,0x40004,0x40004,0x10000,0x30002,0x10001,0x20001,
0x6,0x2000000,0x706d6173,0x3272656c,0x64,0x318,0x2000001,0x10000,
0x76000001,0x6f437261,0x64726f,0x5030000,0x10000,0x100,0x30002,0x0,
};

static int _BackgroundFragShader_fsc_size = 573;

// ******** End: BackgroundFragShader.fsc ********

// ******** Start: BackgroundVertShader.vsc ********

// File data
A32BIT _BackgroundVertShader_vsc[] = {
0x10fab438,0x69857ca,0x35050100,0x901,0xf121629f,0x0,0x0,0x93010000,
0x0,0x4000200,0x0,0x9000000,0x2,0x0,0x20000,0x0,
0x0,0xe0000000,0x55535020,0x17,0xd4,0x1,0x0,0xc,
0x0,0x3,0x6d,0x1,0x0,0x0,0xffffffff,0x0,
0x76000a,0xffff,0x6,0x0,0x0,0x0,0x0,0x0,
0x0,0xfffc0000,0x0,0x0,0x0,0x110000,0xffffffff,0x0,
0x56780006,0x330000,0x40000,0x110000,0x2,0x6,0x80018001,0x80018001,
0x0,0x0,0x0,0x0,0x0,0xa0000000,0x28811001,0xa0200080,
0x28811001,0x60601a00,0x28831001,0xa0800200,0x28a11001,0x60000700,0x28831002,0x5040018e,
0x811005,0x6,0x800,0x0,0x0,0x803f0000,0x3f0000,0x3f0000,
0x0,0x0,0x4000000,0x505f6c67,0x7469736f,0x6e6f69,0x5050100,0x10000,
0x100,0xf0004,0x56796d00,0x65747265,0x78,0x403,0x1000001,0x40000,
0x76000003,0x6f437261,0x64726f,0x5030000,0x10000,0x100,0x30002,0x55796d00,
0x56,0x403,0x1000001,0x40400,0x3,
};

static int _BackgroundVertShader_vsc_size = 435;

// ******** End: BackgroundVertShader.vsc ********

