<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[168115] trunk/Source</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/168115">168115</a></dd>
<dt>Author</dt> <dd>achristensen@apple.com</dd>
<dt>Date</dt> <dd>2014-05-01 12:24:46 -0700 (Thu, 01 May 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>Finish updating ANGLE.
https://bugs.webkit.org/show_bug.cgi?id=132434

Reviewed by Dean Jackson.


Source/ThirdParty/ANGLE: 
* ANGLE.xcodeproj/project.pbxproj:
Removed Uniform.cpp which is no longer in ANGLE.
* changes.diff:
Added more changes from ANGLE which are already included in WebKit.

Updated ANGLE source files to e7a453a5bd76705ccb151117fa844846d4aa90af.  Long list of changes omitted.

Source/WebCore: 
* CMakeLists.txt:
Removed Uniform.cpp which is no longer in ANGLE.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceThirdPartyANGLEANGLExcodeprojprojectpbxproj">trunk/Source/ThirdParty/ANGLE/ANGLE.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceThirdPartyANGLEChangeLog">trunk/Source/ThirdParty/ANGLE/ChangeLog</a></li>
<li><a href="#trunkSourceThirdPartyANGLEchangesdiff">trunk/Source/ThirdParty/ANGLE/changes.diff</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2Programcpp">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/Program.cpp</a></li>
<li><a href="#trunkSourceWebCoreCMakeListstxt">trunk/Source/WebCore/CMakeLists.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2constantsh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/constants.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11Blit11cpp">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/Blit11.cpp</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11Blit11h">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/Blit11.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11Clear11cpp">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/Clear11.cpp</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11Clear11h">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/Clear11.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11PixelTransfer11cpp">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/PixelTransfer11.cpp</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11PixelTransfer11h">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/PixelTransfer11.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11formatutils11cpp">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/formatutils11.cpp</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11formatutils11h">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/formatutils11.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shadersBufferToTexture11hlsl">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/BufferToTexture11.hlsl</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shadersPassthrough3D11hlsl">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/Passthrough3D11.hlsl</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shadersSwizzle11hlsl">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/Swizzle11.hlsl</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledbuffertotexture11_gsh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/buffertotexture11_gs.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledbuffertotexture11_ps_4fh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/buffertotexture11_ps_4f.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledbuffertotexture11_ps_4ih">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/buffertotexture11_ps_4i.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledbuffertotexture11_ps_4uih">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/buffertotexture11_ps_4ui.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledbuffertotexture11_vsh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/buffertotexture11_vs.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledclearfloat11psh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/clearfloat11ps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledclearfloat11vsh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/clearfloat11vs.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledclearsint11psh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/clearsint11ps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledclearsint11vsh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/clearsint11vs.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledclearuint11psh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/clearuint11ps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledclearuint11vsh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/clearuint11vs.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthrough2d11vsh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthrough2d11vs.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthrough3d11gsh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthrough3d11gs.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthrough3d11vsh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthrough3d11vs.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughdepth2d11psh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughdepth2d11ps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughlum2d11psh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughlum2d11ps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughlum3d11psh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughlum3d11ps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughlumalpha2d11psh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughlumalpha2d11ps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughlumalpha3d11psh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughlumalpha3d11ps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughr2d11psh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughr2d11ps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughr2di11psh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughr2di11ps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughr2dui11psh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughr2dui11ps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughr3d11psh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughr3d11ps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughr3di11psh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughr3di11ps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughr3dui11psh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughr3dui11ps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughrg2d11psh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrg2d11ps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughrg2di11psh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrg2di11ps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughrg2dui11psh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrg2dui11ps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughrg3d11psh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrg3d11ps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughrg3di11psh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrg3di11ps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughrg3dui11psh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrg3dui11ps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughrgb2d11psh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgb2d11ps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughrgb2di11psh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgb2di11ps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughrgb2dui11psh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgb2dui11ps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughrgb3d11psh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgb3d11ps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughrgb3di11psh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgb3di11ps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughrgb3dui11psh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgb3dui11ps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughrgba2d11psh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgba2d11ps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughrgba2di11psh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgba2di11ps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughrgba2dui11psh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgba2dui11ps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughrgba3d11psh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgba3d11ps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughrgba3di11psh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgba3di11ps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughrgba3dui11psh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgba3dui11ps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledswizzlef2darraypsh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzlef2darrayps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledswizzlef2dpsh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzlef2dps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledswizzlef3dpsh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzlef3dps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledswizzlei2darraypsh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzlei2darrayps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledswizzlei2dpsh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzlei2dps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledswizzlei3dpsh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzlei3dps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledswizzleui2darraypsh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzleui2darrayps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledswizzleui2dpsh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzleui2dps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledswizzleui3dpsh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzleui3dps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d9Blit9cpp">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d9/Blit9.cpp</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d9Blit9h">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d9/Blit9.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d9ShaderCacheh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d9/ShaderCache.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d9formatutils9cpp">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d9/formatutils9.cpp</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d9formatutils9h">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d9/formatutils9.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererimageformatsh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/imageformats.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererloadimagecpp">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/loadimage.cpp</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererloadimageh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/loadimage.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererloadimageSSE2cpp">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/loadimageSSE2.cpp</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2renderervertexconversionh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/vertexconversion.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2validationEScpp">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/validationES.cpp</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2validationESh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/validationES.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2validationES2cpp">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/validationES2.cpp</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2validationES2h">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/validationES2.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2validationES3cpp">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/validationES3.cpp</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2validationES3h">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/validationES3.h</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkSourceThirdPartyANGLEsrcbuild_anglegypi">trunk/Source/ThirdParty/ANGLE/src/build_angle.gypi</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrccommonsystemh">trunk/Source/ThirdParty/ANGLE/src/common/system.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrccompilerpreprocessorlength_limitsh">trunk/Source/ThirdParty/ANGLE/src/compiler/preprocessor/length_limits.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrccompilertranslatorUniformcpp">trunk/Source/ThirdParty/ANGLE/src/compiler/translator/Uniform.cpp</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrccompilertranslatorUniformh">trunk/Source/ThirdParty/ANGLE/src/compiler/translator/Uniform.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibEGLlibEGLvcxproj">trunk/Source/ThirdParty/ANGLE/src/libEGL/libEGL.vcxproj</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibEGLlibEGLvcxprojfilters">trunk/Source/ThirdParty/ANGLE/src/libEGL/libEGL.vcxproj.filters</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2mathutilh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/mathutil.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererImageSSE2cpp">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/ImageSSE2.cpp</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererShaderCacheh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/ShaderCache.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shadersPassthrough11hlsl">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/Passthrough11.hlsl</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledclear11vsh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/clear11vs.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledclearmultiple11psh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/clearmultiple11ps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledclearsingle11psh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/clearsingle11ps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthrough11vsh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthrough11vs.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughlum11psh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughlum11ps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughlumalpha11psh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughlumalpha11ps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughrgb11psh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgb11ps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughrgba11psh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgba11ps.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d9Blitcpp">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d9/Blit.cpp</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d9Blith">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d9/Blit.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d9vertexconversionh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d9/vertexconversion.h</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2utilitiescpp">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/utilities.cpp</a></li>
<li><a href="#trunkSourceThirdPartyANGLEsrclibGLESv2utilitiesh">trunk/Source/ThirdParty/ANGLE/src/libGLESv2/utilities.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceThirdPartyANGLEANGLExcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/ThirdParty/ANGLE/ANGLE.xcodeproj/project.pbxproj (168114 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/ANGLE.xcodeproj/project.pbxproj        2014-05-01 19:23:29 UTC (rev 168114)
+++ trunk/Source/ThirdParty/ANGLE/ANGLE.xcodeproj/project.pbxproj        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -131,7 +131,6 @@
</span><span class="cx">                 5C9FFF4F19102A000025B8FA /* FlagStd140Structs.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C9FFF4D19102A000025B8FA /* FlagStd140Structs.h */; };
</span><span class="cx">                 5CC7D452191024E4000B8C1F /* LoopInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5CC7D44B191024E3000B8C1F /* LoopInfo.cpp */; };
</span><span class="cx">                 5CC7D453191024E4000B8C1F /* LoopInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CC7D44C191024E4000B8C1F /* LoopInfo.h */; };
</span><del>-                5CC7D456191024E4000B8C1F /* Uniform.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5CC7D44F191024E4000B8C1F /* Uniform.cpp */; };
</del><span class="cx">                 5CC7D457191024E4000B8C1F /* ValidateOutputs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5CC7D450191024E4000B8C1F /* ValidateOutputs.cpp */; };
</span><span class="cx">                 5CC7D458191024E4000B8C1F /* ValidateOutputs.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CC7D451191024E4000B8C1F /* ValidateOutputs.h */; };
</span><span class="cx">                 5CC7D46B19102620000B8C1F /* angleutils.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CC7D45A19102620000B8C1F /* angleutils.h */; };
</span><span class="lines">@@ -327,7 +326,6 @@
</span><span class="cx">                 5C9FFF4D19102A000025B8FA /* FlagStd140Structs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FlagStd140Structs.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 5CC7D44B191024E3000B8C1F /* LoopInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LoopInfo.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 5CC7D44C191024E4000B8C1F /* LoopInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LoopInfo.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                5CC7D44F191024E4000B8C1F /* Uniform.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Uniform.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 5CC7D450191024E4000B8C1F /* ValidateOutputs.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ValidateOutputs.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 5CC7D451191024E4000B8C1F /* ValidateOutputs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ValidateOutputs.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 5CC7D45A19102620000B8C1F /* angleutils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = angleutils.h; path = src/common/angleutils.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -400,7 +398,6 @@
</span><span class="cx">                                 5C9FFF4D19102A000025B8FA /* FlagStd140Structs.h */,
</span><span class="cx">                                 5CC7D44B191024E3000B8C1F /* LoopInfo.cpp */,
</span><span class="cx">                                 5CC7D44C191024E4000B8C1F /* LoopInfo.h */,
</span><del>-                                5CC7D44F191024E4000B8C1F /* Uniform.cpp */,
</del><span class="cx">                                 5CC7D450191024E4000B8C1F /* ValidateOutputs.cpp */,
</span><span class="cx">                                 5CC7D451191024E4000B8C1F /* ValidateOutputs.h */,
</span><span class="cx">                                 31012DA918B97B9B0039062F /* depgraph */,
</span><span class="lines">@@ -884,7 +881,6 @@
</span><span class="cx">                                 31012E5918B97B9B0039062F /* QualifierAlive.cpp in Sources */,
</span><span class="cx">                                 31012E7118B97B9B0039062F /* UnfoldShortCircuit.cpp in Sources */,
</span><span class="cx">                                 31012E6418B97B9B0039062F /* SymbolTable.cpp in Sources */,
</span><del>-                                5CC7D456191024E4000B8C1F /* Uniform.cpp in Sources */,
</del><span class="cx">                                 A264F8B416974DED006FAA5A /* Input.cpp in Sources */,
</span><span class="cx">                                 5CC7D47919102621000B8C1F /* utilities.cpp in Sources */,
</span><span class="cx">                                 A264F8B616974DED006FAA5A /* Lexer.cpp in Sources */,
</span></span></pre></div>
<a id="trunkSourceThirdPartyANGLEChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/ThirdParty/ANGLE/ChangeLog (168114 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/ChangeLog        2014-05-01 19:23:29 UTC (rev 168114)
+++ trunk/Source/ThirdParty/ANGLE/ChangeLog        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -1,3 +1,17 @@
</span><ins>+2014-05-01  Alex Christensen  &lt;achristensen@webkit.org&gt;
+
+        Finish updating ANGLE.
+        https://bugs.webkit.org/show_bug.cgi?id=132434
+
+        Reviewed by Dean Jackson.
+
+        * ANGLE.xcodeproj/project.pbxproj:
+        Removed Uniform.cpp which is no longer in ANGLE.
+        * changes.diff:
+        Added more changes from ANGLE which are already included in WebKit.
+
+        Updated ANGLE source files to e7a453a5bd76705ccb151117fa844846d4aa90af.  Long list of changes omitted.
+
</ins><span class="cx"> 2014-04-30  Alex Christensen  &lt;achristensen@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Updated ANGLE.
</span></span></pre></div>
<a id="trunkSourceThirdPartyANGLEchangesdiff"></a>
<div class="modfile"><h4>Modified: trunk/Source/ThirdParty/ANGLE/changes.diff (168114 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/changes.diff        2014-05-01 19:23:29 UTC (rev 168114)
+++ trunk/Source/ThirdParty/ANGLE/changes.diff        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> diff --git a/include/GLSLANG/ShaderLang.h b/include/GLSLANG/ShaderLang.h
</span><del>-index 7970bfa..9cdcc24 100644
</del><ins>+index 7970bfa..b716c6f 100644
</ins><span class="cx"> --- a/include/GLSLANG/ShaderLang.h
</span><span class="cx"> +++ b/include/GLSLANG/ShaderLang.h
</span><span class="cx"> @@ -23,7 +23,7 @@
</span><span class="lines">@@ -11,6 +11,17 @@
</span><span class="cx">  #include &lt;stddef.h&gt;
</span><span class="cx">  
</span><span class="cx">  //
</span><ins>+@@ -423,8 +423,8 @@ COMPILER_EXPORT void ShGetInfoLog(const ShHandle handle, char* infoLog);
+ // Returns null-terminated object code for a compiled shader.
+ // Parameters:
+ // handle: Specifies the compiler
+-// infoLog: Specifies an array of characters that is used to return
+-//          the object code. It is assumed that infoLog has enough memory to
++// objCode: Specifies an array of characters that is used to return
++//          the object code. It is assumed that objCode has enough memory to
+ //          accomodate the object code. The size of the buffer required to
+ //          store the returned object code can be obtained by calling
+ //          ShGetInfo with SH_OBJECT_CODE_LENGTH.
</ins><span class="cx"> diff --git a/src/common/mathutil.h b/src/common/mathutil.h
</span><span class="cx"> index 9061bbd..0b4f384 100644
</span><span class="cx"> --- a/src/common/mathutil.h
</span><span class="lines">@@ -145,6 +156,117 @@
</span><span class="cx">  namespace pp {
</span><span class="cx">  
</span><span class="cx">  Tokenizer::Tokenizer(Diagnostics* diagnostics) : mHandle(0)
</span><ins>+diff --git a/src/compiler/translator/Compiler.cpp b/src/compiler/translator/Compiler.cpp
+index 1864cd8..c3111c1 100644
+--- a/src/compiler/translator/Compiler.cpp
++++ b/src/compiler/translator/Compiler.cpp
+@@ -96,6 +96,7 @@ TCompiler::TCompiler(ShShaderType type, ShShaderSpec spec)
+     : shaderType(type),
+       shaderSpec(spec),
+       maxUniformVectors(0),
++      maxVaryingVectors(0),
+       maxExpressionComplexity(0),
+       maxCallStackDepth(0),
+       fragmentPrecisionHigh(false),
+@@ -114,6 +115,7 @@ bool TCompiler::Init(const ShBuiltInResources&amp; resources)
+     maxUniformVectors = (shaderType == SH_VERTEX_SHADER) ?
+         resources.MaxVertexUniformVectors :
+         resources.MaxFragmentUniformVectors;
++    maxVaryingVectors = resources.MaxVaryingVectors;
+     maxExpressionComplexity = resources.MaxExpressionComplexity;
+     maxCallStackDepth = resources.MaxCallStackDepth;

+@@ -238,14 +240,7 @@ bool TCompiler::compile(const char* const shaderStrings[],
+         {
+             collectVariables(root);
+             if (compileOptions &amp; SH_ENFORCE_PACKING_RESTRICTIONS)
+-            {
+                 success = enforcePackingRestrictions();
+-                if (!success)
+-                {
+-                    infoSink.info.prefix(EPrefixError);
+-                    infoSink.info &lt;&lt; &quot;too many uniforms&quot;;
+-                }
+-            }
+             if (success &amp;&amp; shaderType == SH_VERTEX_SHADER &amp;&amp;
+                 (compileOptions &amp; SH_INIT_VARYINGS_WITHOUT_STATIC_USE))
+                 initializeVaryingsWithoutStaticUse(root);
+@@ -458,7 +453,21 @@ void TCompiler::collectVariables(TIntermNode* root)
+ bool TCompiler::enforcePackingRestrictions()
+ {
+     VariablePacker packer;
+-    return packer.CheckVariablesWithinPackingLimits(maxUniformVectors, uniforms);
++    bool success = packer.CheckVariablesWithinPackingLimits(maxUniformVectors, uniforms);
++    if (!success) {
++        infoSink.info.prefix(EPrefixError);
++        infoSink.info &lt;&lt; &quot;too many uniforms&quot;;
++        return false;
++    }
++
++    success = packer.CheckVariablesWithinPackingLimits(maxVaryingVectors, varyings);
++
++    if (!success) {
++        infoSink.info.prefix(EPrefixError);
++        infoSink.info &lt;&lt; &quot;too many varyings&quot;;
++        return false;
++    }
++    return true;
+ }

+ void TCompiler::initializeGLPosition(TIntermNode* root)
+diff --git a/src/compiler/translator/ShHandle.h b/src/compiler/translator/ShHandle.h
+index 50a8d58..687ff63 100644
+--- a/src/compiler/translator/ShHandle.h
++++ b/src/compiler/translator/ShHandle.h
+@@ -95,7 +95,7 @@ protected:
+     // Translate to object code.
+     virtual void translate(TIntermNode* root) = 0;
+     // Returns true if, after applying the packing rules in the GLSL 1.017 spec
+-    // Appendix A, section 7, the shader does not use too many uniforms.
++    // Appendix A, section 7, the shader does not use too many uniforms or varyings.
+     bool enforcePackingRestrictions();
+     // Insert statements to initialize varyings without static use in the beginning
+     // of main(). It is to work around a Mac driver where such varyings in a vertex
+@@ -130,6 +130,7 @@ private:
+     ShShaderSpec shaderSpec;

+     int maxUniformVectors;
++    int maxVaryingVectors;
+     int maxExpressionComplexity;
+     int maxCallStackDepth;

+diff --git a/src/compiler/translator/ShaderLang.cpp b/src/compiler/translator/ShaderLang.cpp
+index b98c371..dd26873 100644
+--- a/src/compiler/translator/ShaderLang.cpp
++++ b/src/compiler/translator/ShaderLang.cpp
+@@ -242,8 +242,12 @@ void ShGetInfoLog(const ShHandle handle, char* infoLog)
+     TCompiler* compiler = base-&gt;getAsCompiler();
+     if (!compiler) return;

++    size_t infoLogLength = 0;
++    ShGetInfo(compiler, SH_INFO_LOG_LENGTH, &amp;infoLogLength);
++
+     TInfoSink&amp; infoSink = compiler-&gt;getInfoSink();
+-    strcpy(infoLog, infoSink.info.c_str());
++    strncpy(infoLog, infoSink.info.c_str(), infoLogLength);
++    infoLog[infoLogLength - 1] = '\0';
+ }

+ //
+@@ -258,8 +262,12 @@ void ShGetObjectCode(const ShHandle handle, char* objCode)
+     TCompiler* compiler = base-&gt;getAsCompiler();
+     if (!compiler) return;

++    size_t objCodeLength = 0;
++    ShGetInfo(handle, SH_OBJECT_CODE_LENGTH, &amp;objCodeLength);
++
+     TInfoSink&amp; infoSink = compiler-&gt;getInfoSink();
+-    strcpy(objCode, infoSink.obj.c_str());
++    strncpy(objCode, infoSink.obj.c_str(), objCodeLength);
++    objCode[objCodeLength - 1] = '\0';
+ }

+ void ShGetVariableInfo(const ShHandle handle,
</ins><span class="cx"> diff --git a/src/compiler/translator/glslang.l b/src/compiler/translator/glslang.l
</span><span class="cx"> index 518b78d..c8ff855 100644
</span><span class="cx"> --- a/src/compiler/translator/glslang.l
</span><span class="lines">@@ -225,3 +347,47 @@
</span><span class="cx">  /* Bison interface for Yacc-like parsers in C
</span><span class="cx">     
</span><span class="cx">        Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
</span><ins>+diff --git a/src/libGLESv2/Program.cpp b/src/libGLESv2/Program.cpp
+index 8a9fb04..46db788 100644
+--- a/src/libGLESv2/Program.cpp
++++ b/src/libGLESv2/Program.cpp
+@@ -101,22 +101,27 @@ void InfoLog::append(const char *format, ...)
+     va_end(vararg);

+     char *logPointer = NULL;
++    size_t logLength = 0;

+     if (!mInfoLog)
+     {
+         mInfoLog = new char[infoLength + 2];
+         logPointer = mInfoLog;
++        logLength = infoLenfth + 2;
+     }
+     else
+     {
+         size_t currentlogLength = strlen(mInfoLog);
+-        char *newLog = new char[currentlogLength + infoLength + 2];
+-        strcpy(newLog, mInfoLog);
++        size_t newInfoLogLength = currentlogLength + infoLength + 2;
++        char *newLog = new char[newInfoLogLength];
++        strncpy(newLog, mInfoLog, newInfoLogLength);
++        newLog[newInfoLogLength - 1] = '\0';

+         delete[] mInfoLog;
+         mInfoLog = newLog;

+         logPointer = mInfoLog + currentlogLength;
++        logLength = newInfoLogLength - currentlogLength;
+     }

+     va_start(vararg, format);
+@@ -124,7 +129,8 @@ void InfoLog::append(const char *format, ...)
+     va_end(vararg);

+     logPointer[infoLength] = 0;
+-    strcpy(logPointer + infoLength, &quot;\n&quot;);
++    strncpy(logPointer + infoLength, &quot;\n&quot;, logLength - infoLength);
++    logPointer[logLength - 1] = '\0';
+ }

+ void InfoLog::reset()
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrcbuild_anglegypi"></a>
<div class="delfile"><h4>Deleted: trunk/Source/ThirdParty/ANGLE/src/build_angle.gypi (168114 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/build_angle.gypi        2014-05-01 19:23:29 UTC (rev 168114)
+++ trunk/Source/ThirdParty/ANGLE/src/build_angle.gypi        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -1,423 +0,0 @@
</span><del>-# Copyright (c) 2012 The ANGLE Project Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-{
-  'variables': {
-    'angle_code': 1,
-    'translator_sources': [
-        'compiler/BaseTypes.h',
-        'compiler/BuiltInFunctionEmulator.cpp',
-        'compiler/BuiltInFunctionEmulator.h',
-        'compiler/CodeGen.cpp',
-        'compiler/Common.h',
-        'compiler/Compiler.cpp',
-        'compiler/ConstantUnion.h',
-        'compiler/debug.cpp',
-        'compiler/debug.h',
-        'compiler/DetectCallDepth.cpp',
-        'compiler/DetectCallDepth.h',
-        'compiler/DetectDiscontinuity.cpp',
-        'compiler/DetectDiscontinuity.h',
-        'compiler/Diagnostics.h',
-        'compiler/Diagnostics.cpp',
-        'compiler/DirectiveHandler.h',
-        'compiler/DirectiveHandler.cpp',
-        'compiler/ExtensionBehavior.h',
-        'compiler/ForLoopUnroll.cpp',
-        'compiler/ForLoopUnroll.h',
-        'compiler/glslang.h',
-        'compiler/glslang_lex.cpp',
-        'compiler/glslang_tab.cpp',
-        'compiler/glslang_tab.h',
-        'compiler/HashNames.h',
-        'compiler/InfoSink.cpp',
-        'compiler/InfoSink.h',
-        'compiler/Initialize.cpp',
-        'compiler/Initialize.h',
-        'compiler/InitializeDll.cpp',
-        'compiler/InitializeDll.h',
-        'compiler/InitializeGlobals.h',
-        'compiler/InitializeGLPosition.cpp',
-        'compiler/InitializeGLPosition.h',
-        'compiler/InitializeParseContext.cpp',
-        'compiler/InitializeParseContext.h',
-        'compiler/Intermediate.cpp',
-        'compiler/intermediate.h',
-        'compiler/intermOut.cpp',
-        'compiler/IntermTraverse.cpp',
-        'compiler/localintermediate.h',
-        'compiler/MapLongVariableNames.cpp',
-        'compiler/MapLongVariableNames.h',
-        'compiler/MMap.h',
-        'compiler/osinclude.h',
-        'compiler/OutputESSL.cpp',
-        'compiler/OutputESSL.h',
-        'compiler/OutputGLSLBase.cpp',
-        'compiler/OutputGLSLBase.h',
-        'compiler/OutputGLSL.cpp',
-        'compiler/OutputGLSL.h',
-        'compiler/OutputHLSL.cpp',
-        'compiler/OutputHLSL.h',
-        'compiler/parseConst.cpp',
-        'compiler/ParseContext.cpp',
-        'compiler/ParseContext.h',
-        'compiler/PoolAlloc.cpp',
-        'compiler/PoolAlloc.h',
-        'compiler/QualifierAlive.cpp',
-        'compiler/QualifierAlive.h',
-        'compiler/RemoveTree.cpp',
-        'compiler/RemoveTree.h',
-        'compiler/RenameFunction.h',
-        'compiler/SearchSymbol.cpp',
-        'compiler/SearchSymbol.h',
-        'compiler/ShaderLang.cpp',
-        'compiler/ShHandle.h',
-        'compiler/SymbolTable.cpp',
-        'compiler/SymbolTable.h',
-        'compiler/TranslatorESSL.cpp',
-        'compiler/TranslatorESSL.h',
-        'compiler/TranslatorGLSL.cpp',
-        'compiler/TranslatorGLSL.h',
-        'compiler/TranslatorHLSL.cpp',
-        'compiler/TranslatorHLSL.h',
-        'compiler/Types.h',
-        'compiler/UnfoldShortCircuitAST.cpp',
-        'compiler/UnfoldShortCircuitAST.h',
-        'compiler/UnfoldShortCircuit.cpp',
-        'compiler/UnfoldShortCircuit.h',
-        'compiler/Uniform.cpp',
-        'compiler/Uniform.h',
-        'compiler/util.cpp',
-        'compiler/util.h',
-        'compiler/ValidateLimitations.cpp',
-        'compiler/ValidateLimitations.h',
-        'compiler/VariableInfo.cpp',
-        'compiler/VariableInfo.h',
-        'compiler/VariablePacker.cpp',
-        'compiler/VariablePacker.h',
-        'compiler/VersionGLSL.cpp',
-        'compiler/VersionGLSL.h',
-        # Dependency graph
-        'compiler/depgraph/DependencyGraph.cpp',
-        'compiler/depgraph/DependencyGraph.h',
-        'compiler/depgraph/DependencyGraphBuilder.cpp',
-        'compiler/depgraph/DependencyGraphBuilder.h',
-        'compiler/depgraph/DependencyGraphOutput.cpp',
-        'compiler/depgraph/DependencyGraphOutput.h',
-        'compiler/depgraph/DependencyGraphTraverse.cpp',
-        # Timing restrictions
-        'compiler/timing/RestrictFragmentShaderTiming.cpp',
-        'compiler/timing/RestrictFragmentShaderTiming.h',
-        'compiler/timing/RestrictVertexShaderTiming.cpp',
-        'compiler/timing/RestrictVertexShaderTiming.h',
-        'third_party/compiler/ArrayBoundsClamper.cpp',
-        'third_party/compiler/ArrayBoundsClamper.h',
-      ],
-  },
-  'target_defaults': {
-    'defines': [
-      'ANGLE_DISABLE_TRACE',
-      'ANGLE_COMPILE_OPTIMIZATION_LEVEL=D3DCOMPILE_OPTIMIZATION_LEVEL1',
-      'ANGLE_PRELOADED_D3DCOMPILER_MODULE_NAMES={ TEXT(&quot;d3dcompiler_46.dll&quot;), TEXT(&quot;d3dcompiler_43.dll&quot;) }',
-    ],
-  },
-  'targets': [
-    {
-      'target_name': 'preprocessor',
-      'type': 'static_library',
-      'include_dirs': [
-      ],
-      'sources': [
-        'compiler/preprocessor/DiagnosticsBase.cpp',
-        'compiler/preprocessor/DiagnosticsBase.h',
-        'compiler/preprocessor/DirectiveHandlerBase.cpp',
-        'compiler/preprocessor/DirectiveHandlerBase.h',
-        'compiler/preprocessor/DirectiveParser.cpp',
-        'compiler/preprocessor/DirectiveParser.h',
-        'compiler/preprocessor/ExpressionParser.cpp',
-        'compiler/preprocessor/ExpressionParser.h',
-        'compiler/preprocessor/Input.cpp',
-        'compiler/preprocessor/Input.h',
-        'compiler/preprocessor/length_limits.h',
-        'compiler/preprocessor/Lexer.cpp',
-        'compiler/preprocessor/Lexer.h',
-        'compiler/preprocessor/Macro.cpp',
-        'compiler/preprocessor/Macro.h',
-        'compiler/preprocessor/MacroExpander.cpp',
-        'compiler/preprocessor/MacroExpander.h',
-        'compiler/preprocessor/numeric_lex.h',
-        'compiler/preprocessor/pp_utils.h',
-        'compiler/preprocessor/Preprocessor.cpp',
-        'compiler/preprocessor/Preprocessor.h',
-        'compiler/preprocessor/SourceLocation.h',
-        'compiler/preprocessor/Token.cpp',
-        'compiler/preprocessor/Token.h',
-        'compiler/preprocessor/Tokenizer.cpp',
-        'compiler/preprocessor/Tokenizer.h',
-      ],
-      # TODO(jschuh): http://crbug.com/167187
-      'msvs_disabled_warnings': [
-        4267,
-      ],
-    },
-    {
-      'target_name': 'translator',
-      'type': '&lt;(component)',
-      'dependencies': ['preprocessor'],
-      'include_dirs': [
-        '.',
-        '../include',
-      ],
-      'defines': [
-        'ANGLE_TRANSLATOR_IMPLEMENTATION',
-      ],
-      'sources': ['&lt;@(translator_sources)'],
-      # TODO(jschuh): http://crbug.com/167187 size_t -&gt; int
-      'msvs_disabled_warnings': [ 4267 ],
-      'conditions': [
-        ['OS==&quot;win&quot;', {
-          'sources': ['compiler/ossource_win.cpp'],
-        }, { # else: posix
-          'sources': ['compiler/ossource_posix.cpp'],
-        }],
-      ],
-    },
-    {
-      'target_name': 'translator_static',
-      'type': 'static_library',
-      'dependencies': ['preprocessor'],
-      'include_dirs': [
-        '.',
-        '../include',
-      ],
-      'direct_dependent_settings': {
-        'defines': [
-          'ANGLE_TRANSLATOR_STATIC',
-        ],
-      },
-      'defines': [
-        'ANGLE_TRANSLATOR_STATIC',
-      ],
-      'sources': ['&lt;@(translator_sources)'],
-      # TODO(jschuh): http://crbug.com/167187 size_t -&gt; int
-      'msvs_disabled_warnings': [ 4267 ],
-      'conditions': [
-        ['OS==&quot;win&quot;', {
-          'sources': ['compiler/ossource_win.cpp'],
-        }, { # else: posix
-          'sources': ['compiler/ossource_posix.cpp'],
-        }],
-      ],
-    },
-  ],
-  'conditions': [
-    ['OS==&quot;win&quot;', {
-      'targets': [
-        {
-          'target_name': 'libGLESv2',
-          'type': 'shared_library',
-          'dependencies': ['translator'],
-          'include_dirs': [
-            '.',
-            '../include',
-            'libGLESv2',
-          ],
-          'sources': [
-            'third_party/murmurhash/MurmurHash3.h',
-            'third_party/murmurhash/MurmurHash3.cpp',
-            'third_party/trace_event/trace_event.h',
-            'common/angleutils.h',
-            'common/debug.cpp',
-            'common/debug.h',
-            'common/event_tracer.cpp',
-            'common/event_tracer.h',
-            'common/RefCountObject.cpp',
-            'common/RefCountObject.h',
-            'common/version.h',
-            'libGLESv2/precompiled.h',
-            'libGLESv2/precompiled.cpp',
-            'libGLESv2/BinaryStream.h',
-            'libGLESv2/Buffer.cpp',
-            'libGLESv2/Buffer.h',
-            'libGLESv2/constants.h',
-            'libGLESv2/Context.cpp',
-            'libGLESv2/Context.h',
-            'libGLESv2/angletypes.h',
-            'libGLESv2/Fence.cpp',
-            'libGLESv2/Fence.h',
-            'libGLESv2/Float16ToFloat32.cpp',
-            'libGLESv2/Framebuffer.cpp',
-            'libGLESv2/Framebuffer.h',
-            'libGLESv2/HandleAllocator.cpp',
-            'libGLESv2/HandleAllocator.h',
-            'libGLESv2/libGLESv2.cpp',
-            'libGLESv2/libGLESv2.def',
-            'libGLESv2/libGLESv2.rc',
-            'libGLESv2/main.cpp',
-            'libGLESv2/main.h',
-            'libGLESv2/mathutil.h',
-            'libGLESv2/Program.cpp',
-            'libGLESv2/Program.h',
-            'libGLESv2/ProgramBinary.cpp',
-            'libGLESv2/ProgramBinary.h',
-            'libGLESv2/Query.h',
-            'libGLESv2/Query.cpp',
-            'libGLESv2/Renderbuffer.cpp',
-            'libGLESv2/Renderbuffer.h',
-            'libGLESv2/renderer/Blit.cpp',
-            'libGLESv2/renderer/Blit.h',
-            'libGLESv2/renderer/BufferStorage.h',
-            'libGLESv2/renderer/BufferStorage.cpp',
-            'libGLESv2/renderer/BufferStorage9.cpp',
-            'libGLESv2/renderer/BufferStorage9.h',
-            'libGLESv2/renderer/BufferStorage11.cpp',
-            'libGLESv2/renderer/BufferStorage11.h',
-            'libGLESv2/renderer/FenceImpl.h',
-            'libGLESv2/renderer/Fence9.cpp',
-            'libGLESv2/renderer/Fence9.h',
-            'libGLESv2/renderer/Fence11.cpp',
-            'libGLESv2/renderer/Fence11.h',
-            'libGLESv2/renderer/generatemip.h',
-            'libGLESv2/renderer/Image.cpp',
-            'libGLESv2/renderer/Image.h',
-            'libGLESv2/renderer/Image11.cpp',
-            'libGLESv2/renderer/Image11.h',
-            'libGLESv2/renderer/Image9.cpp',
-            'libGLESv2/renderer/Image9.h',
-            'libGLESv2/renderer/ImageSSE2.cpp',
-            'libGLESv2/renderer/IndexBuffer.cpp',
-            'libGLESv2/renderer/IndexBuffer.h',
-            'libGLESv2/renderer/IndexBuffer9.cpp',
-            'libGLESv2/renderer/IndexBuffer9.h',
-            'libGLESv2/renderer/IndexBuffer11.cpp',
-            'libGLESv2/renderer/IndexBuffer11.h',
-            'libGLESv2/renderer/IndexDataManager.cpp',
-            'libGLESv2/renderer/IndexDataManager.h',
-            'libGLESv2/renderer/IndexRangeCache.cpp',
-            'libGLESv2/renderer/IndexRangeCache.h',
-            'libGLESv2/renderer/InputLayoutCache.cpp',
-            'libGLESv2/renderer/InputLayoutCache.h',
-            'libGLESv2/renderer/QueryImpl.h',
-            'libGLESv2/renderer/Query9.cpp',
-            'libGLESv2/renderer/Query9.h',
-            'libGLESv2/renderer/Query11.cpp',
-            'libGLESv2/renderer/Query11.h',
-            'libGLESv2/renderer/Renderer.cpp',
-            'libGLESv2/renderer/Renderer.h',
-            'libGLESv2/renderer/Renderer11.cpp',
-            'libGLESv2/renderer/Renderer11.h',
-            'libGLESv2/renderer/renderer11_utils.cpp',
-            'libGLESv2/renderer/renderer11_utils.h',
-            'libGLESv2/renderer/Renderer9.cpp',
-            'libGLESv2/renderer/Renderer9.h',
-            'libGLESv2/renderer/renderer9_utils.cpp',
-            'libGLESv2/renderer/renderer9_utils.h',
-            'libGLESv2/renderer/RenderStateCache.cpp',
-            'libGLESv2/renderer/RenderStateCache.h',
-            'libGLESv2/renderer/RenderTarget.h',
-            'libGLESv2/renderer/RenderTarget11.h',
-            'libGLESv2/renderer/RenderTarget11.cpp',
-            'libGLESv2/renderer/RenderTarget9.h',
-            'libGLESv2/renderer/RenderTarget9.cpp',
-            'libGLESv2/renderer/ShaderCache.h',
-            'libGLESv2/renderer/ShaderExecutable.h',
-            'libGLESv2/renderer/ShaderExecutable9.cpp',
-            'libGLESv2/renderer/ShaderExecutable9.h',
-            'libGLESv2/renderer/ShaderExecutable11.cpp',
-            'libGLESv2/renderer/ShaderExecutable11.h',
-            'libGLESv2/renderer/SwapChain.h',
-            'libGLESv2/renderer/SwapChain9.cpp',
-            'libGLESv2/renderer/SwapChain9.h',
-            'libGLESv2/renderer/SwapChain11.cpp',
-            'libGLESv2/renderer/SwapChain11.h',
-            'libGLESv2/renderer/TextureStorage.cpp',
-            'libGLESv2/renderer/TextureStorage.h',
-            'libGLESv2/renderer/TextureStorage11.cpp',
-            'libGLESv2/renderer/TextureStorage11.h',
-            'libGLESv2/renderer/TextureStorage9.cpp',
-            'libGLESv2/renderer/TextureStorage9.h',
-            'libGLESv2/renderer/VertexBuffer.cpp',
-            'libGLESv2/renderer/VertexBuffer.h',
-            'libGLESv2/renderer/VertexBuffer9.cpp',
-            'libGLESv2/renderer/VertexBuffer9.h',
-            'libGLESv2/renderer/VertexBuffer11.cpp',
-            'libGLESv2/renderer/VertexBuffer11.h',
-            'libGLESv2/renderer/vertexconversion.h',
-            'libGLESv2/renderer/VertexDataManager.cpp',
-            'libGLESv2/renderer/VertexDataManager.h',
-            'libGLESv2/renderer/VertexDeclarationCache.cpp',
-            'libGLESv2/renderer/VertexDeclarationCache.h',
-            'libGLESv2/ResourceManager.cpp',
-            'libGLESv2/ResourceManager.h',
-            'libGLESv2/Shader.cpp',
-            'libGLESv2/Shader.h',
-            'libGLESv2/Texture.cpp',
-            'libGLESv2/Texture.h',
-            'libGLESv2/Uniform.cpp',
-            'libGLESv2/Uniform.h',
-            'libGLESv2/utilities.cpp',
-            'libGLESv2/utilities.h',
-          ],
-          # TODO(jschuh): http://crbug.com/167187 size_t -&gt; int
-          'msvs_disabled_warnings': [ 4267 ],
-          'msvs_settings': {
-            'VCLinkerTool': {
-              'AdditionalDependencies': [
-                'd3d9.lib',
-                'dxguid.lib',
-              ],
-            }
-          },
-        },
-        {
-          'target_name': 'libEGL',
-          'type': 'shared_library',
-          'dependencies': ['libGLESv2'],
-          'include_dirs': [
-            '.',
-            '../include',
-            'libGLESv2',
-          ],
-          'sources': [
-            'common/angleutils.h',
-            'common/debug.cpp',
-            'common/debug.h',
-            'common/RefCountObject.cpp',
-            'common/RefCountObject.h',
-            'common/version.h',
-            'libEGL/Config.cpp',
-            'libEGL/Config.h',
-            'libEGL/Display.cpp',
-            'libEGL/Display.h',
-            'libEGL/libEGL.cpp',
-            'libEGL/libEGL.def',
-            'libEGL/libEGL.rc',
-            'libEGL/main.cpp',
-            'libEGL/main.h',
-            'libEGL/Surface.cpp',
-            'libEGL/Surface.h',
-          ],
-          # TODO(jschuh): http://crbug.com/167187 size_t -&gt; int
-          'msvs_disabled_warnings': [ 4267 ],
-          'msvs_settings': {
-            'VCLinkerTool': {
-              'AdditionalDependencies': [
-                'd3d9.lib',
-              ],
-            }
-          },
-        },
-      ],
-    }],
-  ],
-}
-
-# Local Variables:
-# tab-width:2
-# indent-tabs-mode:nil
-# End:
-# vim: set expandtab tabstop=2 shiftwidth=2:
-# Copyright (c) 2012 The ANGLE Project Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
</del></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrccommonsystemh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/ThirdParty/ANGLE/src/common/system.h (168114 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/common/system.h        2014-05-01 19:23:29 UTC (rev 168114)
+++ trunk/Source/ThirdParty/ANGLE/src/common/system.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -1,26 +0,0 @@
</span><del>-//
-// Copyright (c) 2002-2012 The ANGLE Project Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-
-// system.h: Includes Windows system headers and undefines macros that conflict.
-
-#ifndef COMMON_SYSTEM_H
-#define COMMON_SYSTEM_H
-
-#if !defined(WIN32_LEAN_AND_MEAN)
-#define WIN32_LEAN_AND_MEAN
-#endif
-
-#include &lt;windows.h&gt;
-
-#if defined(min)
-#undef min
-#endif
-
-#if defined(max)
-#undef max
-#endif
-
-#endif   // COMMON_SYSTEM_H
</del></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrccompilerpreprocessorlength_limitsh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/ThirdParty/ANGLE/src/compiler/preprocessor/length_limits.h (168114 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/compiler/preprocessor/length_limits.h        2014-05-01 19:23:29 UTC (rev 168114)
+++ trunk/Source/ThirdParty/ANGLE/src/compiler/preprocessor/length_limits.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -1,21 +0,0 @@
</span><del>-//
-// Copyright (c) 2011 The ANGLE Project Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-
-//
-// length_limits.h
-//
-
-#if !defined(__LENGTH_LIMITS_H)
-#define __LENGTH_LIMITS_H 1
-
-// These constants are factored out from the rest of the headers to
-// make it easier to reference them from the compiler sources.
-
-// These lengths do not include the NULL terminator.
-#define MAX_SYMBOL_NAME_LEN 256
-#define MAX_STRING_LEN 511
-
-#endif // !(defined(__LENGTH_LIMITS_H)
</del></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrccompilertranslatorUniformcpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/ThirdParty/ANGLE/src/compiler/translator/Uniform.cpp (168114 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/compiler/translator/Uniform.cpp        2014-05-01 19:23:29 UTC (rev 168114)
+++ trunk/Source/ThirdParty/ANGLE/src/compiler/translator/Uniform.cpp        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -1,21 +0,0 @@
</span><del>-//
-// Copyright (c) 2013 The ANGLE Project Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-
-#include &quot;compiler/translator/Uniform.h&quot;
-
-namespace sh
-{
-
-Uniform::Uniform(GLenum type, GLenum precision, const char *name, int arraySize, int registerIndex)
-{
-    this-&gt;type = type;
-    this-&gt;precision = precision;
-    this-&gt;name = name;
-    this-&gt;arraySize = arraySize;
-    this-&gt;registerIndex = registerIndex;
-}
-
-}
</del></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrccompilertranslatorUniformh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/ThirdParty/ANGLE/src/compiler/translator/Uniform.h (168114 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/compiler/translator/Uniform.h        2014-05-01 19:23:29 UTC (rev 168114)
+++ trunk/Source/ThirdParty/ANGLE/src/compiler/translator/Uniform.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -1,35 +0,0 @@
</span><del>-//
-// Copyright (c) 2013 The ANGLE Project Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-
-#ifndef COMPILER_UNIFORM_H_
-#define COMPILER_UNIFORM_H_
-
-#include &lt;string&gt;
-#include &lt;vector&gt;
-
-#define GL_APICALL
-#include &lt;GLES2/gl2.h&gt;
-
-namespace sh
-{
-
-struct Uniform
-{
-    Uniform(GLenum type, GLenum precision, const char *name, int arraySize, int registerIndex);
-
-    GLenum type;
-    GLenum precision;
-    std::string name;
-    unsigned int arraySize;
-    
-    int registerIndex;
-};
-
-typedef std::vector&lt;Uniform&gt; ActiveUniforms;
-
-}
-
-#endif   // COMPILER_UNIFORM_H_
</del></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibEGLlibEGLvcxproj"></a>
<div class="delfile"><h4>Deleted: trunk/Source/ThirdParty/ANGLE/src/libEGL/libEGL.vcxproj (168114 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libEGL/libEGL.vcxproj        2014-05-01 19:23:29 UTC (rev 168114)
+++ trunk/Source/ThirdParty/ANGLE/src/libEGL/libEGL.vcxproj        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -1,258 +0,0 @@
</span><del>-&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
-&lt;Project DefaultTargets=&quot;Build&quot; ToolsVersion=&quot;4.0&quot; xmlns=&quot;http://schemas.microsoft.com/developer/msbuild/2003&quot;&gt;
-  &lt;ItemGroup Label=&quot;ProjectConfigurations&quot;&gt;
-    &lt;ProjectConfiguration Include=&quot;Debug|Win32&quot;&gt;
-      &lt;Configuration&gt;Debug&lt;/Configuration&gt;
-      &lt;Platform&gt;Win32&lt;/Platform&gt;
-    &lt;/ProjectConfiguration&gt;
-    &lt;ProjectConfiguration Include=&quot;Debug|x64&quot;&gt;
-      &lt;Configuration&gt;Debug&lt;/Configuration&gt;
-      &lt;Platform&gt;x64&lt;/Platform&gt;
-    &lt;/ProjectConfiguration&gt;
-    &lt;ProjectConfiguration Include=&quot;Release|Win32&quot;&gt;
-      &lt;Configuration&gt;Release&lt;/Configuration&gt;
-      &lt;Platform&gt;Win32&lt;/Platform&gt;
-    &lt;/ProjectConfiguration&gt;
-    &lt;ProjectConfiguration Include=&quot;Release|x64&quot;&gt;
-      &lt;Configuration&gt;Release&lt;/Configuration&gt;
-      &lt;Platform&gt;x64&lt;/Platform&gt;
-    &lt;/ProjectConfiguration&gt;
-  &lt;/ItemGroup&gt;
-  &lt;PropertyGroup Label=&quot;Globals&quot;&gt;
-    &lt;ProjectGuid&gt;{E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}&lt;/ProjectGuid&gt;
-    &lt;RootNamespace&gt;libEGL&lt;/RootNamespace&gt;
-    &lt;Keyword&gt;Win32Proj&lt;/Keyword&gt;
-  &lt;/PropertyGroup&gt;
-  &lt;Import Project=&quot;$(VCTargetsPath)\Microsoft.Cpp.Default.props&quot; /&gt;
-  &lt;PropertyGroup Condition=&quot;'$(Configuration)|$(Platform)'=='Release|Win32'&quot; Label=&quot;Configuration&quot;&gt;
-    &lt;ConfigurationType&gt;DynamicLibrary&lt;/ConfigurationType&gt;
-    &lt;CharacterSet&gt;Unicode&lt;/CharacterSet&gt;
-    &lt;WholeProgramOptimization&gt;true&lt;/WholeProgramOptimization&gt;
-  &lt;/PropertyGroup&gt;
-  &lt;PropertyGroup Condition=&quot;'$(Configuration)|$(Platform)'=='Debug|Win32'&quot; Label=&quot;Configuration&quot;&gt;
-    &lt;ConfigurationType&gt;DynamicLibrary&lt;/ConfigurationType&gt;
-    &lt;CharacterSet&gt;Unicode&lt;/CharacterSet&gt;
-  &lt;/PropertyGroup&gt;
-  &lt;PropertyGroup Condition=&quot;'$(Configuration)|$(Platform)'=='Release|x64'&quot; Label=&quot;Configuration&quot;&gt;
-    &lt;ConfigurationType&gt;DynamicLibrary&lt;/ConfigurationType&gt;
-    &lt;CharacterSet&gt;Unicode&lt;/CharacterSet&gt;
-    &lt;WholeProgramOptimization&gt;true&lt;/WholeProgramOptimization&gt;
-  &lt;/PropertyGroup&gt;
-  &lt;PropertyGroup Condition=&quot;'$(Configuration)|$(Platform)'=='Debug|x64'&quot; Label=&quot;Configuration&quot;&gt;
-    &lt;ConfigurationType&gt;DynamicLibrary&lt;/ConfigurationType&gt;
-    &lt;CharacterSet&gt;Unicode&lt;/CharacterSet&gt;
-  &lt;/PropertyGroup&gt;
-  &lt;Import Project=&quot;$(VCTargetsPath)\Microsoft.Cpp.props&quot; /&gt;
-  &lt;ImportGroup Label=&quot;ExtensionSettings&quot;&gt;
-  &lt;/ImportGroup&gt;
-  &lt;ImportGroup Condition=&quot;'$(Configuration)|$(Platform)'=='Release|Win32'&quot; Label=&quot;PropertySheets&quot;&gt;
-    &lt;Import Project=&quot;$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props&quot; Condition=&quot;exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')&quot; Label=&quot;LocalAppDataPlatform&quot; /&gt;
-  &lt;/ImportGroup&gt;
-  &lt;ImportGroup Condition=&quot;'$(Configuration)|$(Platform)'=='Debug|Win32'&quot; Label=&quot;PropertySheets&quot;&gt;
-    &lt;Import Project=&quot;$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props&quot; Condition=&quot;exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')&quot; Label=&quot;LocalAppDataPlatform&quot; /&gt;
-  &lt;/ImportGroup&gt;
-  &lt;ImportGroup Condition=&quot;'$(Configuration)|$(Platform)'=='Release|x64'&quot; Label=&quot;PropertySheets&quot;&gt;
-    &lt;Import Project=&quot;$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props&quot; Condition=&quot;exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')&quot; Label=&quot;LocalAppDataPlatform&quot; /&gt;
-  &lt;/ImportGroup&gt;
-  &lt;ImportGroup Condition=&quot;'$(Configuration)|$(Platform)'=='Debug|x64'&quot; Label=&quot;PropertySheets&quot;&gt;
-    &lt;Import Project=&quot;$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props&quot; Condition=&quot;exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')&quot; Label=&quot;LocalAppDataPlatform&quot; /&gt;
-  &lt;/ImportGroup&gt;
-  &lt;PropertyGroup Label=&quot;UserMacros&quot; /&gt;
-  &lt;PropertyGroup&gt;
-    &lt;_ProjectFileVersion&gt;10.0.40219.1&lt;/_ProjectFileVersion&gt;
-    &lt;OutDir Condition=&quot;'$(Configuration)|$(Platform)'=='Debug|Win32'&quot;&gt;$(SolutionDir)$(Configuration)\&lt;/OutDir&gt;
-    &lt;IntDir Condition=&quot;'$(Configuration)|$(Platform)'=='Debug|Win32'&quot;&gt;$(Configuration)\&lt;/IntDir&gt;
-    &lt;LinkIncremental Condition=&quot;'$(Configuration)|$(Platform)'=='Debug|Win32'&quot;&gt;true&lt;/LinkIncremental&gt;
-    &lt;OutDir Condition=&quot;'$(Configuration)|$(Platform)'=='Release|Win32'&quot;&gt;$(SolutionDir)$(Configuration)\&lt;/OutDir&gt;
-    &lt;IntDir Condition=&quot;'$(Configuration)|$(Platform)'=='Release|Win32'&quot;&gt;$(Configuration)\&lt;/IntDir&gt;
-    &lt;LinkIncremental Condition=&quot;'$(Configuration)|$(Platform)'=='Release|Win32'&quot;&gt;false&lt;/LinkIncremental&gt;
-    &lt;OutDir Condition=&quot;'$(Configuration)|$(Platform)'=='Debug|x64'&quot;&gt;$(SolutionDir)$(Platform)\$(Configuration)\&lt;/OutDir&gt;
-    &lt;IntDir Condition=&quot;'$(Configuration)|$(Platform)'=='Debug|x64'&quot;&gt;$(Platform)\$(Configuration)\&lt;/IntDir&gt;
-    &lt;LinkIncremental Condition=&quot;'$(Configuration)|$(Platform)'=='Debug|x64'&quot;&gt;true&lt;/LinkIncremental&gt;
-    &lt;OutDir Condition=&quot;'$(Configuration)|$(Platform)'=='Release|x64'&quot;&gt;$(SolutionDir)$(Platform)\$(Configuration)\&lt;/OutDir&gt;
-    &lt;IntDir Condition=&quot;'$(Configuration)|$(Platform)'=='Release|x64'&quot;&gt;$(Platform)\$(Configuration)\&lt;/IntDir&gt;
-    &lt;LinkIncremental Condition=&quot;'$(Configuration)|$(Platform)'=='Release|x64'&quot;&gt;false&lt;/LinkIncremental&gt;
-    &lt;LibraryPath Condition=&quot;'$(Configuration)|$(Platform)'=='Release|Win32'&quot;&gt;$(LibraryPath)&lt;/LibraryPath&gt;
-    &lt;LibraryPath Condition=&quot;'$(Configuration)|$(Platform)'=='Debug|Win32'&quot;&gt;$(DXSDK_DIR)\lib\x86;$(LibraryPath)&lt;/LibraryPath&gt;
-    &lt;LibraryPath Condition=&quot;'$(Configuration)|$(Platform)'=='Debug|x64'&quot;&gt;$(LibraryPath)&lt;/LibraryPath&gt;
-    &lt;LibraryPath Condition=&quot;'$(Configuration)|$(Platform)'=='Release|x64'&quot;&gt;$(LibraryPath)&lt;/LibraryPath&gt;
-    &lt;IncludePath Condition=&quot;'$(Configuration)|$(Platform)'=='Debug|Win32'&quot;&gt;$(DXSDK_DIR)\include;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;&lt;/IncludePath&gt;
-  &lt;/PropertyGroup&gt;
-  &lt;ItemDefinitionGroup Condition=&quot;'$(Configuration)|$(Platform)'=='Debug|Win32'&quot;&gt;
-    &lt;ClCompile&gt;
-      &lt;Optimization&gt;Disabled&lt;/Optimization&gt;
-      &lt;AdditionalIncludeDirectories&gt;$(ProjectDir)/..; $(ProjectDir)/../../include;%(AdditionalIncludeDirectories)&lt;/AdditionalIncludeDirectories&gt;
-      &lt;PreprocessorDefinitions&gt;WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBEGL_EXPORTS;_CRT_SECURE_NO_DEPRECATE;NOMINMAX;%(PreprocessorDefinitions)&lt;/PreprocessorDefinitions&gt;
-      &lt;MinimalRebuild&gt;true&lt;/MinimalRebuild&gt;
-      &lt;BasicRuntimeChecks&gt;EnableFastChecks&lt;/BasicRuntimeChecks&gt;
-      &lt;RuntimeLibrary&gt;MultiThreadedDebug&lt;/RuntimeLibrary&gt;
-      &lt;PrecompiledHeader&gt;
-      &lt;/PrecompiledHeader&gt;
-      &lt;WarningLevel&gt;Level4&lt;/WarningLevel&gt;
-      &lt;TreatWarningAsError&gt;true&lt;/TreatWarningAsError&gt;
-      &lt;DebugInformationFormat&gt;EditAndContinue&lt;/DebugInformationFormat&gt;
-      &lt;DisableSpecificWarnings&gt;4100;4127;4189;4239;4244;4245;4512;4702;4996;%(DisableSpecificWarnings)&lt;/DisableSpecificWarnings&gt;
-    &lt;/ClCompile&gt;
-    &lt;Link&gt;
-      &lt;AdditionalDependencies&gt;d3d9.lib;%(AdditionalDependencies)&lt;/AdditionalDependencies&gt;
-      &lt;ModuleDefinitionFile&gt;libEGL.def&lt;/ModuleDefinitionFile&gt;
-      &lt;DelayLoadDLLs&gt;%(DelayLoadDLLs)&lt;/DelayLoadDLLs&gt;
-      &lt;GenerateDebugInformation&gt;true&lt;/GenerateDebugInformation&gt;
-      &lt;SubSystem&gt;Windows&lt;/SubSystem&gt;
-      &lt;DataExecutionPrevention&gt;
-      &lt;/DataExecutionPrevention&gt;
-      &lt;TargetMachine&gt;MachineX86&lt;/TargetMachine&gt;
-    &lt;/Link&gt;
-    &lt;PostBuildEvent&gt;
-      &lt;Command&gt;%40echo on
-mkdir &quot;$(ProjectDir)..\..\lib\$(Configuration)\&quot;
-copy &quot;$(OutDir)libEGL.dll&quot; &quot;$(ProjectDir)..\..\lib\$(Configuration)\&quot;
-copy &quot;$(OutDir)libEGL.lib&quot; &quot;$(ProjectDir)..\..\lib\$(Configuration)\&quot;
-%40echo off
-&lt;/Command&gt;
-    &lt;/PostBuildEvent&gt;
-  &lt;/ItemDefinitionGroup&gt;
-  &lt;ItemDefinitionGroup Condition=&quot;'$(Configuration)|$(Platform)'=='Release|Win32'&quot;&gt;
-    &lt;ClCompile&gt;
-      &lt;Optimization&gt;MaxSpeed&lt;/Optimization&gt;
-      &lt;InlineFunctionExpansion&gt;AnySuitable&lt;/InlineFunctionExpansion&gt;
-      &lt;AdditionalIncludeDirectories&gt;$(ProjectDir)/..; $(ProjectDir)/../../include;%(AdditionalIncludeDirectories)&lt;/AdditionalIncludeDirectories&gt;
-      &lt;PreprocessorDefinitions&gt;ANGLE_DISABLE_TRACE;WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBEGL_EXPORTS;_CRT_SECURE_NO_DEPRECATE;NOMINMAX;_SECURE_SCL=0;%(PreprocessorDefinitions)&lt;/PreprocessorDefinitions&gt;
-      &lt;RuntimeLibrary&gt;MultiThreaded&lt;/RuntimeLibrary&gt;
-      &lt;PrecompiledHeader&gt;
-      &lt;/PrecompiledHeader&gt;
-      &lt;WarningLevel&gt;Level4&lt;/WarningLevel&gt;
-      &lt;TreatWarningAsError&gt;true&lt;/TreatWarningAsError&gt;
-      &lt;DebugInformationFormat&gt;ProgramDatabase&lt;/DebugInformationFormat&gt;
-      &lt;DisableSpecificWarnings&gt;4100;4127;4189;4239;4244;4245;4512;4702;4996;%(DisableSpecificWarnings)&lt;/DisableSpecificWarnings&gt;
-    &lt;/ClCompile&gt;
-    &lt;Link&gt;
-      &lt;AdditionalDependencies&gt;d3d9.lib;%(AdditionalDependencies)&lt;/AdditionalDependencies&gt;
-      &lt;ModuleDefinitionFile&gt;libEGL.def&lt;/ModuleDefinitionFile&gt;
-      &lt;DelayLoadDLLs&gt;%(DelayLoadDLLs)&lt;/DelayLoadDLLs&gt;
-      &lt;GenerateDebugInformation&gt;true&lt;/GenerateDebugInformation&gt;
-      &lt;SubSystem&gt;Windows&lt;/SubSystem&gt;
-      &lt;OptimizeReferences&gt;true&lt;/OptimizeReferences&gt;
-      &lt;EnableCOMDATFolding&gt;true&lt;/EnableCOMDATFolding&gt;
-      &lt;DataExecutionPrevention&gt;
-      &lt;/DataExecutionPrevention&gt;
-      &lt;TargetMachine&gt;MachineX86&lt;/TargetMachine&gt;
-    &lt;/Link&gt;
-    &lt;PostBuildEvent&gt;
-      &lt;Command&gt;%40echo on
-mkdir &quot;$(ProjectDir)..\..\lib\$(Configuration)\&quot;
-copy &quot;$(OutDir)libEGL.dll&quot; &quot;$(ProjectDir)..\..\lib\$(Configuration)\&quot;
-copy &quot;$(OutDir)libEGL.lib&quot; &quot;$(ProjectDir)..\..\lib\$(Configuration)\&quot;
-%40echo off
-&lt;/Command&gt;
-    &lt;/PostBuildEvent&gt;
-  &lt;/ItemDefinitionGroup&gt;
-  &lt;ItemDefinitionGroup Condition=&quot;'$(Configuration)|$(Platform)'=='Debug|x64'&quot;&gt;
-    &lt;Midl&gt;
-      &lt;TargetEnvironment&gt;X64&lt;/TargetEnvironment&gt;
-    &lt;/Midl&gt;
-    &lt;ClCompile&gt;
-      &lt;Optimization&gt;Disabled&lt;/Optimization&gt;
-      &lt;AdditionalIncludeDirectories&gt;$(ProjectDir)/..; $(ProjectDir)/../../include;%(AdditionalIncludeDirectories)&lt;/AdditionalIncludeDirectories&gt;
-      &lt;PreprocessorDefinitions&gt;WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBEGL_EXPORTS;_CRT_SECURE_NO_DEPRECATE;NOMINMAX;%(PreprocessorDefinitions)&lt;/PreprocessorDefinitions&gt;
-      &lt;MinimalRebuild&gt;true&lt;/MinimalRebuild&gt;
-      &lt;BasicRuntimeChecks&gt;EnableFastChecks&lt;/BasicRuntimeChecks&gt;
-      &lt;RuntimeLibrary&gt;MultiThreadedDebug&lt;/RuntimeLibrary&gt;
-      &lt;PrecompiledHeader&gt;
-      &lt;/PrecompiledHeader&gt;
-      &lt;WarningLevel&gt;Level4&lt;/WarningLevel&gt;
-      &lt;DisableSpecificWarnings&gt;4100;4127;4189;4239;4244;4245;4512;4702;4996;%(DisableSpecificWarnings)&lt;/DisableSpecificWarnings&gt;
-      &lt;DebugInformationFormat&gt;ProgramDatabase&lt;/DebugInformationFormat&gt;
-      &lt;TreatWarningAsError&gt;true&lt;/TreatWarningAsError&gt;
-    &lt;/ClCompile&gt;
-    &lt;Link&gt;
-      &lt;AdditionalDependencies&gt;d3d9.lib;%(AdditionalDependencies)&lt;/AdditionalDependencies&gt;
-      &lt;ModuleDefinitionFile&gt;libEGL.def&lt;/ModuleDefinitionFile&gt;
-      &lt;DelayLoadDLLs&gt;%(DelayLoadDLLs)&lt;/DelayLoadDLLs&gt;
-      &lt;GenerateDebugInformation&gt;true&lt;/GenerateDebugInformation&gt;
-      &lt;SubSystem&gt;Windows&lt;/SubSystem&gt;
-      &lt;DataExecutionPrevention&gt;
-      &lt;/DataExecutionPrevention&gt;
-      &lt;TargetMachine&gt;MachineX64&lt;/TargetMachine&gt;
-    &lt;/Link&gt;
-    &lt;PostBuildEvent&gt;
-      &lt;Command&gt;%40echo on
-mkdir &quot;$(ProjectDir)..\..\lib\$(Configuration)\&quot;
-copy &quot;$(OutDir)libEGL.dll&quot; &quot;$(ProjectDir)..\..\lib\$(Configuration)\&quot;
-copy &quot;$(OutDir)libEGL.lib&quot; &quot;$(ProjectDir)..\..\lib\$(Configuration)\&quot;
-%40echo off
-&lt;/Command&gt;
-    &lt;/PostBuildEvent&gt;
-  &lt;/ItemDefinitionGroup&gt;
-  &lt;ItemDefinitionGroup Condition=&quot;'$(Configuration)|$(Platform)'=='Release|x64'&quot;&gt;
-    &lt;Midl&gt;
-      &lt;TargetEnvironment&gt;X64&lt;/TargetEnvironment&gt;
-    &lt;/Midl&gt;
-    &lt;ClCompile&gt;
-      &lt;Optimization&gt;MaxSpeed&lt;/Optimization&gt;
-      &lt;InlineFunctionExpansion&gt;AnySuitable&lt;/InlineFunctionExpansion&gt;
-      &lt;AdditionalIncludeDirectories&gt;$(ProjectDir)/..; $(ProjectDir)/../../include;%(AdditionalIncludeDirectories)&lt;/AdditionalIncludeDirectories&gt;
-      &lt;PreprocessorDefinitions&gt;WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBEGL_EXPORTS;_CRT_SECURE_NO_DEPRECATE;NOMINMAX;_SECURE_SCL=0;%(PreprocessorDefinitions)&lt;/PreprocessorDefinitions&gt;
-      &lt;RuntimeLibrary&gt;MultiThreaded&lt;/RuntimeLibrary&gt;
-      &lt;PrecompiledHeader&gt;
-      &lt;/PrecompiledHeader&gt;
-      &lt;WarningLevel&gt;Level4&lt;/WarningLevel&gt;
-      &lt;DisableSpecificWarnings&gt;4100;4127;4189;4239;4244;4245;4512;4702;4996;%(DisableSpecificWarnings)&lt;/DisableSpecificWarnings&gt;
-      &lt;DebugInformationFormat&gt;ProgramDatabase&lt;/DebugInformationFormat&gt;
-      &lt;TreatWarningAsError&gt;true&lt;/TreatWarningAsError&gt;
-    &lt;/ClCompile&gt;
-    &lt;Link&gt;
-      &lt;AdditionalDependencies&gt;d3d9.lib;%(AdditionalDependencies)&lt;/AdditionalDependencies&gt;
-      &lt;ModuleDefinitionFile&gt;libEGL.def&lt;/ModuleDefinitionFile&gt;
-      &lt;DelayLoadDLLs&gt;%(DelayLoadDLLs)&lt;/DelayLoadDLLs&gt;
-      &lt;GenerateDebugInformation&gt;true&lt;/GenerateDebugInformation&gt;
-      &lt;SubSystem&gt;Windows&lt;/SubSystem&gt;
-      &lt;OptimizeReferences&gt;true&lt;/OptimizeReferences&gt;
-      &lt;EnableCOMDATFolding&gt;true&lt;/EnableCOMDATFolding&gt;
-      &lt;DataExecutionPrevention&gt;
-      &lt;/DataExecutionPrevention&gt;
-      &lt;TargetMachine&gt;MachineX64&lt;/TargetMachine&gt;
-    &lt;/Link&gt;
-    &lt;PostBuildEvent&gt;
-      &lt;Command&gt;%40echo on
-mkdir &quot;$(ProjectDir)..\..\lib\$(Configuration)\&quot;
-copy &quot;$(OutDir)libEGL.dll&quot; &quot;$(ProjectDir)..\..\lib\$(Configuration)\&quot;
-copy &quot;$(OutDir)libEGL.lib&quot; &quot;$(ProjectDir)..\..\lib\$(Configuration)\&quot;
-%40echo off
-&lt;/Command&gt;
-    &lt;/PostBuildEvent&gt;
-  &lt;/ItemDefinitionGroup&gt;
-  &lt;ItemGroup&gt;
-    &lt;ClCompile Include=&quot;Config.cpp&quot; /&gt;
-    &lt;ClCompile Include=&quot;..\Common\debug.cpp&quot; /&gt;
-    &lt;ClCompile Include=&quot;Display.cpp&quot; /&gt;
-    &lt;ClCompile Include=&quot;libEGL.cpp&quot; /&gt;
-    &lt;ClCompile Include=&quot;main.cpp&quot; /&gt;
-    &lt;ClCompile Include=&quot;Surface.cpp&quot; /&gt;
-  &lt;/ItemGroup&gt;
-  &lt;ItemGroup&gt;
-    &lt;ClInclude Include=&quot;Config.h&quot; /&gt;
-    &lt;ClInclude Include=&quot;Display.h&quot; /&gt;
-    &lt;ClInclude Include=&quot;..\..\include\EGL\egl.h&quot; /&gt;
-    &lt;ClInclude Include=&quot;..\..\include\EGL\eglext.h&quot; /&gt;
-    &lt;ClInclude Include=&quot;..\..\include\EGL\eglplatform.h&quot; /&gt;
-    &lt;ClInclude Include=&quot;main.h&quot; /&gt;
-    &lt;ClInclude Include=&quot;resource.h&quot; /&gt;
-    &lt;ClInclude Include=&quot;Surface.h&quot; /&gt;
-    &lt;ClInclude Include=&quot;..\common\version.h&quot; /&gt;
-  &lt;/ItemGroup&gt;
-  &lt;ItemGroup&gt;
-    &lt;None Include=&quot;libEGL.def&quot; /&gt;
-  &lt;/ItemGroup&gt;
-  &lt;ItemGroup&gt;
-    &lt;ResourceCompile Include=&quot;libEGL.rc&quot; /&gt;
-  &lt;/ItemGroup&gt;
-  &lt;ItemGroup&gt;
-    &lt;ProjectReference Include=&quot;..\libGLESv2\libGLESv2.vcxproj&quot;&gt;
-      &lt;Project&gt;{b5871a7a-968c-42e3-a33b-981e6f448e78}&lt;/Project&gt;
-    &lt;/ProjectReference&gt;
-  &lt;/ItemGroup&gt;
-  &lt;Import Project=&quot;$(VCTargetsPath)\Microsoft.Cpp.targets&quot; /&gt;
-  &lt;ImportGroup Label=&quot;ExtensionTargets&quot;&gt;
-  &lt;/ImportGroup&gt;
-&lt;/Project&gt;
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibEGLlibEGLvcxprojfilters"></a>
<div class="delfile"><h4>Deleted: trunk/Source/ThirdParty/ANGLE/src/libEGL/libEGL.vcxproj.filters (168114 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libEGL/libEGL.vcxproj.filters        2014-05-01 19:23:29 UTC (rev 168114)
+++ trunk/Source/ThirdParty/ANGLE/src/libEGL/libEGL.vcxproj.filters        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -1,68 +0,0 @@
</span><del>-&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
-&lt;Project ToolsVersion=&quot;4.0&quot; xmlns=&quot;http://schemas.microsoft.com/developer/msbuild/2003&quot;&gt;
-  &lt;ItemGroup&gt;
-    &lt;Filter Include=&quot;Source Files&quot;&gt;
-      &lt;UniqueIdentifier&gt;{4FC737F1-C7A5-4376-A066-2A32D752A2FF}&lt;/UniqueIdentifier&gt;
-      &lt;Extensions&gt;cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx&lt;/Extensions&gt;
-    &lt;/Filter&gt;
-    &lt;Filter Include=&quot;Header Files&quot;&gt;
-      &lt;UniqueIdentifier&gt;{93995380-89BD-4b04-88EB-625FBE52EBFB}&lt;/UniqueIdentifier&gt;
-      &lt;Extensions&gt;h;hpp;hxx;hm;inl;inc;xsd&lt;/Extensions&gt;
-    &lt;/Filter&gt;
-  &lt;/ItemGroup&gt;
-  &lt;ItemGroup&gt;
-    &lt;ClCompile Include=&quot;Config.cpp&quot;&gt;
-      &lt;Filter&gt;Source Files&lt;/Filter&gt;
-    &lt;/ClCompile&gt;
-    &lt;ClCompile Include=&quot;..\Common\debug.cpp&quot;&gt;
-      &lt;Filter&gt;Source Files&lt;/Filter&gt;
-    &lt;/ClCompile&gt;
-    &lt;ClCompile Include=&quot;Display.cpp&quot;&gt;
-      &lt;Filter&gt;Source Files&lt;/Filter&gt;
-    &lt;/ClCompile&gt;
-    &lt;ClCompile Include=&quot;libEGL.cpp&quot;&gt;
-      &lt;Filter&gt;Source Files&lt;/Filter&gt;
-    &lt;/ClCompile&gt;
-    &lt;ClCompile Include=&quot;main.cpp&quot;&gt;
-      &lt;Filter&gt;Source Files&lt;/Filter&gt;
-    &lt;/ClCompile&gt;
-    &lt;ClCompile Include=&quot;Surface.cpp&quot;&gt;
-      &lt;Filter&gt;Source Files&lt;/Filter&gt;
-    &lt;/ClCompile&gt;
-  &lt;/ItemGroup&gt;
-  &lt;ItemGroup&gt;
-    &lt;ClInclude Include=&quot;Config.h&quot;&gt;
-      &lt;Filter&gt;Header Files&lt;/Filter&gt;
-    &lt;/ClInclude&gt;
-    &lt;ClInclude Include=&quot;Display.h&quot;&gt;
-      &lt;Filter&gt;Header Files&lt;/Filter&gt;
-    &lt;/ClInclude&gt;
-    &lt;ClInclude Include=&quot;..\..\include\EGL\egl.h&quot;&gt;
-      &lt;Filter&gt;Header Files&lt;/Filter&gt;
-    &lt;/ClInclude&gt;
-    &lt;ClInclude Include=&quot;..\..\include\EGL\eglext.h&quot;&gt;
-      &lt;Filter&gt;Header Files&lt;/Filter&gt;
-    &lt;/ClInclude&gt;
-    &lt;ClInclude Include=&quot;..\..\include\EGL\eglplatform.h&quot;&gt;
-      &lt;Filter&gt;Header Files&lt;/Filter&gt;
-    &lt;/ClInclude&gt;
-    &lt;ClInclude Include=&quot;main.h&quot;&gt;
-      &lt;Filter&gt;Header Files&lt;/Filter&gt;
-    &lt;/ClInclude&gt;
-    &lt;ClInclude Include=&quot;resource.h&quot;&gt;
-      &lt;Filter&gt;Header Files&lt;/Filter&gt;
-    &lt;/ClInclude&gt;
-    &lt;ClInclude Include=&quot;Surface.h&quot;&gt;
-      &lt;Filter&gt;Header Files&lt;/Filter&gt;
-    &lt;/ClInclude&gt;
-    &lt;ClInclude Include=&quot;..\common\version.h&quot;&gt;
-      &lt;Filter&gt;Header Files&lt;/Filter&gt;
-    &lt;/ClInclude&gt;
-  &lt;/ItemGroup&gt;
-  &lt;ItemGroup&gt;
-    &lt;ResourceCompile Include=&quot;libEGL.rc&quot; /&gt;
-  &lt;/ItemGroup&gt;
-  &lt;ItemGroup&gt;
-    &lt;None Include=&quot;libEGL.def&quot; /&gt;
-  &lt;/ItemGroup&gt;
-&lt;/Project&gt;
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2Programcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/Program.cpp (168114 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/Program.cpp        2014-05-01 19:23:29 UTC (rev 168114)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/Program.cpp        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -112,7 +112,7 @@
</span><span class="cx">     else
</span><span class="cx">     {
</span><span class="cx">         size_t currentlogLength = strlen(mInfoLog);
</span><del>-        size_t newInfoLogLength = currentlogLength + infoLength + 2; 
</del><ins>+        size_t newInfoLogLength = currentlogLength + infoLength + 2;
</ins><span class="cx">         char *newLog = new char[newInfoLogLength];
</span><span class="cx">         strncpy(newLog, mInfoLog, newInfoLogLength);
</span><span class="cx">         newLog[newInfoLogLength - 1] = '\0';
</span></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2constantsh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/constants.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/constants.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/constants.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,41 @@
</span><ins>+//
+// Copyright (c) 2013 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+
+// Contants.h: Defines some implementation specific and gl constants
+
+#ifndef LIBGLESV2_CONSTANTS_H_
+#define LIBGLESV2_CONSTANTS_H_
+
+namespace gl
+{
+
+enum
+{
+    MAX_VERTEX_ATTRIBS = 16,
+    MAX_TEXTURE_IMAGE_UNITS = 16,
+
+    // Implementation upper limits, real maximums depend on the hardware
+    IMPLEMENTATION_MAX_VERTEX_TEXTURE_IMAGE_UNITS = 16,
+    IMPLEMENTATION_MAX_COMBINED_TEXTURE_IMAGE_UNITS = MAX_TEXTURE_IMAGE_UNITS + IMPLEMENTATION_MAX_VERTEX_TEXTURE_IMAGE_UNITS,    
+
+    IMPLEMENTATION_MAX_VARYING_VECTORS = 32,
+    IMPLEMENTATION_MAX_DRAW_BUFFERS = 8,
+
+    IMPLEMENTATION_MAX_VERTEX_SHADER_UNIFORM_BUFFERS = 16,
+    IMPLEMENTATION_MAX_FRAGMENT_SHADER_UNIFORM_BUFFERS = 16,
+    IMPLEMENTATION_MAX_COMBINED_SHADER_UNIFORM_BUFFERS = IMPLEMENTATION_MAX_VERTEX_SHADER_UNIFORM_BUFFERS +
+                                                         IMPLEMENTATION_MAX_FRAGMENT_SHADER_UNIFORM_BUFFERS,
+
+    IMPLEMENTATION_MAX_TRANSFORM_FEEDBACK_BUFFERS = 4,
+};
+
+const float ALIASED_LINE_WIDTH_RANGE_MIN = 1.0f;
+const float ALIASED_LINE_WIDTH_RANGE_MAX = 1.0f;
+const float ALIASED_POINT_SIZE_RANGE_MIN = 1.0f;
+
+}
+
+#endif // LIBGLESV2_CONSTANTS_H_
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2mathutilh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/mathutil.h (168114 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/mathutil.h        2014-05-01 19:23:29 UTC (rev 168114)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/mathutil.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -1,160 +0,0 @@
</span><del>-//
-// Copyright (c) 2002-2012 The ANGLE Project Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-
-// mathutil.h: Math and bit manipulation functions.
-
-#ifndef LIBGLESV2_MATHUTIL_H_
-#define LIBGLESV2_MATHUTIL_H_
-
-#include &lt;intrin.h&gt;
-
-#include &quot;common/debug.h&quot;
-
-namespace gl
-{
-struct Vector4
-{
-    Vector4() {}
-    Vector4(float x, float y, float z, float w) : x(x), y(y), z(z), w(w) {}
-
-    float x;
-    float y;
-    float z;
-    float w;
-};
-
-inline bool isPow2(int x)
-{
-    return (x &amp; (x - 1)) == 0 &amp;&amp; (x != 0);
-}
-
-inline int log2(int x)
-{
-    int r = 0;
-    while ((x &gt;&gt; r) &gt; 1) r++;
-    return r;
-}
-
-inline unsigned int ceilPow2(unsigned int x)
-{
-    if (x != 0) x--;
-    x |= x &gt;&gt; 1;
-    x |= x &gt;&gt; 2;
-    x |= x &gt;&gt; 4;
-    x |= x &gt;&gt; 8;
-    x |= x &gt;&gt; 16;
-    x++;
-
-    return x;
-}
-
-template&lt;typename T, typename MIN, typename MAX&gt;
-inline T clamp(T x, MIN min, MAX max)
-{
-    // Since NaNs fail all comparison tests, a NaN value will default to min
-    return x &gt; min ? (x &gt; max ? max : x) : min;
-}
-
-inline float clamp01(float x)
-{
-    return clamp(x, 0.0f, 1.0f);
-}
-
-template&lt;const int n&gt;
-inline unsigned int unorm(float x)
-{
-    const unsigned int max = 0xFFFFFFFF &gt;&gt; (32 - n);
-
-    if (x &gt; 1)
-    {
-        return max;
-    }
-    else if (x &lt; 0)
-    {
-        return 0;
-    }
-    else
-    {
-        return (unsigned int)(max * x + 0.5f);
-    }
-}
-
-inline bool supportsSSE2()
-{
-    static bool checked = false;
-    static bool supports = false;
-
-    if (checked)
-    {
-        return supports;
-    }
-
-    int info[4];
-    __cpuid(info, 0);
-    
-    if (info[0] &gt;= 1)
-    {
-        __cpuid(info, 1);
-
-        supports = (info[3] &gt;&gt; 26) &amp; 1;
-    }
-
-    checked = true;
-
-    return supports;
-}
-
-inline unsigned short float32ToFloat16(float fp32)
-{
-    unsigned int fp32i = (unsigned int&amp;)fp32;
-    unsigned int sign = (fp32i &amp; 0x80000000) &gt;&gt; 16;
-    unsigned int abs = fp32i &amp; 0x7FFFFFFF;
-
-    if(abs &gt; 0x47FFEFFF)   // Infinity
-    {
-        return sign | 0x7FFF;
-    }
-    else if(abs &lt; 0x38800000)   // Denormal
-    {
-        unsigned int mantissa = (abs &amp; 0x007FFFFF) | 0x00800000;   
-        int e = 113 - (abs &gt;&gt; 23);
-
-        if(e &lt; 24)
-        {
-            abs = mantissa &gt;&gt; e;
-        }
-        else
-        {
-            abs = 0;
-        }
-
-        return sign | (abs + 0x00000FFF + ((abs &gt;&gt; 13) &amp; 1)) &gt;&gt; 13;
-    }
-    else
-    {
-        return sign | (abs + 0xC8000000 + 0x00000FFF + ((abs &gt;&gt; 13) &amp; 1)) &gt;&gt; 13;
-    }
-}
-
-float float16ToFloat32(unsigned short h);
-
-}
-
-namespace rx
-{
-
-struct Range
-{
-    Range() {}
-    Range(int lo, int hi) : start(lo), end(hi) { ASSERT(lo &lt;= hi); }
-
-    int start;
-    int end;
-};
-
-}
-
-#endif   // LIBGLESV2_MATHUTIL_H_
</del></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererImageSSE2cpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/ImageSSE2.cpp (168114 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/ImageSSE2.cpp        2014-05-01 19:23:29 UTC (rev 168114)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/ImageSSE2.cpp        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -1,100 +0,0 @@
</span><del>-#include &quot;precompiled.h&quot;
-//
-// Copyright (c) 2002-2012 The ANGLE Project Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-
-// ImageSSE2.cpp: Implements SSE2-based functions of rx::Image class. It's
-// in a separated file for GCC, which can enable SSE usage only per-file,
-// not for code blocks that use SSE2 explicitly.
-
-#include &quot;libGLESv2/Texture.h&quot;
-#include &quot;libGLESv2/renderer/Image.h&quot;
-
-namespace rx
-{
-
-void Image::loadRGBAUByteDataToBGRASSE2(GLsizei width, GLsizei height,
-                                        int inputPitch, const void *input, size_t outputPitch, void *output)
-{
-    const unsigned int *source = NULL;
-    unsigned int *dest = NULL;
-    __m128i brMask = _mm_set1_epi32(0x00ff00ff);
-
-    for (int y = 0; y &lt; height; y++)
-    {
-        source = reinterpret_cast&lt;const unsigned int*&gt;(static_cast&lt;const unsigned char*&gt;(input) + y * inputPitch);
-        dest = reinterpret_cast&lt;unsigned int*&gt;(static_cast&lt;unsigned char*&gt;(output) + y * outputPitch);
-        int x = 0;
-
-        // Make output writes aligned
-        for (x = 0; ((reinterpret_cast&lt;intptr_t&gt;(&amp;dest[x]) &amp; 15) != 0) &amp;&amp; x &lt; width; x++)
-        {
-            unsigned int rgba = source[x];
-            dest[x] = (_rotl(rgba, 16) &amp; 0x00ff00ff) | (rgba &amp; 0xff00ff00);
-        }
-
-        for (; x + 3 &lt; width; x += 4)
-        {
-            __m128i sourceData = _mm_loadu_si128(reinterpret_cast&lt;const __m128i*&gt;(&amp;source[x]));
-            // Mask out g and a, which don't change
-            __m128i gaComponents = _mm_andnot_si128(brMask, sourceData);
-            // Mask out b and r
-            __m128i brComponents = _mm_and_si128(sourceData, brMask);
-            // Swap b and r
-            __m128i brSwapped = _mm_shufflehi_epi16(_mm_shufflelo_epi16(brComponents, _MM_SHUFFLE(2, 3, 0, 1)), _MM_SHUFFLE(2, 3, 0, 1));
-            __m128i result = _mm_or_si128(gaComponents, brSwapped);
-            _mm_store_si128(reinterpret_cast&lt;__m128i*&gt;(&amp;dest[x]), result);
-        }
-
-        // Perform leftover writes
-        for (; x &lt; width; x++)
-        {
-            unsigned int rgba = source[x];
-            dest[x] = (_rotl(rgba, 16) &amp; 0x00ff00ff) | (rgba &amp; 0xff00ff00);
-        }
-    }
-}
-
-void Image::loadAlphaDataToBGRASSE2(GLsizei width, GLsizei height,
-                                    int inputPitch, const void *input, size_t outputPitch, void *output)
-{
-    const unsigned char *source = NULL;
-    unsigned int *dest = NULL;
-    __m128i zeroWide = _mm_setzero_si128();
-
-    for (int y = 0; y &lt; height; y++)
-    {
-        source = static_cast&lt;const unsigned char*&gt;(input) + y * inputPitch;
-        dest = reinterpret_cast&lt;unsigned int*&gt;(static_cast&lt;unsigned char*&gt;(output) + y * outputPitch);
-
-        int x;
-        // Make output writes aligned
-        for (x = 0; ((reinterpret_cast&lt;intptr_t&gt;(&amp;dest[x]) &amp; 0xF) != 0 &amp;&amp; x &lt; width); x++)
-        {
-            dest[x] = static_cast&lt;unsigned int&gt;(source[x]) &lt;&lt; 24;
-        }
-
-        for (; x + 7 &lt; width; x += 8)
-        {
-            __m128i sourceData = _mm_loadl_epi64(reinterpret_cast&lt;const __m128i*&gt;(&amp;source[x]));
-            // Interleave each byte to 16bit, make the lower byte to zero
-            sourceData = _mm_unpacklo_epi8(zeroWide, sourceData);
-            // Interleave each 16bit to 32bit, make the lower 16bit to zero
-            __m128i lo = _mm_unpacklo_epi16(zeroWide, sourceData);
-            __m128i hi = _mm_unpackhi_epi16(zeroWide, sourceData);
-
-            _mm_store_si128(reinterpret_cast&lt;__m128i*&gt;(&amp;dest[x]), lo);
-            _mm_store_si128(reinterpret_cast&lt;__m128i*&gt;(&amp;dest[x + 4]), hi);
-        }
-
-        // Handle the remainder
-        for (; x &lt; width; x++)
-        {
-            dest[x] = static_cast&lt;unsigned int&gt;(source[x]) &lt;&lt; 24;
-        }
-    }
-}
-
-}
</del></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererShaderCacheh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/ShaderCache.h (168114 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/ShaderCache.h        2014-05-01 19:23:29 UTC (rev 168114)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/ShaderCache.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -1,110 +0,0 @@
</span><del>-//
-// Copyright (c) 2012 The ANGLE Project Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-
-// ShaderCache: Defines rx::ShaderCache, a cache of Direct3D shader objects
-// keyed by their byte code.
-
-#ifndef LIBGLESV2_RENDERER_SHADER_CACHE_H_
-#define LIBGLESV2_RENDERER_SHADER_CACHE_H_
-
-#include &quot;common/debug.h&quot;
-
-namespace rx
-{
-template &lt;typename ShaderObject&gt;
-class ShaderCache
-{
-  public:
-    ShaderCache() : mDevice(NULL)
-    {
-    }
-
-    ~ShaderCache()
-    {
-        // Call clear while the device is still valid.
-        ASSERT(mMap.empty());
-    }
-
-    void initialize(IDirect3DDevice9* device)
-    {
-        mDevice = device;
-    }
-
-    ShaderObject *create(const DWORD *function, size_t length)
-    {
-        std::string key(reinterpret_cast&lt;const char*&gt;(function), length);
-        typename Map::iterator it = mMap.find(key);
-        if (it != mMap.end())
-        {
-            it-&gt;second-&gt;AddRef();
-            return it-&gt;second;
-        }
-
-        ShaderObject *shader;
-        HRESULT result = createShader(function, &amp;shader);
-        if (FAILED(result))
-        {
-            return NULL;
-        }
-
-        // Random eviction policy.
-        if (mMap.size() &gt;= kMaxMapSize)
-        {
-            mMap.begin()-&gt;second-&gt;Release();
-            mMap.erase(mMap.begin());
-        }
-
-        shader-&gt;AddRef();
-        mMap[key] = shader;
-
-        return shader;
-    }
-
-    void clear()
-    {
-        for (typename Map::iterator it = mMap.begin(); it != mMap.end(); ++it)
-        {
-            it-&gt;second-&gt;Release();
-        }
-
-        mMap.clear();
-    }
-
-  private:
-    DISALLOW_COPY_AND_ASSIGN(ShaderCache);
-
-    const static size_t kMaxMapSize = 100;
-
-    HRESULT createShader(const DWORD *function, IDirect3DVertexShader9 **shader)
-    {
-        return mDevice-&gt;CreateVertexShader(function, shader);
-    }
-
-    HRESULT createShader(const DWORD *function, IDirect3DPixelShader9 **shader)
-    {
-        return mDevice-&gt;CreatePixelShader(function, shader);
-    }
-
-#ifndef HASH_MAP
-# ifdef _MSC_VER
-#  define HASH_MAP stdext::hash_map
-# else
-#  define HASH_MAP std::unordered_map
-# endif
-#endif
-
-    typedef HASH_MAP&lt;std::string, ShaderObject*&gt; Map;
-    Map mMap;
-
-    IDirect3DDevice9 *mDevice;
-};
-
-typedef ShaderCache&lt;IDirect3DVertexShader9&gt; VertexShaderCache;
-typedef ShaderCache&lt;IDirect3DPixelShader9&gt; PixelShaderCache;
-
-}
-
-#endif   // LIBGLESV2_RENDERER_SHADER_CACHE_H_
</del></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11Blit11cpp"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/Blit11.cpp (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/Blit11.cpp                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/Blit11.cpp        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,1040 @@
</span><ins>+#include &quot;precompiled.h&quot;
+//
+// Copyright (c) 2013 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+
+// Blit11.cpp: Texture copy utility class.
+
+#include &quot;libGLESv2/main.h&quot;
+#include &quot;libGLESv2/formatutils.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/Blit11.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/Renderer11.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/renderer11_utils.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/formatutils11.h&quot;
+
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/passthrough2d11vs.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/passthroughdepth2d11ps.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgba2d11ps.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgba2dui11ps.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgba2di11ps.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgb2d11ps.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgb2dui11ps.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgb2di11ps.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/passthroughrg2d11ps.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/passthroughrg2dui11ps.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/passthroughrg2di11ps.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/passthroughr2d11ps.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/passthroughr2dui11ps.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/passthroughr2di11ps.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/passthroughlum2d11ps.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/passthroughlumalpha2d11ps.h&quot;
+
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/passthrough3d11vs.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/passthrough3d11gs.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgba3d11ps.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgba3dui11ps.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgba3di11ps.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgb3d11ps.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgb3dui11ps.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgb3di11ps.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/passthroughrg3d11ps.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/passthroughrg3dui11ps.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/passthroughrg3di11ps.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/passthroughr3d11ps.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/passthroughr3dui11ps.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/passthroughr3di11ps.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/passthroughlum3d11ps.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/passthroughlumalpha3d11ps.h&quot;
+
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/swizzlef2dps.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/swizzlei2dps.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/swizzleui2dps.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/swizzlef3dps.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/swizzlei3dps.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/swizzleui3dps.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/swizzlef2darrayps.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/swizzlei2darrayps.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/swizzleui2darrayps.h&quot;
+
+namespace rx
+{
+
+static DXGI_FORMAT GetTextureFormat(ID3D11Resource *resource)
+{
+    ID3D11Texture2D *texture = d3d11::DynamicCastComObject&lt;ID3D11Texture2D&gt;(resource);
+    if (!texture)
+    {
+        return DXGI_FORMAT_UNKNOWN;
+    }
+
+    D3D11_TEXTURE2D_DESC desc;
+    texture-&gt;GetDesc(&amp;desc);
+
+    SafeRelease(texture);
+
+    return desc.Format;
+}
+
+static ID3D11Resource *CreateStagingTexture(ID3D11Device *device, ID3D11DeviceContext *context,
+                                            ID3D11Resource *source, unsigned int subresource,
+                                            const gl::Extents &amp;size, unsigned int cpuAccessFlags)
+{
+    D3D11_TEXTURE2D_DESC stagingDesc;
+    stagingDesc.Width = size.width;
+    stagingDesc.Height = size.height;
+    stagingDesc.MipLevels = 1;
+    stagingDesc.ArraySize = 1;
+    stagingDesc.Format = GetTextureFormat(source);
+    stagingDesc.SampleDesc.Count = 1;
+    stagingDesc.SampleDesc.Quality = 0;
+    stagingDesc.Usage = D3D11_USAGE_STAGING;
+    stagingDesc.CPUAccessFlags = cpuAccessFlags;
+    stagingDesc.MiscFlags = 0;
+    stagingDesc.BindFlags = 0;
+
+    ID3D11Texture2D *stagingTexture = NULL;
+    HRESULT result = device-&gt;CreateTexture2D(&amp;stagingDesc, NULL, &amp;stagingTexture);
+    if (FAILED(result))
+    {
+        ERR(&quot;Failed to create staging texture for depth stencil blit. HRESULT: 0x%X.&quot;, result);
+        return NULL;
+    }
+
+    context-&gt;CopySubresourceRegion(stagingTexture, 0, 0, 0, 0, source, subresource, NULL);
+
+    return stagingTexture;
+}
+
+inline static void GenerateVertexCoords(const gl::Box &amp;sourceArea, const gl::Extents &amp;sourceSize,
+                                        const gl::Box &amp;destArea, const gl::Extents &amp;destSize,
+                                        float *x1, float *y1, float *x2, float *y2,
+                                        float *u1, float *v1, float *u2, float *v2)
+{
+    *x1 = (destArea.x / float(destSize.width)) * 2.0f - 1.0f;
+    *y1 = ((destSize.height - destArea.y - destArea.height) / float(destSize.height)) * 2.0f - 1.0f;
+    *x2 = ((destArea.x + destArea.width) / float(destSize.width)) * 2.0f - 1.0f;
+    *y2 = ((destSize.height - destArea.y) / float(destSize.height)) * 2.0f - 1.0f;
+
+    *u1 = sourceArea.x / float(sourceSize.width);
+    *v1 = sourceArea.y / float(sourceSize.height);
+    *u2 = (sourceArea.x + sourceArea.width) / float(sourceSize.width);
+    *v2 = (sourceArea.y + sourceArea.height) / float(sourceSize.height);
+}
+
+static void Write2DVertices(const gl::Box &amp;sourceArea, const gl::Extents &amp;sourceSize,
+                            const gl::Box &amp;destArea, const gl::Extents &amp;destSize,
+                            void *outVertices, unsigned int *outStride, unsigned int *outVertexCount,
+                            D3D11_PRIMITIVE_TOPOLOGY *outTopology)
+{
+    float x1, y1, x2, y2, u1, v1, u2, v2;
+    GenerateVertexCoords(sourceArea, sourceSize, destArea, destSize, &amp;x1, &amp;y1, &amp;x2, &amp;y2, &amp;u1, &amp;v1, &amp;u2, &amp;v2);
+
+    d3d11::PositionTexCoordVertex *vertices = static_cast&lt;d3d11::PositionTexCoordVertex*&gt;(outVertices);
+
+    d3d11::SetPositionTexCoordVertex(&amp;vertices[0], x1, y1, u1, v2);
+    d3d11::SetPositionTexCoordVertex(&amp;vertices[1], x1, y2, u1, v1);
+    d3d11::SetPositionTexCoordVertex(&amp;vertices[2], x2, y1, u2, v2);
+    d3d11::SetPositionTexCoordVertex(&amp;vertices[3], x2, y2, u2, v1);
+
+    *outStride = sizeof(d3d11::PositionTexCoordVertex);
+    *outVertexCount = 4;
+    *outTopology = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP;
+}
+
+static void Write3DVertices(const gl::Box &amp;sourceArea, const gl::Extents &amp;sourceSize,
+                            const gl::Box &amp;destArea, const gl::Extents &amp;destSize,
+                            void *outVertices, unsigned int *outStride, unsigned int *outVertexCount,
+                            D3D11_PRIMITIVE_TOPOLOGY *outTopology)
+{
+    ASSERT(sourceSize.depth &gt; 0 &amp;&amp; destSize.depth &gt; 0);
+
+    float x1, y1, x2, y2, u1, v1, u2, v2;
+    GenerateVertexCoords(sourceArea, sourceSize, destArea, destSize, &amp;x1, &amp;y1, &amp;x2, &amp;y2, &amp;u1, &amp;v1, &amp;u2, &amp;v2);
+
+    d3d11::PositionLayerTexCoord3DVertex *vertices = static_cast&lt;d3d11::PositionLayerTexCoord3DVertex*&gt;(outVertices);
+
+    for (int i = 0; i &lt; destSize.depth; i++)
+    {
+        float readDepth = (float)i / std::max(destSize.depth - 1, 1);
+
+        d3d11::SetPositionLayerTexCoord3DVertex(&amp;vertices[i * 6 + 0], x1, y1, i, u1, v2, readDepth);
+        d3d11::SetPositionLayerTexCoord3DVertex(&amp;vertices[i * 6 + 1], x1, y2, i, u1, v1, readDepth);
+        d3d11::SetPositionLayerTexCoord3DVertex(&amp;vertices[i * 6 + 2], x2, y1, i, u2, v2, readDepth);
+
+        d3d11::SetPositionLayerTexCoord3DVertex(&amp;vertices[i * 6 + 3], x1, y2, i, u1, v1, readDepth);
+        d3d11::SetPositionLayerTexCoord3DVertex(&amp;vertices[i * 6 + 4], x2, y2, i, u2, v1, readDepth);
+        d3d11::SetPositionLayerTexCoord3DVertex(&amp;vertices[i * 6 + 5], x2, y1, i, u2, v2, readDepth);
+    }
+
+    *outStride = sizeof(d3d11::PositionLayerTexCoord3DVertex);
+    *outVertexCount = destSize.depth * 6;
+    *outTopology = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST;
+}
+
+Blit11::Blit11(rx::Renderer11 *renderer)
+    : mRenderer(renderer), mBlitShaderMap(compareBlitParameters), mSwizzleShaderMap(compareSwizzleParameters),
+      mVertexBuffer(NULL), mPointSampler(NULL), mLinearSampler(NULL), mScissorEnabledRasterizerState(NULL),
+      mScissorDisabledRasterizerState(NULL), mDepthStencilState(NULL),
+      mQuad2DIL(NULL), mQuad2DVS(NULL), mDepthPS(NULL),
+      mQuad3DIL(NULL), mQuad3DVS(NULL), mQuad3DGS(NULL),
+      mSwizzleCB(NULL)
+{
+    HRESULT result;
+    ID3D11Device *device = mRenderer-&gt;getDevice();
+
+    D3D11_BUFFER_DESC vbDesc;
+    vbDesc.ByteWidth = std::max(sizeof(d3d11::PositionLayerTexCoord3DVertex), sizeof(d3d11::PositionTexCoordVertex)) *
+                       6 * renderer-&gt;getMaxTextureDepth();
+    vbDesc.Usage = D3D11_USAGE_DYNAMIC;
+    vbDesc.BindFlags = D3D11_BIND_VERTEX_BUFFER;
+    vbDesc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE;
+    vbDesc.MiscFlags = 0;
+    vbDesc.StructureByteStride = 0;
+
+    result = device-&gt;CreateBuffer(&amp;vbDesc, NULL, &amp;mVertexBuffer);
+    ASSERT(SUCCEEDED(result));
+    d3d11::SetDebugName(mVertexBuffer, &quot;Blit11 vertex buffer&quot;);
+
+    D3D11_SAMPLER_DESC pointSamplerDesc;
+    pointSamplerDesc.Filter = D3D11_FILTER_MIN_MAG_POINT_MIP_LINEAR;
+    pointSamplerDesc.AddressU = D3D11_TEXTURE_ADDRESS_CLAMP;
+    pointSamplerDesc.AddressV = D3D11_TEXTURE_ADDRESS_CLAMP;
+    pointSamplerDesc.AddressW = D3D11_TEXTURE_ADDRESS_CLAMP;
+    pointSamplerDesc.MipLODBias = 0.0f;
+    pointSamplerDesc.MaxAnisotropy = 0;
+    pointSamplerDesc.ComparisonFunc = D3D11_COMPARISON_NEVER;
+    pointSamplerDesc.BorderColor[0] = 0.0f;
+    pointSamplerDesc.BorderColor[1] = 0.0f;
+    pointSamplerDesc.BorderColor[2] = 0.0f;
+    pointSamplerDesc.BorderColor[3] = 0.0f;
+    pointSamplerDesc.MinLOD = 0.0f;
+    pointSamplerDesc.MaxLOD = 0.0f;
+
+    result = device-&gt;CreateSamplerState(&amp;pointSamplerDesc, &amp;mPointSampler);
+    ASSERT(SUCCEEDED(result));
+    d3d11::SetDebugName(mPointSampler, &quot;Blit11 point sampler&quot;);
+
+    D3D11_SAMPLER_DESC linearSamplerDesc;
+    linearSamplerDesc.Filter = D3D11_FILTER_MIN_MAG_MIP_LINEAR;
+    linearSamplerDesc.AddressU = D3D11_TEXTURE_ADDRESS_CLAMP;
+    linearSamplerDesc.AddressV = D3D11_TEXTURE_ADDRESS_CLAMP;
+    linearSamplerDesc.AddressW = D3D11_TEXTURE_ADDRESS_CLAMP;
+    linearSamplerDesc.MipLODBias = 0.0f;
+    linearSamplerDesc.MaxAnisotropy = 0;
+    linearSamplerDesc.ComparisonFunc = D3D11_COMPARISON_NEVER;
+    linearSamplerDesc.BorderColor[0] = 0.0f;
+    linearSamplerDesc.BorderColor[1] = 0.0f;
+    linearSamplerDesc.BorderColor[2] = 0.0f;
+    linearSamplerDesc.BorderColor[3] = 0.0f;
+    linearSamplerDesc.MinLOD = 0.0f;
+    linearSamplerDesc.MaxLOD = 0.0f;
+
+    result = device-&gt;CreateSamplerState(&amp;linearSamplerDesc, &amp;mLinearSampler);
+    ASSERT(SUCCEEDED(result));
+    d3d11::SetDebugName(mLinearSampler, &quot;Blit11 linear sampler&quot;);
+
+    // Use a rasterizer state that will not cull so that inverted quads will not be culled
+    D3D11_RASTERIZER_DESC rasterDesc;
+    rasterDesc.FillMode = D3D11_FILL_SOLID;
+    rasterDesc.CullMode = D3D11_CULL_NONE;
+    rasterDesc.FrontCounterClockwise = FALSE;
+    rasterDesc.DepthBias = 0;
+    rasterDesc.SlopeScaledDepthBias = 0.0f;
+    rasterDesc.DepthBiasClamp = 0.0f;
+    rasterDesc.DepthClipEnable = TRUE;
+    rasterDesc.MultisampleEnable = FALSE;
+    rasterDesc.AntialiasedLineEnable = FALSE;
+
+    rasterDesc.ScissorEnable = TRUE;
+    result = device-&gt;CreateRasterizerState(&amp;rasterDesc, &amp;mScissorEnabledRasterizerState);
+    ASSERT(SUCCEEDED(result));
+    d3d11::SetDebugName(mScissorEnabledRasterizerState, &quot;Blit11 scissoring rasterizer state&quot;);
+
+    rasterDesc.ScissorEnable = FALSE;
+    result = device-&gt;CreateRasterizerState(&amp;rasterDesc, &amp;mScissorDisabledRasterizerState);
+    ASSERT(SUCCEEDED(result));
+    d3d11::SetDebugName(mScissorDisabledRasterizerState, &quot;Blit11 no scissoring rasterizer state&quot;);
+
+    D3D11_DEPTH_STENCIL_DESC depthStencilDesc;
+    depthStencilDesc.DepthEnable = true;
+    depthStencilDesc.DepthWriteMask = D3D11_DEPTH_WRITE_MASK_ALL;
+    depthStencilDesc.DepthFunc = D3D11_COMPARISON_ALWAYS;
+    depthStencilDesc.StencilEnable = FALSE;
+    depthStencilDesc.StencilReadMask = D3D11_DEFAULT_STENCIL_READ_MASK;
+    depthStencilDesc.StencilWriteMask = D3D11_DEFAULT_STENCIL_WRITE_MASK;
+    depthStencilDesc.FrontFace.StencilFailOp = D3D11_STENCIL_OP_KEEP;
+    depthStencilDesc.FrontFace.StencilDepthFailOp = D3D11_STENCIL_OP_KEEP;
+    depthStencilDesc.FrontFace.StencilPassOp = D3D11_STENCIL_OP_KEEP;
+    depthStencilDesc.FrontFace.StencilFunc = D3D11_COMPARISON_ALWAYS;
+    depthStencilDesc.BackFace.StencilFailOp = D3D11_STENCIL_OP_KEEP;
+    depthStencilDesc.BackFace.StencilDepthFailOp = D3D11_STENCIL_OP_KEEP;
+    depthStencilDesc.BackFace.StencilPassOp = D3D11_STENCIL_OP_KEEP;
+    depthStencilDesc.BackFace.StencilFunc = D3D11_COMPARISON_ALWAYS;
+
+    result = device-&gt;CreateDepthStencilState(&amp;depthStencilDesc, &amp;mDepthStencilState);
+    ASSERT(SUCCEEDED(result));
+    d3d11::SetDebugName(mDepthStencilState, &quot;Blit11 depth stencil state&quot;);
+
+    D3D11_INPUT_ELEMENT_DESC quad2DLayout[] =
+    {
+        { &quot;POSITION&quot;, 0, DXGI_FORMAT_R32G32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0 },
+        { &quot;TEXCOORD&quot;, 0, DXGI_FORMAT_R32G32_FLOAT, 0, 8, D3D11_INPUT_PER_VERTEX_DATA, 0 },
+    };
+
+    result = device-&gt;CreateInputLayout(quad2DLayout, ArraySize(quad2DLayout), g_VS_Passthrough2D, ArraySize(g_VS_Passthrough2D), &amp;mQuad2DIL);
+    ASSERT(SUCCEEDED(result));
+    d3d11::SetDebugName(mQuad2DIL, &quot;Blit11 2D input layout&quot;);
+
+    result = device-&gt;CreateVertexShader(g_VS_Passthrough2D, ArraySize(g_VS_Passthrough2D), NULL, &amp;mQuad2DVS);
+    ASSERT(SUCCEEDED(result));
+    d3d11::SetDebugName(mQuad2DVS, &quot;Blit11 2D vertex shader&quot;);
+
+    result = device-&gt;CreatePixelShader(g_PS_PassthroughDepth2D, ArraySize(g_PS_PassthroughDepth2D), NULL, &amp;mDepthPS);
+    ASSERT(SUCCEEDED(result));
+    d3d11::SetDebugName(mDepthPS, &quot;Blit11 2D depth pixel shader&quot;);
+
+    D3D11_INPUT_ELEMENT_DESC quad3DLayout[] =
+    {
+        { &quot;POSITION&quot;, 0, DXGI_FORMAT_R32G32_FLOAT,    0,  0, D3D11_INPUT_PER_VERTEX_DATA, 0 },
+        { &quot;LAYER&quot;,    0, DXGI_FORMAT_R32_UINT,        0,  8, D3D11_INPUT_PER_VERTEX_DATA, 0 },
+        { &quot;TEXCOORD&quot;, 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 12, D3D11_INPUT_PER_VERTEX_DATA, 0 },
+    };
+
+    result = device-&gt;CreateInputLayout(quad3DLayout, ArraySize(quad3DLayout), g_VS_Passthrough3D, ArraySize(g_VS_Passthrough3D), &amp;mQuad3DIL);
+    ASSERT(SUCCEEDED(result));
+    d3d11::SetDebugName(mQuad3DIL, &quot;Blit11 3D input layout&quot;);
+
+    result = device-&gt;CreateVertexShader(g_VS_Passthrough3D, ArraySize(g_VS_Passthrough3D), NULL, &amp;mQuad3DVS);
+    ASSERT(SUCCEEDED(result));
+    d3d11::SetDebugName(mQuad3DVS, &quot;Blit11 3D vertex shader&quot;);
+
+    result = device-&gt;CreateGeometryShader(g_GS_Passthrough3D, ArraySize(g_GS_Passthrough3D), NULL, &amp;mQuad3DGS);
+    ASSERT(SUCCEEDED(result));
+    d3d11::SetDebugName(mQuad3DGS, &quot;Renderer11 copy 3D texture geometry shader&quot;);
+
+    buildShaderMap();
+
+    D3D11_BUFFER_DESC swizzleBufferDesc;
+    swizzleBufferDesc.ByteWidth = sizeof(unsigned int) * 4;
+    swizzleBufferDesc.Usage = D3D11_USAGE_DYNAMIC;
+    swizzleBufferDesc.BindFlags = D3D11_BIND_CONSTANT_BUFFER;
+    swizzleBufferDesc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE;
+    swizzleBufferDesc.MiscFlags = 0;
+    swizzleBufferDesc.StructureByteStride = 0;
+
+    result = device-&gt;CreateBuffer(&amp;swizzleBufferDesc, NULL, &amp;mSwizzleCB);
+    ASSERT(SUCCEEDED(result));
+    d3d11::SetDebugName(mSwizzleCB, &quot;Blit11 swizzle constant buffer&quot;);
+}
+
+Blit11::~Blit11()
+{
+    SafeRelease(mVertexBuffer);
+    SafeRelease(mPointSampler);
+    SafeRelease(mLinearSampler);
+    SafeRelease(mScissorEnabledRasterizerState);
+    SafeRelease(mScissorDisabledRasterizerState);
+    SafeRelease(mDepthStencilState);
+
+    SafeRelease(mQuad2DIL);
+    SafeRelease(mQuad2DVS);
+    SafeRelease(mDepthPS);
+
+    SafeRelease(mQuad3DIL);
+    SafeRelease(mQuad3DVS);
+    SafeRelease(mQuad3DGS);
+
+    SafeRelease(mSwizzleCB);
+
+    clearShaderMap();
+}
+
+static inline unsigned int GetSwizzleIndex(GLenum swizzle)
+{
+    unsigned int colorIndex = 0;
+
+    switch (swizzle)
+    {
+      case GL_RED:   colorIndex = 0; break;
+      case GL_GREEN: colorIndex = 1; break;
+      case GL_BLUE:  colorIndex = 2; break;
+      case GL_ALPHA: colorIndex = 3; break;
+      case GL_ZERO:  colorIndex = 4; break;
+      case GL_ONE:   colorIndex = 5; break;
+      default:       UNREACHABLE();  break;
+    }
+
+    return colorIndex;
+}
+
+bool Blit11::swizzleTexture(ID3D11ShaderResourceView *source, ID3D11RenderTargetView *dest, const gl::Extents &amp;size,
+                            GLenum swizzleRed, GLenum swizzleGreen, GLenum swizzleBlue, GLenum swizzleAlpha)
+{
+    HRESULT result;
+    ID3D11DeviceContext *deviceContext = mRenderer-&gt;getDeviceContext();
+
+    D3D11_SHADER_RESOURCE_VIEW_DESC sourceSRVDesc;
+    source-&gt;GetDesc(&amp;sourceSRVDesc);
+    GLenum sourceInternalFormat = d3d11_gl::GetInternalFormat(sourceSRVDesc.Format, mRenderer-&gt;getCurrentClientVersion());
+
+    GLenum shaderType = GL_NONE;
+    switch (gl::GetComponentType(sourceInternalFormat, mRenderer-&gt;getCurrentClientVersion()))
+    {
+      case GL_UNSIGNED_NORMALIZED:
+      case GL_SIGNED_NORMALIZED:
+      case GL_FLOAT:
+        shaderType = GL_FLOAT;
+        break;
+      case GL_INT:
+        shaderType = GL_INT;
+        break;
+      case GL_UNSIGNED_INT:
+        shaderType = GL_UNSIGNED_INT;
+        break;
+      default:
+        UNREACHABLE();
+        break;
+    }
+
+    SwizzleParameters parameters = { 0 };
+    parameters.mDestinationType = shaderType;
+    parameters.mViewDimension = sourceSRVDesc.ViewDimension;
+
+    SwizzleShaderMap::const_iterator i = mSwizzleShaderMap.find(parameters);
+    if (i == mSwizzleShaderMap.end())
+    {
+        UNREACHABLE();
+        return false;
+    }
+
+    const Shader &amp;shader = i-&gt;second;
+
+    // Set vertices
+    D3D11_MAPPED_SUBRESOURCE mappedResource;
+    result = deviceContext-&gt;Map(mVertexBuffer, 0, D3D11_MAP_WRITE_DISCARD, 0, &amp;mappedResource);
+    if (FAILED(result))
+    {
+        ERR(&quot;Failed to map vertex buffer for texture swizzle, HRESULT: 0x%X.&quot;, result);
+        return false;
+    }
+
+    UINT stride = 0;
+    UINT startIdx = 0;
+    UINT drawCount = 0;
+    D3D11_PRIMITIVE_TOPOLOGY topology;
+
+    gl::Box area(0, 0, 0, size.width, size.height, size.depth);
+    shader.mVertexWriteFunction(area, size, area, size, mappedResource.pData, &amp;stride, &amp;drawCount, &amp;topology);
+
+    deviceContext-&gt;Unmap(mVertexBuffer, 0);
+
+    // Set constant buffer
+    result = deviceContext-&gt;Map(mSwizzleCB, 0, D3D11_MAP_WRITE_DISCARD, 0, &amp;mappedResource);
+    if (FAILED(result))
+    {
+        ERR(&quot;Failed to map constant buffer for texture swizzle, HRESULT: 0x%X.&quot;, result);
+        return false;
+    }
+
+    unsigned int *swizzleIndices = reinterpret_cast&lt;unsigned int*&gt;(mappedResource.pData);
+    swizzleIndices[0] = GetSwizzleIndex(swizzleRed);
+    swizzleIndices[1] = GetSwizzleIndex(swizzleGreen);
+    swizzleIndices[2] = GetSwizzleIndex(swizzleBlue);
+    swizzleIndices[3] = GetSwizzleIndex(swizzleAlpha);
+
+    deviceContext-&gt;Unmap(mSwizzleCB, 0);
+
+    // Apply vertex buffer
+    deviceContext-&gt;IASetVertexBuffers(0, 1, &amp;mVertexBuffer, &amp;stride, &amp;startIdx);
+
+    // Apply constant buffer
+    deviceContext-&gt;PSSetConstantBuffers(0, 1, &amp;mSwizzleCB);
+
+    // Apply state
+    deviceContext-&gt;OMSetBlendState(NULL, NULL, 0xFFFFFFF);
+    deviceContext-&gt;OMSetDepthStencilState(NULL, 0xFFFFFFFF);
+    deviceContext-&gt;RSSetState(mScissorDisabledRasterizerState);
+
+    // Apply shaders
+    deviceContext-&gt;IASetInputLayout(shader.mInputLayout);
+    deviceContext-&gt;IASetPrimitiveTopology(topology);
+    deviceContext-&gt;VSSetShader(shader.mVertexShader, NULL, 0);
+
+    deviceContext-&gt;PSSetShader(shader.mPixelShader, NULL, 0);
+    deviceContext-&gt;GSSetShader(shader.mGeometryShader, NULL, 0);
+
+    // Unset the currently bound shader resource to avoid conflicts
+    ID3D11ShaderResourceView *const nullSRV = NULL;
+    deviceContext-&gt;PSSetShaderResources(0, 1, &amp;nullSRV);
+
+    // Apply render target
+    mRenderer-&gt;setOneTimeRenderTarget(dest);
+
+    // Set the viewport
+    D3D11_VIEWPORT viewport;
+    viewport.TopLeftX = 0;
+    viewport.TopLeftY = 0;
+    viewport.Width = size.width;
+    viewport.Height = size.height;
+    viewport.MinDepth = 0.0f;
+    viewport.MaxDepth = 1.0f;
+    deviceContext-&gt;RSSetViewports(1, &amp;viewport);
+
+    // Apply textures
+    deviceContext-&gt;PSSetShaderResources(0, 1, &amp;source);
+
+    // Apply samplers
+    deviceContext-&gt;PSSetSamplers(0, 1, &amp;mPointSampler);
+
+    // Draw the quad
+    deviceContext-&gt;Draw(drawCount, 0);
+
+    // Unbind textures and render targets and vertex buffer
+    deviceContext-&gt;PSSetShaderResources(0, 1, &amp;nullSRV);
+
+    mRenderer-&gt;unapplyRenderTargets();
+
+    UINT zero = 0;
+    ID3D11Buffer *const nullBuffer = NULL;
+    deviceContext-&gt;IASetVertexBuffers(0, 1, &amp;nullBuffer, &amp;zero, &amp;zero);
+
+    mRenderer-&gt;markAllStateDirty();
+
+    return true;
+}
+
+bool Blit11::copyTexture(ID3D11ShaderResourceView *source, const gl::Box &amp;sourceArea, const gl::Extents &amp;sourceSize,
+                         ID3D11RenderTargetView *dest, const gl::Box &amp;destArea, const gl::Extents &amp;destSize,
+                         const gl::Rectangle *scissor, GLenum destFormat, GLenum filter)
+{
+    HRESULT result;
+    ID3D11DeviceContext *deviceContext = mRenderer-&gt;getDeviceContext();
+
+    // Determine if the source format is a signed integer format, the destFormat will already
+    // be GL_XXXX_INTEGER but it does not tell us if it is signed or unsigned.
+    D3D11_SHADER_RESOURCE_VIEW_DESC sourceSRVDesc;
+    source-&gt;GetDesc(&amp;sourceSRVDesc);
+    GLenum sourceInternalFormat = d3d11_gl::GetInternalFormat(sourceSRVDesc.Format, mRenderer-&gt;getCurrentClientVersion());
+
+    BlitParameters parameters = { 0 };
+    parameters.mDestinationFormat = destFormat;
+    parameters.mSignedInteger = gl::GetComponentType(sourceInternalFormat, mRenderer-&gt;getCurrentClientVersion()) == GL_INT;
+    parameters.m3DBlit = sourceArea.depth &gt; 1;
+
+    BlitShaderMap::const_iterator i = mBlitShaderMap.find(parameters);
+    if (i == mBlitShaderMap.end())
+    {
+        UNREACHABLE();
+        return false;
+    }
+
+    const Shader&amp; shader = i-&gt;second;
+
+    // Set vertices
+    D3D11_MAPPED_SUBRESOURCE mappedResource;
+    result = deviceContext-&gt;Map(mVertexBuffer, 0, D3D11_MAP_WRITE_DISCARD, 0, &amp;mappedResource);
+    if (FAILED(result))
+    {
+        ERR(&quot;Failed to map vertex buffer for texture copy, HRESULT: 0x%X.&quot;, result);
+        return false;
+    }
+
+    UINT stride = 0;
+    UINT startIdx = 0;
+    UINT drawCount = 0;
+    D3D11_PRIMITIVE_TOPOLOGY topology;
+
+    shader.mVertexWriteFunction(sourceArea, sourceSize, destArea, destSize, mappedResource.pData,
+                                &amp;stride, &amp;drawCount, &amp;topology);
+
+    deviceContext-&gt;Unmap(mVertexBuffer, 0);
+
+    // Apply vertex buffer
+    deviceContext-&gt;IASetVertexBuffers(0, 1, &amp;mVertexBuffer, &amp;stride, &amp;startIdx);
+
+    // Apply state
+    deviceContext-&gt;OMSetBlendState(NULL, NULL, 0xFFFFFFF);
+    deviceContext-&gt;OMSetDepthStencilState(NULL, 0xFFFFFFFF);
+
+    if (scissor)
+    {
+        D3D11_RECT scissorRect;
+        scissorRect.left = scissor-&gt;x;
+        scissorRect.right = scissor-&gt;x + scissor-&gt;width;
+        scissorRect.top = scissor-&gt;y;
+        scissorRect.bottom = scissor-&gt;y + scissor-&gt;height;
+
+        deviceContext-&gt;RSSetScissorRects(1, &amp;scissorRect);
+        deviceContext-&gt;RSSetState(mScissorEnabledRasterizerState);
+    }
+    else
+    {
+        deviceContext-&gt;RSSetState(mScissorDisabledRasterizerState);
+    }
+
+    // Apply shaders
+    deviceContext-&gt;IASetInputLayout(shader.mInputLayout);
+    deviceContext-&gt;IASetPrimitiveTopology(topology);
+    deviceContext-&gt;VSSetShader(shader.mVertexShader, NULL, 0);
+
+    deviceContext-&gt;PSSetShader(shader.mPixelShader, NULL, 0);
+    deviceContext-&gt;GSSetShader(shader.mGeometryShader, NULL, 0);
+
+    // Unset the currently bound shader resource to avoid conflicts
+    ID3D11ShaderResourceView *const nullSRV = NULL;
+    deviceContext-&gt;PSSetShaderResources(0, 1, &amp;nullSRV);
+
+    // Apply render target
+    mRenderer-&gt;setOneTimeRenderTarget(dest);
+
+    // Set the viewport
+    D3D11_VIEWPORT viewport;
+    viewport.TopLeftX = 0;
+    viewport.TopLeftY = 0;
+    viewport.Width = destSize.width;
+    viewport.Height = destSize.height;
+    viewport.MinDepth = 0.0f;
+    viewport.MaxDepth = 1.0f;
+    deviceContext-&gt;RSSetViewports(1, &amp;viewport);
+
+    // Apply textures
+    deviceContext-&gt;PSSetShaderResources(0, 1, &amp;source);
+
+    // Apply samplers
+    ID3D11SamplerState *sampler = NULL;
+    switch (filter)
+    {
+      case GL_NEAREST: sampler = mPointSampler;  break;
+      case GL_LINEAR:  sampler = mLinearSampler; break;
+      default:         UNREACHABLE(); return false;
+    }
+    deviceContext-&gt;PSSetSamplers(0, 1, &amp;sampler);
+
+    // Draw the quad
+    deviceContext-&gt;Draw(drawCount, 0);
+
+    // Unbind textures and render targets and vertex buffer
+    deviceContext-&gt;PSSetShaderResources(0, 1, &amp;nullSRV);
+
+    mRenderer-&gt;unapplyRenderTargets();
+
+    UINT zero = 0;
+    ID3D11Buffer *const nullBuffer = NULL;
+    deviceContext-&gt;IASetVertexBuffers(0, 1, &amp;nullBuffer, &amp;zero, &amp;zero);
+
+    mRenderer-&gt;markAllStateDirty();
+
+    return true;
+}
+
+bool Blit11::copyStencil(ID3D11Resource *source, unsigned int sourceSubresource, const gl::Box &amp;sourceArea, const gl::Extents &amp;sourceSize,
+                         ID3D11Resource *dest, unsigned int destSubresource, const gl::Box &amp;destArea, const gl::Extents &amp;destSize,
+                         const gl::Rectangle *scissor)
+{
+    return copyDepthStencil(source, sourceSubresource, sourceArea, sourceSize,
+                            dest, destSubresource, destArea, destSize,
+                            scissor, true);
+}
+
+bool Blit11::copyDepth(ID3D11ShaderResourceView *source, const gl::Box &amp;sourceArea, const gl::Extents &amp;sourceSize,
+                       ID3D11DepthStencilView *dest, const gl::Box &amp;destArea, const gl::Extents &amp;destSize,
+                       const gl::Rectangle *scissor)
+{
+    HRESULT result;
+    ID3D11DeviceContext *deviceContext = mRenderer-&gt;getDeviceContext();
+
+    // Set vertices
+    D3D11_MAPPED_SUBRESOURCE mappedResource;
+    result = deviceContext-&gt;Map(mVertexBuffer, 0, D3D11_MAP_WRITE_DISCARD, 0, &amp;mappedResource);
+    if (FAILED(result))
+    {
+        ERR(&quot;Failed to map vertex buffer for texture copy, HRESULT: 0x%X.&quot;, result);
+        return false;
+    }
+
+    UINT stride = 0;
+    UINT startIdx = 0;
+    UINT drawCount = 0;
+    D3D11_PRIMITIVE_TOPOLOGY topology;
+
+    Write2DVertices(sourceArea, sourceSize, destArea, destSize, mappedResource.pData,
+                    &amp;stride, &amp;drawCount, &amp;topology);
+
+    deviceContext-&gt;Unmap(mVertexBuffer, 0);
+
+    // Apply vertex buffer
+    deviceContext-&gt;IASetVertexBuffers(0, 1, &amp;mVertexBuffer, &amp;stride, &amp;startIdx);
+
+    // Apply state
+    deviceContext-&gt;OMSetBlendState(NULL, NULL, 0xFFFFFFF);
+    deviceContext-&gt;OMSetDepthStencilState(mDepthStencilState, 0xFFFFFFFF);
+
+    if (scissor)
+    {
+        D3D11_RECT scissorRect;
+        scissorRect.left = scissor-&gt;x;
+        scissorRect.right = scissor-&gt;x + scissor-&gt;width;
+        scissorRect.top = scissor-&gt;y;
+        scissorRect.bottom = scissor-&gt;y + scissor-&gt;height;
+
+        deviceContext-&gt;RSSetScissorRects(1, &amp;scissorRect);
+        deviceContext-&gt;RSSetState(mScissorEnabledRasterizerState);
+    }
+    else
+    {
+        deviceContext-&gt;RSSetState(mScissorDisabledRasterizerState);
+    }
+
+    // Apply shaders
+    deviceContext-&gt;IASetInputLayout(mQuad2DIL);
+    deviceContext-&gt;IASetPrimitiveTopology(topology);
+    deviceContext-&gt;VSSetShader(mQuad2DVS, NULL, 0);
+
+    deviceContext-&gt;PSSetShader(mDepthPS, NULL, 0);
+    deviceContext-&gt;GSSetShader(NULL, NULL, 0);
+
+    // Unset the currently bound shader resource to avoid conflicts
+    ID3D11ShaderResourceView *const nullSRV = NULL;
+    deviceContext-&gt;PSSetShaderResources(0, 1, &amp;nullSRV);
+
+    // Apply render target
+    deviceContext-&gt;OMSetRenderTargets(0, NULL, dest);
+
+    // Set the viewport
+    D3D11_VIEWPORT viewport;
+    viewport.TopLeftX = 0;
+    viewport.TopLeftY = 0;
+    viewport.Width = destSize.width;
+    viewport.Height = destSize.height;
+    viewport.MinDepth = 0.0f;
+    viewport.MaxDepth = 1.0f;
+    deviceContext-&gt;RSSetViewports(1, &amp;viewport);
+
+    // Apply textures
+    deviceContext-&gt;PSSetShaderResources(0, 1, &amp;source);
+
+    // Apply samplers
+    deviceContext-&gt;PSSetSamplers(0, 1, &amp;mPointSampler);
+
+    // Draw the quad
+    deviceContext-&gt;Draw(drawCount, 0);
+
+    // Unbind textures and render targets and vertex buffer
+    deviceContext-&gt;PSSetShaderResources(0, 1, &amp;nullSRV);
+
+    mRenderer-&gt;unapplyRenderTargets();
+
+    UINT zero = 0;
+    ID3D11Buffer *const nullBuffer = NULL;
+    deviceContext-&gt;IASetVertexBuffers(0, 1, &amp;nullBuffer, &amp;zero, &amp;zero);
+
+    mRenderer-&gt;markAllStateDirty();
+
+    return true;
+}
+
+bool Blit11::copyDepthStencil(ID3D11Resource *source, unsigned int sourceSubresource, const gl::Box &amp;sourceArea, const gl::Extents &amp;sourceSize,
+                              ID3D11Resource *dest, unsigned int destSubresource, const gl::Box &amp;destArea, const gl::Extents &amp;destSize,
+                              const gl::Rectangle *scissor)
+{
+    return copyDepthStencil(source, sourceSubresource, sourceArea, sourceSize,
+                            dest, destSubresource, destArea, destSize,
+                            scissor, false);
+}
+
+bool Blit11::copyDepthStencil(ID3D11Resource *source, unsigned int sourceSubresource, const gl::Box &amp;sourceArea, const gl::Extents &amp;sourceSize,
+                              ID3D11Resource *dest, unsigned int destSubresource, const gl::Box &amp;destArea, const gl::Extents &amp;destSize,
+                              const gl::Rectangle *scissor, bool stencilOnly)
+{
+    ID3D11Device *device = mRenderer-&gt;getDevice();
+    ID3D11DeviceContext *deviceContext = mRenderer-&gt;getDeviceContext();
+
+    ID3D11Resource *sourceStaging = CreateStagingTexture(device, deviceContext, source, sourceSubresource, sourceSize, D3D11_CPU_ACCESS_READ);
+    // HACK: Create the destination staging buffer as a read/write texture so ID3D11DevicContext::UpdateSubresource can be called
+    //       using it's mapped data as a source
+    ID3D11Resource *destStaging = CreateStagingTexture(device, deviceContext, dest, destSubresource, destSize, D3D11_CPU_ACCESS_READ | D3D11_CPU_ACCESS_WRITE);
+
+    if (!sourceStaging || !destStaging)
+    {
+        SafeRelease(sourceStaging);
+        SafeRelease(destStaging);
+        return false;
+    }
+
+    DXGI_FORMAT format = GetTextureFormat(source);
+    ASSERT(format == GetTextureFormat(dest));
+
+    unsigned int pixelSize = d3d11::GetFormatPixelBytes(format);
+    unsigned int copyOffset = 0;
+    unsigned int copySize = pixelSize;
+    if (stencilOnly)
+    {
+        copyOffset = d3d11::GetStencilOffset(format) / 8;
+        copySize = d3d11::GetStencilBits(format) / 8;
+
+        // It would be expensive to have non-byte sized stencil sizes since it would
+        // require reading from the destination, currently there aren't any though.
+        ASSERT(d3d11::GetStencilBits(format)   % 8 == 0 &amp;&amp;
+               d3d11::GetStencilOffset(format) % 8 == 0);
+    }
+
+    D3D11_MAPPED_SUBRESOURCE sourceMapping, destMapping;
+    deviceContext-&gt;Map(sourceStaging, 0, D3D11_MAP_READ, 0, &amp;sourceMapping);
+    deviceContext-&gt;Map(destStaging, 0, D3D11_MAP_WRITE, 0, &amp;destMapping);
+
+    if (!sourceMapping.pData || !destMapping.pData)
+    {
+        if (!sourceMapping.pData)
+        {
+            deviceContext-&gt;Unmap(sourceStaging, 0);
+        }
+        if (!destMapping.pData)
+        {
+            deviceContext-&gt;Unmap(destStaging, 0);
+        }
+        SafeRelease(sourceStaging);
+        SafeRelease(destStaging);
+        return false;
+    }
+
+    gl::Rectangle clippedDestArea(destArea.x, destArea.y, destArea.width, destArea.height);
+
+    // Clip dest area to the destination size
+    gl::ClipRectangle(clippedDestArea, gl::Rectangle(0, 0, destSize.width, destSize.height), &amp;clippedDestArea);
+
+    // Clip dest area to the scissor
+    if (scissor)
+    {
+        gl::ClipRectangle(clippedDestArea, *scissor, &amp;clippedDestArea);
+    }
+
+    // Determine if entire rows can be copied at once instead of each individual pixel, requires that there is
+    // no out of bounds lookups required, the entire pixel is copied and no stretching
+    bool wholeRowCopy = sourceArea.width == clippedDestArea.width &amp;&amp;
+                        sourceArea.x &gt;= 0 &amp;&amp; sourceArea.x + sourceArea.width &lt;= sourceSize.width &amp;&amp;
+                        copySize == pixelSize;
+
+    for (int y = clippedDestArea.y; y &lt; clippedDestArea.y + clippedDestArea.height; y++)
+    {
+        float yPerc = static_cast&lt;float&gt;(y - destArea.y) / (destArea.height - 1);
+
+        // Interpolate using the original source rectangle to determine which row to sample from while clamping to the edges
+        unsigned int readRow = gl::clamp(sourceArea.y + floor(yPerc * (sourceArea.height - 1) + 0.5f), 0, sourceSize.height - 1);
+        unsigned int writeRow = y;
+
+        if (wholeRowCopy)
+        {
+            void *sourceRow = reinterpret_cast&lt;char*&gt;(sourceMapping.pData) +
+                              readRow * sourceMapping.RowPitch +
+                              sourceArea.x * pixelSize;
+
+            void *destRow = reinterpret_cast&lt;char*&gt;(destMapping.pData) +
+                            writeRow * destMapping.RowPitch +
+                            destArea.x * pixelSize;
+
+            memcpy(destRow, sourceRow, pixelSize * destArea.width);
+        }
+        else
+        {
+            for (int x = clippedDestArea.x; x &lt; clippedDestArea.x + clippedDestArea.width; x++)
+            {
+                float xPerc = static_cast&lt;float&gt;(x - destArea.x) / (destArea.width - 1);
+
+                // Interpolate the original source rectangle to determine which column to sample from while clamping to the edges
+                unsigned int readColumn = gl::clamp(sourceArea.x + floor(xPerc * (sourceArea.width - 1) + 0.5f), 0, sourceSize.width - 1);
+                unsigned int writeColumn = x;
+
+                void *sourcePixel = reinterpret_cast&lt;char*&gt;(sourceMapping.pData) +
+                                    readRow * sourceMapping.RowPitch +
+                                    readColumn * pixelSize +
+                                    copyOffset;
+
+                void *destPixel = reinterpret_cast&lt;char*&gt;(destMapping.pData) +
+                                  writeRow * destMapping.RowPitch +
+                                  writeColumn * pixelSize +
+                                  copyOffset;
+
+                memcpy(destPixel, sourcePixel, copySize);
+            }
+        }
+    }
+
+    // HACK: Use ID3D11DevicContext::UpdateSubresource which causes an extra copy compared to ID3D11DevicContext::CopySubresourceRegion
+    //       according to MSDN.
+    deviceContext-&gt;UpdateSubresource(dest, destSubresource, NULL, destMapping.pData, destMapping.RowPitch, destMapping.DepthPitch);
+
+    deviceContext-&gt;Unmap(sourceStaging, 0);
+    deviceContext-&gt;Unmap(destStaging, 0);
+
+    // TODO: Determine why this call to ID3D11DevicContext::CopySubresourceRegion causes a TDR timeout on some
+    //       systems when called repeatedly.
+    // deviceContext-&gt;CopySubresourceRegion(dest, destSubresource, 0, 0, 0, destStaging, 0, NULL);
+
+    SafeRelease(sourceStaging);
+    SafeRelease(destStaging);
+
+    return true;
+}
+
+bool Blit11::compareBlitParameters(const Blit11::BlitParameters &amp;a, const Blit11::BlitParameters &amp;b)
+{
+    return memcmp(&amp;a, &amp;b, sizeof(Blit11::BlitParameters)) &lt; 0;
+}
+
+bool Blit11::compareSwizzleParameters(const SwizzleParameters &amp;a, const SwizzleParameters &amp;b)
+{
+    return memcmp(&amp;a, &amp;b, sizeof(Blit11::SwizzleParameters)) &lt; 0;
+}
+
+void Blit11::add2DBlitShaderToMap(GLenum destFormat, bool signedInteger, ID3D11PixelShader *ps)
+{
+    BlitParameters params = { 0 };
+    params.mDestinationFormat = destFormat;
+    params.mSignedInteger = signedInteger;
+    params.m3DBlit = false;
+
+    ASSERT(mBlitShaderMap.find(params) == mBlitShaderMap.end());
+    ASSERT(ps);
+
+    Shader shader;
+    shader.mVertexWriteFunction = Write2DVertices;
+    shader.mInputLayout = mQuad2DIL;
+    shader.mVertexShader = mQuad2DVS;
+    shader.mGeometryShader = NULL;
+    shader.mPixelShader = ps;
+
+    mBlitShaderMap[params] = shader;
+}
+
+void Blit11::add3DBlitShaderToMap(GLenum destFormat, bool signedInteger, ID3D11PixelShader *ps)
+{
+    BlitParameters params = { 0 };
+    params.mDestinationFormat = destFormat;
+    params.mSignedInteger = signedInteger;
+    params.m3DBlit = true;
+
+    ASSERT(mBlitShaderMap.find(params) == mBlitShaderMap.end());
+    ASSERT(ps);
+
+    Shader shader;
+    shader.mVertexWriteFunction = Write3DVertices;
+    shader.mInputLayout = mQuad3DIL;
+    shader.mVertexShader = mQuad3DVS;
+    shader.mGeometryShader = mQuad3DGS;
+    shader.mPixelShader = ps;
+
+    mBlitShaderMap[params] = shader;
+}
+
+void Blit11::addSwizzleShaderToMap(GLenum destType, D3D11_SRV_DIMENSION viewDimension, ID3D11PixelShader *ps)
+{
+    SwizzleParameters params = { 0 };
+    params.mDestinationType = destType;
+    params.mViewDimension = viewDimension;
+
+    ASSERT(mSwizzleShaderMap.find(params) == mSwizzleShaderMap.end());
+    ASSERT(ps);
+
+    Shader shader;
+    switch (viewDimension)
+    {
+      case D3D_SRV_DIMENSION_TEXTURE2D:
+        shader.mVertexWriteFunction = Write2DVertices;
+        shader.mInputLayout = mQuad2DIL;
+        shader.mVertexShader = mQuad2DVS;
+        shader.mGeometryShader = NULL;
+        break;
+
+      case D3D_SRV_DIMENSION_TEXTURE3D:
+      case D3D_SRV_DIMENSION_TEXTURE2DARRAY:
+      case D3D_SRV_DIMENSION_TEXTURECUBE:
+        shader.mVertexWriteFunction = Write3DVertices;
+        shader.mInputLayout = mQuad3DIL;
+        shader.mVertexShader = mQuad3DVS;
+        shader.mGeometryShader = mQuad3DGS;
+        break;
+
+      default:
+        UNREACHABLE();
+        break;
+    }
+    shader.mPixelShader = ps;
+
+    mSwizzleShaderMap[params] = shader;
+}
+
+void Blit11::buildShaderMap()
+{
+    ID3D11Device *device = mRenderer-&gt;getDevice();
+
+    add2DBlitShaderToMap(GL_RGBA,            false, d3d11::CompilePS(device, g_PS_PassthroughRGBA2D,     &quot;Blit11 2D RGBA pixel shader&quot;           ));
+    add2DBlitShaderToMap(GL_RGBA_INTEGER,    false, d3d11::CompilePS(device, g_PS_PassthroughRGBA2DUI,   &quot;Blit11 2D RGBA UI pixel shader&quot;        ));
+    add2DBlitShaderToMap(GL_RGBA_INTEGER,    true,  d3d11::CompilePS(device, g_PS_PassthroughRGBA2DI,    &quot;Blit11 2D RGBA I pixel shader&quot;         ));
+    add2DBlitShaderToMap(GL_BGRA_EXT,        false, d3d11::CompilePS(device, g_PS_PassthroughRGBA2D,     &quot;Blit11 2D BGRA pixel shader&quot;           ));
+    add2DBlitShaderToMap(GL_RGB,             false, d3d11::CompilePS(device, g_PS_PassthroughRGB2D,      &quot;Blit11 2D RGB pixel shader&quot;            ));
+    add2DBlitShaderToMap(GL_RGB_INTEGER,     false, d3d11::CompilePS(device, g_PS_PassthroughRGB2DUI,    &quot;Blit11 2D RGB UI pixel shader&quot;         ));
+    add2DBlitShaderToMap(GL_RGB_INTEGER,     true,  d3d11::CompilePS(device, g_PS_PassthroughRGB2DI,     &quot;Blit11 2D RGB I pixel shader&quot;          ));
+    add2DBlitShaderToMap(GL_RG,              false, d3d11::CompilePS(device, g_PS_PassthroughRG2D,       &quot;Blit11 2D RG pixel shader&quot;             ));
+    add2DBlitShaderToMap(GL_RG_INTEGER,      false, d3d11::CompilePS(device, g_PS_PassthroughRG2DUI,     &quot;Blit11 2D RG UI pixel shader&quot;          ));
+    add2DBlitShaderToMap(GL_RG_INTEGER,      true,  d3d11::CompilePS(device, g_PS_PassthroughRG2DI,      &quot;Blit11 2D RG I pixel shader&quot;           ));
+    add2DBlitShaderToMap(GL_RED,             false, d3d11::CompilePS(device, g_PS_PassthroughR2D,        &quot;Blit11 2D R pixel shader&quot;              ));
+    add2DBlitShaderToMap(GL_RED_INTEGER,     false, d3d11::CompilePS(device, g_PS_PassthroughR2DUI,      &quot;Blit11 2D R UI pixel shader&quot;           ));
+    add2DBlitShaderToMap(GL_RED_INTEGER,     true,  d3d11::CompilePS(device, g_PS_PassthroughR2DI,       &quot;Blit11 2D R I pixel shader&quot;            ));
+    add2DBlitShaderToMap(GL_ALPHA,           false, d3d11::CompilePS(device, g_PS_PassthroughRGBA2D,     &quot;Blit11 2D alpha pixel shader&quot;          ));
+    add2DBlitShaderToMap(GL_LUMINANCE,       false, d3d11::CompilePS(device, g_PS_PassthroughLum2D,      &quot;Blit11 2D lum pixel shader&quot;            ));
+    add2DBlitShaderToMap(GL_LUMINANCE_ALPHA, false, d3d11::CompilePS(device, g_PS_PassthroughLumAlpha2D, &quot;Blit11 2D luminance alpha pixel shader&quot;));
+
+    add3DBlitShaderToMap(GL_RGBA,            false, d3d11::CompilePS(device, g_PS_PassthroughRGBA3D,     &quot;Blit11 3D RGBA pixel shader&quot;           ));
+    add3DBlitShaderToMap(GL_RGBA_INTEGER,    false, d3d11::CompilePS(device, g_PS_PassthroughRGBA3DUI,   &quot;Blit11 3D UI RGBA pixel shader&quot;        ));
+    add3DBlitShaderToMap(GL_RGBA_INTEGER,    true,  d3d11::CompilePS(device, g_PS_PassthroughRGBA3DI,    &quot;Blit11 3D I RGBA pixel shader&quot;         ));
+    add3DBlitShaderToMap(GL_BGRA_EXT,        false, d3d11::CompilePS(device, g_PS_PassthroughRGBA3D,     &quot;Blit11 3D BGRA pixel shader&quot;           ));
+    add3DBlitShaderToMap(GL_RGB,             false, d3d11::CompilePS(device, g_PS_PassthroughRGB3D,      &quot;Blit11 3D RGB pixel shader&quot;            ));
+    add3DBlitShaderToMap(GL_RGB_INTEGER,     false, d3d11::CompilePS(device, g_PS_PassthroughRGB3DUI,    &quot;Blit11 3D RGB UI pixel shader&quot;         ));
+    add3DBlitShaderToMap(GL_RGB_INTEGER,     true,  d3d11::CompilePS(device, g_PS_PassthroughRGB3DI,     &quot;Blit11 3D RGB I pixel shader&quot;          ));
+    add3DBlitShaderToMap(GL_RG,              false, d3d11::CompilePS(device, g_PS_PassthroughRG3D,       &quot;Blit11 3D RG pixel shader&quot;             ));
+    add3DBlitShaderToMap(GL_RG_INTEGER,      false, d3d11::CompilePS(device, g_PS_PassthroughRG3DUI,     &quot;Blit11 3D RG UI pixel shader&quot;          ));
+    add3DBlitShaderToMap(GL_RG_INTEGER,      true,  d3d11::CompilePS(device, g_PS_PassthroughRG3DI,      &quot;Blit11 3D RG I pixel shader&quot;           ));
+    add3DBlitShaderToMap(GL_RED,             false, d3d11::CompilePS(device, g_PS_PassthroughR3D,        &quot;Blit11 3D R pixel shader&quot;              ));
+    add3DBlitShaderToMap(GL_RED_INTEGER,     false, d3d11::CompilePS(device, g_PS_PassthroughR3DUI,      &quot;Blit11 3D R UI pixel shader&quot;           ));
+    add3DBlitShaderToMap(GL_RED_INTEGER,     true,  d3d11::CompilePS(device, g_PS_PassthroughR3DI,       &quot;Blit11 3D R I pixel shader&quot;            ));
+    add3DBlitShaderToMap(GL_ALPHA,           false, d3d11::CompilePS(device, g_PS_PassthroughRGBA3D,     &quot;Blit11 3D alpha pixel shader&quot;          ));
+    add3DBlitShaderToMap(GL_LUMINANCE,       false, d3d11::CompilePS(device, g_PS_PassthroughLum3D,      &quot;Blit11 3D luminance pixel shader&quot;      ));
+    add3DBlitShaderToMap(GL_LUMINANCE_ALPHA, false, d3d11::CompilePS(device, g_PS_PassthroughLumAlpha3D, &quot;Blit11 3D luminance alpha pixel shader&quot;));
+
+    addSwizzleShaderToMap(GL_FLOAT,        D3D_SRV_DIMENSION_TEXTURE2D,      d3d11::CompilePS(device, g_PS_SwizzleF2D,       &quot;Blit11 2D F swizzle pixel shader&quot; ));
+    addSwizzleShaderToMap(GL_UNSIGNED_INT, D3D_SRV_DIMENSION_TEXTURE2D,      d3d11::CompilePS(device, g_PS_SwizzleUI2D,      &quot;Blit11 2D UI swizzle pixel shader&quot;));
+    addSwizzleShaderToMap(GL_INT,          D3D_SRV_DIMENSION_TEXTURE2D,      d3d11::CompilePS(device, g_PS_SwizzleI2D,       &quot;Blit11 2D I swizzle pixel shader&quot; ));
+
+    addSwizzleShaderToMap(GL_FLOAT,        D3D_SRV_DIMENSION_TEXTURECUBE,    d3d11::CompilePS(device, g_PS_SwizzleF2DArray,  &quot;Blit11 2D Cube F swizzle pixel shader&quot; ));
+    addSwizzleShaderToMap(GL_UNSIGNED_INT, D3D_SRV_DIMENSION_TEXTURECUBE,    d3d11::CompilePS(device, g_PS_SwizzleUI2DArray, &quot;Blit11 2D Cube UI swizzle pixel shader&quot;));
+    addSwizzleShaderToMap(GL_INT,          D3D_SRV_DIMENSION_TEXTURECUBE,    d3d11::CompilePS(device, g_PS_SwizzleI2DArray,  &quot;Blit11 2D Cube I swizzle pixel shader&quot; ));
+
+    addSwizzleShaderToMap(GL_FLOAT,        D3D_SRV_DIMENSION_TEXTURE3D,      d3d11::CompilePS(device, g_PS_SwizzleF3D,       &quot;Blit11 3D F swizzle pixel shader&quot; ));
+    addSwizzleShaderToMap(GL_UNSIGNED_INT, D3D_SRV_DIMENSION_TEXTURE3D,      d3d11::CompilePS(device, g_PS_SwizzleUI3D,      &quot;Blit11 3D UI swizzle pixel shader&quot;));
+    addSwizzleShaderToMap(GL_INT,          D3D_SRV_DIMENSION_TEXTURE3D,      d3d11::CompilePS(device, g_PS_SwizzleI3D,       &quot;Blit11 3D I swizzle pixel shader&quot; ));
+
+    addSwizzleShaderToMap(GL_FLOAT,        D3D_SRV_DIMENSION_TEXTURE2DARRAY, d3d11::CompilePS(device, g_PS_SwizzleF2DArray,  &quot;Blit11 2D Array F swizzle pixel shader&quot; ));
+    addSwizzleShaderToMap(GL_UNSIGNED_INT, D3D_SRV_DIMENSION_TEXTURE2DARRAY, d3d11::CompilePS(device, g_PS_SwizzleUI2DArray, &quot;Blit11 2D Array UI swizzle pixel shader&quot;));
+    addSwizzleShaderToMap(GL_INT,          D3D_SRV_DIMENSION_TEXTURE2DARRAY, d3d11::CompilePS(device, g_PS_SwizzleI2DArray,  &quot;Blit11 2D Array I swizzle pixel shader&quot; ));
+}
+
+void Blit11::clearShaderMap()
+{
+    for (BlitShaderMap::iterator i = mBlitShaderMap.begin(); i != mBlitShaderMap.end(); ++i)
+    {
+        Shader &amp;shader = i-&gt;second;
+        SafeRelease(shader.mPixelShader);
+    }
+    mBlitShaderMap.clear();
+
+    for (SwizzleShaderMap::iterator i = mSwizzleShaderMap.begin(); i != mSwizzleShaderMap.end(); ++i)
+    {
+        Shader &amp;shader = i-&gt;second;
+        SafeRelease(shader.mPixelShader);
+    }
+    mSwizzleShaderMap.clear();
+}
+
+}
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11Blit11h"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/Blit11.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/Blit11.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/Blit11.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,126 @@
</span><ins>+//
+// Copyright (c) 2013 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+
+// Blit11.cpp: Texture copy utility class.
+
+#ifndef LIBGLESV2_BLIT11_H_
+#define LIBGLESV2_BLIT11_H_
+
+#include &quot;common/angleutils.h&quot;
+#include &quot;libGLESv2/angletypes.h&quot;
+
+namespace rx
+{
+class Renderer11;
+
+enum Filter
+{
+    Point,
+    Linear,
+};
+
+class Blit11
+{
+  public:
+    explicit Blit11(Renderer11 *renderer);
+    ~Blit11();
+
+    bool swizzleTexture(ID3D11ShaderResourceView *source, ID3D11RenderTargetView *dest, const gl::Extents &amp;size,
+                        GLenum swizzleRed, GLenum swizzleGreen, GLenum swizzleBlue, GLenum swizzleAlpha);
+
+    bool copyTexture(ID3D11ShaderResourceView *source, const gl::Box &amp;sourceArea, const gl::Extents &amp;sourceSize,
+                     ID3D11RenderTargetView *dest, const gl::Box &amp;destArea, const gl::Extents &amp;destSize,
+                     const gl::Rectangle *scissor, GLenum destFormat, GLenum filter);
+
+    bool copyStencil(ID3D11Resource *source, unsigned int sourceSubresource, const gl::Box &amp;sourceArea, const gl::Extents &amp;sourceSize,
+                     ID3D11Resource *dest, unsigned int destSubresource, const gl::Box &amp;destArea, const gl::Extents &amp;destSize,
+                     const gl::Rectangle *scissor);
+
+    bool copyDepth(ID3D11ShaderResourceView *source, const gl::Box &amp;sourceArea, const gl::Extents &amp;sourceSize,
+                   ID3D11DepthStencilView *dest, const gl::Box &amp;destArea, const gl::Extents &amp;destSize,
+                   const gl::Rectangle *scissor);
+
+    bool copyDepthStencil(ID3D11Resource *source, unsigned int sourceSubresource, const gl::Box &amp;sourceArea, const gl::Extents &amp;sourceSize,
+                          ID3D11Resource *dest, unsigned int destSubresource, const gl::Box &amp;destArea, const gl::Extents &amp;destSize,
+                          const gl::Rectangle *scissor);
+
+  private:
+    rx::Renderer11 *mRenderer;
+
+    struct BlitParameters
+    {
+        GLenum mDestinationFormat;
+        bool mSignedInteger;
+        bool m3DBlit;
+    };
+
+    bool copyDepthStencil(ID3D11Resource *source, unsigned int sourceSubresource, const gl::Box &amp;sourceArea, const gl::Extents &amp;sourceSize,
+                          ID3D11Resource *dest, unsigned int destSubresource, const gl::Box &amp;destArea, const gl::Extents &amp;destSize,
+                          const gl::Rectangle *scissor, bool stencilOnly);
+
+    static bool compareBlitParameters(const BlitParameters &amp;a, const BlitParameters &amp;b);
+
+    typedef void (*WriteVertexFunction)(const gl::Box &amp;sourceArea, const gl::Extents &amp;sourceSize,
+                                        const gl::Box &amp;destArea, const gl::Extents &amp;destSize,
+                                        void *outVertices, unsigned int *outStride, unsigned int *outVertexCount,
+                                        D3D11_PRIMITIVE_TOPOLOGY *outTopology);
+
+    struct Shader
+    {
+        WriteVertexFunction mVertexWriteFunction;
+        ID3D11InputLayout *mInputLayout;
+        ID3D11VertexShader *mVertexShader;
+        ID3D11GeometryShader *mGeometryShader;
+        ID3D11PixelShader *mPixelShader;
+    };
+
+    typedef bool (*BlitParametersComparisonFunction)(const BlitParameters&amp;, const BlitParameters &amp;);
+    typedef std::map&lt;BlitParameters, Shader, BlitParametersComparisonFunction&gt; BlitShaderMap;
+    BlitShaderMap mBlitShaderMap;
+
+    void add2DBlitShaderToMap(GLenum destFormat, bool signedInteger, ID3D11PixelShader *ps);
+    void add3DBlitShaderToMap(GLenum destFormat, bool signedInteger, ID3D11PixelShader *ps);
+
+    struct SwizzleParameters
+    {
+        GLenum mDestinationType;
+        D3D11_SRV_DIMENSION mViewDimension;
+    };
+
+    static bool compareSwizzleParameters(const SwizzleParameters &amp;a, const SwizzleParameters &amp;b);
+
+    typedef bool (*SwizzleParametersComparisonFunction)(const SwizzleParameters&amp;, const SwizzleParameters &amp;);
+    typedef std::map&lt;SwizzleParameters, Shader, SwizzleParametersComparisonFunction&gt; SwizzleShaderMap;
+    SwizzleShaderMap mSwizzleShaderMap;
+
+    void addSwizzleShaderToMap(GLenum destType, D3D11_SRV_DIMENSION viewDimension, ID3D11PixelShader *ps);
+
+    void buildShaderMap();
+    void clearShaderMap();
+
+    ID3D11Buffer *mVertexBuffer;
+    ID3D11SamplerState *mPointSampler;
+    ID3D11SamplerState *mLinearSampler;
+    ID3D11RasterizerState *mScissorEnabledRasterizerState;
+    ID3D11RasterizerState *mScissorDisabledRasterizerState;
+    ID3D11DepthStencilState *mDepthStencilState;
+
+    ID3D11InputLayout *mQuad2DIL;
+    ID3D11VertexShader *mQuad2DVS;
+    ID3D11PixelShader *mDepthPS;
+
+    ID3D11InputLayout *mQuad3DIL;
+    ID3D11VertexShader *mQuad3DVS;
+    ID3D11GeometryShader *mQuad3DGS;
+
+    ID3D11Buffer *mSwizzleCB;
+
+    DISALLOW_COPY_AND_ASSIGN(Blit11);
+};
+
+}
+
+#endif   // LIBGLESV2_BLIT11_H_
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11Clear11cpp"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/Clear11.cpp (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/Clear11.cpp                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/Clear11.cpp        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,557 @@
</span><ins>+#include &quot;precompiled.h&quot;
+//
+// Copyright (c) 2013 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+
+// Clear11.cpp: Framebuffer clear utility class.
+
+#include &quot;libGLESv2/renderer/d3d11/Clear11.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/Renderer11.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/renderer11_utils.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/RenderTarget11.h&quot;
+
+#include &quot;libGLESv2/formatutils.h&quot;
+#include &quot;libGLESv2/Framebuffer.h&quot;
+#include &quot;libGLESv2/Renderbuffer.h&quot;
+
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/clearfloat11vs.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/clearfloat11ps.h&quot;
+
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/clearuint11vs.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/clearuint11ps.h&quot;
+
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/clearsint11vs.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/clearsint11ps.h&quot;
+
+namespace rx
+{
+
+template &lt;typename T&gt;
+static void ApplyVertices(const gl::Extents &amp;framebufferSize, const gl::Rectangle *scissor, const gl::Color&lt;T&gt; &amp;color, float depth, void *buffer)
+{
+    d3d11::PositionDepthColorVertex&lt;T&gt; *vertices = reinterpret_cast&lt;d3d11::PositionDepthColorVertex&lt;T&gt;*&gt;(buffer);
+
+    float depthClear = gl::clamp01(depth);
+    float left = -1.0f;
+    float right = 1.0f;
+    float top = -1.0f;
+    float bottom = 1.0f;
+
+    // Clip the quad coordinates to the scissor if needed
+    if (scissor != NULL)
+    {
+        left = std::max(left, (scissor-&gt;x / float(framebufferSize.width)) * 2.0f - 1.0f);
+        right = std::min(right, ((scissor-&gt;x + scissor-&gt;width) / float(framebufferSize.width)) * 2.0f - 1.0f);
+        top = std::max(top, ((framebufferSize.height - scissor-&gt;y - scissor-&gt;height) / float(framebufferSize.height)) * 2.0f - 1.0f);
+        bottom = std::min(bottom, ((framebufferSize.height - scissor-&gt;y) / float(framebufferSize.height)) * 2.0f - 1.0f);
+    }
+
+    d3d11::SetPositionDepthColorVertex&lt;T&gt;(vertices + 0, left,  bottom, depthClear, color);
+    d3d11::SetPositionDepthColorVertex&lt;T&gt;(vertices + 1, left,  top,    depthClear, color);
+    d3d11::SetPositionDepthColorVertex&lt;T&gt;(vertices + 2, right, bottom, depthClear, color);
+    d3d11::SetPositionDepthColorVertex&lt;T&gt;(vertices + 3, right, top,    depthClear, color);
+}
+
+template &lt;unsigned int vsSize, unsigned int psSize&gt;
+Clear11::ClearShader Clear11::CreateClearShader(ID3D11Device *device, DXGI_FORMAT colorType, const BYTE (&amp;vsByteCode)[vsSize], const BYTE (&amp;psByteCode)[psSize])
+{
+    HRESULT result;
+
+    ClearShader shader = { 0 };
+
+    D3D11_INPUT_ELEMENT_DESC quadLayout[] =
+    {
+        { &quot;POSITION&quot;, 0, DXGI_FORMAT_R32G32B32_FLOAT, 0,  0, D3D11_INPUT_PER_VERTEX_DATA, 0 },
+        { &quot;COLOR&quot;,    0, colorType,                   0, 12, D3D11_INPUT_PER_VERTEX_DATA, 0 },
+    };
+
+    result = device-&gt;CreateInputLayout(quadLayout, ArraySize(quadLayout), vsByteCode, vsSize, &amp;shader.inputLayout);
+    ASSERT(SUCCEEDED(result));
+
+    result = device-&gt;CreateVertexShader(vsByteCode, vsSize, NULL, &amp;shader.vertexShader);
+    ASSERT(SUCCEEDED(result));
+
+    result = device-&gt;CreatePixelShader(psByteCode, psSize, NULL, &amp;shader.pixelShader);
+    ASSERT(SUCCEEDED(result));
+
+    return shader;
+}
+
+Clear11::Clear11(Renderer11 *renderer)
+    : mRenderer(renderer), mClearBlendStates(StructLessThan&lt;ClearBlendInfo&gt;), mClearDepthStencilStates(StructLessThan&lt;ClearDepthStencilInfo&gt;),
+      mVertexBuffer(NULL), mRasterizerState(NULL)
+{
+    HRESULT result;
+    ID3D11Device *device = renderer-&gt;getDevice();
+
+    D3D11_BUFFER_DESC vbDesc;
+    vbDesc.ByteWidth = sizeof(d3d11::PositionDepthColorVertex&lt;float&gt;) * 4;
+    vbDesc.Usage = D3D11_USAGE_DYNAMIC;
+    vbDesc.BindFlags = D3D11_BIND_VERTEX_BUFFER;
+    vbDesc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE;
+    vbDesc.MiscFlags = 0;
+    vbDesc.StructureByteStride = 0;
+
+    result = device-&gt;CreateBuffer(&amp;vbDesc, NULL, &amp;mVertexBuffer);
+    ASSERT(SUCCEEDED(result));
+    d3d11::SetDebugName(mVertexBuffer, &quot;Clear11 masked clear vertex buffer&quot;);
+
+    D3D11_RASTERIZER_DESC rsDesc;
+    rsDesc.FillMode = D3D11_FILL_SOLID;
+    rsDesc.CullMode = D3D11_CULL_NONE;
+    rsDesc.FrontCounterClockwise = FALSE;
+    rsDesc.DepthBias = 0;
+    rsDesc.DepthBiasClamp = 0.0f;
+    rsDesc.SlopeScaledDepthBias = 0.0f;
+    rsDesc.DepthClipEnable = FALSE;
+    rsDesc.ScissorEnable = FALSE;
+    rsDesc.MultisampleEnable = FALSE;
+    rsDesc.AntialiasedLineEnable = FALSE;
+
+    result = device-&gt;CreateRasterizerState(&amp;rsDesc, &amp;mRasterizerState);
+    ASSERT(SUCCEEDED(result));
+    d3d11::SetDebugName(mRasterizerState, &quot;Clear11 masked clear rasterizer state&quot;);
+
+    mFloatClearShader = CreateClearShader(device, DXGI_FORMAT_R32G32B32A32_FLOAT, g_VS_ClearFloat, g_PS_ClearFloat);
+    mUintClearShader  = CreateClearShader(device, DXGI_FORMAT_R32G32B32A32_UINT,  g_VS_ClearUint,  g_PS_ClearUint );
+    mIntClearShader   = CreateClearShader(device, DXGI_FORMAT_R32G32B32A32_SINT,  g_VS_ClearSint,  g_PS_ClearSint );
+}
+
+Clear11::~Clear11()
+{
+    for (ClearBlendStateMap::iterator i = mClearBlendStates.begin(); i != mClearBlendStates.end(); i++)
+    {
+        SafeRelease(i-&gt;second);
+    }
+    mClearBlendStates.clear();
+
+    SafeRelease(mFloatClearShader.inputLayout);
+    SafeRelease(mFloatClearShader.vertexShader);
+    SafeRelease(mFloatClearShader.pixelShader);
+
+    SafeRelease(mUintClearShader.inputLayout);
+    SafeRelease(mUintClearShader.vertexShader);
+    SafeRelease(mUintClearShader.pixelShader);
+
+    SafeRelease(mIntClearShader.inputLayout);
+    SafeRelease(mIntClearShader.vertexShader);
+    SafeRelease(mIntClearShader.pixelShader);
+
+    for (ClearDepthStencilStateMap::iterator i = mClearDepthStencilStates.begin(); i != mClearDepthStencilStates.end(); i++)
+    {
+        SafeRelease(i-&gt;second);
+    }
+    mClearDepthStencilStates.clear();
+
+    SafeRelease(mVertexBuffer);
+    SafeRelease(mRasterizerState);
+}
+
+void Clear11::clearFramebuffer(const gl::ClearParameters &amp;clearParams, gl::Framebuffer *frameBuffer)
+{
+    // First determine if a scissored clear is needed, this will always require drawing a quad.
+    //
+    // Otherwise, iterate over the color buffers which require clearing and determine if they can be
+    // cleared with ID3D11DeviceContext::ClearRenderTargetView... This requires:
+    // 1) The render target is being cleared to a float value (will be cast to integer when clearing integer
+    //    render targets as expected but does not work the other way around)
+    // 2) The format of the render target has no color channels that are currently masked out.
+    // Clear the easy-to-clear buffers on the spot and accumulate the ones that require special work.
+    //
+    // Also determine if the depth stencil can be cleared with ID3D11DeviceContext::ClearDepthStencilView
+    // by checking if the stencil write mask covers the entire stencil.
+    //
+    // To clear the remaining buffers, quads must be drawn containing an int, uint or float vertex color
+    // attribute.
+
+    gl::Extents framebufferSize;
+    if (frameBuffer-&gt;getFirstColorbuffer() != NULL)
+    {
+        gl::Renderbuffer *renderBuffer = frameBuffer-&gt;getFirstColorbuffer();
+        framebufferSize.width = renderBuffer-&gt;getWidth();
+        framebufferSize.height = renderBuffer-&gt;getHeight();
+        framebufferSize.depth = 1;
+    }
+    else if (frameBuffer-&gt;getDepthOrStencilbuffer() != NULL)
+    {
+        gl::Renderbuffer *renderBuffer = frameBuffer-&gt;getDepthOrStencilbuffer();
+        framebufferSize.width = renderBuffer-&gt;getWidth();
+        framebufferSize.height = renderBuffer-&gt;getHeight();
+        framebufferSize.depth = 1;
+    }
+    else
+    {
+        UNREACHABLE();
+        return;
+    }
+
+    if (clearParams.scissorEnabled &amp;&amp; (clearParams.scissor.x &gt;= framebufferSize.width || 
+                                       clearParams.scissor.y &gt;= framebufferSize.height ||
+                                       clearParams.scissor.x + clearParams.scissor.width &lt;= 0 ||
+                                       clearParams.scissor.y + clearParams.scissor.height &lt;= 0))
+    {
+        // Scissor is enabled and the scissor rectangle is outside the renderbuffer
+        return;
+    }
+
+    bool needScissoredClear = clearParams.scissorEnabled &amp;&amp; (clearParams.scissor.x &gt; 0 || clearParams.scissor.y &gt; 0 ||
+                                                             clearParams.scissor.x + clearParams.scissor.width &lt; framebufferSize.width ||
+                                                             clearParams.scissor.y + clearParams.scissor.height &lt; framebufferSize.height);
+
+    GLuint clientVersion = mRenderer-&gt;getCurrentClientVersion();
+
+    std::vector&lt;RenderTarget11*&gt; maskedClearRenderTargets;
+    RenderTarget11* maskedClearDepthStencil = NULL;
+
+    ID3D11DeviceContext *deviceContext = mRenderer-&gt;getDeviceContext();
+
+    for (unsigned int colorAttachment = 0; colorAttachment &lt; gl::IMPLEMENTATION_MAX_DRAW_BUFFERS; colorAttachment++)
+    {
+        if (clearParams.clearColor[colorAttachment] &amp;&amp; frameBuffer-&gt;isEnabledColorAttachment(colorAttachment))
+        {
+            gl::Renderbuffer *renderbuffer = frameBuffer-&gt;getColorbuffer(colorAttachment);
+            if (renderbuffer)
+            {
+                RenderTarget11 *renderTarget = RenderTarget11::makeRenderTarget11(renderbuffer-&gt;getRenderTarget());
+                if (!renderTarget)
+                {
+                    ERR(&quot;Render target pointer unexpectedly null.&quot;);
+                    return;
+                }
+
+                GLenum internalFormat = renderbuffer-&gt;getInternalFormat();
+                GLenum actualFormat = renderbuffer-&gt;getActualFormat();
+                GLenum componentType = gl::GetComponentType(internalFormat, clientVersion);
+                if (clearParams.colorClearType == GL_FLOAT &amp;&amp;
+                    !(componentType == GL_FLOAT || componentType == GL_UNSIGNED_NORMALIZED || componentType == GL_SIGNED_NORMALIZED))
+                {
+                    ERR(&quot;It is undefined behaviour to clear a render buffer which is not normalized fixed point or floating-&quot;
+                        &quot;point to floating point values (color attachment %u has internal format 0x%X).&quot;, colorAttachment, internalFormat);
+                }
+
+                GLuint internalRedBits = gl::GetRedBits(internalFormat, clientVersion);
+                GLuint internalGreenBits = gl::GetGreenBits(internalFormat, clientVersion);
+                GLuint internalBlueBits = gl::GetBlueBits(internalFormat, clientVersion);
+                GLuint internalAlphaBits = gl::GetAlphaBits(internalFormat, clientVersion);
+
+                if ((internalRedBits   == 0 || !clearParams.colorMaskRed) &amp;&amp;
+                    (internalGreenBits == 0 || !clearParams.colorMaskGreen) &amp;&amp;
+                    (internalBlueBits  == 0 || !clearParams.colorMaskBlue) &amp;&amp;
+                    (internalAlphaBits == 0 || !clearParams.colorMaskAlpha))
+                {
+                    // Every channel either does not exist in the render target or is masked out
+                    continue;
+                }
+                else if (needScissoredClear || clearParams.colorClearType != GL_FLOAT ||
+                         (internalRedBits   &gt; 0 &amp;&amp; !clearParams.colorMaskRed)   ||
+                         (internalGreenBits &gt; 0 &amp;&amp; !clearParams.colorMaskGreen) ||
+                         (internalBlueBits  &gt; 0 &amp;&amp; !clearParams.colorMaskBlue)  ||
+                         (internalAlphaBits &gt; 0 &amp;&amp; !clearParams.colorMaskAlpha))
+                {
+                    // A scissored or masked clear is required
+                    maskedClearRenderTargets.push_back(renderTarget);
+                }
+                else
+                {
+                    // ID3D11DeviceContext::ClearRenderTargetView is possible
+
+                    ID3D11RenderTargetView *framebufferRTV = renderTarget-&gt;getRenderTargetView();
+                    if (!framebufferRTV)
+                    {
+                        ERR(&quot;Render target view pointer unexpectedly null.&quot;);
+                        return;
+                    }
+
+                    // Check if the actual format has a channel that the internal format does not and set them to the
+                    // default values
+                    GLuint actualRedBits   = gl::GetRedBits(actualFormat, clientVersion);
+                    GLuint actualGreenBits = gl::GetGreenBits(actualFormat, clientVersion);
+                    GLuint actualBlueBits  = gl::GetBlueBits(actualFormat, clientVersion);
+                    GLuint actualAlphaBits = gl::GetAlphaBits(actualFormat, clientVersion);
+
+                    const float clearValues[4] =
+                    {
+                        ((internalRedBits   == 0 &amp;&amp; actualRedBits   &gt; 0) ? 0.0f : clearParams.colorFClearValue.red),
+                        ((internalGreenBits == 0 &amp;&amp; actualGreenBits &gt; 0) ? 0.0f : clearParams.colorFClearValue.green),
+                        ((internalBlueBits  == 0 &amp;&amp; actualBlueBits  &gt; 0) ? 0.0f : clearParams.colorFClearValue.blue),
+                        ((internalAlphaBits == 0 &amp;&amp; actualAlphaBits &gt; 0) ? 1.0f : clearParams.colorFClearValue.alpha),
+                    };
+
+                    deviceContext-&gt;ClearRenderTargetView(framebufferRTV, clearValues);
+                }
+            }
+        }
+    }
+
+    if (clearParams.clearDepth || clearParams.clearStencil)
+    {
+        gl::Renderbuffer *renderbuffer = frameBuffer-&gt;getDepthOrStencilbuffer();
+        if (renderbuffer)
+        {
+            RenderTarget11 *renderTarget = RenderTarget11::makeRenderTarget11(renderbuffer-&gt;getDepthStencil());
+            if (!renderTarget)
+            {
+                ERR(&quot;Depth stencil render target pointer unexpectedly null.&quot;);
+                return;
+            }
+
+            GLenum actualFormat = renderbuffer-&gt;getActualFormat();
+
+            unsigned int stencilUnmasked = frameBuffer-&gt;hasStencil() ? (1 &lt;&lt; gl::GetStencilBits(actualFormat, clientVersion)) - 1 : 0;
+            bool needMaskedStencilClear = clearParams.clearStencil &amp;&amp; (clearParams.stencilWriteMask &amp; stencilUnmasked) != stencilUnmasked;
+
+            if (needScissoredClear || needMaskedStencilClear)
+            {
+                maskedClearDepthStencil = renderTarget;
+            }
+            else
+            {
+                ID3D11DepthStencilView *framebufferDSV = renderTarget-&gt;getDepthStencilView();
+                if (!framebufferDSV)
+                {
+                    ERR(&quot;Depth stencil view pointer unexpectedly null.&quot;);
+                    return;
+                }
+
+                UINT clearFlags = (clearParams.clearDepth   ? D3D11_CLEAR_DEPTH   : 0) |
+                                  (clearParams.clearStencil ? D3D11_CLEAR_STENCIL : 0);
+                FLOAT depthClear = gl::clamp01(clearParams.depthClearValue);
+                UINT8 stencilClear = clearParams.stencilClearValue &amp; 0xFF;
+
+                deviceContext-&gt;ClearDepthStencilView(framebufferDSV, clearFlags, depthClear, stencilClear);
+            }
+        }
+    }
+
+    if (maskedClearRenderTargets.size() &gt; 0 || maskedClearDepthStencil)
+    {
+        // To clear the render targets and depth stencil in one pass:
+        //
+        // Render a quad clipped to the scissor rectangle which draws the clear color and a blend
+        // state that will perform the required color masking.
+        //
+        // The quad's depth is equal to the depth clear value with a depth stencil state that
+        // will enable or disable depth test/writes if the depth buffer should be cleared or not.
+        //
+        // The rasterizer state's stencil is set to always pass or fail based on if the stencil
+        // should be cleared or not with a stencil write mask of the stencil clear value.
+        //
+        // ======================================================================================
+        //
+        // Luckily, the gl spec (ES 3.0.2 pg 183) states that the results of clearing a render-
+        // buffer that is not normalized fixed point or floating point with floating point values
+        // are undefined so we can just write floats to them and D3D11 will bit cast them to
+        // integers.
+        //
+        // Also, we don't have to worry about attempting to clear a normalized fixed/floating point
+        // buffer with integer values because there is no gl API call which would allow it,
+        // glClearBuffer* calls only clear a single renderbuffer at a time which is verified to
+        // be a compatible clear type.
+
+        // Bind all the render targets which need clearing
+        ASSERT(maskedClearRenderTargets.size() &lt;= mRenderer-&gt;getMaxRenderTargets());
+        std::vector&lt;ID3D11RenderTargetView*&gt; rtvs(maskedClearRenderTargets.size());
+        for (unsigned int i = 0; i &lt; maskedClearRenderTargets.size(); i++)
+        {
+            ID3D11RenderTargetView *renderTarget = maskedClearRenderTargets[i]-&gt;getRenderTargetView();
+            if (!renderTarget)
+            {
+                ERR(&quot;Render target pointer unexpectedly null.&quot;);
+                return;
+            }
+
+            rtvs[i] = renderTarget;
+        }
+        ID3D11DepthStencilView *dsv = maskedClearDepthStencil ? maskedClearDepthStencil-&gt;getDepthStencilView() : NULL;
+
+        ID3D11BlendState *blendState = getBlendState(clearParams, maskedClearRenderTargets);
+        const FLOAT blendFactors[4] = { 1.0f, 1.0f, 1.0f, 1.0f };
+        const UINT sampleMask = 0xFFFFFFFF;
+
+        ID3D11DepthStencilState *dsState = getDepthStencilState(clearParams);
+        const UINT stencilClear = clearParams.stencilClearValue &amp; 0xFF;
+
+        // Set the vertices
+        UINT vertexStride = 0;
+        const UINT startIdx = 0;
+        const ClearShader* shader = NULL;
+        D3D11_MAPPED_SUBRESOURCE mappedResource;
+        HRESULT result = deviceContext-&gt;Map(mVertexBuffer, 0, D3D11_MAP_WRITE_DISCARD, 0, &amp;mappedResource);
+        if (FAILED(result))
+        {
+            ERR(&quot;Failed to map masked clear vertex buffer, HRESULT: 0x%X.&quot;, result);
+            return;
+        }
+
+        const gl::Rectangle *scissorPtr = clearParams.scissorEnabled ? &amp;clearParams.scissor : NULL;
+        switch (clearParams.colorClearType)
+        {
+          case GL_FLOAT:
+            ApplyVertices(framebufferSize, scissorPtr, clearParams.colorFClearValue, clearParams.depthClearValue, mappedResource.pData);
+            vertexStride = sizeof(d3d11::PositionDepthColorVertex&lt;float&gt;);
+            shader = &amp;mFloatClearShader;
+            break;
+
+          case GL_UNSIGNED_INT:
+            ApplyVertices(framebufferSize, scissorPtr, clearParams.colorUIClearValue, clearParams.depthClearValue, mappedResource.pData);
+            vertexStride = sizeof(d3d11::PositionDepthColorVertex&lt;unsigned int&gt;);
+            shader = &amp;mUintClearShader;
+            break;
+
+          case GL_INT:
+            ApplyVertices(framebufferSize, scissorPtr, clearParams.colorIClearValue, clearParams.depthClearValue, mappedResource.pData);
+            vertexStride = sizeof(d3d11::PositionDepthColorVertex&lt;int&gt;);
+            shader = &amp;mIntClearShader;
+            break;
+
+          default:
+            UNREACHABLE();
+            break;
+        }
+
+        deviceContext-&gt;Unmap(mVertexBuffer, 0);
+
+        // Set the viewport to be the same size as the framebuffer
+        D3D11_VIEWPORT viewport;
+        viewport.TopLeftX = 0;
+        viewport.TopLeftY = 0;
+        viewport.Width = framebufferSize.width;
+        viewport.Height = framebufferSize.height;
+        viewport.MinDepth = 0;
+        viewport.MaxDepth = 1;
+        deviceContext-&gt;RSSetViewports(1, &amp;viewport);
+
+        // Apply state
+        deviceContext-&gt;OMSetBlendState(blendState, blendFactors, sampleMask);
+        deviceContext-&gt;OMSetDepthStencilState(dsState, stencilClear);
+        deviceContext-&gt;RSSetState(mRasterizerState);
+
+        // Apply shaders
+        deviceContext-&gt;IASetInputLayout(shader-&gt;inputLayout);
+        deviceContext-&gt;VSSetShader(shader-&gt;vertexShader, NULL, 0);
+        deviceContext-&gt;PSSetShader(shader-&gt;pixelShader, NULL, 0);
+        deviceContext-&gt;GSSetShader(NULL, NULL, 0);
+
+        // Apply vertex buffer
+        deviceContext-&gt;IASetVertexBuffers(0, 1, &amp;mVertexBuffer, &amp;vertexStride, &amp;startIdx);
+        deviceContext-&gt;IASetPrimitiveTopology(D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP);
+
+        // Apply render targets
+        deviceContext-&gt;OMSetRenderTargets(rtvs.size(), (rtvs.empty() ? NULL : &amp;rtvs[0]), dsv);
+
+        // Draw the clear quad
+        deviceContext-&gt;Draw(4, 0);
+
+        // Clean up
+        mRenderer-&gt;markAllStateDirty();
+    }
+}
+
+ID3D11BlendState *Clear11::getBlendState(const gl::ClearParameters &amp;clearParams, const std::vector&lt;RenderTarget11*&gt;&amp; rts)
+{
+    GLuint clientVersion = mRenderer-&gt;getCurrentClientVersion();
+
+    ClearBlendInfo blendKey = { 0 };
+    for (unsigned int i = 0; i &lt; D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT; i++)
+    {
+        if (i &lt; rts.size())
+        {
+            GLint internalFormat = rts[i]-&gt;getInternalFormat();
+
+            blendKey.maskChannels[i][0] = clearParams.clearColor ? (clearParams.colorMaskRed   &amp;&amp; gl::GetRedBits(internalFormat, clientVersion)   &gt; 0) : false;
+            blendKey.maskChannels[i][1] = clearParams.clearColor ? (clearParams.colorMaskGreen &amp;&amp; gl::GetGreenBits(internalFormat, clientVersion) &gt; 0) : false;
+            blendKey.maskChannels[i][2] = clearParams.clearColor ? (clearParams.colorMaskBlue  &amp;&amp; gl::GetBlueBits(internalFormat, clientVersion)  &gt; 0) : false;
+            blendKey.maskChannels[i][3] = clearParams.clearColor ? (clearParams.colorMaskAlpha &amp;&amp; gl::GetAlphaBits(internalFormat, clientVersion) &gt; 0) : false;
+        }
+        else
+        {
+            blendKey.maskChannels[i][0] = false;
+            blendKey.maskChannels[i][1] = false;
+            blendKey.maskChannels[i][2] = false;
+            blendKey.maskChannels[i][3] = false;
+        }
+    }
+
+    ClearBlendStateMap::const_iterator i = mClearBlendStates.find(blendKey);
+    if (i != mClearBlendStates.end())
+    {
+        return i-&gt;second;
+    }
+    else
+    {
+        D3D11_BLEND_DESC blendDesc = { 0 };
+        blendDesc.AlphaToCoverageEnable = FALSE;
+        blendDesc.IndependentBlendEnable = (rts.size() &gt; 1) ? TRUE : FALSE;
+
+        for (unsigned int i = 0; i &lt; D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT; i++)
+        {
+            blendDesc.RenderTarget[i].BlendEnable = FALSE;
+            blendDesc.RenderTarget[i].RenderTargetWriteMask = gl_d3d11::ConvertColorMask(blendKey.maskChannels[i][0],
+                                                                                         blendKey.maskChannels[i][1],
+                                                                                         blendKey.maskChannels[i][2],
+                                                                                         blendKey.maskChannels[i][3]);
+        }
+
+        ID3D11Device *device = mRenderer-&gt;getDevice();
+        ID3D11BlendState* blendState = NULL;
+        HRESULT result = device-&gt;CreateBlendState(&amp;blendDesc, &amp;blendState);
+        if (FAILED(result) || !blendState)
+        {
+            ERR(&quot;Unable to create a ID3D11BlendState, HRESULT: 0x%X.&quot;, result);
+            return NULL;
+        }
+
+        mClearBlendStates[blendKey] = blendState;
+
+        return blendState;
+    }
+}
+
+ID3D11DepthStencilState *Clear11::getDepthStencilState(const gl::ClearParameters &amp;clearParams)
+{
+    ClearDepthStencilInfo dsKey = { 0 };
+    dsKey.clearDepth = clearParams.clearDepth;
+    dsKey.clearStencil = clearParams.clearStencil;
+    dsKey.stencilWriteMask = clearParams.stencilWriteMask &amp; 0xFF;
+
+    ClearDepthStencilStateMap::const_iterator i = mClearDepthStencilStates.find(dsKey);
+    if (i != mClearDepthStencilStates.end())
+    {
+        return i-&gt;second;
+    }
+    else
+    {
+        D3D11_DEPTH_STENCIL_DESC dsDesc = { 0 };
+        dsDesc.DepthEnable = dsKey.clearDepth ? TRUE : FALSE;
+        dsDesc.DepthWriteMask = dsKey.clearDepth ? D3D11_DEPTH_WRITE_MASK_ALL : D3D11_DEPTH_WRITE_MASK_ZERO;
+        dsDesc.DepthFunc = D3D11_COMPARISON_ALWAYS;
+        dsDesc.StencilEnable = dsKey.clearStencil ? TRUE : FALSE;
+        dsDesc.StencilReadMask = 0;
+        dsDesc.StencilWriteMask = dsKey.stencilWriteMask;
+        dsDesc.FrontFace.StencilFailOp = D3D11_STENCIL_OP_REPLACE;
+        dsDesc.FrontFace.StencilDepthFailOp = D3D11_STENCIL_OP_REPLACE;
+        dsDesc.FrontFace.StencilPassOp = D3D11_STENCIL_OP_REPLACE;
+        dsDesc.FrontFace.StencilFunc = D3D11_COMPARISON_ALWAYS;
+        dsDesc.BackFace.StencilFailOp = D3D11_STENCIL_OP_REPLACE;
+        dsDesc.BackFace.StencilDepthFailOp = D3D11_STENCIL_OP_REPLACE;
+        dsDesc.BackFace.StencilPassOp = D3D11_STENCIL_OP_REPLACE;
+        dsDesc.BackFace.StencilFunc = D3D11_COMPARISON_ALWAYS;
+
+        ID3D11Device *device = mRenderer-&gt;getDevice();
+        ID3D11DepthStencilState* dsState = NULL;
+        HRESULT result = device-&gt;CreateDepthStencilState(&amp;dsDesc, &amp;dsState);
+        if (FAILED(result) || !dsState)
+        {
+            ERR(&quot;Unable to create a ID3D11DepthStencilState, HRESULT: 0x%X.&quot;, result);
+            return NULL;
+        }
+
+        mClearDepthStencilStates[dsKey] = dsState;
+
+        return dsState;
+    }
+}
+
+}
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11Clear11h"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/Clear11.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/Clear11.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/Clear11.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,77 @@
</span><ins>+//
+// Copyright (c) 2013 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+
+// Clear11.h: Framebuffer clear utility class.
+
+#ifndef LIBGLESV2_RENDERER_CLEAR11_H_
+#define LIBGLESV2_RENDERER_CLEAR11_H_
+
+#include &quot;libGLESv2/angletypes.h&quot;
+
+namespace gl
+{
+class Framebuffer;
+}
+
+namespace rx
+{
+class Renderer11;
+class RenderTarget11;
+
+class Clear11
+{
+  public:
+    explicit Clear11(Renderer11 *renderer);
+    ~Clear11();
+
+    // Clears the framebuffer with the supplied clear parameters, assumes that the framebuffer is currently applied.
+    void clearFramebuffer(const gl::ClearParameters &amp;clearParams, gl::Framebuffer *frameBuffer);
+
+  private:
+    Renderer11 *mRenderer;
+
+    struct ClearBlendInfo
+    {
+        bool maskChannels[D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT][4];
+    };
+    typedef bool (*ClearBlendInfoComparisonFunction)(const ClearBlendInfo&amp;, const ClearBlendInfo &amp;);
+    typedef std::map&lt;ClearBlendInfo, ID3D11BlendState*, ClearBlendInfoComparisonFunction&gt; ClearBlendStateMap;
+    ClearBlendStateMap mClearBlendStates;
+
+    ID3D11BlendState *getBlendState(const gl::ClearParameters &amp;clearParams, const std::vector&lt;RenderTarget11*&gt;&amp; rts);
+
+    struct ClearShader
+    {
+        ID3D11InputLayout *inputLayout;
+        ID3D11VertexShader *vertexShader;
+        ID3D11PixelShader *pixelShader;
+    };
+    ClearShader mFloatClearShader;
+    ClearShader mUintClearShader;
+    ClearShader mIntClearShader;
+
+    template &lt;unsigned int vsSize, unsigned int psSize&gt;
+    static ClearShader CreateClearShader(ID3D11Device *device, DXGI_FORMAT colorType, const BYTE (&amp;vsByteCode)[vsSize], const BYTE (&amp;psByteCode)[psSize]);
+
+    struct ClearDepthStencilInfo
+    {
+        bool clearDepth;
+        bool clearStencil;
+        UINT8 stencilWriteMask;
+    };
+    typedef bool (*ClearDepthStencilInfoComparisonFunction)(const ClearDepthStencilInfo&amp;, const ClearDepthStencilInfo &amp;);
+    typedef std::map&lt;ClearDepthStencilInfo, ID3D11DepthStencilState*, ClearDepthStencilInfoComparisonFunction&gt; ClearDepthStencilStateMap;
+    ClearDepthStencilStateMap mClearDepthStencilStates;
+
+    ID3D11DepthStencilState *getDepthStencilState(const gl::ClearParameters &amp;clearParams);
+
+    ID3D11Buffer *mVertexBuffer;
+    ID3D11RasterizerState *mRasterizerState;
+};
+
+}
+
+#endif // LIBGLESV2_RENDERER_CLEAR11_H_
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11PixelTransfer11cpp"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/PixelTransfer11.cpp (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/PixelTransfer11.cpp                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/PixelTransfer11.cpp        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,252 @@
</span><ins>+#include &quot;precompiled.h&quot;
+//
+// Copyright (c) 2013 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+
+// PixelTransfer11.cpp:
+//   Implementation for buffer-to-texture and texture-to-buffer copies.
+//   Used to implement pixel transfers from unpack and to pack buffers.
+//
+
+#include &quot;libGLESv2/renderer/d3d11/PixelTransfer11.h&quot;
+#include &quot;libGLESv2/formatutils.h&quot;
+#include &quot;libGLESv2/Texture.h&quot;
+#include &quot;libGLESv2/Buffer.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/Renderer11.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/renderer11_utils.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/formatutils11.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/BufferStorage11.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/TextureStorage11.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/RenderTarget11.h&quot;
+#include &quot;libGLESv2/Context.h&quot;
+
+// Precompiled shaders
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/buffertotexture11_vs.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/buffertotexture11_gs.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/buffertotexture11_ps_4f.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/buffertotexture11_ps_4i.h&quot;
+#include &quot;libGLESv2/renderer/d3d11/shaders/compiled/buffertotexture11_ps_4ui.h&quot;
+
+namespace rx
+{
+
+PixelTransfer11::PixelTransfer11(Renderer11 *renderer)
+    : mRenderer(renderer),
+      mBufferToTextureVS(NULL),
+      mBufferToTextureGS(NULL),
+      mParamsConstantBuffer(NULL),
+      mCopyRasterizerState(NULL),
+      mCopyDepthStencilState(NULL)
+{
+    HRESULT result = S_OK;
+    ID3D11Device *device = mRenderer-&gt;getDevice();
+
+    D3D11_RASTERIZER_DESC rasterDesc;
+    rasterDesc.FillMode = D3D11_FILL_SOLID;
+    rasterDesc.CullMode = D3D11_CULL_NONE;
+    rasterDesc.FrontCounterClockwise = FALSE;
+    rasterDesc.DepthBias = 0;
+    rasterDesc.SlopeScaledDepthBias = 0.0f;
+    rasterDesc.DepthBiasClamp = 0.0f;
+    rasterDesc.DepthClipEnable = TRUE;
+    rasterDesc.ScissorEnable = FALSE;
+    rasterDesc.MultisampleEnable = FALSE;
+    rasterDesc.AntialiasedLineEnable = FALSE;
+
+    result = device-&gt;CreateRasterizerState(&amp;rasterDesc, &amp;mCopyRasterizerState);
+    ASSERT(SUCCEEDED(result));
+
+    D3D11_DEPTH_STENCIL_DESC depthStencilDesc;
+    depthStencilDesc.DepthEnable = true;
+    depthStencilDesc.DepthWriteMask = D3D11_DEPTH_WRITE_MASK_ALL;
+    depthStencilDesc.DepthFunc = D3D11_COMPARISON_ALWAYS;
+    depthStencilDesc.StencilEnable = FALSE;
+    depthStencilDesc.StencilReadMask = D3D11_DEFAULT_STENCIL_READ_MASK;
+    depthStencilDesc.StencilWriteMask = D3D11_DEFAULT_STENCIL_WRITE_MASK;
+    depthStencilDesc.FrontFace.StencilFailOp = D3D11_STENCIL_OP_KEEP;
+    depthStencilDesc.FrontFace.StencilDepthFailOp = D3D11_STENCIL_OP_KEEP;
+    depthStencilDesc.FrontFace.StencilPassOp = D3D11_STENCIL_OP_KEEP;
+    depthStencilDesc.FrontFace.StencilFunc = D3D11_COMPARISON_ALWAYS;
+    depthStencilDesc.BackFace.StencilFailOp = D3D11_STENCIL_OP_KEEP;
+    depthStencilDesc.BackFace.StencilDepthFailOp = D3D11_STENCIL_OP_KEEP;
+    depthStencilDesc.BackFace.StencilPassOp = D3D11_STENCIL_OP_KEEP;
+    depthStencilDesc.BackFace.StencilFunc = D3D11_COMPARISON_ALWAYS;
+
+    result = device-&gt;CreateDepthStencilState(&amp;depthStencilDesc, &amp;mCopyDepthStencilState);
+    ASSERT(SUCCEEDED(result));
+
+    D3D11_BUFFER_DESC constantBufferDesc = { 0 };
+    constantBufferDesc.ByteWidth = rx::roundUp&lt;UINT&gt;(sizeof(CopyShaderParams), 32u);
+    constantBufferDesc.Usage = D3D11_USAGE_DYNAMIC;
+    constantBufferDesc.BindFlags = D3D11_BIND_CONSTANT_BUFFER;
+    constantBufferDesc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE;
+    constantBufferDesc.MiscFlags = 0;
+    constantBufferDesc.StructureByteStride = 0;
+
+    result = device-&gt;CreateBuffer(&amp;constantBufferDesc, NULL, &amp;mParamsConstantBuffer);
+    ASSERT(SUCCEEDED(result));
+    d3d11::SetDebugName(mParamsConstantBuffer, &quot;PixelTransfer11 constant buffer&quot;);
+
+    // init shaders
+    mBufferToTextureVS = d3d11::CompileVS(device, g_VS_BufferToTexture, &quot;BufferToTexture VS&quot;);
+    mBufferToTextureGS = d3d11::CompileGS(device, g_GS_BufferToTexture, &quot;BufferToTexture GS&quot;);
+
+    buildShaderMap();
+
+    StructZero(&amp;mParamsData);
+}
+
+PixelTransfer11::~PixelTransfer11()
+{
+    for (auto shaderMapIt = mBufferToTexturePSMap.begin(); shaderMapIt != mBufferToTexturePSMap.end(); shaderMapIt++)
+    {
+        SafeRelease(shaderMapIt-&gt;second);
+    }
+
+    mBufferToTexturePSMap.clear();
+
+    SafeRelease(mBufferToTextureVS);
+    SafeRelease(mBufferToTextureGS);
+    SafeRelease(mParamsConstantBuffer);
+    SafeRelease(mCopyRasterizerState);
+    SafeRelease(mCopyDepthStencilState);
+}
+
+void PixelTransfer11::setBufferToTextureCopyParams(const gl::Box &amp;destArea, const gl::Extents &amp;destSize, GLenum internalFormat,
+                                                   const gl::PixelUnpackState &amp;unpack, unsigned int offset, CopyShaderParams *parametersOut)
+{
+    StructZero(parametersOut);
+
+    float texelCenterX = 0.5f / static_cast&lt;float&gt;(destSize.width - 1);
+    float texelCenterY = 0.5f / static_cast&lt;float&gt;(destSize.height - 1);
+
+    unsigned int bytesPerPixel = gl::GetPixelBytes(internalFormat, 3);
+    unsigned int alignmentBytes = static_cast&lt;unsigned int&gt;(unpack.alignment);
+    unsigned int alignmentPixels = (alignmentBytes &lt;= bytesPerPixel ? 1 : alignmentBytes / bytesPerPixel);
+
+    parametersOut-&gt;FirstPixelOffset     = offset;
+    parametersOut-&gt;PixelsPerRow         = static_cast&lt;unsigned int&gt;(destArea.width);
+    parametersOut-&gt;RowStride            = roundUp(parametersOut-&gt;PixelsPerRow, alignmentPixels);
+    parametersOut-&gt;RowsPerSlice         = static_cast&lt;unsigned int&gt;(destArea.height);
+    parametersOut-&gt;PositionOffset[0]    = texelCenterX + (destArea.x / float(destSize.width)) * 2.0f - 1.0f;
+    parametersOut-&gt;PositionOffset[1]    = texelCenterY + ((destSize.height - destArea.y - 1) / float(destSize.height)) * 2.0f - 1.0f;
+    parametersOut-&gt;PositionScale[0]     = 2.0f / static_cast&lt;float&gt;(destSize.width);
+    parametersOut-&gt;PositionScale[1]     = -2.0f / static_cast&lt;float&gt;(destSize.height);
+}
+
+bool PixelTransfer11::copyBufferToTexture(const gl::PixelUnpackState &amp;unpack, unsigned int offset, RenderTarget *destRenderTarget,
+                                          GLenum destinationFormat, GLenum sourcePixelsType, const gl::Box &amp;destArea)
+{
+    gl::Extents destSize = destRenderTarget-&gt;getExtents();
+
+    if (destArea.x   &lt; 0 || destArea.x   + destArea.width    &gt; destSize.width    ||
+        destArea.y   &lt; 0 || destArea.y   + destArea.height   &gt; destSize.height   ||
+        destArea.z   &lt; 0 || destArea.z   + destArea.depth    &gt; destSize.depth    )
+    {
+        return false;
+    }
+
+    int clientVersion = mRenderer-&gt;getCurrentClientVersion();
+    const gl::Buffer &amp;sourceBuffer = *unpack.pixelBuffer.get();
+
+    ASSERT(mRenderer-&gt;supportsFastCopyBufferToTexture(destinationFormat));
+
+    ID3D11PixelShader *pixelShader = findBufferToTexturePS(destinationFormat);
+    ASSERT(pixelShader);
+
+    // The SRV must be in the proper read format, which may be different from the destination format
+    // EG: for half float data, we can load full precision floats with implicit conversion
+    GLenum unsizedFormat = gl::GetFormat(destinationFormat, clientVersion);
+    GLenum sourceFormat = gl::GetSizedInternalFormat(unsizedFormat, sourcePixelsType, clientVersion);
+
+    DXGI_FORMAT srvFormat = gl_d3d11::GetSRVFormat(sourceFormat, clientVersion);
+    ASSERT(srvFormat != DXGI_FORMAT_UNKNOWN);
+    BufferStorage11 *bufferStorage11 = BufferStorage11::makeBufferStorage11(sourceBuffer.getStorage());
+    ID3D11ShaderResourceView *bufferSRV = bufferStorage11-&gt;getSRV(srvFormat);
+    ASSERT(bufferSRV != NULL);
+
+    ID3D11RenderTargetView *textureRTV = RenderTarget11::makeRenderTarget11(destRenderTarget)-&gt;getRenderTargetView();
+    ASSERT(textureRTV != NULL);
+
+    CopyShaderParams shaderParams;
+    setBufferToTextureCopyParams(destArea, destSize, sourceFormat, unpack, offset, &amp;shaderParams);
+
+    ID3D11DeviceContext *deviceContext = mRenderer-&gt;getDeviceContext();
+
+    ID3D11ShaderResourceView *nullSRV = NULL;
+    ID3D11Buffer *nullBuffer = NULL;
+    UINT zero = 0;
+
+    // Are we doing a 2D or 3D copy?
+    ID3D11GeometryShader *geometryShader = ((destSize.depth &gt; 1) ? mBufferToTextureGS : NULL);
+
+    deviceContext-&gt;VSSetShader(mBufferToTextureVS, NULL, 0);
+    deviceContext-&gt;GSSetShader(geometryShader, NULL, 0);
+    deviceContext-&gt;PSSetShader(pixelShader, NULL, 0);
+    deviceContext-&gt;PSSetShaderResources(0, 1, &amp;bufferSRV);
+    deviceContext-&gt;IASetInputLayout(NULL);
+    deviceContext-&gt;IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_POINTLIST);
+
+    deviceContext-&gt;IASetVertexBuffers(0, 1, &amp;nullBuffer, &amp;zero, &amp;zero);
+    deviceContext-&gt;OMSetBlendState(NULL, NULL, 0xFFFFFFF);
+    deviceContext-&gt;OMSetDepthStencilState(mCopyDepthStencilState, 0xFFFFFFFF);
+    deviceContext-&gt;RSSetState(mCopyRasterizerState);
+
+    mRenderer-&gt;setOneTimeRenderTarget(textureRTV);
+
+    if (!StructEquals(mParamsData, shaderParams))
+    {
+        d3d11::SetBufferData(deviceContext, mParamsConstantBuffer, shaderParams);
+        mParamsData = shaderParams;
+    }
+
+    deviceContext-&gt;VSSetConstantBuffers(0, 1, &amp;mParamsConstantBuffer);
+
+    // Set the viewport
+    D3D11_VIEWPORT viewport;
+    viewport.TopLeftX = 0;
+    viewport.TopLeftY = 0;
+    viewport.Width = destSize.width;
+    viewport.Height = destSize.height;
+    viewport.MinDepth = 0.0f;
+    viewport.MaxDepth = 1.0f;
+    deviceContext-&gt;RSSetViewports(1, &amp;viewport);
+
+    UINT numPixels = (destArea.width * destArea.height * destArea.depth);
+    deviceContext-&gt;Draw(numPixels, 0);
+
+    // Unbind textures and render targets and vertex buffer
+    deviceContext-&gt;PSSetShaderResources(0, 1, &amp;nullSRV);
+    deviceContext-&gt;VSSetConstantBuffers(0, 1, &amp;nullBuffer);
+
+    mRenderer-&gt;markAllStateDirty();
+
+    return true;
+}
+
+void PixelTransfer11::buildShaderMap()
+{
+    ID3D11Device *device = mRenderer-&gt;getDevice();
+
+    mBufferToTexturePSMap[GL_FLOAT]        = d3d11::CompilePS(device, g_PS_BufferToTexture_4F,  &quot;BufferToTexture RGBA ps&quot;);
+    mBufferToTexturePSMap[GL_INT]          = d3d11::CompilePS(device, g_PS_BufferToTexture_4I,  &quot;BufferToTexture RGBA-I ps&quot;);
+    mBufferToTexturePSMap[GL_UNSIGNED_INT] = d3d11::CompilePS(device, g_PS_BufferToTexture_4UI, &quot;BufferToTexture RGBA-UI ps&quot;);
+}
+
+ID3D11PixelShader *PixelTransfer11::findBufferToTexturePS(GLenum internalFormat) const
+{
+    int clientVersion = mRenderer-&gt;getCurrentClientVersion();
+    GLenum componentType = gl::GetComponentType(internalFormat, clientVersion);
+
+    if (componentType == GL_SIGNED_NORMALIZED || componentType == GL_UNSIGNED_NORMALIZED)
+    {
+        componentType = GL_FLOAT;
+    }
+
+    auto shaderMapIt = mBufferToTexturePSMap.find(componentType);
+    return (shaderMapIt == mBufferToTexturePSMap.end() ? NULL : shaderMapIt-&gt;second);
+}
+
+}
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11PixelTransfer11h"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/PixelTransfer11.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/PixelTransfer11.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/PixelTransfer11.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,80 @@
</span><ins>+//
+// Copyright (c) 2013 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+
+// PixelTransfer11.h:
+//   Buffer-to-Texture and Texture-to-Buffer data transfers.
+//   Used to implement pixel unpack and pixel pack buffers in ES3.
+
+#ifndef LIBGLESV2_PIXELTRANSFER11_H_
+#define LIBGLESV2_PIXELTRANSFER11_H_
+
+namespace gl
+{
+
+class Buffer;
+struct Box;
+struct Extents;
+struct PixelUnpackState;
+
+}
+
+namespace rx
+{
+class Renderer11;
+class RenderTarget;
+
+class PixelTransfer11
+{
+  public:
+    explicit PixelTransfer11(Renderer11 *renderer);
+    ~PixelTransfer11();
+
+    static bool supportsBufferToTextureCopy(GLenum internalFormat);
+
+    // unpack: the source buffer is stored in the unpack state, and buffer strides
+    // offset: the start of the data within the unpack buffer
+    // destRenderTarget: individual slice/layer of a target texture
+    // destinationFormat/sourcePixelsType: determines shaders + shader parameters
+    // destArea: the sub-section of destRenderTarget to copy to
+    bool copyBufferToTexture(const gl::PixelUnpackState &amp;unpack, unsigned int offset, RenderTarget *destRenderTarget,
+                             GLenum destinationFormat, GLenum sourcePixelsType, const gl::Box &amp;destArea);
+
+  private:
+
+    struct CopyShaderParams
+    {
+        unsigned int FirstPixelOffset;
+        unsigned int PixelsPerRow;
+        unsigned int RowStride;
+        unsigned int RowsPerSlice;
+        float PositionOffset[2];
+        float PositionScale[2];
+        int TexLocationOffset[2];
+        int TexLocationScale[2];
+    };
+
+    static void setBufferToTextureCopyParams(const gl::Box &amp;destArea, const gl::Extents &amp;destSize, GLenum internalFormat,
+                                             const gl::PixelUnpackState &amp;unpack, unsigned int offset, CopyShaderParams *parametersOut);
+
+    void buildShaderMap();
+    ID3D11PixelShader *findBufferToTexturePS(GLenum internalFormat) const;
+
+    Renderer11 *mRenderer;
+
+    std::map&lt;GLenum, ID3D11PixelShader *&gt; mBufferToTexturePSMap;
+    ID3D11VertexShader *mBufferToTextureVS;
+    ID3D11GeometryShader *mBufferToTextureGS;
+    ID3D11Buffer *mParamsConstantBuffer;
+    CopyShaderParams mParamsData;
+
+    ID3D11RasterizerState *mCopyRasterizerState;
+    ID3D11DepthStencilState *mCopyDepthStencilState;
+
+};
+
+}
+
+#endif // LIBGLESV2_PIXELTRANSFER11_H_
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11formatutils11cpp"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/formatutils11.cpp (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/formatutils11.cpp                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/formatutils11.cpp        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,1665 @@
</span><ins>+#include &quot;precompiled.h&quot;
+//
+// Copyright (c) 2013 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+
+// formatutils11.cpp: Queries for GL image formats and their translations to D3D11
+// formats.
+
+#include &quot;libGLESv2/renderer/d3d11/formatutils11.h&quot;
+#include &quot;libGLESv2/renderer/generatemip.h&quot;
+#include &quot;libGLESv2/renderer/loadimage.h&quot;
+#include &quot;libGLESv2/renderer/copyimage.h&quot;
+#include &quot;libGLESv2/renderer/Renderer.h&quot;
+#include &quot;libGLESv2/renderer/copyvertex.h&quot;
+
+namespace rx
+{
+
+struct D3D11ES3FormatInfo
+{
+    DXGI_FORMAT mTexFormat;
+    DXGI_FORMAT mSRVFormat;
+    DXGI_FORMAT mRTVFormat;
+    DXGI_FORMAT mDSVFormat;
+
+    D3D11ES3FormatInfo()
+        : mTexFormat(DXGI_FORMAT_UNKNOWN), mDSVFormat(DXGI_FORMAT_UNKNOWN), mRTVFormat(DXGI_FORMAT_UNKNOWN), mSRVFormat(DXGI_FORMAT_UNKNOWN)
+    { }
+
+    D3D11ES3FormatInfo(DXGI_FORMAT texFormat, DXGI_FORMAT srvFormat, DXGI_FORMAT rtvFormat, DXGI_FORMAT dsvFormat)
+        : mTexFormat(texFormat), mDSVFormat(dsvFormat), mRTVFormat(rtvFormat), mSRVFormat(srvFormat)
+    { }
+};
+
+// For sized GL internal formats, there is only one corresponding D3D11 format. This map type allows
+// querying for the DXGI texture formats to use for textures, SRVs, RTVs and DSVs given a GL internal
+// format.
+typedef std::pair&lt;GLenum, D3D11ES3FormatInfo&gt; D3D11ES3FormatPair;
+typedef std::map&lt;GLenum, D3D11ES3FormatInfo&gt; D3D11ES3FormatMap;
+
+static D3D11ES3FormatMap BuildD3D11ES3FormatMap()
+{
+    D3D11ES3FormatMap map;
+
+    //                           | GL internal format  |                  | D3D11 texture format            | D3D11 SRV format               | D3D11 RTV format               | D3D11 DSV format   |
+    map.insert(D3D11ES3FormatPair(GL_NONE,              D3D11ES3FormatInfo(DXGI_FORMAT_UNKNOWN,              DXGI_FORMAT_UNKNOWN,             DXGI_FORMAT_UNKNOWN,             DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_R8,                D3D11ES3FormatInfo(DXGI_FORMAT_R8_UNORM,             DXGI_FORMAT_R8_UNORM,            DXGI_FORMAT_R8_UNORM,            DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_R8_SNORM,          D3D11ES3FormatInfo(DXGI_FORMAT_R8_SNORM,             DXGI_FORMAT_R8_SNORM,            DXGI_FORMAT_UNKNOWN,             DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_RG8,               D3D11ES3FormatInfo(DXGI_FORMAT_R8G8_UNORM,           DXGI_FORMAT_R8G8_UNORM,          DXGI_FORMAT_R8G8_UNORM,          DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_RG8_SNORM,         D3D11ES3FormatInfo(DXGI_FORMAT_R8G8_SNORM,           DXGI_FORMAT_R8G8_SNORM,          DXGI_FORMAT_UNKNOWN,             DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_RGB8,              D3D11ES3FormatInfo(DXGI_FORMAT_R8G8B8A8_UNORM,       DXGI_FORMAT_R8G8B8A8_UNORM,      DXGI_FORMAT_R8G8B8A8_UNORM,      DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_RGB8_SNORM,        D3D11ES3FormatInfo(DXGI_FORMAT_R8G8B8A8_SNORM,       DXGI_FORMAT_R8G8B8A8_SNORM,      DXGI_FORMAT_UNKNOWN,             DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_RGB565,            D3D11ES3FormatInfo(DXGI_FORMAT_R8G8B8A8_UNORM,       DXGI_FORMAT_R8G8B8A8_UNORM,      DXGI_FORMAT_R8G8B8A8_UNORM,      DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_RGBA4,             D3D11ES3FormatInfo(DXGI_FORMAT_R8G8B8A8_UNORM,       DXGI_FORMAT_R8G8B8A8_UNORM,      DXGI_FORMAT_R8G8B8A8_UNORM,      DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_RGB5_A1,           D3D11ES3FormatInfo(DXGI_FORMAT_R8G8B8A8_UNORM,       DXGI_FORMAT_R8G8B8A8_UNORM,      DXGI_FORMAT_R8G8B8A8_UNORM,      DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_RGBA8,             D3D11ES3FormatInfo(DXGI_FORMAT_R8G8B8A8_UNORM,       DXGI_FORMAT_R8G8B8A8_UNORM,      DXGI_FORMAT_R8G8B8A8_UNORM,      DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_RGBA8_SNORM,       D3D11ES3FormatInfo(DXGI_FORMAT_R8G8B8A8_SNORM,       DXGI_FORMAT_R8G8B8A8_SNORM,      DXGI_FORMAT_UNKNOWN,             DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_RGB10_A2,          D3D11ES3FormatInfo(DXGI_FORMAT_R10G10B10A2_UNORM,    DXGI_FORMAT_R10G10B10A2_UNORM,   DXGI_FORMAT_R10G10B10A2_UNORM,   DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_RGB10_A2UI,        D3D11ES3FormatInfo(DXGI_FORMAT_R10G10B10A2_UINT,     DXGI_FORMAT_R10G10B10A2_UINT,    DXGI_FORMAT_R10G10B10A2_UINT,    DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_SRGB8,             D3D11ES3FormatInfo(DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,  DXGI_FORMAT_R8G8B8A8_UNORM_SRGB, DXGI_FORMAT_UNKNOWN,             DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_SRGB8_ALPHA8,      D3D11ES3FormatInfo(DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,  DXGI_FORMAT_R8G8B8A8_UNORM_SRGB, DXGI_FORMAT_R8G8B8A8_UNORM_SRGB, DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_R16F,              D3D11ES3FormatInfo(DXGI_FORMAT_R16_FLOAT,            DXGI_FORMAT_R16_FLOAT,           DXGI_FORMAT_R16_FLOAT,           DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_RG16F,             D3D11ES3FormatInfo(DXGI_FORMAT_R16G16_FLOAT,         DXGI_FORMAT_R16G16_FLOAT,        DXGI_FORMAT_R16G16_FLOAT,        DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_RGB16F,            D3D11ES3FormatInfo(DXGI_FORMAT_R16G16B16A16_FLOAT,   DXGI_FORMAT_R16G16B16A16_FLOAT,  DXGI_FORMAT_R16G16B16A16_FLOAT,  DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_RGBA16F,           D3D11ES3FormatInfo(DXGI_FORMAT_R16G16B16A16_FLOAT,   DXGI_FORMAT_R16G16B16A16_FLOAT,  DXGI_FORMAT_R16G16B16A16_FLOAT,  DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_R32F,              D3D11ES3FormatInfo(DXGI_FORMAT_R32_FLOAT,            DXGI_FORMAT_R32_FLOAT,           DXGI_FORMAT_R32_FLOAT,           DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_RG32F,             D3D11ES3FormatInfo(DXGI_FORMAT_R32G32_FLOAT,         DXGI_FORMAT_R32G32_FLOAT,        DXGI_FORMAT_R32G32_FLOAT,        DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_RGB32F,            D3D11ES3FormatInfo(DXGI_FORMAT_R32G32B32A32_FLOAT,   DXGI_FORMAT_R32G32B32A32_FLOAT,  DXGI_FORMAT_R32G32B32A32_FLOAT,  DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_RGBA32F,           D3D11ES3FormatInfo(DXGI_FORMAT_R32G32B32A32_FLOAT,   DXGI_FORMAT_R32G32B32A32_FLOAT,  DXGI_FORMAT_R32G32B32A32_FLOAT,  DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_R11F_G11F_B10F,    D3D11ES3FormatInfo(DXGI_FORMAT_R11G11B10_FLOAT,      DXGI_FORMAT_R11G11B10_FLOAT,     DXGI_FORMAT_R11G11B10_FLOAT,     DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_RGB9_E5,           D3D11ES3FormatInfo(DXGI_FORMAT_R9G9B9E5_SHAREDEXP,   DXGI_FORMAT_R9G9B9E5_SHAREDEXP,  DXGI_FORMAT_UNKNOWN,             DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_R8I,               D3D11ES3FormatInfo(DXGI_FORMAT_R8_SINT,              DXGI_FORMAT_R8_SINT,             DXGI_FORMAT_R8_SINT,             DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_R8UI,              D3D11ES3FormatInfo(DXGI_FORMAT_R8_UINT,              DXGI_FORMAT_R8_UINT,             DXGI_FORMAT_R8_UINT,             DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_R16I,              D3D11ES3FormatInfo(DXGI_FORMAT_R16_SINT,             DXGI_FORMAT_R16_SINT,            DXGI_FORMAT_R16_SINT,            DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_R16UI,             D3D11ES3FormatInfo(DXGI_FORMAT_R16_UINT,             DXGI_FORMAT_R16_UINT,            DXGI_FORMAT_R16_UINT,            DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_R32I,              D3D11ES3FormatInfo(DXGI_FORMAT_R32_SINT,             DXGI_FORMAT_R32_SINT,            DXGI_FORMAT_R32_SINT,            DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_R32UI,             D3D11ES3FormatInfo(DXGI_FORMAT_R32_UINT,             DXGI_FORMAT_R32_UINT,            DXGI_FORMAT_R32_UINT,            DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_RG8I,              D3D11ES3FormatInfo(DXGI_FORMAT_R8G8_SINT,            DXGI_FORMAT_R8G8_SINT,           DXGI_FORMAT_R8G8_SINT,           DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_RG8UI,             D3D11ES3FormatInfo(DXGI_FORMAT_R8G8_UINT,            DXGI_FORMAT_R8G8_UINT,           DXGI_FORMAT_R8G8_UINT,           DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_RG16I,             D3D11ES3FormatInfo(DXGI_FORMAT_R16G16_SINT,          DXGI_FORMAT_R16G16_SINT,         DXGI_FORMAT_R16G16_SINT,         DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_RG16UI,            D3D11ES3FormatInfo(DXGI_FORMAT_R16G16_UINT,          DXGI_FORMAT_R16G16_UINT,         DXGI_FORMAT_R16G16_UINT,         DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_RG32I,             D3D11ES3FormatInfo(DXGI_FORMAT_R32G32_SINT,          DXGI_FORMAT_R32G32_SINT,         DXGI_FORMAT_R32G32_SINT,         DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_RG32UI,            D3D11ES3FormatInfo(DXGI_FORMAT_R32G32_UINT,          DXGI_FORMAT_R32G32_UINT,         DXGI_FORMAT_R32G32_UINT,         DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_RGB8I,             D3D11ES3FormatInfo(DXGI_FORMAT_R8G8B8A8_SINT,        DXGI_FORMAT_R8G8B8A8_SINT,       DXGI_FORMAT_R8G8B8A8_SINT,       DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_RGB8UI,            D3D11ES3FormatInfo(DXGI_FORMAT_R8G8B8A8_UINT,        DXGI_FORMAT_R8G8B8A8_UINT,       DXGI_FORMAT_R8G8B8A8_UINT,       DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_RGB16I,            D3D11ES3FormatInfo(DXGI_FORMAT_R16G16B16A16_SINT,    DXGI_FORMAT_R16G16B16A16_SINT,   DXGI_FORMAT_R16G16B16A16_SINT,   DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_RGB16UI,           D3D11ES3FormatInfo(DXGI_FORMAT_R16G16B16A16_UINT,    DXGI_FORMAT_R16G16B16A16_UINT,   DXGI_FORMAT_R16G16B16A16_UINT,   DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_RGB32I,            D3D11ES3FormatInfo(DXGI_FORMAT_R32G32B32A32_SINT,    DXGI_FORMAT_R32G32B32A32_SINT,   DXGI_FORMAT_R32G32B32A32_SINT,   DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_RGB32UI,           D3D11ES3FormatInfo(DXGI_FORMAT_R32G32B32A32_UINT,    DXGI_FORMAT_R32G32B32A32_UINT,   DXGI_FORMAT_R32G32B32A32_UINT,   DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_RGBA8I,            D3D11ES3FormatInfo(DXGI_FORMAT_R8G8B8A8_SINT,        DXGI_FORMAT_R8G8B8A8_SINT,       DXGI_FORMAT_R8G8B8A8_SINT,       DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_RGBA8UI,           D3D11ES3FormatInfo(DXGI_FORMAT_R8G8B8A8_UINT,        DXGI_FORMAT_R8G8B8A8_UINT,       DXGI_FORMAT_R8G8B8A8_UINT,       DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_RGBA16I,           D3D11ES3FormatInfo(DXGI_FORMAT_R16G16B16A16_SINT,    DXGI_FORMAT_R16G16B16A16_SINT,   DXGI_FORMAT_R16G16B16A16_SINT,   DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_RGBA16UI,          D3D11ES3FormatInfo(DXGI_FORMAT_R16G16B16A16_UINT,    DXGI_FORMAT_R16G16B16A16_UINT,   DXGI_FORMAT_R16G16B16A16_UINT,   DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_RGBA32I,           D3D11ES3FormatInfo(DXGI_FORMAT_R32G32B32A32_SINT,    DXGI_FORMAT_R32G32B32A32_SINT,   DXGI_FORMAT_R32G32B32A32_SINT,   DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_RGBA32UI,          D3D11ES3FormatInfo(DXGI_FORMAT_R32G32B32A32_UINT,    DXGI_FORMAT_R32G32B32A32_UINT,   DXGI_FORMAT_R32G32B32A32_UINT,   DXGI_FORMAT_UNKNOWN)));
+
+    // Unsized formats, TODO: Are types of float and half float allowed for the unsized types? Would it change the DXGI format?
+    map.insert(D3D11ES3FormatPair(GL_ALPHA,             D3D11ES3FormatInfo(DXGI_FORMAT_A8_UNORM,             DXGI_FORMAT_A8_UNORM,            DXGI_FORMAT_A8_UNORM,            DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_LUMINANCE,         D3D11ES3FormatInfo(DXGI_FORMAT_R8G8B8A8_UNORM,       DXGI_FORMAT_R8G8B8A8_UNORM,      DXGI_FORMAT_R8G8B8A8_UNORM,      DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_LUMINANCE_ALPHA,   D3D11ES3FormatInfo(DXGI_FORMAT_R8G8B8A8_UNORM,       DXGI_FORMAT_R8G8B8A8_UNORM,      DXGI_FORMAT_R8G8B8A8_UNORM,      DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_RGB,               D3D11ES3FormatInfo(DXGI_FORMAT_R8G8B8A8_UNORM,       DXGI_FORMAT_R8G8B8A8_UNORM,      DXGI_FORMAT_R8G8B8A8_UNORM,      DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_RGBA,              D3D11ES3FormatInfo(DXGI_FORMAT_R8G8B8A8_UNORM,       DXGI_FORMAT_R8G8B8A8_UNORM,      DXGI_FORMAT_R8G8B8A8_UNORM,      DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_BGRA_EXT,          D3D11ES3FormatInfo(DXGI_FORMAT_B8G8R8A8_UNORM,       DXGI_FORMAT_B8G8R8A8_UNORM,      DXGI_FORMAT_B8G8R8A8_UNORM,      DXGI_FORMAT_UNKNOWN)));
+
+    // From GL_EXT_texture_storage
+    //                           | GL internal format       |                  | D3D11 texture format          | D3D11 SRV format                    | D3D11 RTV format              | D3D11 DSV format               |
+    map.insert(D3D11ES3FormatPair(GL_ALPHA8_EXT,             D3D11ES3FormatInfo(DXGI_FORMAT_A8_UNORM,           DXGI_FORMAT_A8_UNORM,                 DXGI_FORMAT_A8_UNORM,           DXGI_FORMAT_UNKNOWN             )));
+    map.insert(D3D11ES3FormatPair(GL_LUMINANCE8_EXT,         D3D11ES3FormatInfo(DXGI_FORMAT_R8G8B8A8_UNORM,     DXGI_FORMAT_R8G8B8A8_UNORM,           DXGI_FORMAT_R8G8B8A8_UNORM,     DXGI_FORMAT_UNKNOWN             )));
+    map.insert(D3D11ES3FormatPair(GL_ALPHA32F_EXT,           D3D11ES3FormatInfo(DXGI_FORMAT_R32G32B32A32_FLOAT, DXGI_FORMAT_R32G32B32A32_FLOAT,       DXGI_FORMAT_R32G32B32A32_FLOAT, DXGI_FORMAT_UNKNOWN             )));
+    map.insert(D3D11ES3FormatPair(GL_LUMINANCE32F_EXT,       D3D11ES3FormatInfo(DXGI_FORMAT_R32G32B32A32_FLOAT, DXGI_FORMAT_R32G32B32A32_FLOAT,       DXGI_FORMAT_R32G32B32A32_FLOAT, DXGI_FORMAT_UNKNOWN             )));
+    map.insert(D3D11ES3FormatPair(GL_ALPHA16F_EXT,           D3D11ES3FormatInfo(DXGI_FORMAT_R16G16B16A16_FLOAT, DXGI_FORMAT_R16G16B16A16_FLOAT,       DXGI_FORMAT_R16G16B16A16_FLOAT, DXGI_FORMAT_UNKNOWN             )));
+    map.insert(D3D11ES3FormatPair(GL_LUMINANCE16F_EXT,       D3D11ES3FormatInfo(DXGI_FORMAT_UNKNOWN,            DXGI_FORMAT_UNKNOWN,                  DXGI_FORMAT_UNKNOWN,            DXGI_FORMAT_UNKNOWN             )));
+    map.insert(D3D11ES3FormatPair(GL_LUMINANCE8_ALPHA8_EXT,  D3D11ES3FormatInfo(DXGI_FORMAT_R8G8B8A8_UNORM,     DXGI_FORMAT_R8G8B8A8_UNORM,           DXGI_FORMAT_R8G8B8A8_UNORM,     DXGI_FORMAT_UNKNOWN             )));
+    map.insert(D3D11ES3FormatPair(GL_LUMINANCE_ALPHA32F_EXT, D3D11ES3FormatInfo(DXGI_FORMAT_R32G32B32A32_FLOAT, DXGI_FORMAT_R32G32B32A32_FLOAT,       DXGI_FORMAT_R32G32B32A32_FLOAT, DXGI_FORMAT_UNKNOWN             )));
+    map.insert(D3D11ES3FormatPair(GL_LUMINANCE_ALPHA16F_EXT, D3D11ES3FormatInfo(DXGI_FORMAT_R16G16B16A16_FLOAT, DXGI_FORMAT_R16G16B16A16_FLOAT,       DXGI_FORMAT_R16G16B16A16_FLOAT, DXGI_FORMAT_UNKNOWN             )));
+    map.insert(D3D11ES3FormatPair(GL_BGRA8_EXT,              D3D11ES3FormatInfo(DXGI_FORMAT_B8G8R8A8_UNORM,     DXGI_FORMAT_B8G8R8A8_UNORM,           DXGI_FORMAT_B8G8R8A8_UNORM,     DXGI_FORMAT_UNKNOWN             )));
+    map.insert(D3D11ES3FormatPair(GL_BGRA4_ANGLEX,           D3D11ES3FormatInfo(DXGI_FORMAT_B8G8R8A8_UNORM,     DXGI_FORMAT_B8G8R8A8_UNORM,           DXGI_FORMAT_B8G8R8A8_UNORM,     DXGI_FORMAT_UNKNOWN             )));
+    map.insert(D3D11ES3FormatPair(GL_BGR5_A1_ANGLEX,         D3D11ES3FormatInfo(DXGI_FORMAT_B8G8R8A8_UNORM,     DXGI_FORMAT_B8G8R8A8_UNORM,           DXGI_FORMAT_B8G8R8A8_UNORM,     DXGI_FORMAT_UNKNOWN             )));
+
+    // Depth stencil formats
+    map.insert(D3D11ES3FormatPair(GL_DEPTH_COMPONENT16,     D3D11ES3FormatInfo(DXGI_FORMAT_R16_TYPELESS,        DXGI_FORMAT_R16_UNORM,                DXGI_FORMAT_UNKNOWN,            DXGI_FORMAT_D16_UNORM           )));
+    map.insert(D3D11ES3FormatPair(GL_DEPTH_COMPONENT24,     D3D11ES3FormatInfo(DXGI_FORMAT_R24G8_TYPELESS,      DXGI_FORMAT_R24_UNORM_X8_TYPELESS,    DXGI_FORMAT_UNKNOWN,            DXGI_FORMAT_D24_UNORM_S8_UINT   )));
+    map.insert(D3D11ES3FormatPair(GL_DEPTH_COMPONENT32F,    D3D11ES3FormatInfo(DXGI_FORMAT_R32_TYPELESS,        DXGI_FORMAT_R32_FLOAT,                DXGI_FORMAT_UNKNOWN,            DXGI_FORMAT_D32_FLOAT           )));
+    map.insert(D3D11ES3FormatPair(GL_DEPTH24_STENCIL8,      D3D11ES3FormatInfo(DXGI_FORMAT_R24G8_TYPELESS,      DXGI_FORMAT_R24_UNORM_X8_TYPELESS,    DXGI_FORMAT_UNKNOWN,            DXGI_FORMAT_D24_UNORM_S8_UINT   )));
+    map.insert(D3D11ES3FormatPair(GL_DEPTH32F_STENCIL8,     D3D11ES3FormatInfo(DXGI_FORMAT_R32G8X24_TYPELESS,   DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS, DXGI_FORMAT_UNKNOWN,            DXGI_FORMAT_D32_FLOAT_S8X24_UINT)));
+    map.insert(D3D11ES3FormatPair(GL_STENCIL_INDEX8,        D3D11ES3FormatInfo(DXGI_FORMAT_R24G8_TYPELESS,      DXGI_FORMAT_X24_TYPELESS_G8_UINT,     DXGI_FORMAT_UNKNOWN,            DXGI_FORMAT_D24_UNORM_S8_UINT   )));
+
+    // From GL_ANGLE_depth_texture
+    map.insert(D3D11ES3FormatPair(GL_DEPTH_COMPONENT32_OES, D3D11ES3FormatInfo(DXGI_FORMAT_R24G8_TYPELESS,      DXGI_FORMAT_R24_UNORM_X8_TYPELESS,    DXGI_FORMAT_UNKNOWN,             DXGI_FORMAT_D24_UNORM_S8_UINT  )));
+
+    // Compressed formats, From ES 3.0.1 spec, table 3.16
+    //                           | GL internal format                          |                  | D3D11 texture format | D3D11 SRV format     | D3D11 RTV format   | D3D11 DSV format  |
+    map.insert(D3D11ES3FormatPair(GL_COMPRESSED_R11_EAC,                        D3D11ES3FormatInfo(DXGI_FORMAT_UNKNOWN,   DXGI_FORMAT_UNKNOWN,   DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_COMPRESSED_SIGNED_R11_EAC,                 D3D11ES3FormatInfo(DXGI_FORMAT_UNKNOWN,   DXGI_FORMAT_UNKNOWN,   DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_COMPRESSED_RG11_EAC,                       D3D11ES3FormatInfo(DXGI_FORMAT_UNKNOWN,   DXGI_FORMAT_UNKNOWN,   DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_COMPRESSED_SIGNED_RG11_EAC,                D3D11ES3FormatInfo(DXGI_FORMAT_UNKNOWN,   DXGI_FORMAT_UNKNOWN,   DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_COMPRESSED_RGB8_ETC2,                      D3D11ES3FormatInfo(DXGI_FORMAT_UNKNOWN,   DXGI_FORMAT_UNKNOWN,   DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_COMPRESSED_SRGB8_ETC2,                     D3D11ES3FormatInfo(DXGI_FORMAT_UNKNOWN,   DXGI_FORMAT_UNKNOWN,   DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,  D3D11ES3FormatInfo(DXGI_FORMAT_UNKNOWN,   DXGI_FORMAT_UNKNOWN,   DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2, D3D11ES3FormatInfo(DXGI_FORMAT_UNKNOWN,   DXGI_FORMAT_UNKNOWN,   DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_COMPRESSED_RGBA8_ETC2_EAC,                 D3D11ES3FormatInfo(DXGI_FORMAT_UNKNOWN,   DXGI_FORMAT_UNKNOWN,   DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,          D3D11ES3FormatInfo(DXGI_FORMAT_UNKNOWN,   DXGI_FORMAT_UNKNOWN,   DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN)));
+
+    // From GL_EXT_texture_compression_dxt1
+    map.insert(D3D11ES3FormatPair(GL_COMPRESSED_RGB_S3TC_DXT1_EXT,              D3D11ES3FormatInfo(DXGI_FORMAT_BC1_UNORM, DXGI_FORMAT_BC1_UNORM, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN)));
+    map.insert(D3D11ES3FormatPair(GL_COMPRESSED_RGBA_S3TC_DXT1_EXT,             D3D11ES3FormatInfo(DXGI_FORMAT_BC1_UNORM, DXGI_FORMAT_BC1_UNORM, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN)));
+
+    // From GL_ANGLE_texture_compression_dxt3
+    map.insert(D3D11ES3FormatPair(GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE,           D3D11ES3FormatInfo(DXGI_FORMAT_BC2_UNORM, DXGI_FORMAT_BC2_UNORM, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN)));
+
+    // From GL_ANGLE_texture_compression_dxt5
+    map.insert(D3D11ES3FormatPair(GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE,           D3D11ES3FormatInfo(DXGI_FORMAT_BC3_UNORM, DXGI_FORMAT_BC3_UNORM, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN)));
+
+    return map;
+}
+
+static bool GetD3D11ES3FormatInfo(GLenum internalFormat, GLuint clientVersion, D3D11ES3FormatInfo *outFormatInfo)
+{
+    static const D3D11ES3FormatMap formatMap = BuildD3D11ES3FormatMap();
+    D3D11ES3FormatMap::const_iterator iter = formatMap.find(internalFormat);
+    if (iter != formatMap.end())
+    {
+        if (outFormatInfo)
+        {
+            *outFormatInfo = iter-&gt;second;
+        }
+        return true;
+    }
+    else
+    {
+        return false;
+    }
+}
+
+// ES3 image loading functions vary based on the internal format and data type given,
+// this map type determines the loading function from the internal format and type supplied
+// to glTex*Image*D and the destination DXGI_FORMAT. Source formats and types are taken from
+// Tables 3.2 and 3.3 of the ES 3 spec.
+typedef std::pair&lt;GLenum, GLenum&gt; InternalFormatTypePair;
+typedef std::pair&lt;InternalFormatTypePair, LoadImageFunction&gt; D3D11LoadFunctionPair;
+typedef std::map&lt;InternalFormatTypePair, LoadImageFunction&gt; D3D11LoadFunctionMap;
+
+static void UnimplementedLoadFunction(int width, int height, int depth,
+                                      const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                                      void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    UNIMPLEMENTED();
+}
+
+static void UnreachableLoadFunction(int width, int height, int depth,
+                                    const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                                    void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    UNREACHABLE();
+}
+
+// A helper function to insert data into the D3D11LoadFunctionMap with fewer characters.
+static inline void insertLoadFunction(D3D11LoadFunctionMap *map, GLenum internalFormat, GLenum type,
+                                      LoadImageFunction loadFunc)
+{
+    map-&gt;insert(D3D11LoadFunctionPair(InternalFormatTypePair(internalFormat, type), loadFunc));
+}
+
+D3D11LoadFunctionMap buildD3D11LoadFunctionMap()
+{
+    D3D11LoadFunctionMap map;
+
+    //                      | Internal format      | Type                             | Load function                       |
+    insertLoadFunction(&amp;map, GL_RGBA8,              GL_UNSIGNED_BYTE,                  loadToNative&lt;GLubyte, 4&gt;             );
+    insertLoadFunction(&amp;map, GL_RGB5_A1,            GL_UNSIGNED_BYTE,                  loadToNative&lt;GLubyte, 4&gt;             );
+    insertLoadFunction(&amp;map, GL_RGBA4,              GL_UNSIGNED_BYTE,                  loadToNative&lt;GLubyte, 4&gt;             );
+    insertLoadFunction(&amp;map, GL_SRGB8_ALPHA8,       GL_UNSIGNED_BYTE,                  loadToNative&lt;GLubyte, 4&gt;             );
+    insertLoadFunction(&amp;map, GL_RGBA8_SNORM,        GL_BYTE,                           loadToNative&lt;GLbyte, 4&gt;              );
+    insertLoadFunction(&amp;map, GL_RGBA4,              GL_UNSIGNED_SHORT_4_4_4_4,         loadRGBA4444DataToRGBA               );
+    insertLoadFunction(&amp;map, GL_RGB10_A2,           GL_UNSIGNED_INT_2_10_10_10_REV,    loadToNative&lt;GLuint, 1&gt;              );
+    insertLoadFunction(&amp;map, GL_RGB5_A1,            GL_UNSIGNED_SHORT_5_5_5_1,         loadRGBA5551DataToRGBA               );
+    insertLoadFunction(&amp;map, GL_RGB5_A1,            GL_UNSIGNED_INT_2_10_10_10_REV,    loadRGBA2101010ToRGBA                );
+    insertLoadFunction(&amp;map, GL_RGBA16F,            GL_HALF_FLOAT,                     loadToNative&lt;GLhalf, 4&gt;              );
+    insertLoadFunction(&amp;map, GL_RGBA32F,            GL_FLOAT,                          loadToNative&lt;GLfloat, 4&gt;             );
+    insertLoadFunction(&amp;map, GL_RGBA16F,            GL_FLOAT,                          loadFloatDataToHalfFloat&lt;4&gt;          );
+    insertLoadFunction(&amp;map, GL_RGBA8UI,            GL_UNSIGNED_BYTE,                  loadToNative&lt;GLubyte, 4&gt;             );
+    insertLoadFunction(&amp;map, GL_RGBA8I,             GL_BYTE,                           loadToNative&lt;GLbyte, 4&gt;              );
+    insertLoadFunction(&amp;map, GL_RGBA16UI,           GL_UNSIGNED_SHORT,                 loadToNative&lt;GLushort, 4&gt;            );
+    insertLoadFunction(&amp;map, GL_RGBA16I,            GL_SHORT,                          loadToNative&lt;GLshort, 4&gt;             );
+    insertLoadFunction(&amp;map, GL_RGBA32UI,           GL_UNSIGNED_INT,                   loadToNative&lt;GLuint, 4&gt;              );
+    insertLoadFunction(&amp;map, GL_RGBA32I,            GL_INT,                            loadToNative&lt;GLint, 4&gt;               );
+    insertLoadFunction(&amp;map, GL_RGB10_A2UI,         GL_UNSIGNED_INT_2_10_10_10_REV,    loadToNative&lt;GLuint, 1&gt;              );
+    insertLoadFunction(&amp;map, GL_RGB8,               GL_UNSIGNED_BYTE,                  loadRGBUByteDataToRGBA               );
+    insertLoadFunction(&amp;map, GL_RGB565,             GL_UNSIGNED_BYTE,                  loadToNative3To4&lt;GLubyte, 0xFF&gt;      );
+    insertLoadFunction(&amp;map, GL_SRGB8,              GL_UNSIGNED_BYTE,                  loadToNative3To4&lt;GLubyte, 0xFF&gt;      );
+    insertLoadFunction(&amp;map, GL_RGB8_SNORM,         GL_BYTE,                           loadRGBSByteDataToRGBA               );
+    insertLoadFunction(&amp;map, GL_RGB565,             GL_UNSIGNED_SHORT_5_6_5,           loadRGB565DataToRGBA                 );
+    insertLoadFunction(&amp;map, GL_R11F_G11F_B10F,     GL_UNSIGNED_INT_10F_11F_11F_REV,   loadToNative&lt;GLuint, 1&gt;              );
+    insertLoadFunction(&amp;map, GL_RGB9_E5,            GL_UNSIGNED_INT_5_9_9_9_REV,       loadToNative&lt;GLuint, 1&gt;              );
+    insertLoadFunction(&amp;map, GL_RGB16F,             GL_HALF_FLOAT,                     loadToNative3To4&lt;GLhalf, gl::Float16One&gt;);
+    insertLoadFunction(&amp;map, GL_R11F_G11F_B10F,     GL_HALF_FLOAT,                     loadRGBHalfFloatDataTo111110Float    );
+    insertLoadFunction(&amp;map, GL_RGB9_E5,            GL_HALF_FLOAT,                     loadRGBHalfFloatDataTo999E5          );
+    insertLoadFunction(&amp;map, GL_RGB32F,             GL_FLOAT,                          loadToNative3To4&lt;GLfloat, gl::Float32One&gt;);
+    insertLoadFunction(&amp;map, GL_RGB16F,             GL_FLOAT,                          loadFloatRGBDataToHalfFloatRGBA      );
+    insertLoadFunction(&amp;map, GL_R11F_G11F_B10F,     GL_FLOAT,                          loadRGBFloatDataTo111110Float        );
+    insertLoadFunction(&amp;map, GL_RGB9_E5,            GL_FLOAT,                          loadRGBFloatDataTo999E5              );
+    insertLoadFunction(&amp;map, GL_RGB8UI,             GL_UNSIGNED_BYTE,                  loadToNative3To4&lt;GLubyte, 0x01&gt;      );
+    insertLoadFunction(&amp;map, GL_RGB8I,              GL_BYTE,                           loadToNative3To4&lt;GLbyte, 0x01&gt;       );
+    insertLoadFunction(&amp;map, GL_RGB16UI,            GL_UNSIGNED_SHORT,                 loadToNative3To4&lt;GLushort, 0x0001&gt;   );
+    insertLoadFunction(&amp;map, GL_RGB16I,             GL_SHORT,                          loadToNative3To4&lt;GLshort, 0x0001&gt;    );
+    insertLoadFunction(&amp;map, GL_RGB32UI,            GL_UNSIGNED_INT,                   loadToNative3To4&lt;GLuint, 0x00000001&gt; );
+    insertLoadFunction(&amp;map, GL_RGB32I,             GL_INT,                            loadToNative3To4&lt;GLint, 0x00000001&gt;  );
+    insertLoadFunction(&amp;map, GL_RG8,                GL_UNSIGNED_BYTE,                  loadToNative&lt;GLubyte, 2&gt;             );
+    insertLoadFunction(&amp;map, GL_RG8_SNORM,          GL_BYTE,                           loadToNative&lt;GLbyte, 2&gt;              );
+    insertLoadFunction(&amp;map, GL_RG16F,              GL_HALF_FLOAT,                     loadToNative&lt;GLhalf, 2&gt;              );
+    insertLoadFunction(&amp;map, GL_RG32F,              GL_FLOAT,                          loadToNative&lt;GLfloat, 2&gt;             );
+    insertLoadFunction(&amp;map, GL_RG16F,              GL_FLOAT,                          loadFloatDataToHalfFloat&lt;2&gt;          );
+    insertLoadFunction(&amp;map, GL_RG8UI,              GL_UNSIGNED_BYTE,                  loadToNative&lt;GLubyte, 2&gt;             );
+    insertLoadFunction(&amp;map, GL_RG8I,               GL_BYTE,                           loadToNative&lt;GLbyte, 2&gt;              );
+    insertLoadFunction(&amp;map, GL_RG16UI,             GL_UNSIGNED_SHORT,                 loadToNative&lt;GLushort, 2&gt;            );
+    insertLoadFunction(&amp;map, GL_RG16I,              GL_SHORT,                          loadToNative&lt;GLshort, 2&gt;             );
+    insertLoadFunction(&amp;map, GL_RG32UI,             GL_UNSIGNED_INT,                   loadToNative&lt;GLuint, 2&gt;              );
+    insertLoadFunction(&amp;map, GL_RG32I,              GL_INT,                            loadToNative&lt;GLint, 2&gt;               );
+    insertLoadFunction(&amp;map, GL_R8,                 GL_UNSIGNED_BYTE,                  loadToNative&lt;GLubyte, 1&gt;             );
+    insertLoadFunction(&amp;map, GL_R8_SNORM,           GL_BYTE,                           loadToNative&lt;GLbyte, 1&gt;              );
+    insertLoadFunction(&amp;map, GL_R16F,               GL_HALF_FLOAT,                     loadToNative&lt;GLhalf, 1&gt;              );
+    insertLoadFunction(&amp;map, GL_R32F,               GL_FLOAT,                          loadToNative&lt;GLfloat, 1&gt;             );
+    insertLoadFunction(&amp;map, GL_R16F,               GL_FLOAT,                          loadFloatDataToHalfFloat&lt;1&gt;          );
+    insertLoadFunction(&amp;map, GL_R8UI,               GL_UNSIGNED_BYTE,                  loadToNative&lt;GLubyte, 1&gt;             );
+    insertLoadFunction(&amp;map, GL_R8I,                GL_BYTE,                           loadToNative&lt;GLbyte, 1&gt;              );
+    insertLoadFunction(&amp;map, GL_R16UI,              GL_UNSIGNED_SHORT,                 loadToNative&lt;GLushort, 1&gt;            );
+    insertLoadFunction(&amp;map, GL_R16I,               GL_SHORT,                          loadToNative&lt;GLshort, 1&gt;             );
+    insertLoadFunction(&amp;map, GL_R32UI,              GL_UNSIGNED_INT,                   loadToNative&lt;GLuint, 1&gt;              );
+    insertLoadFunction(&amp;map, GL_R32I,               GL_INT,                            loadToNative&lt;GLint, 1&gt;               );
+    insertLoadFunction(&amp;map, GL_DEPTH_COMPONENT16,  GL_UNSIGNED_SHORT,                 loadToNative&lt;GLushort, 1&gt;            );
+    insertLoadFunction(&amp;map, GL_DEPTH_COMPONENT24,  GL_UNSIGNED_INT,                   loadG8R24DataToR24G8                 );
+    insertLoadFunction(&amp;map, GL_DEPTH_COMPONENT16,  GL_UNSIGNED_INT,                   loadUintDataToUshort                 );
+    insertLoadFunction(&amp;map, GL_DEPTH_COMPONENT32F, GL_FLOAT,                          loadToNative&lt;GLfloat, 1&gt;             );
+    insertLoadFunction(&amp;map, GL_DEPTH24_STENCIL8,   GL_UNSIGNED_INT_24_8,              loadG8R24DataToR24G8                 );
+    insertLoadFunction(&amp;map, GL_DEPTH32F_STENCIL8,  GL_FLOAT_32_UNSIGNED_INT_24_8_REV, loadToNative&lt;GLuint, 2&gt;              );
+
+    // Unsized formats
+    // Load functions are unreachable because they are converted to sized internal formats based on
+    // the format and type before loading takes place.
+    insertLoadFunction(&amp;map, GL_RGBA,               GL_UNSIGNED_BYTE,                  UnreachableLoadFunction              );
+    insertLoadFunction(&amp;map, GL_RGBA,               GL_UNSIGNED_SHORT_4_4_4_4,         UnreachableLoadFunction              );
+    insertLoadFunction(&amp;map, GL_RGBA,               GL_UNSIGNED_SHORT_5_5_5_1,         UnreachableLoadFunction              );
+    insertLoadFunction(&amp;map, GL_RGB,                GL_UNSIGNED_BYTE,                  UnreachableLoadFunction              );
+    insertLoadFunction(&amp;map, GL_RGB,                GL_UNSIGNED_SHORT_5_6_5,           UnreachableLoadFunction              );
+    insertLoadFunction(&amp;map, GL_LUMINANCE_ALPHA,    GL_UNSIGNED_BYTE,                  UnreachableLoadFunction              );
+    insertLoadFunction(&amp;map, GL_LUMINANCE,          GL_UNSIGNED_BYTE,                  UnreachableLoadFunction              );
+    insertLoadFunction(&amp;map, GL_ALPHA,              GL_UNSIGNED_BYTE,                  UnreachableLoadFunction              );
+
+    // From GL_OES_texture_float
+    insertLoadFunction(&amp;map, GL_LUMINANCE_ALPHA,    GL_FLOAT,                          loadLuminanceAlphaFloatDataToRGBA    );
+    insertLoadFunction(&amp;map, GL_LUMINANCE,          GL_FLOAT,                          loadLuminanceFloatDataToRGB          );
+    insertLoadFunction(&amp;map, GL_ALPHA,              GL_FLOAT,                          loadAlphaFloatDataToRGBA             );
+
+    // From GL_OES_texture_half_float
+    insertLoadFunction(&amp;map, GL_LUMINANCE_ALPHA,    GL_HALF_FLOAT,                     loadLuminanceAlphaHalfFloatDataToRGBA);
+    insertLoadFunction(&amp;map, GL_LUMINANCE,          GL_HALF_FLOAT,                     loadLuminanceHalfFloatDataToRGBA     );
+    insertLoadFunction(&amp;map, GL_ALPHA,              GL_HALF_FLOAT,                     loadAlphaHalfFloatDataToRGBA         );
+
+    // From GL_EXT_texture_storage
+    insertLoadFunction(&amp;map, GL_ALPHA8_EXT,             GL_UNSIGNED_BYTE,              loadToNative&lt;GLubyte, 1&gt;             );
+    insertLoadFunction(&amp;map, GL_LUMINANCE8_EXT,         GL_UNSIGNED_BYTE,              loadLuminanceDataToBGRA              );
+    insertLoadFunction(&amp;map, GL_LUMINANCE8_ALPHA8_EXT,  GL_UNSIGNED_BYTE,              loadLuminanceAlphaDataToBGRA         );
+    insertLoadFunction(&amp;map, GL_ALPHA32F_EXT,           GL_FLOAT,                      loadAlphaFloatDataToRGBA             );
+    insertLoadFunction(&amp;map, GL_LUMINANCE32F_EXT,       GL_FLOAT,                      loadLuminanceFloatDataToRGB          );
+    insertLoadFunction(&amp;map, GL_LUMINANCE_ALPHA32F_EXT, GL_FLOAT,                      loadLuminanceAlphaFloatDataToRGBA    );
+    insertLoadFunction(&amp;map, GL_ALPHA16F_EXT,           GL_HALF_FLOAT,                 loadAlphaHalfFloatDataToRGBA         );
+    insertLoadFunction(&amp;map, GL_LUMINANCE16F_EXT,       GL_HALF_FLOAT,                 loadLuminanceHalfFloatDataToRGBA     );
+    insertLoadFunction(&amp;map, GL_LUMINANCE_ALPHA16F_EXT, GL_HALF_FLOAT,                 loadLuminanceAlphaHalfFloatDataToRGBA);
+
+    insertLoadFunction(&amp;map, GL_BGRA8_EXT,              GL_UNSIGNED_BYTE,                  loadToNative&lt;GLubyte, 4&gt;         );
+    insertLoadFunction(&amp;map, GL_BGRA4_ANGLEX,           GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT, loadRGBA4444DataToRGBA           );
+    insertLoadFunction(&amp;map, GL_BGRA4_ANGLEX,           GL_UNSIGNED_BYTE,                  loadToNative&lt;GLubyte, 4&gt;         );
+    insertLoadFunction(&amp;map, GL_BGR5_A1_ANGLEX,         GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT, loadRGBA5551DataToRGBA           );
+    insertLoadFunction(&amp;map, GL_BGR5_A1_ANGLEX,         GL_UNSIGNED_BYTE,                  loadToNative&lt;GLubyte, 4&gt;         );
+
+    // Compressed formats
+    // From ES 3.0.1 spec, table 3.16
+    //                      | Internal format                             | Type            | Load function                     |
+    insertLoadFunction(&amp;map, GL_COMPRESSED_R11_EAC,                        GL_UNSIGNED_BYTE, UnimplementedLoadFunction          );
+    insertLoadFunction(&amp;map, GL_COMPRESSED_R11_EAC,                        GL_UNSIGNED_BYTE, UnimplementedLoadFunction          );
+    insertLoadFunction(&amp;map, GL_COMPRESSED_SIGNED_R11_EAC,                 GL_UNSIGNED_BYTE, UnimplementedLoadFunction          );
+    insertLoadFunction(&amp;map, GL_COMPRESSED_RG11_EAC,                       GL_UNSIGNED_BYTE, UnimplementedLoadFunction          );
+    insertLoadFunction(&amp;map, GL_COMPRESSED_SIGNED_RG11_EAC,                GL_UNSIGNED_BYTE, UnimplementedLoadFunction          );
+    insertLoadFunction(&amp;map, GL_COMPRESSED_RGB8_ETC2,                      GL_UNSIGNED_BYTE, UnimplementedLoadFunction          );
+    insertLoadFunction(&amp;map, GL_COMPRESSED_SRGB8_ETC2,                     GL_UNSIGNED_BYTE, UnimplementedLoadFunction          );
+    insertLoadFunction(&amp;map, GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,  GL_UNSIGNED_BYTE, UnimplementedLoadFunction          );
+    insertLoadFunction(&amp;map, GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2, GL_UNSIGNED_BYTE, UnimplementedLoadFunction          );
+    insertLoadFunction(&amp;map, GL_COMPRESSED_RGBA8_ETC2_EAC,                 GL_UNSIGNED_BYTE, UnimplementedLoadFunction          );
+    insertLoadFunction(&amp;map, GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,          GL_UNSIGNED_BYTE, UnimplementedLoadFunction          );
+
+    // From GL_EXT_texture_compression_dxt1
+    insertLoadFunction(&amp;map, GL_COMPRESSED_RGB_S3TC_DXT1_EXT,              GL_UNSIGNED_BYTE, loadCompressedBlockDataToNative&lt;4, 4,  8&gt;);
+    insertLoadFunction(&amp;map, GL_COMPRESSED_RGBA_S3TC_DXT1_EXT,             GL_UNSIGNED_BYTE, loadCompressedBlockDataToNative&lt;4, 4,  8&gt;);
+
+    // From GL_ANGLE_texture_compression_dxt3
+    insertLoadFunction(&amp;map, GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE,           GL_UNSIGNED_BYTE, loadCompressedBlockDataToNative&lt;4, 4, 16&gt;);
+
+    // From GL_ANGLE_texture_compression_dxt5
+    insertLoadFunction(&amp;map, GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE,           GL_UNSIGNED_BYTE, loadCompressedBlockDataToNative&lt;4, 4, 16&gt;);
+
+    return map;
+}
+
+struct D3D11ES2FormatInfo
+{
+    DXGI_FORMAT mTexFormat;
+    DXGI_FORMAT mSRVFormat;
+    DXGI_FORMAT mRTVFormat;
+    DXGI_FORMAT mDSVFormat;
+
+    LoadImageFunction mLoadImageFunction;
+
+    D3D11ES2FormatInfo()
+        : mTexFormat(DXGI_FORMAT_UNKNOWN), mDSVFormat(DXGI_FORMAT_UNKNOWN), mRTVFormat(DXGI_FORMAT_UNKNOWN),
+        mSRVFormat(DXGI_FORMAT_UNKNOWN), mLoadImageFunction(NULL)
+    { }
+
+    D3D11ES2FormatInfo(DXGI_FORMAT texFormat, DXGI_FORMAT srvFormat, DXGI_FORMAT rtvFormat, DXGI_FORMAT dsvFormat,
+        LoadImageFunction loadFunc)
+        : mTexFormat(texFormat), mDSVFormat(dsvFormat), mRTVFormat(rtvFormat), mSRVFormat(srvFormat),
+        mLoadImageFunction(loadFunc)
+    { }
+};
+
+// ES2 internal formats can map to DXGI formats and loading functions
+typedef std::pair&lt;GLenum, D3D11ES2FormatInfo&gt; D3D11ES2FormatPair;
+typedef std::map&lt;GLenum, D3D11ES2FormatInfo&gt; D3D11ES2FormatMap;
+
+static D3D11ES2FormatMap BuildD3D11ES2FormatMap()
+{
+    D3D11ES2FormatMap map;
+
+    //                           | Internal format                   |                  | Texture format                | SRV format                       | RTV format                    | DSV format                   | Load function                           |
+    map.insert(D3D11ES2FormatPair(GL_NONE,                            D3D11ES2FormatInfo(DXGI_FORMAT_UNKNOWN,            DXGI_FORMAT_UNKNOWN,               DXGI_FORMAT_UNKNOWN,            DXGI_FORMAT_UNKNOWN,           UnreachableLoadFunction                  )));
+    map.insert(D3D11ES2FormatPair(GL_DEPTH_COMPONENT16,               D3D11ES2FormatInfo(DXGI_FORMAT_R16_TYPELESS,       DXGI_FORMAT_R16_UNORM,             DXGI_FORMAT_UNKNOWN,            DXGI_FORMAT_D16_UNORM,         UnreachableLoadFunction                  )));
+    map.insert(D3D11ES2FormatPair(GL_DEPTH_COMPONENT32_OES,           D3D11ES2FormatInfo(DXGI_FORMAT_R32_TYPELESS,       DXGI_FORMAT_R32_FLOAT,             DXGI_FORMAT_UNKNOWN,            DXGI_FORMAT_D32_FLOAT,         UnreachableLoadFunction                  )));
+    map.insert(D3D11ES2FormatPair(GL_DEPTH24_STENCIL8_OES,            D3D11ES2FormatInfo(DXGI_FORMAT_R24G8_TYPELESS,     DXGI_FORMAT_R24_UNORM_X8_TYPELESS, DXGI_FORMAT_UNKNOWN,            DXGI_FORMAT_D24_UNORM_S8_UINT, UnreachableLoadFunction                  )));
+    map.insert(D3D11ES2FormatPair(GL_STENCIL_INDEX8,                  D3D11ES2FormatInfo(DXGI_FORMAT_R24G8_TYPELESS,     DXGI_FORMAT_X24_TYPELESS_G8_UINT,  DXGI_FORMAT_UNKNOWN,            DXGI_FORMAT_D24_UNORM_S8_UINT, UnreachableLoadFunction                  )));
+
+    map.insert(D3D11ES2FormatPair(GL_RGBA32F_EXT,                     D3D11ES2FormatInfo(DXGI_FORMAT_R32G32B32A32_FLOAT, DXGI_FORMAT_R32G32B32A32_FLOAT,    DXGI_FORMAT_R32G32B32A32_FLOAT, DXGI_FORMAT_UNKNOWN,           loadRGBAFloatDataToRGBA                  )));
+    map.insert(D3D11ES2FormatPair(GL_RGB32F_EXT,                      D3D11ES2FormatInfo(DXGI_FORMAT_R32G32B32A32_FLOAT, DXGI_FORMAT_R32G32B32A32_FLOAT,    DXGI_FORMAT_R32G32B32A32_FLOAT, DXGI_FORMAT_UNKNOWN,           loadRGBFloatDataToRGBA                   )));
+    map.insert(D3D11ES2FormatPair(GL_ALPHA32F_EXT,                    D3D11ES2FormatInfo(DXGI_FORMAT_R32G32B32A32_FLOAT, DXGI_FORMAT_R32G32B32A32_FLOAT,    DXGI_FORMAT_R32G32B32A32_FLOAT, DXGI_FORMAT_UNKNOWN,           loadAlphaFloatDataToRGBA                 )));
+    map.insert(D3D11ES2FormatPair(GL_LUMINANCE32F_EXT,                D3D11ES2FormatInfo(DXGI_FORMAT_R32G32B32A32_FLOAT, DXGI_FORMAT_R32G32B32A32_FLOAT,    DXGI_FORMAT_R32G32B32A32_FLOAT, DXGI_FORMAT_UNKNOWN,           loadLuminanceFloatDataToRGBA             )));
+    map.insert(D3D11ES2FormatPair(GL_LUMINANCE_ALPHA32F_EXT,          D3D11ES2FormatInfo(DXGI_FORMAT_R32G32B32A32_FLOAT, DXGI_FORMAT_R32G32B32A32_FLOAT,    DXGI_FORMAT_R32G32B32A32_FLOAT, DXGI_FORMAT_UNKNOWN,           loadLuminanceAlphaFloatDataToRGBA        )));
+
+    map.insert(D3D11ES2FormatPair(GL_RGBA16F_EXT,                     D3D11ES2FormatInfo(DXGI_FORMAT_R16G16B16A16_FLOAT, DXGI_FORMAT_R16G16B16A16_FLOAT,    DXGI_FORMAT_R16G16B16A16_FLOAT, DXGI_FORMAT_UNKNOWN,           loadRGBAHalfFloatDataToRGBA              )));
+    map.insert(D3D11ES2FormatPair(GL_RGB16F_EXT,                      D3D11ES2FormatInfo(DXGI_FORMAT_R16G16B16A16_FLOAT, DXGI_FORMAT_R16G16B16A16_FLOAT,    DXGI_FORMAT_R16G16B16A16_FLOAT, DXGI_FORMAT_UNKNOWN,           loadRGBHalfFloatDataToRGBA               )));
+    map.insert(D3D11ES2FormatPair(GL_ALPHA16F_EXT,                    D3D11ES2FormatInfo(DXGI_FORMAT_R16G16B16A16_FLOAT, DXGI_FORMAT_R16G16B16A16_FLOAT,    DXGI_FORMAT_R16G16B16A16_FLOAT, DXGI_FORMAT_UNKNOWN,           loadAlphaHalfFloatDataToRGBA             )));
+    map.insert(D3D11ES2FormatPair(GL_LUMINANCE16F_EXT,                D3D11ES2FormatInfo(DXGI_FORMAT_R16G16B16A16_FLOAT, DXGI_FORMAT_R16G16B16A16_FLOAT,    DXGI_FORMAT_R16G16B16A16_FLOAT, DXGI_FORMAT_UNKNOWN,           loadLuminanceHalfFloatDataToRGBA         )));
+    map.insert(D3D11ES2FormatPair(GL_LUMINANCE_ALPHA16F_EXT,          D3D11ES2FormatInfo(DXGI_FORMAT_R16G16B16A16_FLOAT, DXGI_FORMAT_R16G16B16A16_FLOAT,    DXGI_FORMAT_R16G16B16A16_FLOAT, DXGI_FORMAT_UNKNOWN,           loadLuminanceAlphaHalfFloatDataToRGBA    )));
+
+    map.insert(D3D11ES2FormatPair(GL_ALPHA8_EXT,                      D3D11ES2FormatInfo(DXGI_FORMAT_A8_UNORM,           DXGI_FORMAT_A8_UNORM,              DXGI_FORMAT_A8_UNORM,           DXGI_FORMAT_UNKNOWN,           loadAlphaDataToNative                    )));
+    map.insert(D3D11ES2FormatPair(GL_LUMINANCE8_EXT,                  D3D11ES2FormatInfo(DXGI_FORMAT_R8G8B8A8_UNORM,     DXGI_FORMAT_R8G8B8A8_UNORM,        DXGI_FORMAT_R8G8B8A8_UNORM,     DXGI_FORMAT_UNKNOWN,           loadLuminanceDataToBGRA                  )));
+    map.insert(D3D11ES2FormatPair(GL_LUMINANCE8_ALPHA8_EXT,           D3D11ES2FormatInfo(DXGI_FORMAT_R8G8B8A8_UNORM,     DXGI_FORMAT_R8G8B8A8_UNORM,        DXGI_FORMAT_R8G8B8A8_UNORM,     DXGI_FORMAT_UNKNOWN,           loadLuminanceAlphaDataToBGRA             )));
+
+    map.insert(D3D11ES2FormatPair(GL_RGB8_OES,                        D3D11ES2FormatInfo(DXGI_FORMAT_R8G8B8A8_UNORM,     DXGI_FORMAT_R8G8B8A8_UNORM,        DXGI_FORMAT_R8G8B8A8_UNORM,     DXGI_FORMAT_UNKNOWN,           loadRGBUByteDataToRGBA                   )));
+    map.insert(D3D11ES2FormatPair(GL_RGB565,                          D3D11ES2FormatInfo(DXGI_FORMAT_R8G8B8A8_UNORM,     DXGI_FORMAT_R8G8B8A8_UNORM,        DXGI_FORMAT_R8G8B8A8_UNORM,     DXGI_FORMAT_UNKNOWN,           loadRGB565DataToRGBA                     )));
+    map.insert(D3D11ES2FormatPair(GL_RGBA8_OES,                       D3D11ES2FormatInfo(DXGI_FORMAT_R8G8B8A8_UNORM,     DXGI_FORMAT_R8G8B8A8_UNORM,        DXGI_FORMAT_R8G8B8A8_UNORM,     DXGI_FORMAT_UNKNOWN,           loadRGBAUByteDataToNative                )));
+    map.insert(D3D11ES2FormatPair(GL_RGBA4,                           D3D11ES2FormatInfo(DXGI_FORMAT_R8G8B8A8_UNORM,     DXGI_FORMAT_R8G8B8A8_UNORM,        DXGI_FORMAT_R8G8B8A8_UNORM,     DXGI_FORMAT_UNKNOWN,           loadRGBA4444DataToRGBA                   )));
+    map.insert(D3D11ES2FormatPair(GL_RGB5_A1,                         D3D11ES2FormatInfo(DXGI_FORMAT_R8G8B8A8_UNORM,     DXGI_FORMAT_R8G8B8A8_UNORM,        DXGI_FORMAT_R8G8B8A8_UNORM,     DXGI_FORMAT_UNKNOWN,           loadRGBA5551DataToRGBA                   )));
+    map.insert(D3D11ES2FormatPair(GL_BGRA8_EXT,                       D3D11ES2FormatInfo(DXGI_FORMAT_B8G8R8A8_UNORM,     DXGI_FORMAT_B8G8R8A8_UNORM,        DXGI_FORMAT_B8G8R8A8_UNORM,     DXGI_FORMAT_UNKNOWN,           loadBGRADataToBGRA                       )));
+    map.insert(D3D11ES2FormatPair(GL_BGRA4_ANGLEX,                    D3D11ES2FormatInfo(DXGI_FORMAT_B8G8R8A8_UNORM,     DXGI_FORMAT_B8G8R8A8_UNORM,        DXGI_FORMAT_B8G8R8A8_UNORM,     DXGI_FORMAT_UNKNOWN,           loadRGBA4444DataToRGBA                   )));
+    map.insert(D3D11ES2FormatPair(GL_BGR5_A1_ANGLEX,                  D3D11ES2FormatInfo(DXGI_FORMAT_B8G8R8A8_UNORM,     DXGI_FORMAT_B8G8R8A8_UNORM,        DXGI_FORMAT_B8G8R8A8_UNORM,     DXGI_FORMAT_UNKNOWN,           loadRGBA5551DataToRGBA                   )));
+
+    // From GL_EXT_texture_rg
+    map.insert(D3D11ES2FormatPair(GL_R8_EXT,                          D3D11ES2FormatInfo(DXGI_FORMAT_R8_UNORM,           DXGI_FORMAT_R8_UNORM,              DXGI_FORMAT_R8_UNORM,           DXGI_FORMAT_UNKNOWN,           loadToNative&lt;GLubyte, 1&gt;                 )));
+    map.insert(D3D11ES2FormatPair(GL_R32F_EXT,                        D3D11ES2FormatInfo(DXGI_FORMAT_R32_FLOAT,          DXGI_FORMAT_R32_FLOAT,             DXGI_FORMAT_R32_FLOAT,          DXGI_FORMAT_UNKNOWN,           loadToNative&lt;GLfloat, 1&gt;                 )));
+    map.insert(D3D11ES2FormatPair(GL_R16F_EXT,                        D3D11ES2FormatInfo(DXGI_FORMAT_R16_FLOAT,          DXGI_FORMAT_R16_FLOAT,             DXGI_FORMAT_R16_FLOAT,          DXGI_FORMAT_UNKNOWN,           loadToNative&lt;GLhalf, 1&gt;                  )));
+    map.insert(D3D11ES2FormatPair(GL_RG8_EXT,                         D3D11ES2FormatInfo(DXGI_FORMAT_R8G8_UNORM,         DXGI_FORMAT_R8G8_UNORM,            DXGI_FORMAT_R8G8_UNORM,         DXGI_FORMAT_UNKNOWN,           loadToNative&lt;GLubyte, 2&gt;                 )));
+    map.insert(D3D11ES2FormatPair(GL_RG32F_EXT,                       D3D11ES2FormatInfo(DXGI_FORMAT_R32G32_FLOAT,       DXGI_FORMAT_R32G32_FLOAT,          DXGI_FORMAT_R32G32_FLOAT,       DXGI_FORMAT_UNKNOWN,           loadToNative&lt;GLfloat, 2&gt;                 )));
+    map.insert(D3D11ES2FormatPair(GL_RG16F_EXT,                       D3D11ES2FormatInfo(DXGI_FORMAT_R16G16_FLOAT,       DXGI_FORMAT_R16G16_FLOAT,          DXGI_FORMAT_R16G16_FLOAT,       DXGI_FORMAT_UNKNOWN,           loadToNative&lt;GLhalf, 2&gt;                  )));
+
+    map.insert(D3D11ES2FormatPair(GL_COMPRESSED_RGB_S3TC_DXT1_EXT,    D3D11ES2FormatInfo(DXGI_FORMAT_BC1_UNORM,          DXGI_FORMAT_BC1_UNORM,             DXGI_FORMAT_UNKNOWN,            DXGI_FORMAT_UNKNOWN,           loadCompressedBlockDataToNative&lt;4, 4,  8&gt;)));
+    map.insert(D3D11ES2FormatPair(GL_COMPRESSED_RGBA_S3TC_DXT1_EXT,   D3D11ES2FormatInfo(DXGI_FORMAT_BC1_UNORM,          DXGI_FORMAT_BC1_UNORM,             DXGI_FORMAT_UNKNOWN,            DXGI_FORMAT_UNKNOWN,           loadCompressedBlockDataToNative&lt;4, 4,  8&gt;)));
+    map.insert(D3D11ES2FormatPair(GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE, D3D11ES2FormatInfo(DXGI_FORMAT_BC2_UNORM,          DXGI_FORMAT_BC2_UNORM,             DXGI_FORMAT_UNKNOWN,            DXGI_FORMAT_UNKNOWN,           loadCompressedBlockDataToNative&lt;4, 4, 16&gt;)));
+    map.insert(D3D11ES2FormatPair(GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE, D3D11ES2FormatInfo(DXGI_FORMAT_BC3_UNORM,          DXGI_FORMAT_BC3_UNORM,             DXGI_FORMAT_UNKNOWN,            DXGI_FORMAT_UNKNOWN,           loadCompressedBlockDataToNative&lt;4, 4, 16&gt;)));
+
+    return map;
+}
+
+static bool GetD3D11ES2FormatInfo(GLenum internalFormat, GLuint clientVersion, D3D11ES2FormatInfo *outFormatInfo)
+{
+    static const D3D11ES2FormatMap formatMap = BuildD3D11ES2FormatMap();
+    D3D11ES2FormatMap::const_iterator iter = formatMap.find(internalFormat);
+    if (iter != formatMap.end())
+    {
+        if (outFormatInfo)
+        {
+            *outFormatInfo = iter-&gt;second;
+        }
+        return true;
+    }
+    else
+    {
+        return false;
+    }
+}
+
+// A map to determine the pixel size and mipmap generation function of a given DXGI format
+struct DXGIFormatInfo
+{
+    GLuint mPixelBits;
+    GLuint mBlockWidth;
+    GLuint mBlockHeight;
+    GLenum mComponentType;
+
+    MipGenerationFunction mMipGenerationFunction;
+    ColorReadFunction mColorReadFunction;
+
+    DXGIFormatInfo()
+        : mPixelBits(0), mBlockWidth(0), mBlockHeight(0), mComponentType(GL_NONE), mMipGenerationFunction(NULL),
+          mColorReadFunction(NULL)
+    { }
+
+    DXGIFormatInfo(GLuint pixelBits, GLuint blockWidth, GLuint blockHeight, GLenum componentType,
+                   MipGenerationFunction mipFunc, ColorReadFunction readFunc)
+        : mPixelBits(pixelBits), mBlockWidth(blockWidth), mBlockHeight(blockHeight), mComponentType(componentType),
+          mMipGenerationFunction(mipFunc), mColorReadFunction(readFunc)
+    { }
+};
+
+typedef std::map&lt;DXGI_FORMAT, DXGIFormatInfo&gt; DXGIFormatInfoMap;
+
+void AddDXGIFormat(DXGIFormatInfoMap *map, DXGI_FORMAT dxgiFormat, GLuint pixelBits, GLuint blockWidth, GLuint blockHeight,
+                   GLenum componentType, MipGenerationFunction mipFunc, ColorReadFunction readFunc)
+{
+    map-&gt;insert(std::make_pair(dxgiFormat, DXGIFormatInfo(pixelBits, blockWidth, blockHeight, componentType, mipFunc, readFunc)));
+}
+
+static DXGIFormatInfoMap BuildDXGIFormatInfoMap()
+{
+    DXGIFormatInfoMap map;
+
+    //                | DXGI format                          |S   |W |H |Component Type        | Mip generation function   | Color read function
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_UNKNOWN,                  0,   0, 0, GL_NONE,                NULL,                       NULL);
+
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_A8_UNORM,                 8,   1, 1, GL_UNSIGNED_NORMALIZED, GenerateMip&lt;A8&gt;,            ReadColor&lt;A8, GLfloat&gt;);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R8_UNORM,                 8,   1, 1, GL_UNSIGNED_NORMALIZED, GenerateMip&lt;R8&gt;,            ReadColor&lt;R8, GLfloat&gt;);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R8G8_UNORM,               16,  1, 1, GL_UNSIGNED_NORMALIZED, GenerateMip&lt;R8G8&gt;,          ReadColor&lt;R8G8, GLfloat&gt;);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R8G8B8A8_UNORM,           32,  1, 1, GL_UNSIGNED_NORMALIZED, GenerateMip&lt;R8G8B8A8&gt;,      ReadColor&lt;R8G8B8A8, GLfloat&gt;);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,      32,  1, 1, GL_UNSIGNED_NORMALIZED, GenerateMip&lt;R8G8B8A8&gt;,      ReadColor&lt;R8G8B8A8, GLfloat&gt;);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_B8G8R8A8_UNORM,           32,  1, 1, GL_UNSIGNED_NORMALIZED, GenerateMip&lt;B8G8R8A8&gt;,      ReadColor&lt;B8G8R8A8, GLfloat&gt;);
+
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R8_SNORM,                 8,   1, 1, GL_SIGNED_NORMALIZED,   GenerateMip&lt;R8S&gt;,           ReadColor&lt;R8S, GLfloat&gt;);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R8G8_SNORM,               16,  1, 1, GL_SIGNED_NORMALIZED,   GenerateMip&lt;R8G8S&gt;,         ReadColor&lt;R8G8S, GLfloat&gt;);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R8G8B8A8_SNORM,           32,  1, 1, GL_SIGNED_NORMALIZED,   GenerateMip&lt;R8G8B8A8S&gt;,     ReadColor&lt;R8G8B8A8S, GLfloat&gt;);
+
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R8_UINT,                  8,   1, 1, GL_UNSIGNED_INT,        GenerateMip&lt;R8&gt;,            ReadColor&lt;R8, GLuint&gt;);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R16_UINT,                 16,  1, 1, GL_UNSIGNED_INT,        GenerateMip&lt;R16&gt;,           ReadColor&lt;R16, GLuint&gt;);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R32_UINT,                 32,  1, 1, GL_UNSIGNED_INT,        GenerateMip&lt;R32&gt;,           ReadColor&lt;R32, GLuint&gt;);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R8G8_UINT,                16,  1, 1, GL_UNSIGNED_INT,        GenerateMip&lt;R8G8&gt;,          ReadColor&lt;R8G8, GLuint&gt;);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R16G16_UINT,              32,  1, 1, GL_UNSIGNED_INT,        GenerateMip&lt;R16G16&gt;,        ReadColor&lt;R16G16, GLuint&gt;);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R32G32_UINT,              64,  1, 1, GL_UNSIGNED_INT,        GenerateMip&lt;R32G32&gt;,        ReadColor&lt;R32G32, GLuint&gt;);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R32G32B32_UINT,           96,  1, 1, GL_UNSIGNED_INT,        GenerateMip&lt;R32G32B32&gt;,     ReadColor&lt;R32G32B32, GLuint&gt;);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R8G8B8A8_UINT,            32,  1, 1, GL_UNSIGNED_INT,        GenerateMip&lt;R8G8B8A8&gt;,      ReadColor&lt;R8G8B8A8, GLuint&gt;);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R16G16B16A16_UINT,        64,  1, 1, GL_UNSIGNED_INT,        GenerateMip&lt;R16G16B16A16&gt;,  ReadColor&lt;R16G16B16A16, GLuint&gt;);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R32G32B32A32_UINT,        128, 1, 1, GL_UNSIGNED_INT,        GenerateMip&lt;R32G32B32A32&gt;,  ReadColor&lt;R32G32B32A32, GLuint&gt;);
+
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R8_SINT,                  8,   1, 1, GL_INT,                 GenerateMip&lt;R8S&gt;,           ReadColor&lt;R8S, GLint&gt;);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R16_SINT,                 16,  1, 1, GL_INT,                 GenerateMip&lt;R16S&gt;,          ReadColor&lt;R16S, GLint&gt;);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R32_SINT,                 32,  1, 1, GL_INT,                 GenerateMip&lt;R32S&gt;,          ReadColor&lt;R32S, GLint&gt;);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R8G8_SINT,                16,  1, 1, GL_INT,                 GenerateMip&lt;R8G8S&gt;,         ReadColor&lt;R8G8S, GLint&gt;);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R16G16_SINT,              32,  1, 1, GL_INT,                 GenerateMip&lt;R16G16S&gt;,       ReadColor&lt;R16G16S, GLint&gt;);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R32G32_SINT,              64,  1, 1, GL_INT,                 GenerateMip&lt;R32G32S&gt;,       ReadColor&lt;R32G32S, GLint&gt;);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R32G32B32_SINT,           96,  1, 1, GL_INT,                 GenerateMip&lt;R32G32B32S&gt;,    ReadColor&lt;R32G32B32S, GLint&gt;);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R8G8B8A8_SINT,            32,  1, 1, GL_INT,                 GenerateMip&lt;R8G8B8A8S&gt;,     ReadColor&lt;R8G8B8A8S, GLint&gt;);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R16G16B16A16_SINT,        64,  1, 1, GL_INT,                 GenerateMip&lt;R16G16B16A16S&gt;, ReadColor&lt;R16G16B16A16S, GLint&gt;);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R32G32B32A32_SINT,        128, 1, 1, GL_INT,                 GenerateMip&lt;R32G32B32A32S&gt;, ReadColor&lt;R32G32B32A32S, GLint&gt;);
+
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R10G10B10A2_UNORM,        32,  1, 1, GL_UNSIGNED_NORMALIZED, GenerateMip&lt;R10G10B10A2&gt;,   ReadColor&lt;R10G10B10A2, GLfloat&gt;);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R10G10B10A2_UINT,         32,  1, 1, GL_UNSIGNED_INT,        GenerateMip&lt;R10G10B10A2&gt;,   ReadColor&lt;R10G10B10A2, GLuint&gt;);
+
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R16_FLOAT,                16,  1, 1, GL_FLOAT,               GenerateMip&lt;R16F&gt;,          ReadColor&lt;R16F, GLfloat&gt;);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R16G16_FLOAT,             32,  1, 1, GL_FLOAT,               GenerateMip&lt;R16G16F&gt;,       ReadColor&lt;R16G16F, GLfloat&gt;);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R16G16B16A16_FLOAT,       64,  1, 1, GL_FLOAT,               GenerateMip&lt;R16G16B16A16F&gt;, ReadColor&lt;R16G16B16A16F, GLfloat&gt;);
+
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R32_FLOAT,                32,  1, 1, GL_FLOAT,               GenerateMip&lt;R32F&gt;,          ReadColor&lt;R32F, GLfloat&gt;);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R32G32_FLOAT,             64,  1, 1, GL_FLOAT,               GenerateMip&lt;R32G32F&gt;,       ReadColor&lt;R32G32F, GLfloat&gt;);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R32G32B32_FLOAT,          96,  1, 1, GL_FLOAT,               NULL,                       NULL);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R32G32B32A32_FLOAT,       128, 1, 1, GL_FLOAT,               GenerateMip&lt;R32G32B32A32F&gt;, ReadColor&lt;R32G32B32A32F, GLfloat&gt;);
+
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R9G9B9E5_SHAREDEXP,       32,  1, 1, GL_FLOAT,               GenerateMip&lt;R9G9B9E5&gt;,      ReadColor&lt;R9G9B9E5, GLfloat&gt;);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R11G11B10_FLOAT,          32,  1, 1, GL_FLOAT,               GenerateMip&lt;R11G11B10F&gt;,    ReadColor&lt;R11G11B10F, GLfloat&gt;);
+
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R16_TYPELESS,             16,  1, 1, GL_NONE,                NULL,                       NULL);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R16_UNORM,                16,  1, 1, GL_UNSIGNED_NORMALIZED, NULL,                       NULL);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_D16_UNORM,                16,  1, 1, GL_UNSIGNED_NORMALIZED, NULL,                       NULL);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R24G8_TYPELESS,           32,  1, 1, GL_NONE,                NULL,                       NULL);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R24_UNORM_X8_TYPELESS,    32,  1, 1, GL_NONE,                NULL,                       NULL);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_D24_UNORM_S8_UINT,        32,  1, 1, GL_UNSIGNED_INT,        NULL,                       NULL);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R32G8X24_TYPELESS,        64,  1, 1, GL_NONE,                NULL,                       NULL);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS, 64,  1, 1, GL_NONE,                NULL,                       NULL);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_D32_FLOAT_S8X24_UINT,     64,  1, 1, GL_UNSIGNED_INT,        NULL,                       NULL);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R32_TYPELESS,             32,  1, 1, GL_NONE,                NULL,                       NULL);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_D32_FLOAT,                32,  1, 1, GL_FLOAT,               NULL,                       NULL);
+
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_BC1_UNORM,                64,  4, 4, GL_UNSIGNED_NORMALIZED, NULL,                       NULL);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_BC2_UNORM,                128, 4, 4, GL_UNSIGNED_NORMALIZED, NULL,                       NULL);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_BC3_UNORM,                128, 4, 4, GL_UNSIGNED_NORMALIZED, NULL,                       NULL);
+
+    // Useful formats for vertex buffers
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R16_UNORM,                16,  1, 1, GL_UNSIGNED_NORMALIZED, NULL,                       NULL);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R16_SNORM,                16,  1, 1, GL_SIGNED_NORMALIZED,   NULL,                       NULL);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R16G16_UNORM,             32,  1, 1, GL_UNSIGNED_NORMALIZED, NULL,                       NULL);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R16G16_SNORM,             32,  1, 1, GL_SIGNED_NORMALIZED,   NULL,                       NULL);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R16G16B16A16_UNORM,       64,  1, 1, GL_UNSIGNED_NORMALIZED, NULL,                       NULL);
+    AddDXGIFormat(&amp;map, DXGI_FORMAT_R16G16B16A16_SNORM,       64,  1, 1, GL_SIGNED_NORMALIZED,   NULL,                       NULL);
+
+    return map;
+}
+
+typedef std::map&lt;DXGI_FORMAT, GLenum&gt; DXGIToESFormatMap;
+
+inline void AddDXGIToESEntry(DXGIToESFormatMap *map, DXGI_FORMAT key, GLenum value)
+{
+    map-&gt;insert(std::make_pair(key, value));
+}
+
+static DXGIToESFormatMap BuildCommonDXGIToESFormatMap()
+{
+    DXGIToESFormatMap map;
+
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_UNKNOWN,                  GL_NONE);
+
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_A8_UNORM,                 GL_ALPHA8_EXT);
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R8_UNORM,                 GL_R8);
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R8G8_UNORM,               GL_RG8);
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R8G8B8A8_UNORM,           GL_RGBA8);
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,      GL_SRGB8_ALPHA8);
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_B8G8R8A8_UNORM,           GL_BGRA8_EXT);
+
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R8_SNORM,                 GL_R8_SNORM);
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R8G8_SNORM,               GL_RG8_SNORM);
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R8G8B8A8_SNORM,           GL_RGBA8_SNORM);
+
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R8_UINT,                  GL_R8UI);
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R16_UINT,                 GL_R16UI);
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R32_UINT,                 GL_R32UI);
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R8G8_UINT,                GL_RG8UI);
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R16G16_UINT,              GL_RG16UI);
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R32G32_UINT,              GL_RG32UI);
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R32G32B32_UINT,           GL_RGB32UI);
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R8G8B8A8_UINT,            GL_RGBA8UI);
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R16G16B16A16_UINT,        GL_RGBA16UI);
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R32G32B32A32_UINT,        GL_RGBA32UI);
+
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R8_SINT,                  GL_R8I);
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R16_SINT,                 GL_R16I);
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R32_SINT,                 GL_R32I);
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R8G8_SINT,                GL_RG8I);
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R16G16_SINT,              GL_RG16I);
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R32G32_SINT,              GL_RG32I);
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R32G32B32_SINT,           GL_RGB32I);
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R8G8B8A8_SINT,            GL_RGBA8I);
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R16G16B16A16_SINT,        GL_RGBA16I);
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R32G32B32A32_SINT,        GL_RGBA32I);
+
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R10G10B10A2_UNORM,        GL_RGB10_A2);
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R10G10B10A2_UINT,         GL_RGB10_A2UI);
+
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R16_FLOAT,                GL_R16F);
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R16G16_FLOAT,             GL_RG16F);
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R16G16B16A16_FLOAT,       GL_RGBA16F);
+
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R32_FLOAT,                GL_R32F);
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R32G32_FLOAT,             GL_RG32F);
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R32G32B32_FLOAT,          GL_RGB32F);
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R32G32B32A32_FLOAT,       GL_RGBA32F);
+
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R9G9B9E5_SHAREDEXP,       GL_RGB9_E5);
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R11G11B10_FLOAT,          GL_R11F_G11F_B10F);
+
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R16_TYPELESS,             GL_DEPTH_COMPONENT16);
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R16_UNORM,                GL_DEPTH_COMPONENT16);
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_D16_UNORM,                GL_DEPTH_COMPONENT16);
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R24G8_TYPELESS,           GL_DEPTH24_STENCIL8_OES);
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R24_UNORM_X8_TYPELESS,    GL_DEPTH24_STENCIL8_OES);
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_D24_UNORM_S8_UINT,        GL_DEPTH24_STENCIL8_OES);
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R32G8X24_TYPELESS,        GL_DEPTH32F_STENCIL8);
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS, GL_DEPTH32F_STENCIL8);
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_D32_FLOAT_S8X24_UINT,     GL_DEPTH32F_STENCIL8);
+
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_BC1_UNORM,                GL_COMPRESSED_RGBA_S3TC_DXT1_EXT);
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_BC2_UNORM,                GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE);
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_BC3_UNORM,                GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE);
+
+    return map;
+}
+
+static DXGIToESFormatMap BuildDXGIToES2FormatMap()
+{
+    DXGIToESFormatMap map = BuildCommonDXGIToESFormatMap();
+
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R32_TYPELESS, GL_DEPTH_COMPONENT32_OES);
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_D32_FLOAT,    GL_DEPTH_COMPONENT32_OES);
+
+    return map;
+}
+
+static DXGIToESFormatMap BuildDXGIToES3FormatMap()
+{
+    DXGIToESFormatMap map = BuildCommonDXGIToESFormatMap();
+
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_R32_TYPELESS, GL_DEPTH_COMPONENT32F);
+    AddDXGIToESEntry(&amp;map, DXGI_FORMAT_D32_FLOAT,    GL_DEPTH_COMPONENT32F);
+
+    return map;
+}
+
+static const DXGIFormatInfoMap &amp;GetDXGIFormatInfoMap()
+{
+    static const DXGIFormatInfoMap infoMap = BuildDXGIFormatInfoMap();
+    return infoMap;
+}
+
+static bool GetDXGIFormatInfo(DXGI_FORMAT format, DXGIFormatInfo *outFormatInfo)
+{
+    const DXGIFormatInfoMap &amp;infoMap = GetDXGIFormatInfoMap();
+    DXGIFormatInfoMap::const_iterator iter = infoMap.find(format);
+    if (iter != infoMap.end())
+    {
+        if (outFormatInfo)
+        {
+            *outFormatInfo = iter-&gt;second;
+        }
+        return true;
+    }
+    else
+    {
+        return false;
+    }
+}
+
+static d3d11::DXGIFormatSet BuildAllDXGIFormatSet()
+{
+    d3d11::DXGIFormatSet set;
+
+    const DXGIFormatInfoMap &amp;infoMap = GetDXGIFormatInfoMap();
+    for (DXGIFormatInfoMap::const_iterator i = infoMap.begin(); i != infoMap.end(); ++i)
+    {
+        set.insert(i-&gt;first);
+    }
+
+    return set;
+}
+
+struct D3D11FastCopyFormat
+{
+    DXGI_FORMAT mSourceFormat;
+    GLenum mDestFormat;
+    GLenum mDestType;
+
+    D3D11FastCopyFormat(DXGI_FORMAT sourceFormat, GLenum destFormat, GLenum destType)
+        : mSourceFormat(sourceFormat), mDestFormat(destFormat), mDestType(destType)
+    { }
+
+    bool operator&lt;(const D3D11FastCopyFormat&amp; other) const
+    {
+        return memcmp(this, &amp;other, sizeof(D3D11FastCopyFormat)) &lt; 0;
+    }
+};
+
+typedef std::map&lt;D3D11FastCopyFormat, ColorCopyFunction&gt; D3D11FastCopyMap;
+typedef std::pair&lt;D3D11FastCopyFormat, ColorCopyFunction&gt; D3D11FastCopyPair;
+
+static D3D11FastCopyMap BuildFastCopyMap()
+{
+    D3D11FastCopyMap map;
+
+    map.insert(D3D11FastCopyPair(D3D11FastCopyFormat(DXGI_FORMAT_B8G8R8A8_UNORM, GL_RGBA, GL_UNSIGNED_BYTE), CopyBGRAUByteToRGBAUByte));
+
+    return map;
+}
+
+struct DXGIDepthStencilInfo
+{
+    unsigned int mDepthBits;
+    unsigned int mDepthOffset;
+    unsigned int mStencilBits;
+    unsigned int mStencilOffset;
+
+    DXGIDepthStencilInfo()
+        : mDepthBits(0), mDepthOffset(0), mStencilBits(0), mStencilOffset(0)
+    { }
+
+    DXGIDepthStencilInfo(unsigned int depthBits, unsigned int depthOffset, unsigned int stencilBits, unsigned int stencilOffset)
+        : mDepthBits(depthBits), mDepthOffset(depthOffset), mStencilBits(stencilBits), mStencilOffset(stencilOffset)
+    { }
+};
+
+typedef std::map&lt;DXGI_FORMAT, DXGIDepthStencilInfo&gt; DepthStencilInfoMap;
+typedef std::pair&lt;DXGI_FORMAT, DXGIDepthStencilInfo&gt; DepthStencilInfoPair;
+
+static DepthStencilInfoMap BuildDepthStencilInfoMap()
+{
+    DepthStencilInfoMap map;
+
+    map.insert(DepthStencilInfoPair(DXGI_FORMAT_R16_TYPELESS,             DXGIDepthStencilInfo(16, 0, 0,  0)));
+    map.insert(DepthStencilInfoPair(DXGI_FORMAT_R16_UNORM,                DXGIDepthStencilInfo(16, 0, 0,  0)));
+    map.insert(DepthStencilInfoPair(DXGI_FORMAT_D16_UNORM,                DXGIDepthStencilInfo(16, 0, 0,  0)));
+
+    map.insert(DepthStencilInfoPair(DXGI_FORMAT_R24G8_TYPELESS,           DXGIDepthStencilInfo(24, 0, 8, 24)));
+    map.insert(DepthStencilInfoPair(DXGI_FORMAT_R24_UNORM_X8_TYPELESS,    DXGIDepthStencilInfo(24, 0, 8, 24)));
+    map.insert(DepthStencilInfoPair(DXGI_FORMAT_D24_UNORM_S8_UINT,        DXGIDepthStencilInfo(24, 0, 8, 24)));
+
+    map.insert(DepthStencilInfoPair(DXGI_FORMAT_R32_TYPELESS,             DXGIDepthStencilInfo(32, 0, 0,  0)));
+    map.insert(DepthStencilInfoPair(DXGI_FORMAT_R32_FLOAT,                DXGIDepthStencilInfo(32, 0, 0,  0)));
+    map.insert(DepthStencilInfoPair(DXGI_FORMAT_D32_FLOAT,                DXGIDepthStencilInfo(32, 0, 0,  0)));
+
+    map.insert(DepthStencilInfoPair(DXGI_FORMAT_R32G8X24_TYPELESS,        DXGIDepthStencilInfo(32, 0, 8, 32)));
+    map.insert(DepthStencilInfoPair(DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS, DXGIDepthStencilInfo(32, 0, 8, 32)));
+    map.insert(DepthStencilInfoPair(DXGI_FORMAT_D32_FLOAT_S8X24_UINT,     DXGIDepthStencilInfo(32, 0, 8, 32)));
+
+    return map;
+}
+
+static const DepthStencilInfoMap &amp;GetDepthStencilInfoMap()
+{
+    static const DepthStencilInfoMap infoMap = BuildDepthStencilInfoMap();
+    return infoMap;
+}
+
+bool GetDepthStencilInfo(DXGI_FORMAT format, DXGIDepthStencilInfo *outDepthStencilInfo)
+{
+    const DepthStencilInfoMap&amp; infoMap = GetDepthStencilInfoMap();
+    DepthStencilInfoMap::const_iterator iter = infoMap.find(format);
+    if (iter != infoMap.end())
+    {
+        if (outDepthStencilInfo)
+        {
+            *outDepthStencilInfo = iter-&gt;second;
+        }
+        return true;
+    }
+    else
+    {
+        return false;
+    }
+}
+
+struct SwizzleSizeType
+{
+    unsigned int mMaxComponentSize;
+    GLenum mComponentType;
+
+    SwizzleSizeType()
+        : mMaxComponentSize(0), mComponentType(GL_NONE)
+    { }
+
+    SwizzleSizeType(unsigned int maxComponentSize, GLenum componentType)
+        : mMaxComponentSize(maxComponentSize), mComponentType(componentType)
+    { }
+
+    bool operator&lt;(const SwizzleSizeType&amp; other) const
+    {
+        return (mMaxComponentSize != other.mMaxComponentSize) ? (mMaxComponentSize &lt; other.mMaxComponentSize)
+                                                              : (mComponentType &lt; other.mComponentType);
+    }
+};
+
+struct SwizzleFormatInfo
+{
+    DXGI_FORMAT mTexFormat;
+    DXGI_FORMAT mSRVFormat;
+    DXGI_FORMAT mRTVFormat;
+
+    SwizzleFormatInfo()
+        : mTexFormat(DXGI_FORMAT_UNKNOWN), mSRVFormat(DXGI_FORMAT_UNKNOWN), mRTVFormat(DXGI_FORMAT_UNKNOWN)
+    { }
+
+    SwizzleFormatInfo(DXGI_FORMAT texFormat, DXGI_FORMAT srvFormat, DXGI_FORMAT rtvFormat)
+        : mTexFormat(texFormat), mSRVFormat(srvFormat), mRTVFormat(rtvFormat)
+    { }
+};
+
+typedef std::map&lt;SwizzleSizeType, SwizzleFormatInfo&gt; SwizzleInfoMap;
+typedef std::pair&lt;SwizzleSizeType, SwizzleFormatInfo&gt; SwizzleInfoPair;
+
+static SwizzleInfoMap BuildSwizzleInfoMap()
+{
+    SwizzleInfoMap map;
+
+    map.insert(SwizzleInfoPair(SwizzleSizeType( 8, GL_UNSIGNED_NORMALIZED), SwizzleFormatInfo(DXGI_FORMAT_R8G8B8A8_UNORM,     DXGI_FORMAT_R8G8B8A8_UNORM,     DXGI_FORMAT_R8G8B8A8_UNORM    )));
+    map.insert(SwizzleInfoPair(SwizzleSizeType(16, GL_UNSIGNED_NORMALIZED), SwizzleFormatInfo(DXGI_FORMAT_R16G16B16A16_UNORM, DXGI_FORMAT_R16G16B16A16_UNORM, DXGI_FORMAT_R16G16B16A16_UNORM)));
+    map.insert(SwizzleInfoPair(SwizzleSizeType(24, GL_UNSIGNED_NORMALIZED), SwizzleFormatInfo(DXGI_FORMAT_R32G32B32A32_FLOAT, DXGI_FORMAT_R32G32B32A32_FLOAT, DXGI_FORMAT_R32G32B32A32_FLOAT)));
+    map.insert(SwizzleInfoPair(SwizzleSizeType(32, GL_UNSIGNED_NORMALIZED), SwizzleFormatInfo(DXGI_FORMAT_R32G32B32A32_FLOAT, DXGI_FORMAT_R32G32B32A32_FLOAT, DXGI_FORMAT_R32G32B32A32_FLOAT)));
+
+    map.insert(SwizzleInfoPair(SwizzleSizeType( 8, GL_SIGNED_NORMALIZED  ), SwizzleFormatInfo(DXGI_FORMAT_R8G8B8A8_SNORM,     DXGI_FORMAT_R8G8B8A8_SNORM,     DXGI_FORMAT_R8G8B8A8_SNORM    )));
+
+    map.insert(SwizzleInfoPair(SwizzleSizeType(16, GL_FLOAT              ), SwizzleFormatInfo(DXGI_FORMAT_R16G16B16A16_FLOAT, DXGI_FORMAT_R16G16B16A16_FLOAT, DXGI_FORMAT_R16G16B16A16_FLOAT)));
+    map.insert(SwizzleInfoPair(SwizzleSizeType(32, GL_FLOAT              ), SwizzleFormatInfo(DXGI_FORMAT_R32G32B32A32_FLOAT, DXGI_FORMAT_R32G32B32A32_FLOAT, DXGI_FORMAT_R32G32B32A32_FLOAT)));
+
+    map.insert(SwizzleInfoPair(SwizzleSizeType( 8, GL_UNSIGNED_INT       ), SwizzleFormatInfo(DXGI_FORMAT_R8G8B8A8_UINT,      DXGI_FORMAT_R8G8B8A8_UINT,      DXGI_FORMAT_R8G8B8A8_UINT     )));
+    map.insert(SwizzleInfoPair(SwizzleSizeType(16, GL_UNSIGNED_INT       ), SwizzleFormatInfo(DXGI_FORMAT_R16G16B16A16_UINT,  DXGI_FORMAT_R16G16B16A16_UINT,  DXGI_FORMAT_R16G16B16A16_UINT )));
+    map.insert(SwizzleInfoPair(SwizzleSizeType(32, GL_UNSIGNED_INT       ), SwizzleFormatInfo(DXGI_FORMAT_R32G32B32A32_UINT,  DXGI_FORMAT_R32G32B32A32_UINT,  DXGI_FORMAT_R32G32B32A32_UINT )));
+
+    map.insert(SwizzleInfoPair(SwizzleSizeType( 8, GL_INT                ), SwizzleFormatInfo(DXGI_FORMAT_R8G8B8A8_SINT,      DXGI_FORMAT_R8G8B8A8_SINT,      DXGI_FORMAT_R8G8B8A8_SINT     )));
+    map.insert(SwizzleInfoPair(SwizzleSizeType(16, GL_INT                ), SwizzleFormatInfo(DXGI_FORMAT_R16G16B16A16_SINT,  DXGI_FORMAT_R16G16B16A16_SINT,  DXGI_FORMAT_R16G16B16A16_SINT )));
+    map.insert(SwizzleInfoPair(SwizzleSizeType(32, GL_INT                ), SwizzleFormatInfo(DXGI_FORMAT_R32G32B32A32_SINT,  DXGI_FORMAT_R32G32B32A32_SINT,  DXGI_FORMAT_R32G32B32A32_SINT )));
+
+    return map;
+}
+typedef std::pair&lt;GLint, InitializeTextureDataFunction&gt; InternalFormatInitializerPair;
+typedef std::map&lt;GLint, InitializeTextureDataFunction&gt; InternalFormatInitializerMap;
+
+static InternalFormatInitializerMap BuildInternalFormatInitializerMap()
+{
+    InternalFormatInitializerMap map;
+
+    map.insert(InternalFormatInitializerPair(GL_RGB8,    initialize4ComponentData&lt;GLubyte,  0x00,       0x00,       0x00,       0xFF&gt;          ));
+    map.insert(InternalFormatInitializerPair(GL_RGB565,  initialize4ComponentData&lt;GLubyte,  0x00,       0x00,       0x00,       0xFF&gt;          ));
+    map.insert(InternalFormatInitializerPair(GL_SRGB8,   initialize4ComponentData&lt;GLubyte,  0x00,       0x00,       0x00,       0xFF&gt;          ));
+    map.insert(InternalFormatInitializerPair(GL_RGB16F,  initialize4ComponentData&lt;GLhalf,   0x0000,     0x0000,     0x0000,     gl::Float16One&gt;));
+    map.insert(InternalFormatInitializerPair(GL_RGB32F,  initialize4ComponentData&lt;GLfloat,  0x00000000, 0x00000000, 0x00000000, gl::Float32One&gt;));
+    map.insert(InternalFormatInitializerPair(GL_RGB8UI,  initialize4ComponentData&lt;GLubyte,  0x00,       0x00,       0x00,       0x01&gt;          ));
+    map.insert(InternalFormatInitializerPair(GL_RGB8I,   initialize4ComponentData&lt;GLbyte,   0x00,       0x00,       0x00,       0x01&gt;          ));
+    map.insert(InternalFormatInitializerPair(GL_RGB16UI, initialize4ComponentData&lt;GLushort, 0x0000,     0x0000,     0x0000,     0x0001&gt;        ));
+    map.insert(InternalFormatInitializerPair(GL_RGB16I,  initialize4ComponentData&lt;GLshort,  0x0000,     0x0000,     0x0000,     0x0001&gt;        ));
+    map.insert(InternalFormatInitializerPair(GL_RGB32UI, initialize4ComponentData&lt;GLuint,   0x00000000, 0x00000000, 0x00000000, 0x00000001&gt;    ));
+    map.insert(InternalFormatInitializerPair(GL_RGB32I,  initialize4ComponentData&lt;GLint,    0x00000000, 0x00000000, 0x00000000, 0x00000001&gt;    ));
+
+    return map;
+}
+
+static const SwizzleInfoMap &amp;GetSwizzleInfoMap()
+{
+    static const SwizzleInfoMap map = BuildSwizzleInfoMap();
+    return map;
+}
+
+static const SwizzleFormatInfo GetSwizzleFormatInfo(GLint internalFormat, GLuint clientVersion)
+{
+    // Get the maximum sized component
+    unsigned int maxBits = 1;
+
+    if (gl::IsFormatCompressed(internalFormat, clientVersion))
+    {
+        unsigned int compressedBitsPerBlock = gl::GetPixelBytes(internalFormat, clientVersion) * 8;
+        unsigned int blockSize = gl::GetCompressedBlockWidth(internalFormat, clientVersion) *
+                                 gl::GetCompressedBlockHeight(internalFormat, clientVersion);
+        maxBits = std::max(compressedBitsPerBlock / blockSize, maxBits);
+    }
+    else
+    {
+        maxBits = std::max(maxBits, gl::GetAlphaBits(    internalFormat, clientVersion));
+        maxBits = std::max(maxBits, gl::GetRedBits(      internalFormat, clientVersion));
+        maxBits = std::max(maxBits, gl::GetGreenBits(    internalFormat, clientVersion));
+        maxBits = std::max(maxBits, gl::GetBlueBits(     internalFormat, clientVersion));
+        maxBits = std::max(maxBits, gl::GetLuminanceBits(internalFormat, clientVersion));
+        maxBits = std::max(maxBits, gl::GetDepthBits(    internalFormat, clientVersion));
+    }
+
+    maxBits = roundUp(maxBits, 8U);
+
+    GLenum componentType = gl::GetComponentType(internalFormat, clientVersion);
+
+    const SwizzleInfoMap &amp;map = GetSwizzleInfoMap();
+    SwizzleInfoMap::const_iterator iter = map.find(SwizzleSizeType(maxBits, componentType));
+
+    if (iter != map.end())
+    {
+        return iter-&gt;second;
+    }
+    else
+    {
+        UNREACHABLE();
+        static const SwizzleFormatInfo defaultFormatInfo;
+        return defaultFormatInfo;
+    }
+}
+
+static const InternalFormatInitializerMap &amp;GetInternalFormatInitializerMap()
+{
+    static const InternalFormatInitializerMap map = BuildInternalFormatInitializerMap();
+    return map;
+}
+
+namespace d3d11
+{
+
+MipGenerationFunction GetMipGenerationFunction(DXGI_FORMAT format)
+{
+    DXGIFormatInfo formatInfo;
+    if (GetDXGIFormatInfo(format, &amp;formatInfo))
+    {
+        return formatInfo.mMipGenerationFunction;
+    }
+    else
+    {
+        UNREACHABLE();
+        return NULL;
+    }
+}
+
+LoadImageFunction GetImageLoadFunction(GLenum internalFormat, GLenum type, GLuint clientVersion)
+{
+    if (clientVersion == 2)
+    {
+        D3D11ES2FormatInfo d3d11FormatInfo;
+        if (GetD3D11ES2FormatInfo(internalFormat, clientVersion, &amp;d3d11FormatInfo))
+        {
+            return d3d11FormatInfo.mLoadImageFunction;
+        }
+        else
+        {
+            UNREACHABLE();
+            return NULL;
+        }
+    }
+    else if (clientVersion == 3)
+    {
+        static const D3D11LoadFunctionMap loadImageMap = buildD3D11LoadFunctionMap();
+        D3D11LoadFunctionMap::const_iterator iter = loadImageMap.find(InternalFormatTypePair(internalFormat, type));
+        if (iter != loadImageMap.end())
+        {
+            return iter-&gt;second;
+        }
+        else
+        {
+            UNREACHABLE();
+            return NULL;
+        }
+    }
+    else
+    {
+        UNREACHABLE();
+        return NULL;
+    }
+}
+
+GLuint GetFormatPixelBytes(DXGI_FORMAT format)
+{
+    DXGIFormatInfo dxgiFormatInfo;
+    if (GetDXGIFormatInfo(format, &amp;dxgiFormatInfo))
+    {
+        return dxgiFormatInfo.mPixelBits / 8;
+    }
+    else
+    {
+        UNREACHABLE();
+        return 0;
+    }
+}
+
+GLuint GetBlockWidth(DXGI_FORMAT format)
+{
+    DXGIFormatInfo dxgiFormatInfo;
+    if (GetDXGIFormatInfo(format, &amp;dxgiFormatInfo))
+    {
+        return dxgiFormatInfo.mBlockWidth;
+    }
+    else
+    {
+        UNREACHABLE();
+        return 0;
+    }
+}
+
+GLuint GetBlockHeight(DXGI_FORMAT format)
+{
+    DXGIFormatInfo dxgiFormatInfo;
+    if (GetDXGIFormatInfo(format, &amp;dxgiFormatInfo))
+    {
+        return dxgiFormatInfo.mBlockHeight;
+    }
+    else
+    {
+        UNREACHABLE();
+        return 0;
+    }
+}
+
+GLenum GetComponentType(DXGI_FORMAT format)
+{
+    DXGIFormatInfo dxgiFormatInfo;
+    if (GetDXGIFormatInfo(format, &amp;dxgiFormatInfo))
+    {
+        return dxgiFormatInfo.mComponentType;
+    }
+    else
+    {
+        UNREACHABLE();
+        return GL_NONE;
+    }
+}
+
+GLuint GetDepthBits(DXGI_FORMAT format)
+{
+    DXGIDepthStencilInfo dxgiDSInfo;
+    if (GetDepthStencilInfo(format, &amp;dxgiDSInfo))
+    {
+        return dxgiDSInfo.mDepthBits;
+    }
+    else
+    {
+        // Since the depth stencil info map does not contain all used DXGI formats,
+        // we should not assert that the format exists
+        return 0;
+    }
+}
+
+GLuint GetDepthOffset(DXGI_FORMAT format)
+{
+    DXGIDepthStencilInfo dxgiDSInfo;
+    if (GetDepthStencilInfo(format, &amp;dxgiDSInfo))
+    {
+        return dxgiDSInfo.mDepthOffset;
+    }
+    else
+    {
+        // Since the depth stencil info map does not contain all used DXGI formats,
+        // we should not assert that the format exists
+        return 0;
+    }
+}
+
+GLuint GetStencilBits(DXGI_FORMAT format)
+{
+    DXGIDepthStencilInfo dxgiDSInfo;
+    if (GetDepthStencilInfo(format, &amp;dxgiDSInfo))
+    {
+        return dxgiDSInfo.mStencilBits;
+    }
+    else
+    {
+        // Since the depth stencil info map does not contain all used DXGI formats,
+        // we should not assert that the format exists
+        return 0;
+    }
+}
+
+GLuint GetStencilOffset(DXGI_FORMAT format)
+{
+    DXGIDepthStencilInfo dxgiDSInfo;
+    if (GetDepthStencilInfo(format, &amp;dxgiDSInfo))
+    {
+        return dxgiDSInfo.mStencilOffset;
+    }
+    else
+    {
+        // Since the depth stencil info map does not contain all used DXGI formats,
+        // we should not assert that the format exists
+        return 0;
+    }
+}
+
+void MakeValidSize(bool isImage, DXGI_FORMAT format, GLsizei *requestWidth, GLsizei *requestHeight, int *levelOffset)
+{
+    DXGIFormatInfo dxgiFormatInfo;
+    if (GetDXGIFormatInfo(format, &amp;dxgiFormatInfo))
+    {
+        int upsampleCount = 0;
+
+        GLsizei blockWidth = dxgiFormatInfo.mBlockWidth;
+        GLsizei blockHeight = dxgiFormatInfo.mBlockHeight;
+
+        // Don't expand the size of full textures that are at least (blockWidth x blockHeight) already.
+        if (isImage || *requestWidth &lt; blockWidth || *requestHeight &lt; blockHeight)
+        {
+            while (*requestWidth % blockWidth != 0 || *requestHeight % blockHeight != 0)
+            {
+                *requestWidth &lt;&lt;= 1;
+                *requestHeight &lt;&lt;= 1;
+                upsampleCount++;
+            }
+        }
+        *levelOffset = upsampleCount;
+    }
+    else
+    {
+        UNREACHABLE();
+    }
+}
+
+const DXGIFormatSet &amp;GetAllUsedDXGIFormats()
+{
+    static DXGIFormatSet formatSet = BuildAllDXGIFormatSet();
+    return formatSet;
+}
+
+ColorReadFunction GetColorReadFunction(DXGI_FORMAT format)
+{
+    DXGIFormatInfo dxgiFormatInfo;
+    if (GetDXGIFormatInfo(format, &amp;dxgiFormatInfo))
+    {
+        return dxgiFormatInfo.mColorReadFunction;
+    }
+    else
+    {
+        UNREACHABLE();
+        return NULL;
+    }
+}
+
+ColorCopyFunction GetFastCopyFunction(DXGI_FORMAT sourceFormat, GLenum destFormat, GLenum destType)
+{
+    static const D3D11FastCopyMap fastCopyMap = BuildFastCopyMap();
+    D3D11FastCopyMap::const_iterator iter = fastCopyMap.find(D3D11FastCopyFormat(sourceFormat, destFormat, destType));
+    return (iter != fastCopyMap.end()) ? iter-&gt;second : NULL;
+}
+
+}
+
+namespace gl_d3d11
+{
+
+DXGI_FORMAT GetTexFormat(GLenum internalFormat, GLuint clientVersion)
+{
+    if (clientVersion == 2)
+    {
+        D3D11ES2FormatInfo d3d11FormatInfo;
+        if (GetD3D11ES2FormatInfo(internalFormat, clientVersion, &amp;d3d11FormatInfo))
+        {
+            return d3d11FormatInfo.mTexFormat;
+        }
+        else
+        {
+            UNREACHABLE();
+            return DXGI_FORMAT_UNKNOWN;
+        }
+    }
+    else if (clientVersion == 3)
+    {
+        D3D11ES3FormatInfo d3d11FormatInfo;
+        if (GetD3D11ES3FormatInfo(internalFormat, clientVersion, &amp;d3d11FormatInfo))
+        {
+            return d3d11FormatInfo.mTexFormat;
+        }
+        else
+        {
+            UNREACHABLE();
+            return DXGI_FORMAT_UNKNOWN;
+        }
+    }
+    else
+    {
+        UNREACHABLE();
+        return DXGI_FORMAT_UNKNOWN;
+    }
+}
+
+DXGI_FORMAT GetSRVFormat(GLenum internalFormat, GLuint clientVersion)
+{
+    if (clientVersion == 2)
+    {
+        D3D11ES2FormatInfo d3d11FormatInfo;
+        if (GetD3D11ES2FormatInfo(internalFormat, clientVersion, &amp;d3d11FormatInfo))
+        {
+            return d3d11FormatInfo.mSRVFormat;
+        }
+        else
+        {
+            UNREACHABLE();
+            return DXGI_FORMAT_UNKNOWN;
+        }
+    }
+    else if (clientVersion == 3)
+    {
+        D3D11ES3FormatInfo d3d11FormatInfo;
+        if (GetD3D11ES3FormatInfo(internalFormat, clientVersion, &amp;d3d11FormatInfo))
+        {
+            return d3d11FormatInfo.mSRVFormat;
+        }
+        else
+        {
+            UNREACHABLE();
+            return DXGI_FORMAT_UNKNOWN;
+        }
+    }
+    else
+    {
+        UNREACHABLE();
+        return DXGI_FORMAT_UNKNOWN;
+    }
+}
+
+DXGI_FORMAT GetRTVFormat(GLenum internalFormat, GLuint clientVersion)
+{
+    if (clientVersion == 2)
+    {
+        D3D11ES2FormatInfo d3d11FormatInfo;
+        if (GetD3D11ES2FormatInfo(internalFormat, clientVersion, &amp;d3d11FormatInfo))
+        {
+            return d3d11FormatInfo.mRTVFormat;
+        }
+        else
+        {
+            UNREACHABLE();
+            return DXGI_FORMAT_UNKNOWN;
+        }
+    }
+    else if (clientVersion == 3)
+    {
+        D3D11ES3FormatInfo d3d11FormatInfo;
+        if (GetD3D11ES3FormatInfo(internalFormat, clientVersion, &amp;d3d11FormatInfo))
+        {
+            return d3d11FormatInfo.mRTVFormat;
+        }
+        else
+        {
+            UNREACHABLE();
+            return DXGI_FORMAT_UNKNOWN;
+        }
+    }
+    else
+    {
+        UNREACHABLE();
+        return DXGI_FORMAT_UNKNOWN;
+    }
+}
+
+DXGI_FORMAT GetDSVFormat(GLenum internalFormat, GLuint clientVersion)
+{
+    if (clientVersion == 2)
+    {
+        D3D11ES2FormatInfo d3d11FormatInfo;
+        if (GetD3D11ES2FormatInfo(internalFormat, clientVersion, &amp;d3d11FormatInfo))
+        {
+            return d3d11FormatInfo.mDSVFormat;
+        }
+        else
+        {
+            return DXGI_FORMAT_UNKNOWN;
+        }
+    }
+    else if (clientVersion == 3)
+    {
+        D3D11ES3FormatInfo d3d11FormatInfo;
+        if (GetD3D11ES3FormatInfo(internalFormat, clientVersion, &amp;d3d11FormatInfo))
+        {
+            return d3d11FormatInfo.mDSVFormat;
+        }
+        else
+        {
+            return DXGI_FORMAT_UNKNOWN;
+        }
+    }
+    else
+    {
+        UNREACHABLE();
+        return DXGI_FORMAT_UNKNOWN;
+    }
+}
+
+// Given a GL internal format, this function returns the DSV format if it is depth- or stencil-renderable,
+// the RTV format if it is color-renderable, and the (nonrenderable) texture format otherwise.
+DXGI_FORMAT GetRenderableFormat(GLenum internalFormat, GLuint clientVersion)
+{
+    DXGI_FORMAT targetFormat = GetDSVFormat(internalFormat, clientVersion);
+    if (targetFormat == DXGI_FORMAT_UNKNOWN)
+        targetFormat = GetRTVFormat(internalFormat, clientVersion);
+    if (targetFormat == DXGI_FORMAT_UNKNOWN)
+        targetFormat = GetTexFormat(internalFormat, clientVersion);
+
+    return targetFormat;
+}
+
+DXGI_FORMAT GetSwizzleTexFormat(GLint internalFormat, const Renderer *renderer)
+{
+    GLuint clientVersion = renderer-&gt;getCurrentClientVersion();
+    if (gl::GetComponentCount(internalFormat, clientVersion) != 4 || !gl::IsColorRenderingSupported(internalFormat, renderer))
+    {
+        const SwizzleFormatInfo &amp;swizzleInfo = GetSwizzleFormatInfo(internalFormat, clientVersion);
+        return swizzleInfo.mTexFormat;
+    }
+    else
+    {
+        return GetTexFormat(internalFormat, clientVersion);
+    }
+}
+
+DXGI_FORMAT GetSwizzleSRVFormat(GLint internalFormat, const Renderer *renderer)
+{
+    GLuint clientVersion = renderer-&gt;getCurrentClientVersion();
+    if (gl::GetComponentCount(internalFormat, clientVersion) != 4 || !gl::IsColorRenderingSupported(internalFormat, renderer))
+    {
+        const SwizzleFormatInfo &amp;swizzleInfo = GetSwizzleFormatInfo(internalFormat, clientVersion);
+        return swizzleInfo.mSRVFormat;
+    }
+    else
+    {
+        return GetTexFormat(internalFormat, clientVersion);
+    }
+}
+
+DXGI_FORMAT GetSwizzleRTVFormat(GLint internalFormat, const Renderer *renderer)
+{
+    GLuint clientVersion = renderer-&gt;getCurrentClientVersion();
+    if (gl::GetComponentCount(internalFormat, clientVersion) != 4 || !gl::IsColorRenderingSupported(internalFormat, renderer))
+    {
+        const SwizzleFormatInfo &amp;swizzleInfo = GetSwizzleFormatInfo(internalFormat, clientVersion);
+        return swizzleInfo.mRTVFormat;
+    }
+    else
+    {
+        return GetTexFormat(internalFormat, clientVersion);
+    }
+}
+
+bool RequiresTextureDataInitialization(GLint internalFormat)
+{
+    const InternalFormatInitializerMap &amp;map = GetInternalFormatInitializerMap();
+    return map.find(internalFormat) != map.end();
+}
+
+InitializeTextureDataFunction GetTextureDataInitializationFunction(GLint internalFormat)
+{
+    const InternalFormatInitializerMap &amp;map = GetInternalFormatInitializerMap();
+    InternalFormatInitializerMap::const_iterator iter = map.find(internalFormat);
+    if (iter != map.end())
+    {
+        return iter-&gt;second;
+    }
+    else
+    {
+        UNREACHABLE();
+        return NULL;
+    }
+}
+
+struct D3D11VertexFormatInfo
+{
+    rx::VertexConversionType mConversionType;
+    DXGI_FORMAT mNativeFormat;
+    VertexCopyFunction mCopyFunction;
+
+    D3D11VertexFormatInfo()
+        : mConversionType(VERTEX_CONVERT_NONE),
+          mNativeFormat(DXGI_FORMAT_UNKNOWN),
+          mCopyFunction(NULL)
+    {}
+
+    D3D11VertexFormatInfo(VertexConversionType conversionType, DXGI_FORMAT nativeFormat, VertexCopyFunction copyFunction)
+        : mConversionType(conversionType),
+          mNativeFormat(nativeFormat),
+          mCopyFunction(copyFunction)
+    {}
+};
+
+typedef std::map&lt;gl::VertexFormat, D3D11VertexFormatInfo&gt; D3D11VertexFormatInfoMap;
+
+typedef std::pair&lt;gl::VertexFormat, D3D11VertexFormatInfo&gt; D3D11VertexFormatPair;
+
+static void addVertexFormatInfo(D3D11VertexFormatInfoMap *map, GLenum inputType, GLboolean normalized, GLuint componentCount,
+                                VertexConversionType conversionType, DXGI_FORMAT nativeFormat, VertexCopyFunction copyFunction)
+{
+    gl::VertexFormat inputFormat(inputType, normalized, componentCount, false);
+    map-&gt;insert(D3D11VertexFormatPair(inputFormat, D3D11VertexFormatInfo(conversionType, nativeFormat, copyFunction)));
+}
+
+static void addIntegerVertexFormatInfo(D3D11VertexFormatInfoMap *map, GLenum inputType, GLuint componentCount,
+                                       VertexConversionType conversionType, DXGI_FORMAT nativeFormat, VertexCopyFunction copyFunction)
+{
+    gl::VertexFormat inputFormat(inputType, GL_FALSE, componentCount, true);
+    map-&gt;insert(D3D11VertexFormatPair(inputFormat, D3D11VertexFormatInfo(conversionType, nativeFormat, copyFunction)));
+}
+
+static D3D11VertexFormatInfoMap BuildD3D11VertexFormatInfoMap()
+{
+    D3D11VertexFormatInfoMap map;
+
+    // TODO: column legend
+
+    //
+    // Float formats
+    //
+
+    // GL_BYTE -- un-normalized
+    addVertexFormatInfo(&amp;map, GL_BYTE,           GL_FALSE, 1, VERTEX_CONVERT_GPU,  DXGI_FORMAT_R8_SINT,            &amp;copyVertexData&lt;GLbyte, 1, 0&gt;);
+    addVertexFormatInfo(&amp;map, GL_BYTE,           GL_FALSE, 2, VERTEX_CONVERT_GPU,  DXGI_FORMAT_R8G8_SINT,          &amp;copyVertexData&lt;GLbyte, 2, 0&gt;);
+    addVertexFormatInfo(&amp;map, GL_BYTE,           GL_FALSE, 3, VERTEX_CONVERT_BOTH, DXGI_FORMAT_R8G8B8A8_SINT,      &amp;copyVertexData&lt;GLbyte, 3, 1&gt;);
+    addVertexFormatInfo(&amp;map, GL_BYTE,           GL_FALSE, 4, VERTEX_CONVERT_GPU,  DXGI_FORMAT_R8G8B8A8_SINT,      &amp;copyVertexData&lt;GLbyte, 4, 0&gt;);
+
+    // GL_BYTE -- normalized
+    addVertexFormatInfo(&amp;map, GL_BYTE,           GL_TRUE,  1, VERTEX_CONVERT_NONE, DXGI_FORMAT_R8_SNORM,           &amp;copyVertexData&lt;GLbyte, 1, 0&gt;);
+    addVertexFormatInfo(&amp;map, GL_BYTE,           GL_TRUE,  2, VERTEX_CONVERT_NONE, DXGI_FORMAT_R8G8_SNORM,         &amp;copyVertexData&lt;GLbyte, 2, 0&gt;);
+    addVertexFormatInfo(&amp;map, GL_BYTE,           GL_TRUE,  3, VERTEX_CONVERT_CPU,  DXGI_FORMAT_R8G8B8A8_SNORM,     &amp;copyVertexData&lt;GLbyte, 3, INT8_MAX&gt;);
+    addVertexFormatInfo(&amp;map, GL_BYTE,           GL_TRUE,  4, VERTEX_CONVERT_NONE, DXGI_FORMAT_R8G8B8A8_SNORM,     &amp;copyVertexData&lt;GLbyte, 4, 0&gt;);
+
+    // GL_UNSIGNED_BYTE -- un-normalized
+    addVertexFormatInfo(&amp;map, GL_UNSIGNED_BYTE,  GL_FALSE, 1, VERTEX_CONVERT_GPU,  DXGI_FORMAT_R8_UINT,            &amp;copyVertexData&lt;GLubyte, 1, 0&gt;);
+    addVertexFormatInfo(&amp;map, GL_UNSIGNED_BYTE,  GL_FALSE, 2, VERTEX_CONVERT_GPU,  DXGI_FORMAT_R8G8_UINT,          &amp;copyVertexData&lt;GLubyte, 2, 0&gt;);
+    addVertexFormatInfo(&amp;map, GL_UNSIGNED_BYTE,  GL_FALSE, 3, VERTEX_CONVERT_BOTH, DXGI_FORMAT_R8G8B8A8_UINT,      &amp;copyVertexData&lt;GLubyte, 3, 1&gt;);
+    addVertexFormatInfo(&amp;map, GL_UNSIGNED_BYTE,  GL_FALSE, 4, VERTEX_CONVERT_GPU,  DXGI_FORMAT_R8G8B8A8_UINT,      &amp;copyVertexData&lt;GLubyte, 4, 0&gt;);
+
+    // GL_UNSIGNED_BYTE -- normalized
+    addVertexFormatInfo(&amp;map, GL_UNSIGNED_BYTE,  GL_TRUE,  1, VERTEX_CONVERT_NONE, DXGI_FORMAT_R8_UNORM,           &amp;copyVertexData&lt;GLubyte, 1, 0&gt;);
+    addVertexFormatInfo(&amp;map, GL_UNSIGNED_BYTE,  GL_TRUE,  2, VERTEX_CONVERT_NONE, DXGI_FORMAT_R8G8_UNORM,         &amp;copyVertexData&lt;GLubyte, 2, 0&gt;);
+    addVertexFormatInfo(&amp;map, GL_UNSIGNED_BYTE,  GL_TRUE,  3, VERTEX_CONVERT_CPU,  DXGI_FORMAT_R8G8B8A8_UNORM,     &amp;copyVertexData&lt;GLubyte, 3, UINT8_MAX&gt;);
+    addVertexFormatInfo(&amp;map, GL_UNSIGNED_BYTE,  GL_TRUE,  4, VERTEX_CONVERT_NONE, DXGI_FORMAT_R8G8B8A8_UNORM,     &amp;copyVertexData&lt;GLubyte, 4, 0&gt;);
+
+    // GL_SHORT -- un-normalized
+    addVertexFormatInfo(&amp;map, GL_SHORT,          GL_FALSE, 1, VERTEX_CONVERT_GPU,  DXGI_FORMAT_R16_SINT,           &amp;copyVertexData&lt;GLshort, 1, 0&gt;);
+    addVertexFormatInfo(&amp;map, GL_SHORT,          GL_FALSE, 2, VERTEX_CONVERT_GPU,  DXGI_FORMAT_R16G16_SINT,        &amp;copyVertexData&lt;GLshort, 2, 0&gt;);
+    addVertexFormatInfo(&amp;map, GL_SHORT,          GL_FALSE, 3, VERTEX_CONVERT_BOTH, DXGI_FORMAT_R16G16B16A16_SINT,  &amp;copyVertexData&lt;GLshort, 4, 1&gt;);
+    addVertexFormatInfo(&amp;map, GL_SHORT,          GL_FALSE, 4, VERTEX_CONVERT_GPU,  DXGI_FORMAT_R16G16B16A16_SINT,  &amp;copyVertexData&lt;GLshort, 4, 0&gt;);
+
+    // GL_SHORT -- normalized
+    addVertexFormatInfo(&amp;map, GL_SHORT,          GL_TRUE,  1, VERTEX_CONVERT_NONE, DXGI_FORMAT_R16_SNORM,          &amp;copyVertexData&lt;GLshort, 1, 0&gt;);
+    addVertexFormatInfo(&amp;map, GL_SHORT,          GL_TRUE,  2, VERTEX_CONVERT_NONE, DXGI_FORMAT_R16G16_SNORM,       &amp;copyVertexData&lt;GLshort, 2, 0&gt;);
+    addVertexFormatInfo(&amp;map, GL_SHORT,          GL_TRUE,  3, VERTEX_CONVERT_CPU,  DXGI_FORMAT_R16G16B16A16_SNORM, &amp;copyVertexData&lt;GLshort, 3, INT16_MAX&gt;);
+    addVertexFormatInfo(&amp;map, GL_SHORT,          GL_TRUE,  4, VERTEX_CONVERT_NONE, DXGI_FORMAT_R16G16B16A16_SNORM, &amp;copyVertexData&lt;GLshort, 4, 0&gt;);
+
+    // GL_UNSIGNED_SHORT -- un-normalized
+    addVertexFormatInfo(&amp;map, GL_UNSIGNED_SHORT, GL_FALSE, 1, VERTEX_CONVERT_GPU,  DXGI_FORMAT_R16_UINT,           &amp;copyVertexData&lt;GLushort, 1, 0&gt;);
+    addVertexFormatInfo(&amp;map, GL_UNSIGNED_SHORT, GL_FALSE, 2, VERTEX_CONVERT_GPU,  DXGI_FORMAT_R16G16_UINT,        &amp;copyVertexData&lt;GLushort, 2, 0&gt;);
+    addVertexFormatInfo(&amp;map, GL_UNSIGNED_SHORT, GL_FALSE, 3, VERTEX_CONVERT_BOTH, DXGI_FORMAT_R16G16B16A16_UINT,  &amp;copyVertexData&lt;GLushort, 3, 1&gt;);
+    addVertexFormatInfo(&amp;map, GL_UNSIGNED_SHORT, GL_FALSE, 4, VERTEX_CONVERT_GPU,  DXGI_FORMAT_R16G16B16A16_UINT,  &amp;copyVertexData&lt;GLushort, 4, 0&gt;);
+
+    // GL_UNSIGNED_SHORT -- normalized
+    addVertexFormatInfo(&amp;map, GL_UNSIGNED_SHORT, GL_TRUE,  1, VERTEX_CONVERT_NONE, DXGI_FORMAT_R16_UNORM,          &amp;copyVertexData&lt;GLushort, 1, 0&gt;);
+    addVertexFormatInfo(&amp;map, GL_UNSIGNED_SHORT, GL_TRUE,  2, VERTEX_CONVERT_NONE, DXGI_FORMAT_R16G16_UNORM,       &amp;copyVertexData&lt;GLushort, 2, 0&gt;);
+    addVertexFormatInfo(&amp;map, GL_UNSIGNED_SHORT, GL_TRUE,  3, VERTEX_CONVERT_CPU,  DXGI_FORMAT_R16G16B16A16_UNORM, &amp;copyVertexData&lt;GLushort, 3, UINT16_MAX&gt;);
+    addVertexFormatInfo(&amp;map, GL_UNSIGNED_SHORT, GL_TRUE,  4, VERTEX_CONVERT_NONE, DXGI_FORMAT_R16G16B16A16_UNORM, &amp;copyVertexData&lt;GLushort, 4, 0&gt;);
+
+    // GL_INT -- un-normalized
+    addVertexFormatInfo(&amp;map, GL_INT,            GL_FALSE, 1, VERTEX_CONVERT_GPU,  DXGI_FORMAT_R32_SINT,           &amp;copyVertexData&lt;GLint, 1, 0&gt;);
+    addVertexFormatInfo(&amp;map, GL_INT,            GL_FALSE, 2, VERTEX_CONVERT_GPU,  DXGI_FORMAT_R32G32_SINT,        &amp;copyVertexData&lt;GLint, 2, 0&gt;);
+    addVertexFormatInfo(&amp;map, GL_INT,            GL_FALSE, 3, VERTEX_CONVERT_GPU,  DXGI_FORMAT_R32G32B32_SINT,     &amp;copyVertexData&lt;GLint, 3, 0&gt;);
+    addVertexFormatInfo(&amp;map, GL_INT,            GL_FALSE, 4, VERTEX_CONVERT_GPU,  DXGI_FORMAT_R32G32B32A32_SINT,  &amp;copyVertexData&lt;GLint, 4, 0&gt;);
+
+    // GL_INT -- normalized
+    addVertexFormatInfo(&amp;map, GL_INT,            GL_TRUE,  1, VERTEX_CONVERT_CPU,  DXGI_FORMAT_R32_FLOAT,          &amp;copyToFloatVertexData&lt;GLint, 1, true&gt;);
+    addVertexFormatInfo(&amp;map, GL_INT,            GL_TRUE,  2, VERTEX_CONVERT_CPU,  DXGI_FORMAT_R32G32_FLOAT,       &amp;copyToFloatVertexData&lt;GLint, 2, true&gt;);
+    addVertexFormatInfo(&amp;map, GL_INT,            GL_TRUE,  3, VERTEX_CONVERT_CPU,  DXGI_FORMAT_R32G32B32_FLOAT,    &amp;copyToFloatVertexData&lt;GLint, 3, true&gt;);
+    addVertexFormatInfo(&amp;map, GL_INT,            GL_TRUE,  4, VERTEX_CONVERT_CPU,  DXGI_FORMAT_R32G32B32A32_FLOAT, &amp;copyToFloatVertexData&lt;GLint, 4, true&gt;);
+
+    // GL_UNSIGNED_INT -- un-normalized
+    addVertexFormatInfo(&amp;map, GL_UNSIGNED_INT,   GL_FALSE, 1, VERTEX_CONVERT_GPU,  DXGI_FORMAT_R32_UINT,           &amp;copyVertexData&lt;GLuint, 1, 0&gt;);
+    addVertexFormatInfo(&amp;map, GL_UNSIGNED_INT,   GL_FALSE, 2, VERTEX_CONVERT_GPU,  DXGI_FORMAT_R32G32_UINT,        &amp;copyVertexData&lt;GLuint, 2, 0&gt;);
+    addVertexFormatInfo(&amp;map, GL_UNSIGNED_INT,   GL_FALSE, 3, VERTEX_CONVERT_GPU,  DXGI_FORMAT_R32G32B32_UINT,     &amp;copyVertexData&lt;GLuint, 3, 0&gt;);
+    addVertexFormatInfo(&amp;map, GL_UNSIGNED_INT,   GL_FALSE, 4, VERTEX_CONVERT_GPU,  DXGI_FORMAT_R32G32B32A32_UINT,  &amp;copyVertexData&lt;GLuint, 4, 0&gt;);
+
+    // GL_UNSIGNED_INT -- normalized
+    addVertexFormatInfo(&amp;map, GL_UNSIGNED_INT,   GL_TRUE,  1, VERTEX_CONVERT_NONE, DXGI_FORMAT_R32_FLOAT,          &amp;copyToFloatVertexData&lt;GLuint, 1, true&gt;);
+    addVertexFormatInfo(&amp;map, GL_UNSIGNED_INT,   GL_TRUE,  2, VERTEX_CONVERT_NONE, DXGI_FORMAT_R32G32_FLOAT,       &amp;copyToFloatVertexData&lt;GLuint, 2, true&gt;);
+    addVertexFormatInfo(&amp;map, GL_UNSIGNED_INT,   GL_TRUE,  3, VERTEX_CONVERT_CPU,  DXGI_FORMAT_R32G32B32_FLOAT,    &amp;copyToFloatVertexData&lt;GLuint, 3, true&gt;);
+    addVertexFormatInfo(&amp;map, GL_UNSIGNED_INT,   GL_TRUE,  4, VERTEX_CONVERT_NONE, DXGI_FORMAT_R32G32B32A32_FLOAT, &amp;copyToFloatVertexData&lt;GLuint, 4, true&gt;);
+
+    // GL_FIXED
+    addVertexFormatInfo(&amp;map, GL_FIXED,          GL_FALSE, 1, VERTEX_CONVERT_CPU,  DXGI_FORMAT_R32_FLOAT,          &amp;copyFixedVertexData&lt;1&gt;);
+    addVertexFormatInfo(&amp;map, GL_FIXED,          GL_FALSE, 2, VERTEX_CONVERT_CPU,  DXGI_FORMAT_R32G32_FLOAT,       &amp;copyFixedVertexData&lt;2&gt;);
+    addVertexFormatInfo(&amp;map, GL_FIXED,          GL_FALSE, 3, VERTEX_CONVERT_CPU,  DXGI_FORMAT_R32G32B32_FLOAT,    &amp;copyFixedVertexData&lt;3&gt;);
+    addVertexFormatInfo(&amp;map, GL_FIXED,          GL_FALSE, 4, VERTEX_CONVERT_CPU,  DXGI_FORMAT_R32G32B32A32_FLOAT, &amp;copyFixedVertexData&lt;4&gt;);
+
+    // GL_HALF_FLOAT
+    addVertexFormatInfo(&amp;map, GL_HALF_FLOAT,     GL_FALSE, 1, VERTEX_CONVERT_NONE, DXGI_FORMAT_R16_FLOAT,          &amp;copyVertexData&lt;GLhalf, 1, 0&gt;);
+    addVertexFormatInfo(&amp;map, GL_HALF_FLOAT,     GL_FALSE, 2, VERTEX_CONVERT_NONE, DXGI_FORMAT_R16G16_FLOAT,       &amp;copyVertexData&lt;GLhalf, 2, 0&gt;);
+    addVertexFormatInfo(&amp;map, GL_HALF_FLOAT,     GL_FALSE, 3, VERTEX_CONVERT_CPU,  DXGI_FORMAT_R16G16B16A16_FLOAT, &amp;copyVertexData&lt;GLhalf, 3, gl::Float16One&gt;);
+    addVertexFormatInfo(&amp;map, GL_HALF_FLOAT,     GL_FALSE, 4, VERTEX_CONVERT_NONE, DXGI_FORMAT_R16G16B16A16_FLOAT, &amp;copyVertexData&lt;GLhalf, 4, 0&gt;);
+
+    // GL_FLOAT
+    addVertexFormatInfo(&amp;map, GL_FLOAT,          GL_FALSE, 1, VERTEX_CONVERT_NONE, DXGI_FORMAT_R32_FLOAT,          &amp;copyVertexData&lt;GLfloat, 1, 0&gt;);
+    addVertexFormatInfo(&amp;map, GL_FLOAT,          GL_FALSE, 2, VERTEX_CONVERT_NONE, DXGI_FORMAT_R32G32_FLOAT,       &amp;copyVertexData&lt;GLfloat, 2, 0&gt;);
+    addVertexFormatInfo(&amp;map, GL_FLOAT,          GL_FALSE, 3, VERTEX_CONVERT_NONE, DXGI_FORMAT_R32G32B32_FLOAT,    &amp;copyVertexData&lt;GLfloat, 3, 0&gt;);
+    addVertexFormatInfo(&amp;map, GL_FLOAT,          GL_FALSE, 4, VERTEX_CONVERT_NONE, DXGI_FORMAT_R32G32B32A32_FLOAT, &amp;copyVertexData&lt;GLfloat, 4, 0&gt;);
+
+    // GL_INT_2_10_10_10_REV
+    addVertexFormatInfo(&amp;map, GL_INT_2_10_10_10_REV,          GL_FALSE,  4, VERTEX_CONVERT_CPU,  DXGI_FORMAT_R32G32B32A32_FLOAT, &amp;copyPackedVertexData&lt;true, false, true&gt;);
+    addVertexFormatInfo(&amp;map, GL_INT_2_10_10_10_REV,          GL_TRUE,   4, VERTEX_CONVERT_CPU,  DXGI_FORMAT_R32G32B32A32_FLOAT, &amp;copyPackedVertexData&lt;true, true,  true&gt;);
+
+    // GL_UNSIGNED_INT_2_10_10_10_REV
+    addVertexFormatInfo(&amp;map, GL_UNSIGNED_INT_2_10_10_10_REV, GL_FALSE,  4, VERTEX_CONVERT_CPU,  DXGI_FORMAT_R32G32B32A32_FLOAT, &amp;copyPackedVertexData&lt;false, false, true&gt;);
+    addVertexFormatInfo(&amp;map, GL_UNSIGNED_INT_2_10_10_10_REV, GL_TRUE,   4, VERTEX_CONVERT_NONE, DXGI_FORMAT_R10G10B10A2_UNORM,  &amp;copyPackedUnsignedVertexData);
+
+    //
+    // Integer Formats
+    //
+
+    // GL_BYTE
+    addIntegerVertexFormatInfo(&amp;map, GL_BYTE,           1, VERTEX_CONVERT_NONE,  DXGI_FORMAT_R8_SINT,           &amp;copyVertexData&lt;GLbyte, 1, 0&gt;);
+    addIntegerVertexFormatInfo(&amp;map, GL_BYTE,           2, VERTEX_CONVERT_NONE,  DXGI_FORMAT_R8G8_SINT,         &amp;copyVertexData&lt;GLbyte, 2, 0&gt;);
+    addIntegerVertexFormatInfo(&amp;map, GL_BYTE,           3, VERTEX_CONVERT_CPU,   DXGI_FORMAT_R8G8B8A8_SINT,     &amp;copyVertexData&lt;GLbyte, 3, 1&gt;);
+    addIntegerVertexFormatInfo(&amp;map, GL_BYTE,           4, VERTEX_CONVERT_NONE,  DXGI_FORMAT_R8G8B8A8_SINT,     &amp;copyVertexData&lt;GLbyte, 4, 0&gt;);
+
+    // GL_UNSIGNED_BYTE
+    addIntegerVertexFormatInfo(&amp;map, GL_UNSIGNED_BYTE,  1, VERTEX_CONVERT_NONE,  DXGI_FORMAT_R8_UINT,           &amp;copyVertexData&lt;GLubyte, 1, 0&gt;);
+    addIntegerVertexFormatInfo(&amp;map, GL_UNSIGNED_BYTE,  2, VERTEX_CONVERT_NONE,  DXGI_FORMAT_R8G8_UINT,         &amp;copyVertexData&lt;GLubyte, 2, 0&gt;);
+    addIntegerVertexFormatInfo(&amp;map, GL_UNSIGNED_BYTE,  3, VERTEX_CONVERT_CPU,   DXGI_FORMAT_R8G8B8A8_UINT,     &amp;copyVertexData&lt;GLubyte, 3, 1&gt;);
+    addIntegerVertexFormatInfo(&amp;map, GL_UNSIGNED_BYTE,  4, VERTEX_CONVERT_NONE,  DXGI_FORMAT_R8G8B8A8_UINT,     &amp;copyVertexData&lt;GLubyte, 4, 0&gt;);
+
+    // GL_SHORT
+    addIntegerVertexFormatInfo(&amp;map, GL_SHORT,          1, VERTEX_CONVERT_NONE,  DXGI_FORMAT_R16_SINT,          &amp;copyVertexData&lt;GLshort, 1, 0&gt;);
+    addIntegerVertexFormatInfo(&amp;map, GL_SHORT,          2, VERTEX_CONVERT_NONE,  DXGI_FORMAT_R16G16_SINT,       &amp;copyVertexData&lt;GLshort, 2, 0&gt;);
+    addIntegerVertexFormatInfo(&amp;map, GL_SHORT,          3, VERTEX_CONVERT_CPU,   DXGI_FORMAT_R16G16B16A16_SINT, &amp;copyVertexData&lt;GLshort, 3, 1&gt;);
+    addIntegerVertexFormatInfo(&amp;map, GL_SHORT,          4, VERTEX_CONVERT_NONE,  DXGI_FORMAT_R16G16B16A16_SINT, &amp;copyVertexData&lt;GLshort, 4, 0&gt;);
+
+    // GL_UNSIGNED_SHORT
+    addIntegerVertexFormatInfo(&amp;map, GL_UNSIGNED_SHORT, 1, VERTEX_CONVERT_NONE,  DXGI_FORMAT_R16_UINT,          &amp;copyVertexData&lt;GLushort, 1, 0&gt;);
+    addIntegerVertexFormatInfo(&amp;map, GL_UNSIGNED_SHORT, 2, VERTEX_CONVERT_NONE,  DXGI_FORMAT_R16G16_UINT,       &amp;copyVertexData&lt;GLushort, 2, 0&gt;);
+    addIntegerVertexFormatInfo(&amp;map, GL_UNSIGNED_SHORT, 3, VERTEX_CONVERT_CPU,   DXGI_FORMAT_R16G16B16A16_UINT, &amp;copyVertexData&lt;GLushort, 3, 1&gt;);
+    addIntegerVertexFormatInfo(&amp;map, GL_UNSIGNED_SHORT, 4, VERTEX_CONVERT_NONE,  DXGI_FORMAT_R16G16B16A16_UINT, &amp;copyVertexData&lt;GLushort, 4, 0&gt;);
+
+    // GL_INT
+    addIntegerVertexFormatInfo(&amp;map, GL_INT,            1, VERTEX_CONVERT_NONE,  DXGI_FORMAT_R32_SINT,          &amp;copyVertexData&lt;GLint, 1, 0&gt;);
+    addIntegerVertexFormatInfo(&amp;map, GL_INT,            2, VERTEX_CONVERT_NONE,  DXGI_FORMAT_R32G32_SINT,       &amp;copyVertexData&lt;GLint, 2, 0&gt;);
+    addIntegerVertexFormatInfo(&amp;map, GL_INT,            3, VERTEX_CONVERT_NONE,  DXGI_FORMAT_R32G32B32_SINT,    &amp;copyVertexData&lt;GLint, 3, 0&gt;);
+    addIntegerVertexFormatInfo(&amp;map, GL_INT,            4, VERTEX_CONVERT_NONE,  DXGI_FORMAT_R32G32B32A32_SINT, &amp;copyVertexData&lt;GLint, 4, 0&gt;);
+
+    // GL_UNSIGNED_INT
+    addIntegerVertexFormatInfo(&amp;map, GL_UNSIGNED_INT,   1, VERTEX_CONVERT_NONE,  DXGI_FORMAT_R32_SINT,          &amp;copyVertexData&lt;GLuint, 1, 0&gt;);
+    addIntegerVertexFormatInfo(&amp;map, GL_UNSIGNED_INT,   2, VERTEX_CONVERT_NONE,  DXGI_FORMAT_R32G32_SINT,       &amp;copyVertexData&lt;GLuint, 2, 0&gt;);
+    addIntegerVertexFormatInfo(&amp;map, GL_UNSIGNED_INT,   3, VERTEX_CONVERT_NONE,  DXGI_FORMAT_R32G32B32_SINT,    &amp;copyVertexData&lt;GLuint, 3, 0&gt;);
+    addIntegerVertexFormatInfo(&amp;map, GL_UNSIGNED_INT,   4, VERTEX_CONVERT_NONE,  DXGI_FORMAT_R32G32B32A32_SINT, &amp;copyVertexData&lt;GLuint, 4, 0&gt;);
+
+    // GL_INT_2_10_10_10_REV
+    addIntegerVertexFormatInfo(&amp;map, GL_INT_2_10_10_10_REV, 4, VERTEX_CONVERT_CPU, DXGI_FORMAT_R16G16B16A16_SINT, &amp;copyPackedVertexData&lt;true, true, false&gt;);
+
+    // GL_UNSIGNED_INT_2_10_10_10_REV
+    addIntegerVertexFormatInfo(&amp;map, GL_UNSIGNED_INT_2_10_10_10_REV, 4, VERTEX_CONVERT_NONE, DXGI_FORMAT_R10G10B10A2_UINT, &amp;copyPackedUnsignedVertexData);
+
+    return map;
+}
+
+static bool GetD3D11VertexFormatInfo(const gl::VertexFormat &amp;vertexFormat, D3D11VertexFormatInfo *outVertexFormatInfo)
+{
+    static const D3D11VertexFormatInfoMap vertexFormatMap = BuildD3D11VertexFormatInfoMap();
+
+    D3D11VertexFormatInfoMap::const_iterator iter = vertexFormatMap.find(vertexFormat);
+    if (iter != vertexFormatMap.end())
+    {
+        if (outVertexFormatInfo)
+        {
+            *outVertexFormatInfo = iter-&gt;second;
+        }
+        return true;
+    }
+    else
+    {
+        return false;
+    }
+}
+
+VertexCopyFunction GetVertexCopyFunction(const gl::VertexFormat &amp;vertexFormat)
+{
+    D3D11VertexFormatInfo vertexFormatInfo;
+    if (GetD3D11VertexFormatInfo(vertexFormat, &amp;vertexFormatInfo))
+    {
+        return vertexFormatInfo.mCopyFunction;
+    }
+    else
+    {
+        UNREACHABLE();
+        return NULL;
+    }
+}
+
+size_t GetVertexElementSize(const gl::VertexFormat &amp;vertexFormat)
+{
+    D3D11VertexFormatInfo vertexFormatInfo;
+    if (GetD3D11VertexFormatInfo(vertexFormat, &amp;vertexFormatInfo))
+    {
+        // FIXME: should not need a client version, and is not a pixel!
+        return d3d11::GetFormatPixelBytes(vertexFormatInfo.mNativeFormat);
+    }
+    else
+    {
+        UNREACHABLE();
+        return 0;
+    }
+}
+
+rx::VertexConversionType GetVertexConversionType(const gl::VertexFormat &amp;vertexFormat)
+{
+    D3D11VertexFormatInfo vertexFormatInfo;
+    if (GetD3D11VertexFormatInfo(vertexFormat, &amp;vertexFormatInfo))
+    {
+        return vertexFormatInfo.mConversionType;
+    }
+    else
+    {
+        UNREACHABLE();
+        return VERTEX_CONVERT_NONE;
+    }
+}
+
+DXGI_FORMAT GetNativeVertexFormat(const gl::VertexFormat &amp;vertexFormat)
+{
+    D3D11VertexFormatInfo vertexFormatInfo;
+    if (GetD3D11VertexFormatInfo(vertexFormat, &amp;vertexFormatInfo))
+    {
+        return vertexFormatInfo.mNativeFormat;
+    }
+    else
+    {
+        UNREACHABLE();
+        return DXGI_FORMAT_UNKNOWN;
+    }
+}
+
+}
+
+namespace d3d11_gl
+{
+
+GLenum GetInternalFormat(DXGI_FORMAT format, GLuint clientVersion)
+{
+    if (clientVersion == 2)
+    {
+        static DXGIToESFormatMap es2FormatMap = BuildDXGIToES2FormatMap();
+        auto formatIt = es2FormatMap.find(format);
+        if (formatIt != es2FormatMap.end())
+        {
+            return formatIt-&gt;second;
+        }
+    }
+    else if (clientVersion == 3)
+    {
+        static DXGIToESFormatMap es3FormatMap = BuildDXGIToES3FormatMap();
+        auto formatIt = es3FormatMap.find(format);
+        if (formatIt != es3FormatMap.end())
+        {
+            return formatIt-&gt;second;
+        }
+    }
+
+    UNREACHABLE();
+    return GL_NONE;
+}
+
+}
+
+}
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11formatutils11h"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/formatutils11.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/formatutils11.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/formatutils11.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,79 @@
</span><ins>+//
+// Copyright (c) 2013 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+
+// formatutils11.h: Queries for GL image formats and their translations to D3D11
+// formats.
+
+#ifndef LIBGLESV2_RENDERER_FORMATUTILS11_H_
+#define LIBGLESV2_RENDERER_FORMATUTILS11_H_
+
+#include &quot;libGLESv2/formatutils.h&quot;
+
+namespace rx
+{
+
+class Renderer;
+
+namespace d3d11
+{
+
+typedef std::set&lt;DXGI_FORMAT&gt; DXGIFormatSet;
+
+MipGenerationFunction GetMipGenerationFunction(DXGI_FORMAT format);
+LoadImageFunction GetImageLoadFunction(GLenum internalFormat, GLenum type, GLuint clientVersion);
+
+GLuint GetFormatPixelBytes(DXGI_FORMAT format);
+GLuint GetBlockWidth(DXGI_FORMAT format);
+GLuint GetBlockHeight(DXGI_FORMAT format);
+GLenum GetComponentType(DXGI_FORMAT format);
+
+GLuint GetDepthBits(DXGI_FORMAT format);
+GLuint GetDepthOffset(DXGI_FORMAT format);
+GLuint GetStencilBits(DXGI_FORMAT format);
+GLuint GetStencilOffset(DXGI_FORMAT format);
+
+void MakeValidSize(bool isImage, DXGI_FORMAT format, GLsizei *requestWidth, GLsizei *requestHeight, int *levelOffset);
+
+const DXGIFormatSet &amp;GetAllUsedDXGIFormats();
+
+ColorReadFunction GetColorReadFunction(DXGI_FORMAT format);
+ColorCopyFunction GetFastCopyFunction(DXGI_FORMAT sourceFormat, GLenum destFormat, GLenum destType);
+
+}
+
+namespace gl_d3d11
+{
+
+DXGI_FORMAT GetTexFormat(GLenum internalFormat, GLuint clientVersion);
+DXGI_FORMAT GetSRVFormat(GLenum internalFormat, GLuint clientVersion);
+DXGI_FORMAT GetRTVFormat(GLenum internalFormat, GLuint clientVersion);
+DXGI_FORMAT GetDSVFormat(GLenum internalFormat, GLuint clientVersion);
+DXGI_FORMAT GetRenderableFormat(GLenum internalFormat, GLuint clientVersion);
+
+DXGI_FORMAT GetSwizzleTexFormat(GLint internalFormat, const Renderer *renderer);
+DXGI_FORMAT GetSwizzleSRVFormat(GLint internalFormat, const Renderer *renderer);
+DXGI_FORMAT GetSwizzleRTVFormat(GLint internalFormat, const Renderer *renderer);
+
+bool RequiresTextureDataInitialization(GLint internalFormat);
+InitializeTextureDataFunction GetTextureDataInitializationFunction(GLint internalFormat);
+
+VertexCopyFunction GetVertexCopyFunction(const gl::VertexFormat &amp;vertexFormat);
+size_t GetVertexElementSize(const gl::VertexFormat &amp;vertexFormat);
+VertexConversionType GetVertexConversionType(const gl::VertexFormat &amp;vertexFormat);
+DXGI_FORMAT GetNativeVertexFormat(const gl::VertexFormat &amp;vertexFormat);
+
+}
+
+namespace d3d11_gl
+{
+
+GLenum GetInternalFormat(DXGI_FORMAT format, GLuint clientVersion);
+
+}
+
+}
+
+#endif // LIBGLESV2_RENDERER_FORMATUTILS11_H_
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shadersBufferToTexture11hlsl"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/BufferToTexture11.hlsl (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/BufferToTexture11.hlsl                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/BufferToTexture11.hlsl        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,76 @@
</span><ins>+Buffer&lt;float4&gt;    Buffer4F  : register(t0);
+Buffer&lt;int4&gt;      Buffer4I  : register(t0);
+Buffer&lt;uint4&gt;     Buffer4UI : register(t0);
+
+struct VS_OUTPUT
+{
+    float4 position : SV_Position;
+    uint index      : TEXCOORD0;
+    uint slice      : LAYER;
+};
+
+struct GS_OUTPUT
+{
+    float4 position : SV_Position;
+    uint index      : TEXCOORD0;
+    uint slice      : SV_RenderTargetArrayIndex;
+};
+
+cbuffer BufferCopyParams : register(b0)
+{
+    uint FirstPixelOffset;
+    uint PixelsPerRow;
+    uint RowStride;
+    uint RowsPerSlice;
+    float2 PositionOffset;
+    float2 PositionScale;
+    int2 TexLocationOffset;
+    int2 TexLocationScale;
+}
+
+void ComputePositionAndIndex(uint vertexID, out VS_OUTPUT outVertex)
+{
+    uint PixelsPerSlice = PixelsPerRow * RowsPerSlice;
+    uint SliceStride    = RowStride * RowsPerSlice;
+
+    uint slice          = vertexID / PixelsPerSlice;
+    uint sliceOffset    = slice * PixelsPerSlice;
+    uint row            = (vertexID - sliceOffset) / PixelsPerRow;
+    uint col            = vertexID - sliceOffset - (row * PixelsPerRow);
+
+    float2 coords       = float2(float(col), float(row));
+
+    outVertex.position  = float4(PositionOffset + PositionScale * coords, 0.0f, 1.0f);
+    outVertex.index     = FirstPixelOffset + slice * SliceStride + row * RowStride + col;
+    outVertex.slice     = slice;
+}
+
+void VS_BufferToTexture(in uint vertexID : SV_VertexID, out VS_OUTPUT outVertex)
+{
+    ComputePositionAndIndex(vertexID, outVertex);
+}
+
+[maxvertexcount(1)]
+void GS_BufferToTexture(point VS_OUTPUT inVertex[1], inout PointStream&lt;GS_OUTPUT&gt; outStream)
+{
+    GS_OUTPUT outVertex;
+    outVertex.position  = inVertex[0].position;
+    outVertex.index     = inVertex[0].index;
+    outVertex.slice     = inVertex[0].slice;
+    outStream.Append(outVertex);
+}
+
+float4 PS_BufferToTexture_4F(in float4 inPosition : SV_Position, in uint inIndex : TEXCOORD0) : SV_Target
+{
+    return Buffer4F.Load(inIndex);
+}
+
+int4 PS_BufferToTexture_4I(in float4 inPosition : SV_Position, in uint inIndex : TEXCOORD0) : SV_Target
+{
+    return Buffer4I.Load(inIndex);
+}
+
+uint4 PS_BufferToTexture_4UI(in float4 inPosition : SV_Position, in uint inIndex : TEXCOORD0) : SV_Target
+{
+    return Buffer4UI.Load(inIndex);
+}
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shadersPassthrough11hlsl"></a>
<div class="delfile"><h4>Deleted: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/Passthrough11.hlsl (168114 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/Passthrough11.hlsl        2014-05-01 19:23:29 UTC (rev 168114)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/Passthrough11.hlsl        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -1,29 +0,0 @@
</span><del>-Texture2D Texture : register(t0);
-SamplerState Sampler : register(s0);
-
-void VS_Passthrough( in float2  inPosition :    POSITION,  in float2  inTexCoord : TEXCOORD0,
-                    out float4 outPosition : SV_POSITION, out float2 outTexCoord : TEXCOORD0)
-{
-    outPosition = float4(inPosition, 0.0f, 1.0f);
-    outTexCoord = inTexCoord;
-}
-
-float4 PS_PassthroughRGBA(in float4 inPosition : SV_POSITION, in float2 inTexCoord : TEXCOORD0) : SV_TARGET0
-{
-    return Texture.Sample(Sampler, inTexCoord).rgba;
-}
-
-float4 PS_PassthroughRGB(in float4 inPosition : SV_POSITION, in float2 inTexCoord : TEXCOORD0) : SV_TARGET0
-{
-    return float4(Texture.Sample(Sampler, inTexCoord).rgb, 1.0f);
-}
-
-float4 PS_PassthroughLum(in float4 inPosition : SV_POSITION, in float2 inTexCoord : TEXCOORD0) : SV_TARGET0
-{
-    return float4(Texture.Sample(Sampler, inTexCoord).rrr, 1.0f);
-}
-
-float4 PS_PassthroughLumAlpha(in float4 inPosition : SV_POSITION, in float2 inTexCoord : TEXCOORD0) : SV_TARGET0
-{
-    return Texture.Sample(Sampler, inTexCoord).rrra;
-}
</del></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shadersPassthrough3D11hlsl"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/Passthrough3D11.hlsl (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/Passthrough3D11.hlsl                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/Passthrough3D11.hlsl        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,146 @@
</span><ins>+Texture3D&lt;float4&gt; TextureF  : register(t0);
+Texture3D&lt;uint4&gt;  TextureUI : register(t0);
+Texture3D&lt;int4&gt;   TextureI  : register(t0);
+
+SamplerState      Sampler   : register(s0);
+
+struct VS_INPUT
+{
+    float2 Position : POSITION;
+    uint   Layer    : LAYER;
+    float3 TexCoord : TEXCOORD;
+};
+
+struct VS_OUTPUT
+{
+    float4 Position : SV_POSITION;
+    uint   Layer    : LAYER;
+    float3 TexCoord : TEXCOORD;
+};
+
+struct GS_OUTPUT
+{
+    float4 Position : SV_POSITION;
+    uint   Layer    : SV_RENDERTARGETARRAYINDEX;
+    float3 TexCoord : TEXCOORD;
+};
+
+VS_OUTPUT VS_Passthrough3D(VS_INPUT input)
+{
+    VS_OUTPUT output;
+
+    output.Position = float4(input.Position, 0.0f, 1.0f);
+    output.Layer = input.Layer;
+    output.TexCoord = input.TexCoord;
+
+    return output;
+}
+
+[maxvertexcount(3)]
+void GS_Passthrough3D(triangle VS_OUTPUT input[3], inout TriangleStream&lt;GS_OUTPUT&gt; outputStream)
+{
+    GS_OUTPUT output;
+
+    for (int i = 0; i &lt; 3; i++)
+    {
+        output.Position = input[i].Position;
+        output.Layer = input[i].Layer;
+        output.TexCoord = input[i].TexCoord;
+
+        outputStream.Append(output);
+    }
+}
+
+float4 PS_PassthroughRGBA3D(GS_OUTPUT input) : SV_TARGET0
+{
+    return TextureF.Sample(Sampler, input.TexCoord).rgba;
+}
+
+uint4 PS_PassthroughRGBA3DUI(GS_OUTPUT input) : SV_TARGET0
+{
+    uint3 size;
+    TextureUI.GetDimensions(size.x, size.y, size.z);
+
+    return TextureUI.Load(int4(size * input.TexCoord, 0)).rgba;
+}
+
+int4 PS_PassthroughRGBA3DI(GS_OUTPUT input) : SV_TARGET0
+{
+    uint3 size;
+    TextureI.GetDimensions(size.x, size.y, size.z);
+
+    return TextureI.Load(int4(size * input.TexCoord, 0)).rgba;
+}
+
+float4 PS_PassthroughRGB3D(GS_OUTPUT input) : SV_TARGET0
+{
+    return float4(TextureF.Sample(Sampler, input.TexCoord).rgb, 1.0f);
+}
+
+uint4 PS_PassthroughRGB3DUI(GS_OUTPUT input) : SV_TARGET0
+{
+    uint3 size;
+    TextureUI.GetDimensions(size.x, size.y, size.z);
+
+    return uint4(TextureUI.Load(int4(size * input.TexCoord, 0)).rgb, 0);
+}
+
+int4 PS_PassthroughRGB3DI(GS_OUTPUT input) : SV_TARGET0
+{
+    uint3 size;
+    TextureI.GetDimensions(size.x, size.y, size.z);
+
+    return int4(TextureI.Load(int4(size * input.TexCoord, 0)).rgb, 0);
+}
+
+float4 PS_PassthroughRG3D(GS_OUTPUT input) : SV_TARGET0
+{
+    return float4(TextureF.Sample(Sampler, input.TexCoord).rg, 0.0f, 1.0f);
+}
+
+uint4 PS_PassthroughRG3DUI(GS_OUTPUT input) : SV_TARGET0
+{
+    uint3 size;
+    TextureUI.GetDimensions(size.x, size.y, size.z);
+
+    return uint4(TextureUI.Load(int4(size * input.TexCoord, 0)).rg, 0, 0);
+}
+
+int4 PS_PassthroughRG3DI(GS_OUTPUT input) : SV_TARGET0
+{
+    uint3 size;
+    TextureI.GetDimensions(size.x, size.y, size.z);
+
+    return int4(TextureI.Load(int4(size * input.TexCoord, 0)).rg, 0, 0);
+}
+
+float4 PS_PassthroughR3D(GS_OUTPUT input) : SV_TARGET0
+{
+    return float4(TextureF.Sample(Sampler, input.TexCoord).r, 0.0f, 0.0f, 1.0f);
+}
+
+uint4 PS_PassthroughR3DUI(GS_OUTPUT input) : SV_TARGET0
+{
+    uint3 size;
+    TextureUI.GetDimensions(size.x, size.y, size.z);
+
+    return uint4(TextureUI.Load(int4(size * input.TexCoord, 0)).r, 0, 0, 0);
+}
+
+int4 PS_PassthroughR3DI(GS_OUTPUT input) : SV_TARGET0
+{
+    uint3 size;
+    TextureI.GetDimensions(size.x, size.y, size.z);
+
+    return int4(TextureI.Load(int4(size * input.TexCoord, 0)).r, 0, 0, 0);
+}
+
+float4 PS_PassthroughLum3D(GS_OUTPUT input) : SV_TARGET0
+{
+    return float4(TextureF.Sample(Sampler, input.TexCoord).rrr, 1.0f);
+}
+
+float4 PS_PassthroughLumAlpha3D(GS_OUTPUT input) : SV_TARGET0
+{
+    return TextureF.Sample(Sampler, input.TexCoord).rrra;
+}
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shadersSwizzle11hlsl"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/Swizzle11.hlsl (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/Swizzle11.hlsl                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/Swizzle11.hlsl        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,99 @@
</span><ins>+Texture2D&lt;float4&gt; TextureF2D  : register(t0);
+Texture2D&lt;uint4&gt;  TextureUI2D : register(t0);
+Texture2D&lt;int4&gt;   TextureI2D  : register(t0);
+
+Texture3D&lt;float4&gt; TextureF3D  : register(t0);
+Texture3D&lt;uint4&gt;  TextureUI3D : register(t0);
+Texture3D&lt;int4&gt;   TextureI3D  : register(t0);
+
+Texture2DArray&lt;float4&gt; TextureF2DArray  : register(t0);
+Texture2DArray&lt;uint4&gt;  TextureUI2DArray : register(t0);
+Texture2DArray&lt;int4&gt;   TextureI2DArray  : register(t0);
+
+SamplerState Sampler          : register(s0);
+
+cbuffer SwizzleProperties     : register(b0)
+{
+    uint4 SwizzleIndices      : packoffset(c0);
+}
+
+float4 SwizzleLookup(in float4 sample)
+{
+    float lookup[6] = { sample[0], sample[1], sample[2], sample[3], 0.0f, 1.0f };
+    return float4(lookup[SwizzleIndices[0]], lookup[SwizzleIndices[1]], lookup[SwizzleIndices[2]], lookup[SwizzleIndices[3]]);
+}
+
+int4 SwizzleLookup(in int4 sample)
+{
+    int lookup[6] = { sample[0], sample[1], sample[2], sample[3], 0.0f, 1.0f };
+    return int4(lookup[SwizzleIndices[0]], lookup[SwizzleIndices[1]], lookup[SwizzleIndices[2]], lookup[SwizzleIndices[3]]);
+}
+
+uint4 SwizzleLookup(in uint4 sample)
+{
+    uint lookup[6] = { sample[0], sample[1], sample[2], sample[3], 0.0f, 1.0f };
+    return uint4(lookup[SwizzleIndices[0]], lookup[SwizzleIndices[1]], lookup[SwizzleIndices[2]], lookup[SwizzleIndices[3]]);
+}
+
+float4 PS_SwizzleF2D(in float4 inPosition : SV_POSITION, in float2 inTexCoord : TEXCOORD0) : SV_TARGET0
+{
+    return SwizzleLookup(TextureF2D.Sample(Sampler, inTexCoord));
+}
+
+int4 PS_SwizzleI2D(in float4 inPosition : SV_POSITION, in float2 inTexCoord : TEXCOORD0) : SV_TARGET0
+{
+    uint2 size;
+    TextureI2D.GetDimensions(size.x, size.y);
+
+    return SwizzleLookup(TextureI2D.Load(int3(size * inTexCoord, 0)));
+}
+
+uint4 PS_SwizzleUI2D(in float4 inPosition : SV_POSITION, in float2 inTexCoord : TEXCOORD0) : SV_TARGET0
+{
+    uint2 size;
+    TextureUI2D.GetDimensions(size.x, size.y);
+
+    return SwizzleLookup(TextureUI2D.Load(int3(size * inTexCoord, 0)));
+}
+
+float4 PS_SwizzleF3D(in float4 inPosition : SV_POSITION, in uint inLayer : SV_RENDERTARGETARRAYINDEX, in float3 inTexCoord : TEXCOORD0) : SV_TARGET0
+{
+    return SwizzleLookup(TextureF3D.Sample(Sampler, inTexCoord));
+}
+
+int4 PS_SwizzleI3D(in float4 inPosition : SV_POSITION, in uint inLayer : SV_RENDERTARGETARRAYINDEX, in float3 inTexCoord : TEXCOORD0) : SV_TARGET0
+{
+    uint3 size;
+    TextureI3D.GetDimensions(size.x, size.y, size.z);
+
+    return SwizzleLookup(TextureI3D.Load(int4(size * inTexCoord, 0)));
+}
+
+uint4 PS_SwizzleUI3D(in float4 inPosition : SV_POSITION, in uint inLayer : SV_RENDERTARGETARRAYINDEX, in float3 inTexCoord : TEXCOORD0) : SV_TARGET0
+{
+    uint3 size;
+    TextureUI3D.GetDimensions(size.x, size.y, size.z);
+
+    return SwizzleLookup(TextureUI3D.Load(int4(size * inTexCoord, 0)));
+}
+
+float4 PS_SwizzleF2DArray(in float4 inPosition : SV_POSITION, in uint inLayer : SV_RENDERTARGETARRAYINDEX, in float3 inTexCoord : TEXCOORD0) : SV_TARGET0
+{
+    return SwizzleLookup(TextureF2DArray.Sample(Sampler, float3(inTexCoord.xy, inLayer)));
+}
+
+int4 PS_SwizzleI2DArray(in float4 inPosition : SV_POSITION, in uint inLayer : SV_RENDERTARGETARRAYINDEX, in float3 inTexCoord : TEXCOORD0) : SV_TARGET0
+{
+    uint3 size;
+    TextureI2DArray.GetDimensions(size.x, size.y, size.z);
+
+    return SwizzleLookup(TextureI2DArray.Load(int4(size.xy * inTexCoord.xy, inLayer, 0)));
+}
+
+uint4 PS_SwizzleUI2DArray(in float4 inPosition : SV_POSITION, in uint inLayer : SV_RENDERTARGETARRAYINDEX, in float3 inTexCoord : TEXCOORD0) : SV_TARGET0
+{
+    uint3 size;
+    TextureUI2DArray.GetDimensions(size.x, size.y, size.z);
+
+    return SwizzleLookup(TextureUI2DArray.Load(int4(size.xy * inTexCoord.xy, inLayer, 0)));
+}
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledbuffertotexture11_gsh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/buffertotexture11_gs.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/buffertotexture11_gs.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/buffertotexture11_gs.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,166 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_Position              0   xyzw        0      POS   float   xyzw
+// TEXCOORD                 0   x           1     NONE    uint   x   
+// LAYER                    0    y          1     NONE    uint    y  
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_Position              0   xyzw        0      POS   float   xyzw
+// TEXCOORD                 0   x           1     NONE    uint   x   
+// SV_RenderTargetArrayIndex     0    y          1  RTINDEX    uint    y  
+//
+gs_4_0
+dcl_input_siv v[1][0].xyzw, position
+dcl_input v[1][1].x
+dcl_input v[1][1].y
+dcl_inputprimitive point 
+dcl_outputtopology pointlist 
+dcl_output_siv o0.xyzw, position
+dcl_output o1.x
+dcl_output_siv o1.y, rendertarget_array_index
+dcl_maxout 1
+mov o0.xyzw, v[0][0].xyzw
+mov o1.x, v[0][1].x
+mov o1.y, v[0][1].y
+emit 
+ret 
+// Approximately 5 instruction slots used
+#endif
+
+const BYTE g_GS_BufferToTexture[] =
+{
+     68,  88,  66,  67,  76, 247, 
+     16,  54, 179, 210,  24, 242, 
+    185, 199,  67, 148, 241, 107, 
+     16,   2,   1,   0,   0,   0, 
+    212,   2,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    140,   0,   0,   0,   0,   1, 
+      0,   0, 136,   1,   0,   0, 
+     88,   2,   0,   0,  82,  68, 
+     69,  70,  80,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+     83,  71,   0,   1,   0,   0, 
+     28,   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,  51, 
+     48,  46,  57,  50,  48,  48, 
+     46,  49,  54,  51,  56,  52, 
+      0, 171,  73,  83,  71,  78, 
+    108,   0,   0,   0,   3,   0, 
+      0,   0,   8,   0,   0,   0, 
+     80,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+      3,   0,   0,   0,   0,   0, 
+      0,   0,  15,  15,   0,   0, 
+     92,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   1,   0, 
+      0,   0,   1,   1,   0,   0, 
+    101,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   1,   0, 
+      0,   0,   2,   2,   0,   0, 
+     83,  86,  95,  80, 111, 115, 
+    105, 116, 105, 111, 110,   0, 
+     84,  69,  88,  67,  79,  79, 
+     82,  68,   0,  76,  65,  89, 
+     69,  82,   0, 171,  79,  83, 
+     71,  78, 128,   0,   0,   0, 
+      3,   0,   0,   0,   8,   0, 
+      0,   0,  80,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  92,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+      1,   0,   0,   0,   1,  14, 
+      0,   0, 101,   0,   0,   0, 
+      0,   0,   0,   0,   4,   0, 
+      0,   0,   1,   0,   0,   0, 
+      1,   0,   0,   0,   2,  13, 
+      0,   0,  83,  86,  95,  80, 
+    111, 115, 105, 116, 105, 111, 
+    110,   0,  84,  69,  88,  67, 
+     79,  79,  82,  68,   0,  83, 
+     86,  95,  82, 101, 110, 100, 
+    101, 114,  84,  97, 114, 103, 
+    101, 116,  65, 114, 114,  97, 
+    121,  73, 110, 100, 101, 120, 
+      0, 171,  83,  72,  68,  82, 
+    200,   0,   0,   0,  64,   0, 
+      2,   0,  50,   0,   0,   0, 
+     97,   0,   0,   5, 242,  16, 
+     32,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  95,   0,   0,   4, 
+     18,  16,  32,   0,   1,   0, 
+      0,   0,   1,   0,   0,   0, 
+     95,   0,   0,   4,  34,  16, 
+     32,   0,   1,   0,   0,   0, 
+      1,   0,   0,   0,  93,   8, 
+      0,   1,  92,   8,   0,   1, 
+    103,   0,   0,   4, 242,  32, 
+     16,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0, 101,   0, 
+      0,   3,  18,  32,  16,   0, 
+      1,   0,   0,   0, 103,   0, 
+      0,   4,  34,  32,  16,   0, 
+      1,   0,   0,   0,   4,   0, 
+      0,   0,  94,   0,   0,   2, 
+      1,   0,   0,   0,  54,   0, 
+      0,   6, 242,  32,  16,   0, 
+      0,   0,   0,   0,  70,  30, 
+     32,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   6,  18,  32,  16,   0, 
+      1,   0,   0,   0,  10,  16, 
+     32,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,  54,   0, 
+      0,   6,  34,  32,  16,   0, 
+      1,   0,   0,   0,  26,  16, 
+     32,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,  19,   0, 
+      0,   1,  62,   0,   0,   1, 
+     83,  84,  65,  84, 116,   0, 
+      0,   0,   5,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   6,   0,   0,   0, 
+      0,   0,   0,   0,   0,   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, 
+      1,   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,   1,   0, 
+      0,   0,   1,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledbuffertotexture11_ps_4fh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/buffertotexture11_ps_4f.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/buffertotexture11_ps_4f.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/buffertotexture11_ps_4f.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,223 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+// Buffer Definitions: 
+//
+// cbuffer BufferCopyParams
+// {
+//
+//   uint FirstPixelOffset;             // Offset:    0 Size:     4 [unused]
+//   uint PixelsPerRow;                 // Offset:    4 Size:     4 [unused]
+//   uint RowStride;                    // Offset:    8 Size:     4 [unused]
+//   uint RowsPerSlice;                 // Offset:   12 Size:     4 [unused]
+//   float2 PositionOffset;             // Offset:   16 Size:     8 [unused]
+//   float2 PositionScale;              // Offset:   24 Size:     8 [unused]
+//   int2 TexLocationOffset;            // Offset:   32 Size:     8 [unused]
+//   int2 TexLocationScale;             // Offset:   40 Size:     8 [unused]
+//
+// }
+//
+//
+// Resource Bindings:
+//
+// Name                                 Type  Format         Dim Slot Elements
+// ------------------------------ ---------- ------- ----------- ---- --------
+// Buffer4F                          texture  float4         buf    0        1
+// BufferCopyParams                  cbuffer      NA          NA    0        1
+//
+//
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_Position              0   xyzw        0      POS   float       
+// TEXCOORD                 0   x           1     NONE    uint   x   
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_Target                0   xyzw        0   TARGET   float   xyzw
+//
+ps_4_0
+dcl_constantbuffer cb0[1], immediateIndexed
+dcl_resource_buffer (float,float,float,float) t0
+dcl_input_ps constant v1.x
+dcl_output o0.xyzw
+ld o0.xyzw, v1.xxxx, t0.xyzw
+ret 
+// Approximately 2 instruction slots used
+#endif
+
+const BYTE g_PS_BufferToTexture_4F[] =
+{
+     68,  88,  66,  67, 161, 212, 
+     38, 156, 243,  82,  97,  91, 
+    138,   4,  55, 121,  28,  62, 
+    245, 159,   1,   0,   0,   0, 
+    216,   3,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    104,   2,   0,   0, 192,   2, 
+      0,   0, 244,   2,   0,   0, 
+     92,   3,   0,   0,  82,  68, 
+     69,  70,  44,   2,   0,   0, 
+      1,   0,   0,   0, 120,   0, 
+      0,   0,   2,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+    249,   1,   0,   0,  92,   0, 
+      0,   0,   2,   0,   0,   0, 
+      5,   0,   0,   0,   1,   0, 
+      0,   0, 255, 255, 255, 255, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  13,   0,   0,   0, 
+    101,   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,   1,   0, 
+      0,   0,  66, 117, 102, 102, 
+    101, 114,  52,  70,   0,  66, 
+    117, 102, 102, 101, 114,  67, 
+    111, 112, 121,  80,  97, 114, 
+     97, 109, 115,   0, 171, 171, 
+    101,   0,   0,   0,   8,   0, 
+      0,   0, 144,   0,   0,   0, 
+     48,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     80,   1,   0,   0,   0,   0, 
+      0,   0,   4,   0,   0,   0, 
+      0,   0,   0,   0, 100,   1, 
+      0,   0,   0,   0,   0,   0, 
+    116,   1,   0,   0,   4,   0, 
+      0,   0,   4,   0,   0,   0, 
+      0,   0,   0,   0, 100,   1, 
+      0,   0,   0,   0,   0,   0, 
+    129,   1,   0,   0,   8,   0, 
+      0,   0,   4,   0,   0,   0, 
+      0,   0,   0,   0, 100,   1, 
+      0,   0,   0,   0,   0,   0, 
+    139,   1,   0,   0,  12,   0, 
+      0,   0,   4,   0,   0,   0, 
+      0,   0,   0,   0, 100,   1, 
+      0,   0,   0,   0,   0,   0, 
+    152,   1,   0,   0,  16,   0, 
+      0,   0,   8,   0,   0,   0, 
+      0,   0,   0,   0, 168,   1, 
+      0,   0,   0,   0,   0,   0, 
+    184,   1,   0,   0,  24,   0, 
+      0,   0,   8,   0,   0,   0, 
+      0,   0,   0,   0, 168,   1, 
+      0,   0,   0,   0,   0,   0, 
+    198,   1,   0,   0,  32,   0, 
+      0,   0,   8,   0,   0,   0, 
+      0,   0,   0,   0, 216,   1, 
+      0,   0,   0,   0,   0,   0, 
+    232,   1,   0,   0,  40,   0, 
+      0,   0,   8,   0,   0,   0, 
+      0,   0,   0,   0, 216,   1, 
+      0,   0,   0,   0,   0,   0, 
+     70, 105, 114, 115, 116,  80, 
+    105, 120, 101, 108,  79, 102, 
+    102, 115, 101, 116,   0, 171, 
+    171, 171,   0,   0,  19,   0, 
+      1,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     80, 105, 120, 101, 108, 115, 
+     80, 101, 114,  82, 111, 119, 
+      0,  82, 111, 119,  83, 116, 
+    114, 105, 100, 101,   0,  82, 
+    111, 119, 115,  80, 101, 114, 
+     83, 108, 105,  99, 101,   0, 
+     80, 111, 115, 105, 116, 105, 
+    111, 110,  79, 102, 102, 115, 
+    101, 116,   0, 171,   1,   0, 
+      3,   0,   1,   0,   2,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  80, 111, 115, 105, 
+    116, 105, 111, 110,  83,  99, 
+     97, 108, 101,   0,  84, 101, 
+    120,  76, 111,  99,  97, 116, 
+    105, 111, 110,  79, 102, 102, 
+    115, 101, 116,   0,   1,   0, 
+      2,   0,   1,   0,   2,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  84, 101, 120,  76, 
+    111,  99,  97, 116, 105, 111, 
+    110,  83,  99,  97, 108, 101, 
+      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,  51,  48,  46,  57, 
+     50,  48,  48,  46,  49,  54, 
+     51,  56,  52,   0,  73,  83, 
+     71,  78,  80,   0,   0,   0, 
+      2,   0,   0,   0,   8,   0, 
+      0,   0,  56,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  68,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+      1,   0,   0,   0,   1,   1, 
+      0,   0,  83,  86,  95,  80, 
+    111, 115, 105, 116, 105, 111, 
+    110,   0,  84,  69,  88,  67, 
+     79,  79,  82,  68,   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,  96,   0, 
+      0,   0,  64,   0,   0,   0, 
+     24,   0,   0,   0,  89,   0, 
+      0,   4,  70, 142,  32,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  88,   8,   0,   4, 
+      0, 112,  16,   0,   0,   0, 
+      0,   0,  85,  85,   0,   0, 
+     98,   8,   0,   3,  18,  16, 
+     16,   0,   1,   0,   0,   0, 
+    101,   0,   0,   3, 242,  32, 
+     16,   0,   0,   0,   0,   0, 
+     45,   0,   0,   7, 242,  32, 
+     16,   0,   0,   0,   0,   0, 
+      6,  16,  16,   0,   1,   0, 
+      0,   0,  70, 126,  16,   0, 
+      0,   0,   0,   0,  62,   0, 
+      0,   1,  83,  84,  65,  84, 
+    116,   0,   0,   0,   2,   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,   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,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   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
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledbuffertotexture11_ps_4ih"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/buffertotexture11_ps_4i.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/buffertotexture11_ps_4i.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/buffertotexture11_ps_4i.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,129 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+// Resource Bindings:
+//
+// Name                                 Type  Format         Dim Slot Elements
+// ------------------------------ ---------- ------- ----------- ---- --------
+// Buffer4I                          texture   sint4         buf    0        1
+//
+//
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_Position              0   xyzw        0      POS   float       
+// TEXCOORD                 0   x           1     NONE    uint   x   
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_Target                0   xyzw        0   TARGET     int   xyzw
+//
+ps_4_0
+dcl_resource_buffer (sint,sint,sint,sint) t0
+dcl_input_ps constant v1.x
+dcl_output o0.xyzw
+ld o0.xyzw, v1.xxxx, t0.xyzw
+ret 
+// Approximately 2 instruction slots used
+#endif
+
+const BYTE g_PS_BufferToTexture_4I[] =
+{
+     68,  88,  66,  67, 178, 234, 
+    204, 249, 218,  40, 155, 155, 
+    252,  18, 110,  38, 237, 186, 
+    217, 231,   1,   0,   0,   0, 
+     20,   2,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    180,   0,   0,   0,  12,   1, 
+      0,   0,  64,   1,   0,   0, 
+    152,   1,   0,   0,  82,  68, 
+     69,  70, 120,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+     69,   0,   0,   0,  60,   0, 
+      0,   0,   2,   0,   0,   0, 
+      3,   0,   0,   0,   1,   0, 
+      0,   0, 255, 255, 255, 255, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  13,   0,   0,   0, 
+     66, 117, 102, 102, 101, 114, 
+     52,  73,   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,  51,  48, 
+     46,  57,  50,  48,  48,  46, 
+     49,  54,  51,  56,  52,   0, 
+     73,  83,  71,  78,  80,   0, 
+      0,   0,   2,   0,   0,   0, 
+      8,   0,   0,   0,  56,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   3,   0, 
+      0,   0,   0,   0,   0,   0, 
+     15,   0,   0,   0,  68,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   1,   0,   0,   0, 
+      1,   1,   0,   0,  83,  86, 
+     95,  80, 111, 115, 105, 116, 
+    105, 111, 110,   0,  84,  69, 
+     88,  67,  79,  79,  82,  68, 
+      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,   2,   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, 
+     80,   0,   0,   0,  64,   0, 
+      0,   0,  20,   0,   0,   0, 
+     88,   8,   0,   4,   0, 112, 
+     16,   0,   0,   0,   0,   0, 
+     51,  51,   0,   0,  98,   8, 
+      0,   3,  18,  16,  16,   0, 
+      1,   0,   0,   0, 101,   0, 
+      0,   3, 242,  32,  16,   0, 
+      0,   0,   0,   0,  45,   0, 
+      0,   7, 242,  32,  16,   0, 
+      0,   0,   0,   0,   6,  16, 
+     16,   0,   1,   0,   0,   0, 
+     70, 126,  16,   0,   0,   0, 
+      0,   0,  62,   0,   0,   1, 
+     83,  84,  65,  84, 116,   0, 
+      0,   0,   2,   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, 
+      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,   1,   0,   0,   0, 
+      0,   0,   0,   0,   0,   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
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledbuffertotexture11_ps_4uih"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/buffertotexture11_ps_4ui.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/buffertotexture11_ps_4ui.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/buffertotexture11_ps_4ui.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,130 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+// Resource Bindings:
+//
+// Name                                 Type  Format         Dim Slot Elements
+// ------------------------------ ---------- ------- ----------- ---- --------
+// Buffer4UI                         texture   uint4         buf    0        1
+//
+//
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_Position              0   xyzw        0      POS   float       
+// TEXCOORD                 0   x           1     NONE    uint   x   
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_Target                0   xyzw        0   TARGET    uint   xyzw
+//
+ps_4_0
+dcl_resource_buffer (uint,uint,uint,uint) t0
+dcl_input_ps constant v1.x
+dcl_output o0.xyzw
+ld o0.xyzw, v1.xxxx, t0.xyzw
+ret 
+// Approximately 2 instruction slots used
+#endif
+
+const BYTE g_PS_BufferToTexture_4UI[] =
+{
+     68,  88,  66,  67, 209, 204, 
+    134,  75,  28, 212, 134, 131, 
+    219,  18,  16, 227,  99,  23, 
+    205, 131,   1,   0,   0,   0, 
+     24,   2,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    184,   0,   0,   0,  16,   1, 
+      0,   0,  68,   1,   0,   0, 
+    156,   1,   0,   0,  82,  68, 
+     69,  70, 124,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+     70,   0,   0,   0,  60,   0, 
+      0,   0,   2,   0,   0,   0, 
+      4,   0,   0,   0,   1,   0, 
+      0,   0, 255, 255, 255, 255, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  13,   0,   0,   0, 
+     66, 117, 102, 102, 101, 114, 
+     52,  85,  73,   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,  51, 
+     48,  46,  57,  50,  48,  48, 
+     46,  49,  54,  51,  56,  52, 
+      0, 171, 171, 171,  73,  83, 
+     71,  78,  80,   0,   0,   0, 
+      2,   0,   0,   0,   8,   0, 
+      0,   0,  56,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  68,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+      1,   0,   0,   0,   1,   1, 
+      0,   0,  83,  86,  95,  80, 
+    111, 115, 105, 116, 105, 111, 
+    110,   0,  84,  69,  88,  67, 
+     79,  79,  82,  68,   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, 
+      1,   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,  80,   0, 
+      0,   0,  64,   0,   0,   0, 
+     20,   0,   0,   0,  88,   8, 
+      0,   4,   0, 112,  16,   0, 
+      0,   0,   0,   0,  68,  68, 
+      0,   0,  98,   8,   0,   3, 
+     18,  16,  16,   0,   1,   0, 
+      0,   0, 101,   0,   0,   3, 
+    242,  32,  16,   0,   0,   0, 
+      0,   0,  45,   0,   0,   7, 
+    242,  32,  16,   0,   0,   0, 
+      0,   0,   6,  16,  16,   0, 
+      1,   0,   0,   0,  70, 126, 
+     16,   0,   0,   0,   0,   0, 
+     62,   0,   0,   1,  83,  84, 
+     65,  84, 116,   0,   0,   0, 
+      2,   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,   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, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,   0,   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
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledbuffertotexture11_vsh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/buffertotexture11_vs.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/buffertotexture11_vs.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/buffertotexture11_vs.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,303 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+// Buffer Definitions: 
+//
+// cbuffer BufferCopyParams
+// {
+//
+//   uint FirstPixelOffset;             // Offset:    0 Size:     4
+//   uint PixelsPerRow;                 // Offset:    4 Size:     4
+//   uint RowStride;                    // Offset:    8 Size:     4
+//   uint RowsPerSlice;                 // Offset:   12 Size:     4
+//   float2 PositionOffset;             // Offset:   16 Size:     8
+//   float2 PositionScale;              // Offset:   24 Size:     8
+//   int2 TexLocationOffset;            // Offset:   32 Size:     8 [unused]
+//   int2 TexLocationScale;             // Offset:   40 Size:     8 [unused]
+//
+// }
+//
+//
+// Resource Bindings:
+//
+// Name                                 Type  Format         Dim Slot Elements
+// ------------------------------ ---------- ------- ----------- ---- --------
+// BufferCopyParams                  cbuffer      NA          NA    0        1
+//
+//
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_VertexID              0   x           0   VERTID    uint   x   
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_Position              0   xyzw        0      POS   float   xyzw
+// TEXCOORD                 0   x           1     NONE    uint   x   
+// LAYER                    0    y          1     NONE    uint    y  
+//
+vs_4_0
+dcl_constantbuffer cb0[2], immediateIndexed
+dcl_input_sgv v0.x, vertex_id
+dcl_output_siv o0.xyzw, position
+dcl_output o1.x
+dcl_output o1.y
+dcl_temps 2
+mov o0.zw, l(0,0,0,1.000000)
+imul null, r0.xy, cb0[0].wwww, cb0[0].yzyy
+udiv r0.z, null, v0.x, r0.x
+imad r0.x, -r0.z, r0.x, v0.x
+imad r0.y, r0.z, r0.y, cb0[0].x
+mov o1.y, r0.z
+udiv r0.z, null, r0.x, cb0[0].y
+imad r0.x, -r0.z, cb0[0].y, r0.x
+utof r1.xy, r0.xzxx
+imad r0.y, r0.z, cb0[0].z, r0.y
+iadd o1.x, r0.x, r0.y
+mad o0.xy, cb0[1].zwzz, r1.xyxx, cb0[1].xyxx
+ret 
+// Approximately 13 instruction slots used
+#endif
+
+const BYTE g_VS_BufferToTexture[] =
+{
+     68,  88,  66,  67, 158,  32, 
+    140,  89, 212, 226, 251, 197, 
+    186, 151,  46, 176, 250,  58, 
+     75, 228,   1,   0,   0,   0, 
+    104,   5,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+     64,   2,   0,   0, 116,   2, 
+      0,   0, 232,   2,   0,   0, 
+    236,   4,   0,   0,  82,  68, 
+     69,  70,   4,   2,   0,   0, 
+      1,   0,   0,   0,  80,   0, 
+      0,   0,   1,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    254, 255,   0,   1,   0,   0, 
+    209,   1,   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,   1,   0,   0,   0, 
+     66, 117, 102, 102, 101, 114, 
+     67, 111, 112, 121,  80,  97, 
+    114,  97, 109, 115,   0, 171, 
+    171, 171,  60,   0,   0,   0, 
+      8,   0,   0,   0, 104,   0, 
+      0,   0,  48,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  40,   1,   0,   0, 
+      0,   0,   0,   0,   4,   0, 
+      0,   0,   2,   0,   0,   0, 
+     60,   1,   0,   0,   0,   0, 
+      0,   0,  76,   1,   0,   0, 
+      4,   0,   0,   0,   4,   0, 
+      0,   0,   2,   0,   0,   0, 
+     60,   1,   0,   0,   0,   0, 
+      0,   0,  89,   1,   0,   0, 
+      8,   0,   0,   0,   4,   0, 
+      0,   0,   2,   0,   0,   0, 
+     60,   1,   0,   0,   0,   0, 
+      0,   0,  99,   1,   0,   0, 
+     12,   0,   0,   0,   4,   0, 
+      0,   0,   2,   0,   0,   0, 
+     60,   1,   0,   0,   0,   0, 
+      0,   0, 112,   1,   0,   0, 
+     16,   0,   0,   0,   8,   0, 
+      0,   0,   2,   0,   0,   0, 
+    128,   1,   0,   0,   0,   0, 
+      0,   0, 144,   1,   0,   0, 
+     24,   0,   0,   0,   8,   0, 
+      0,   0,   2,   0,   0,   0, 
+    128,   1,   0,   0,   0,   0, 
+      0,   0, 158,   1,   0,   0, 
+     32,   0,   0,   0,   8,   0, 
+      0,   0,   0,   0,   0,   0, 
+    176,   1,   0,   0,   0,   0, 
+      0,   0, 192,   1,   0,   0, 
+     40,   0,   0,   0,   8,   0, 
+      0,   0,   0,   0,   0,   0, 
+    176,   1,   0,   0,   0,   0, 
+      0,   0,  70, 105, 114, 115, 
+    116,  80, 105, 120, 101, 108, 
+     79, 102, 102, 115, 101, 116, 
+      0, 171, 171, 171,   0,   0, 
+     19,   0,   1,   0,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  80, 105, 120, 101, 
+    108, 115,  80, 101, 114,  82, 
+    111, 119,   0,  82, 111, 119, 
+     83, 116, 114, 105, 100, 101, 
+      0,  82, 111, 119, 115,  80, 
+    101, 114,  83, 108, 105,  99, 
+    101,   0,  80, 111, 115, 105, 
+    116, 105, 111, 110,  79, 102, 
+    102, 115, 101, 116,   0, 171, 
+      1,   0,   3,   0,   1,   0, 
+      2,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  80, 111, 
+    115, 105, 116, 105, 111, 110, 
+     83,  99,  97, 108, 101,   0, 
+     84, 101, 120,  76, 111,  99, 
+     97, 116, 105, 111, 110,  79, 
+    102, 102, 115, 101, 116,   0, 
+      1,   0,   2,   0,   1,   0, 
+      2,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  84, 101, 
+    120,  76, 111,  99,  97, 116, 
+    105, 111, 110,  83,  99,  97, 
+    108, 101,   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,  51,  48, 
+     46,  57,  50,  48,  48,  46, 
+     49,  54,  51,  56,  52,   0, 
+     73,  83,  71,  78,  44,   0, 
+      0,   0,   1,   0,   0,   0, 
+      8,   0,   0,   0,  32,   0, 
+      0,   0,   0,   0,   0,   0, 
+      6,   0,   0,   0,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   1,   0,   0,  83,  86, 
+     95,  86, 101, 114, 116, 101, 
+    120,  73,  68,   0,  79,  83, 
+     71,  78, 108,   0,   0,   0, 
+      3,   0,   0,   0,   8,   0, 
+      0,   0,  80,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  92,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+      1,   0,   0,   0,   1,  14, 
+      0,   0, 101,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+      1,   0,   0,   0,   2,  13, 
+      0,   0,  83,  86,  95,  80, 
+    111, 115, 105, 116, 105, 111, 
+    110,   0,  84,  69,  88,  67, 
+     79,  79,  82,  68,   0,  76, 
+     65,  89,  69,  82,   0, 171, 
+     83,  72,  68,  82, 252,   1, 
+      0,   0,  64,   0,   1,   0, 
+    127,   0,   0,   0,  89,   0, 
+      0,   4,  70, 142,  32,   0, 
+      0,   0,   0,   0,   2,   0, 
+      0,   0,  96,   0,   0,   4, 
+     18,  16,  16,   0,   0,   0, 
+      0,   0,   6,   0,   0,   0, 
+    103,   0,   0,   4, 242,  32, 
+     16,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0, 101,   0, 
+      0,   3,  18,  32,  16,   0, 
+      1,   0,   0,   0, 101,   0, 
+      0,   3,  34,  32,  16,   0, 
+      1,   0,   0,   0, 104,   0, 
+      0,   2,   2,   0,   0,   0, 
+     54,   0,   0,   8, 194,  32, 
+     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,  38,   0,   0,  10, 
+      0, 208,   0,   0,  50,   0, 
+     16,   0,   0,   0,   0,   0, 
+    246, 143,  32,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+    150, 133,  32,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     78,   0,   0,   8,  66,   0, 
+     16,   0,   0,   0,   0,   0, 
+      0, 208,   0,   0,  10,  16, 
+     16,   0,   0,   0,   0,   0, 
+     10,   0,  16,   0,   0,   0, 
+      0,   0,  35,   0,   0,  10, 
+     18,   0,  16,   0,   0,   0, 
+      0,   0,  42,   0,  16, 128, 
+     65,   0,   0,   0,   0,   0, 
+      0,   0,  10,   0,  16,   0, 
+      0,   0,   0,   0,  10,  16, 
+     16,   0,   0,   0,   0,   0, 
+     35,   0,   0,  10,  34,   0, 
+     16,   0,   0,   0,   0,   0, 
+     42,   0,  16,   0,   0,   0, 
+      0,   0,  26,   0,  16,   0, 
+      0,   0,   0,   0,  10, 128, 
+     32,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   5,  34,  32,  16,   0, 
+      1,   0,   0,   0,  42,   0, 
+     16,   0,   0,   0,   0,   0, 
+     78,   0,   0,   9,  66,   0, 
+     16,   0,   0,   0,   0,   0, 
+      0, 208,   0,   0,  10,   0, 
+     16,   0,   0,   0,   0,   0, 
+     26, 128,  32,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     35,   0,   0,  11,  18,   0, 
+     16,   0,   0,   0,   0,   0, 
+     42,   0,  16, 128,  65,   0, 
+      0,   0,   0,   0,   0,   0, 
+     26, 128,  32,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     10,   0,  16,   0,   0,   0, 
+      0,   0,  86,   0,   0,   5, 
+     50,   0,  16,   0,   1,   0, 
+      0,   0, 134,   0,  16,   0, 
+      0,   0,   0,   0,  35,   0, 
+      0,  10,  34,   0,  16,   0, 
+      0,   0,   0,   0,  42,   0, 
+     16,   0,   0,   0,   0,   0, 
+     42, 128,  32,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     26,   0,  16,   0,   0,   0, 
+      0,   0,  30,   0,   0,   7, 
+     18,  32,  16,   0,   1,   0, 
+      0,   0,  10,   0,  16,   0, 
+      0,   0,   0,   0,  26,   0, 
+     16,   0,   0,   0,   0,   0, 
+     50,   0,   0,  11,  50,  32, 
+     16,   0,   0,   0,   0,   0, 
+    230, 138,  32,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+     70,   0,  16,   0,   1,   0, 
+      0,   0,  70, 128,  32,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  62,   0,   0,   1, 
+     83,  84,  65,  84, 116,   0, 
+      0,   0,  13,   0,   0,   0, 
+      2,   0,   0,   0,   0,   0, 
+      0,   0,   4,   0,   0,   0, 
+      0,   0,   0,   0,   2,   0, 
+      0,   0,   2,   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, 
+      3,   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
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledclear11vsh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/clear11vs.h (168114 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/clear11vs.h        2014-05-01 19:23:29 UTC (rev 168114)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/clear11vs.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -1,131 +0,0 @@
</span><del>-#if 0
-//
-// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
-//
-//
-///
-//
-// Input signature:
-//
-// Name                 Index   Mask Register SysValue  Format   Used
-// -------------------- ----- ------ -------- -------- ------- ------
-// POSITION                 0   xyz         0     NONE   float   xyz 
-// COLOR                    0   xyzw        1     NONE   float   xyzw
-//
-//
-// Output signature:
-//
-// Name                 Index   Mask Register SysValue  Format   Used
-// -------------------- ----- ------ -------- -------- ------- ------
-// SV_POSITION              0   xyzw        0      POS   float   xyzw
-// COLOR                    0   xyzw        1     NONE   float   xyzw
-//
-vs_4_0
-dcl_input v0.xyz
-dcl_input v1.xyzw
-dcl_output_siv o0.xyzw, position
-dcl_output o1.xyzw
-mov o0.xyz, v0.xyzx
-mov o0.w, l(1.000000)
-mov o1.xyzw, v1.xyzw
-ret 
-// Approximately 4 instruction slots used
-#endif
-
-const BYTE g_VS_Clear[] =
-{
-     68,  88,  66,  67,  97,   5, 
-     13, 163, 160, 254,  95, 127, 
-     30, 194, 121, 144, 236, 185, 
-     59,  29,   1,   0,   0,   0, 
-     48,   2,   0,   0,   5,   0, 
-      0,   0,  52,   0,   0,   0, 
-    140,   0,   0,   0, 220,   0, 
-      0,   0,  48,   1,   0,   0, 
-    180,   1,   0,   0,  82,  68, 
-     69,  70,  80,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-     28,   0,   0,   0,   0,   4, 
-    254, 255,   0,   1,   0,   0, 
-     28,   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,  51, 
-     48,  46,  57,  50,  48,  48, 
-     46,  49,  54,  51,  56,  52, 
-      0, 171,  73,  83,  71,  78, 
-     72,   0,   0,   0,   2,   0, 
-      0,   0,   8,   0,   0,   0, 
-     56,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      3,   0,   0,   0,   0,   0, 
-      0,   0,   7,   7,   0,   0, 
-     65,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      3,   0,   0,   0,   1,   0, 
-      0,   0,  15,  15,   0,   0, 
-     80,  79,  83,  73,  84,  73, 
-     79,  78,   0,  67,  79,  76, 
-     79,  82,   0, 171,  79,  83, 
-     71,  78,  76,   0,   0,   0, 
-      2,   0,   0,   0,   8,   0, 
-      0,   0,  56,   0,   0,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,   3,   0,   0,   0, 
-      0,   0,   0,   0,  15,   0, 
-      0,   0,  68,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   3,   0,   0,   0, 
-      1,   0,   0,   0,  15,   0, 
-      0,   0,  83,  86,  95,  80, 
-     79,  83,  73,  84,  73,  79, 
-     78,   0,  67,  79,  76,  79, 
-     82,   0, 171, 171,  83,  72, 
-     68,  82, 124,   0,   0,   0, 
-     64,   0,   1,   0,  31,   0, 
-      0,   0,  95,   0,   0,   3, 
-    114,  16,  16,   0,   0,   0, 
-      0,   0,  95,   0,   0,   3, 
-    242,  16,  16,   0,   1,   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, 
-     54,   0,   0,   5, 114,  32, 
-     16,   0,   0,   0,   0,   0, 
-     70,  18,  16,   0,   0,   0, 
-      0,   0,  54,   0,   0,   5, 
-    130,  32,  16,   0,   0,   0, 
-      0,   0,   1,  64,   0,   0, 
-      0,   0, 128,  63,  54,   0, 
-      0,   5, 242,  32,  16,   0, 
-      1,   0,   0,   0,  70,  30, 
-     16,   0,   1,   0,   0,   0, 
-     62,   0,   0,   1,  83,  84, 
-     65,  84, 116,   0,   0,   0, 
-      4,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      4,   0,   0,   0,   0,   0, 
-      0,   0,   0,   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,   4,   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
-};
</del></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledclearfloat11psh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/clearfloat11ps.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/clearfloat11ps.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/clearfloat11ps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,196 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float       
+// COLOR                    0   xyzw        1     NONE   float   xyzw
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_TARGET                0   xyzw        0   TARGET   float   xyzw
+// SV_TARGET                1   xyzw        1   TARGET   float   xyzw
+// SV_TARGET                2   xyzw        2   TARGET   float   xyzw
+// SV_TARGET                3   xyzw        3   TARGET   float   xyzw
+// SV_TARGET                4   xyzw        4   TARGET   float   xyzw
+// SV_TARGET                5   xyzw        5   TARGET   float   xyzw
+// SV_TARGET                6   xyzw        6   TARGET   float   xyzw
+// SV_TARGET                7   xyzw        7   TARGET   float   xyzw
+//
+ps_4_0
+dcl_input_ps linear v1.xyzw
+dcl_output o0.xyzw
+dcl_output o1.xyzw
+dcl_output o2.xyzw
+dcl_output o3.xyzw
+dcl_output o4.xyzw
+dcl_output o5.xyzw
+dcl_output o6.xyzw
+dcl_output o7.xyzw
+mov o0.xyzw, v1.xyzw
+mov o1.xyzw, v1.xyzw
+mov o2.xyzw, v1.xyzw
+mov o3.xyzw, v1.xyzw
+mov o4.xyzw, v1.xyzw
+mov o5.xyzw, v1.xyzw
+mov o6.xyzw, v1.xyzw
+mov o7.xyzw, v1.xyzw
+ret 
+// Approximately 9 instruction slots used
+#endif
+
+const BYTE g_PS_ClearFloat[] =
+{
+     68,  88,  66,  67,  92,  54, 
+    120, 105, 166, 196, 132, 158, 
+    209,  33, 185, 122,   8, 189, 
+    145, 114,   1,   0,   0,   0, 
+     88,   3,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    140,   0,   0,   0, 224,   0, 
+      0,   0, 188,   1,   0,   0, 
+    220,   2,   0,   0,  82,  68, 
+     69,  70,  80,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+     28,   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,  51, 
+     48,  46,  57,  50,  48,  48, 
+     46,  49,  54,  51,  56,  52, 
+      0, 171,  73,  83,  71,  78, 
+     76,   0,   0,   0,   2,   0, 
+      0,   0,   8,   0,   0,   0, 
+     56,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+      3,   0,   0,   0,   0,   0, 
+      0,   0,  15,   0,   0,   0, 
+     68,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,   1,   0, 
+      0,   0,  15,  15,   0,   0, 
+     83,  86,  95,  80,  79,  83, 
+     73,  84,  73,  79,  78,   0, 
+     67,  79,  76,  79,  82,   0, 
+    171, 171,  79,  83,  71,  78, 
+    212,   0,   0,   0,   8,   0, 
+      0,   0,   8,   0,   0,   0, 
+    200,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,   0,   0, 
+      0,   0,  15,   0,   0,   0, 
+    200,   0,   0,   0,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,   1,   0, 
+      0,   0,  15,   0,   0,   0, 
+    200,   0,   0,   0,   2,   0, 
+      0,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,   2,   0, 
+      0,   0,  15,   0,   0,   0, 
+    200,   0,   0,   0,   3,   0, 
+      0,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,   3,   0, 
+      0,   0,  15,   0,   0,   0, 
+    200,   0,   0,   0,   4,   0, 
+      0,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,   4,   0, 
+      0,   0,  15,   0,   0,   0, 
+    200,   0,   0,   0,   5,   0, 
+      0,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,   5,   0, 
+      0,   0,  15,   0,   0,   0, 
+    200,   0,   0,   0,   6,   0, 
+      0,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,   6,   0, 
+      0,   0,  15,   0,   0,   0, 
+    200,   0,   0,   0,   7,   0, 
+      0,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,   7,   0, 
+      0,   0,  15,   0,   0,   0, 
+     83,  86,  95,  84,  65,  82, 
+     71,  69,  84,   0, 171, 171, 
+     83,  72,  68,  82,  24,   1, 
+      0,   0,  64,   0,   0,   0, 
+     70,   0,   0,   0,  98,  16, 
+      0,   3, 242,  16,  16,   0, 
+      1,   0,   0,   0, 101,   0, 
+      0,   3, 242,  32,  16,   0, 
+      0,   0,   0,   0, 101,   0, 
+      0,   3, 242,  32,  16,   0, 
+      1,   0,   0,   0, 101,   0, 
+      0,   3, 242,  32,  16,   0, 
+      2,   0,   0,   0, 101,   0, 
+      0,   3, 242,  32,  16,   0, 
+      3,   0,   0,   0, 101,   0, 
+      0,   3, 242,  32,  16,   0, 
+      4,   0,   0,   0, 101,   0, 
+      0,   3, 242,  32,  16,   0, 
+      5,   0,   0,   0, 101,   0, 
+      0,   3, 242,  32,  16,   0, 
+      6,   0,   0,   0, 101,   0, 
+      0,   3, 242,  32,  16,   0, 
+      7,   0,   0,   0,  54,   0, 
+      0,   5, 242,  32,  16,   0, 
+      0,   0,   0,   0,  70,  30, 
+     16,   0,   1,   0,   0,   0, 
+     54,   0,   0,   5, 242,  32, 
+     16,   0,   1,   0,   0,   0, 
+     70,  30,  16,   0,   1,   0, 
+      0,   0,  54,   0,   0,   5, 
+    242,  32,  16,   0,   2,   0, 
+      0,   0,  70,  30,  16,   0, 
+      1,   0,   0,   0,  54,   0, 
+      0,   5, 242,  32,  16,   0, 
+      3,   0,   0,   0,  70,  30, 
+     16,   0,   1,   0,   0,   0, 
+     54,   0,   0,   5, 242,  32, 
+     16,   0,   4,   0,   0,   0, 
+     70,  30,  16,   0,   1,   0, 
+      0,   0,  54,   0,   0,   5, 
+    242,  32,  16,   0,   5,   0, 
+      0,   0,  70,  30,  16,   0, 
+      1,   0,   0,   0,  54,   0, 
+      0,   5, 242,  32,  16,   0, 
+      6,   0,   0,   0,  70,  30, 
+     16,   0,   1,   0,   0,   0, 
+     54,   0,   0,   5, 242,  32, 
+     16,   0,   7,   0,   0,   0, 
+     70,  30,  16,   0,   1,   0, 
+      0,   0,  62,   0,   0,   1, 
+     83,  84,  65,  84, 116,   0, 
+      0,   0,   9,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   9,   0,   0,   0, 
+      0,   0,   0,   0,   0,   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, 
+      9,   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
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledclearfloat11vsh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/clearfloat11vs.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/clearfloat11vs.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/clearfloat11vs.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,131 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// POSITION                 0   xyz         0     NONE   float   xyz 
+// COLOR                    0   xyzw        1     NONE   float   xyzw
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float   xyzw
+// COLOR                    0   xyzw        1     NONE   float   xyzw
+//
+vs_4_0
+dcl_input v0.xyz
+dcl_input v1.xyzw
+dcl_output_siv o0.xyzw, position
+dcl_output o1.xyzw
+mov o0.xyz, v0.xyzx
+mov o0.w, l(1.000000)
+mov o1.xyzw, v1.xyzw
+ret 
+// Approximately 4 instruction slots used
+#endif
+
+const BYTE g_VS_ClearFloat[] =
+{
+     68,  88,  66,  67,  97,   5, 
+     13, 163, 160, 254,  95, 127, 
+     30, 194, 121, 144, 236, 185, 
+     59,  29,   1,   0,   0,   0, 
+     48,   2,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    140,   0,   0,   0, 220,   0, 
+      0,   0,  48,   1,   0,   0, 
+    180,   1,   0,   0,  82,  68, 
+     69,  70,  80,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    254, 255,   0,   1,   0,   0, 
+     28,   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,  51, 
+     48,  46,  57,  50,  48,  48, 
+     46,  49,  54,  51,  56,  52, 
+      0, 171,  73,  83,  71,  78, 
+     72,   0,   0,   0,   2,   0, 
+      0,   0,   8,   0,   0,   0, 
+     56,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,   0,   0, 
+      0,   0,   7,   7,   0,   0, 
+     65,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,   1,   0, 
+      0,   0,  15,  15,   0,   0, 
+     80,  79,  83,  73,  84,  73, 
+     79,  78,   0,  67,  79,  76, 
+     79,  82,   0, 171,  79,  83, 
+     71,  78,  76,   0,   0,   0, 
+      2,   0,   0,   0,   8,   0, 
+      0,   0,  56,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  68,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+      1,   0,   0,   0,  15,   0, 
+      0,   0,  83,  86,  95,  80, 
+     79,  83,  73,  84,  73,  79, 
+     78,   0,  67,  79,  76,  79, 
+     82,   0, 171, 171,  83,  72, 
+     68,  82, 124,   0,   0,   0, 
+     64,   0,   1,   0,  31,   0, 
+      0,   0,  95,   0,   0,   3, 
+    114,  16,  16,   0,   0,   0, 
+      0,   0,  95,   0,   0,   3, 
+    242,  16,  16,   0,   1,   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, 
+     54,   0,   0,   5, 114,  32, 
+     16,   0,   0,   0,   0,   0, 
+     70,  18,  16,   0,   0,   0, 
+      0,   0,  54,   0,   0,   5, 
+    130,  32,  16,   0,   0,   0, 
+      0,   0,   1,  64,   0,   0, 
+      0,   0, 128,  63,  54,   0, 
+      0,   5, 242,  32,  16,   0, 
+      1,   0,   0,   0,  70,  30, 
+     16,   0,   1,   0,   0,   0, 
+     62,   0,   0,   1,  83,  84, 
+     65,  84, 116,   0,   0,   0, 
+      4,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      4,   0,   0,   0,   0,   0, 
+      0,   0,   0,   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,   4,   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
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledclearmultiple11psh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/clearmultiple11ps.h (168114 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/clearmultiple11ps.h        2014-05-01 19:23:29 UTC (rev 168114)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/clearmultiple11ps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -1,196 +0,0 @@
</span><del>-#if 0
-//
-// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
-//
-//
-///
-//
-// Input signature:
-//
-// Name                 Index   Mask Register SysValue  Format   Used
-// -------------------- ----- ------ -------- -------- ------- ------
-// SV_POSITION              0   xyzw        0      POS   float       
-// COLOR                    0   xyzw        1     NONE   float   xyzw
-//
-//
-// Output signature:
-//
-// Name                 Index   Mask Register SysValue  Format   Used
-// -------------------- ----- ------ -------- -------- ------- ------
-// SV_TARGET                0   xyzw        0   TARGET   float   xyzw
-// SV_TARGET                1   xyzw        1   TARGET   float   xyzw
-// SV_TARGET                2   xyzw        2   TARGET   float   xyzw
-// SV_TARGET                3   xyzw        3   TARGET   float   xyzw
-// SV_TARGET                4   xyzw        4   TARGET   float   xyzw
-// SV_TARGET                5   xyzw        5   TARGET   float   xyzw
-// SV_TARGET                6   xyzw        6   TARGET   float   xyzw
-// SV_TARGET                7   xyzw        7   TARGET   float   xyzw
-//
-ps_4_0
-dcl_input_ps linear v1.xyzw
-dcl_output o0.xyzw
-dcl_output o1.xyzw
-dcl_output o2.xyzw
-dcl_output o3.xyzw
-dcl_output o4.xyzw
-dcl_output o5.xyzw
-dcl_output o6.xyzw
-dcl_output o7.xyzw
-mov o0.xyzw, v1.xyzw
-mov o1.xyzw, v1.xyzw
-mov o2.xyzw, v1.xyzw
-mov o3.xyzw, v1.xyzw
-mov o4.xyzw, v1.xyzw
-mov o5.xyzw, v1.xyzw
-mov o6.xyzw, v1.xyzw
-mov o7.xyzw, v1.xyzw
-ret 
-// Approximately 9 instruction slots used
-#endif
-
-const BYTE g_PS_ClearMultiple[] =
-{
-     68,  88,  66,  67,  92,  54, 
-    120, 105, 166, 196, 132, 158, 
-    209,  33, 185, 122,   8, 189, 
-    145, 114,   1,   0,   0,   0, 
-     88,   3,   0,   0,   5,   0, 
-      0,   0,  52,   0,   0,   0, 
-    140,   0,   0,   0, 224,   0, 
-      0,   0, 188,   1,   0,   0, 
-    220,   2,   0,   0,  82,  68, 
-     69,  70,  80,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-     28,   0,   0,   0,   0,   4, 
-    255, 255,   0,   1,   0,   0, 
-     28,   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,  51, 
-     48,  46,  57,  50,  48,  48, 
-     46,  49,  54,  51,  56,  52, 
-      0, 171,  73,  83,  71,  78, 
-     76,   0,   0,   0,   2,   0, 
-      0,   0,   8,   0,   0,   0, 
-     56,   0,   0,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-      3,   0,   0,   0,   0,   0, 
-      0,   0,  15,   0,   0,   0, 
-     68,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      3,   0,   0,   0,   1,   0, 
-      0,   0,  15,  15,   0,   0, 
-     83,  86,  95,  80,  79,  83, 
-     73,  84,  73,  79,  78,   0, 
-     67,  79,  76,  79,  82,   0, 
-    171, 171,  79,  83,  71,  78, 
-    212,   0,   0,   0,   8,   0, 
-      0,   0,   8,   0,   0,   0, 
-    200,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      3,   0,   0,   0,   0,   0, 
-      0,   0,  15,   0,   0,   0, 
-    200,   0,   0,   0,   1,   0, 
-      0,   0,   0,   0,   0,   0, 
-      3,   0,   0,   0,   1,   0, 
-      0,   0,  15,   0,   0,   0, 
-    200,   0,   0,   0,   2,   0, 
-      0,   0,   0,   0,   0,   0, 
-      3,   0,   0,   0,   2,   0, 
-      0,   0,  15,   0,   0,   0, 
-    200,   0,   0,   0,   3,   0, 
-      0,   0,   0,   0,   0,   0, 
-      3,   0,   0,   0,   3,   0, 
-      0,   0,  15,   0,   0,   0, 
-    200,   0,   0,   0,   4,   0, 
-      0,   0,   0,   0,   0,   0, 
-      3,   0,   0,   0,   4,   0, 
-      0,   0,  15,   0,   0,   0, 
-    200,   0,   0,   0,   5,   0, 
-      0,   0,   0,   0,   0,   0, 
-      3,   0,   0,   0,   5,   0, 
-      0,   0,  15,   0,   0,   0, 
-    200,   0,   0,   0,   6,   0, 
-      0,   0,   0,   0,   0,   0, 
-      3,   0,   0,   0,   6,   0, 
-      0,   0,  15,   0,   0,   0, 
-    200,   0,   0,   0,   7,   0, 
-      0,   0,   0,   0,   0,   0, 
-      3,   0,   0,   0,   7,   0, 
-      0,   0,  15,   0,   0,   0, 
-     83,  86,  95,  84,  65,  82, 
-     71,  69,  84,   0, 171, 171, 
-     83,  72,  68,  82,  24,   1, 
-      0,   0,  64,   0,   0,   0, 
-     70,   0,   0,   0,  98,  16, 
-      0,   3, 242,  16,  16,   0, 
-      1,   0,   0,   0, 101,   0, 
-      0,   3, 242,  32,  16,   0, 
-      0,   0,   0,   0, 101,   0, 
-      0,   3, 242,  32,  16,   0, 
-      1,   0,   0,   0, 101,   0, 
-      0,   3, 242,  32,  16,   0, 
-      2,   0,   0,   0, 101,   0, 
-      0,   3, 242,  32,  16,   0, 
-      3,   0,   0,   0, 101,   0, 
-      0,   3, 242,  32,  16,   0, 
-      4,   0,   0,   0, 101,   0, 
-      0,   3, 242,  32,  16,   0, 
-      5,   0,   0,   0, 101,   0, 
-      0,   3, 242,  32,  16,   0, 
-      6,   0,   0,   0, 101,   0, 
-      0,   3, 242,  32,  16,   0, 
-      7,   0,   0,   0,  54,   0, 
-      0,   5, 242,  32,  16,   0, 
-      0,   0,   0,   0,  70,  30, 
-     16,   0,   1,   0,   0,   0, 
-     54,   0,   0,   5, 242,  32, 
-     16,   0,   1,   0,   0,   0, 
-     70,  30,  16,   0,   1,   0, 
-      0,   0,  54,   0,   0,   5, 
-    242,  32,  16,   0,   2,   0, 
-      0,   0,  70,  30,  16,   0, 
-      1,   0,   0,   0,  54,   0, 
-      0,   5, 242,  32,  16,   0, 
-      3,   0,   0,   0,  70,  30, 
-     16,   0,   1,   0,   0,   0, 
-     54,   0,   0,   5, 242,  32, 
-     16,   0,   4,   0,   0,   0, 
-     70,  30,  16,   0,   1,   0, 
-      0,   0,  54,   0,   0,   5, 
-    242,  32,  16,   0,   5,   0, 
-      0,   0,  70,  30,  16,   0, 
-      1,   0,   0,   0,  54,   0, 
-      0,   5, 242,  32,  16,   0, 
-      6,   0,   0,   0,  70,  30, 
-     16,   0,   1,   0,   0,   0, 
-     54,   0,   0,   5, 242,  32, 
-     16,   0,   7,   0,   0,   0, 
-     70,  30,  16,   0,   1,   0, 
-      0,   0,  62,   0,   0,   1, 
-     83,  84,  65,  84, 116,   0, 
-      0,   0,   9,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   9,   0,   0,   0, 
-      0,   0,   0,   0,   0,   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, 
-      9,   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
-};
</del></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledclearsingle11psh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/clearsingle11ps.h (168114 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/clearsingle11ps.h        2014-05-01 19:23:29 UTC (rev 168114)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/clearsingle11ps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -1,110 +0,0 @@
</span><del>-#if 0
-//
-// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
-//
-//
-///
-//
-// Input signature:
-//
-// Name                 Index   Mask Register SysValue  Format   Used
-// -------------------- ----- ------ -------- -------- ------- ------
-// SV_Position              0   xyzw        0      POS   float       
-// COLOR                    0   xyzw        1     NONE   float   xyzw
-//
-//
-// Output signature:
-//
-// Name                 Index   Mask Register SysValue  Format   Used
-// -------------------- ----- ------ -------- -------- ------- ------
-// SV_Target                0   xyzw        0   TARGET   float   xyzw
-//
-ps_4_0
-dcl_input_ps linear v1.xyzw
-dcl_output o0.xyzw
-mov o0.xyzw, v1.xyzw
-ret 
-// Approximately 2 instruction slots used
-#endif
-
-const BYTE g_PS_ClearSingle[] =
-{
-     68,  88,  66,  67,  13, 152, 
-     32,  49, 222, 236,  92,  20, 
-    188,  71,  88,  46, 163, 241, 
-    188, 238,   1,   0,   0,   0, 
-    208,   1,   0,   0,   5,   0, 
-      0,   0,  52,   0,   0,   0, 
-    140,   0,   0,   0, 224,   0, 
-      0,   0,  20,   1,   0,   0, 
-     84,   1,   0,   0,  82,  68, 
-     69,  70,  80,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-     28,   0,   0,   0,   0,   4, 
-    255, 255,   0,   1,   0,   0, 
-     28,   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,  51, 
-     48,  46,  57,  50,  48,  48, 
-     46,  49,  54,  51,  56,  52, 
-      0, 171,  73,  83,  71,  78, 
-     76,   0,   0,   0,   2,   0, 
-      0,   0,   8,   0,   0,   0, 
-     56,   0,   0,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-      3,   0,   0,   0,   0,   0, 
-      0,   0,  15,   0,   0,   0, 
-     68,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      3,   0,   0,   0,   1,   0, 
-      0,   0,  15,  15,   0,   0, 
-     83,  86,  95,  80, 111, 115, 
-    105, 116, 105, 111, 110,   0, 
-     67,  79,  76,  79,  82,   0, 
-    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,  56,   0, 
-      0,   0,  64,   0,   0,   0, 
-     14,   0,   0,   0,  98,  16, 
-      0,   3, 242,  16,  16,   0, 
-      1,   0,   0,   0, 101,   0, 
-      0,   3, 242,  32,  16,   0, 
-      0,   0,   0,   0,  54,   0, 
-      0,   5, 242,  32,  16,   0, 
-      0,   0,   0,   0,  70,  30, 
-     16,   0,   1,   0,   0,   0, 
-     62,   0,   0,   1,  83,  84, 
-     65,  84, 116,   0,   0,   0, 
-      2,   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,   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,   2,   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
-};
</del></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledclearsint11psh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/clearsint11ps.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/clearsint11ps.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/clearsint11ps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,196 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float       
+// COLOR                    0   xyzw        1     NONE     int   xyzw
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_TARGET                0   xyzw        0   TARGET     int   xyzw
+// SV_TARGET                1   xyzw        1   TARGET     int   xyzw
+// SV_TARGET                2   xyzw        2   TARGET     int   xyzw
+// SV_TARGET                3   xyzw        3   TARGET     int   xyzw
+// SV_TARGET                4   xyzw        4   TARGET     int   xyzw
+// SV_TARGET                5   xyzw        5   TARGET     int   xyzw
+// SV_TARGET                6   xyzw        6   TARGET     int   xyzw
+// SV_TARGET                7   xyzw        7   TARGET     int   xyzw
+//
+ps_4_0
+dcl_input_ps constant v1.xyzw
+dcl_output o0.xyzw
+dcl_output o1.xyzw
+dcl_output o2.xyzw
+dcl_output o3.xyzw
+dcl_output o4.xyzw
+dcl_output o5.xyzw
+dcl_output o6.xyzw
+dcl_output o7.xyzw
+mov o0.xyzw, v1.xyzw
+mov o1.xyzw, v1.xyzw
+mov o2.xyzw, v1.xyzw
+mov o3.xyzw, v1.xyzw
+mov o4.xyzw, v1.xyzw
+mov o5.xyzw, v1.xyzw
+mov o6.xyzw, v1.xyzw
+mov o7.xyzw, v1.xyzw
+ret 
+// Approximately 9 instruction slots used
+#endif
+
+const BYTE g_PS_ClearSint[] =
+{
+     68,  88,  66,  67, 254,  74, 
+    218,  24,  78, 136, 223, 133, 
+     92,  40, 115, 152, 188,  11, 
+    222,  36,   1,   0,   0,   0, 
+     88,   3,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    140,   0,   0,   0, 224,   0, 
+      0,   0, 188,   1,   0,   0, 
+    220,   2,   0,   0,  82,  68, 
+     69,  70,  80,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+     28,   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,  51, 
+     48,  46,  57,  50,  48,  48, 
+     46,  49,  54,  51,  56,  52, 
+      0, 171,  73,  83,  71,  78, 
+     76,   0,   0,   0,   2,   0, 
+      0,   0,   8,   0,   0,   0, 
+     56,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+      3,   0,   0,   0,   0,   0, 
+      0,   0,  15,   0,   0,   0, 
+     68,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      2,   0,   0,   0,   1,   0, 
+      0,   0,  15,  15,   0,   0, 
+     83,  86,  95,  80,  79,  83, 
+     73,  84,  73,  79,  78,   0, 
+     67,  79,  76,  79,  82,   0, 
+    171, 171,  79,  83,  71,  78, 
+    212,   0,   0,   0,   8,   0, 
+      0,   0,   8,   0,   0,   0, 
+    200,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      2,   0,   0,   0,   0,   0, 
+      0,   0,  15,   0,   0,   0, 
+    200,   0,   0,   0,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      2,   0,   0,   0,   1,   0, 
+      0,   0,  15,   0,   0,   0, 
+    200,   0,   0,   0,   2,   0, 
+      0,   0,   0,   0,   0,   0, 
+      2,   0,   0,   0,   2,   0, 
+      0,   0,  15,   0,   0,   0, 
+    200,   0,   0,   0,   3,   0, 
+      0,   0,   0,   0,   0,   0, 
+      2,   0,   0,   0,   3,   0, 
+      0,   0,  15,   0,   0,   0, 
+    200,   0,   0,   0,   4,   0, 
+      0,   0,   0,   0,   0,   0, 
+      2,   0,   0,   0,   4,   0, 
+      0,   0,  15,   0,   0,   0, 
+    200,   0,   0,   0,   5,   0, 
+      0,   0,   0,   0,   0,   0, 
+      2,   0,   0,   0,   5,   0, 
+      0,   0,  15,   0,   0,   0, 
+    200,   0,   0,   0,   6,   0, 
+      0,   0,   0,   0,   0,   0, 
+      2,   0,   0,   0,   6,   0, 
+      0,   0,  15,   0,   0,   0, 
+    200,   0,   0,   0,   7,   0, 
+      0,   0,   0,   0,   0,   0, 
+      2,   0,   0,   0,   7,   0, 
+      0,   0,  15,   0,   0,   0, 
+     83,  86,  95,  84,  65,  82, 
+     71,  69,  84,   0, 171, 171, 
+     83,  72,  68,  82,  24,   1, 
+      0,   0,  64,   0,   0,   0, 
+     70,   0,   0,   0,  98,   8, 
+      0,   3, 242,  16,  16,   0, 
+      1,   0,   0,   0, 101,   0, 
+      0,   3, 242,  32,  16,   0, 
+      0,   0,   0,   0, 101,   0, 
+      0,   3, 242,  32,  16,   0, 
+      1,   0,   0,   0, 101,   0, 
+      0,   3, 242,  32,  16,   0, 
+      2,   0,   0,   0, 101,   0, 
+      0,   3, 242,  32,  16,   0, 
+      3,   0,   0,   0, 101,   0, 
+      0,   3, 242,  32,  16,   0, 
+      4,   0,   0,   0, 101,   0, 
+      0,   3, 242,  32,  16,   0, 
+      5,   0,   0,   0, 101,   0, 
+      0,   3, 242,  32,  16,   0, 
+      6,   0,   0,   0, 101,   0, 
+      0,   3, 242,  32,  16,   0, 
+      7,   0,   0,   0,  54,   0, 
+      0,   5, 242,  32,  16,   0, 
+      0,   0,   0,   0,  70,  30, 
+     16,   0,   1,   0,   0,   0, 
+     54,   0,   0,   5, 242,  32, 
+     16,   0,   1,   0,   0,   0, 
+     70,  30,  16,   0,   1,   0, 
+      0,   0,  54,   0,   0,   5, 
+    242,  32,  16,   0,   2,   0, 
+      0,   0,  70,  30,  16,   0, 
+      1,   0,   0,   0,  54,   0, 
+      0,   5, 242,  32,  16,   0, 
+      3,   0,   0,   0,  70,  30, 
+     16,   0,   1,   0,   0,   0, 
+     54,   0,   0,   5, 242,  32, 
+     16,   0,   4,   0,   0,   0, 
+     70,  30,  16,   0,   1,   0, 
+      0,   0,  54,   0,   0,   5, 
+    242,  32,  16,   0,   5,   0, 
+      0,   0,  70,  30,  16,   0, 
+      1,   0,   0,   0,  54,   0, 
+      0,   5, 242,  32,  16,   0, 
+      6,   0,   0,   0,  70,  30, 
+     16,   0,   1,   0,   0,   0, 
+     54,   0,   0,   5, 242,  32, 
+     16,   0,   7,   0,   0,   0, 
+     70,  30,  16,   0,   1,   0, 
+      0,   0,  62,   0,   0,   1, 
+     83,  84,  65,  84, 116,   0, 
+      0,   0,   9,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   9,   0,   0,   0, 
+      0,   0,   0,   0,   0,   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, 
+      9,   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
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledclearsint11vsh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/clearsint11vs.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/clearsint11vs.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/clearsint11vs.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,131 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// POSITION                 0   xyz         0     NONE   float   xyz 
+// COLOR                    0   xyzw        1     NONE     int   xyzw
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float   xyzw
+// COLOR                    0   xyzw        1     NONE     int   xyzw
+//
+vs_4_0
+dcl_input v0.xyz
+dcl_input v1.xyzw
+dcl_output_siv o0.xyzw, position
+dcl_output o1.xyzw
+mov o0.xyz, v0.xyzx
+mov o0.w, l(1.000000)
+mov o1.xyzw, v1.xyzw
+ret 
+// Approximately 4 instruction slots used
+#endif
+
+const BYTE g_VS_ClearSint[] =
+{
+     68,  88,  66,  67, 254,  10, 
+    228,  23, 109,  37,  56, 192, 
+     81, 175, 113, 148,  13, 249, 
+    236, 118,   1,   0,   0,   0, 
+     48,   2,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    140,   0,   0,   0, 220,   0, 
+      0,   0,  48,   1,   0,   0, 
+    180,   1,   0,   0,  82,  68, 
+     69,  70,  80,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    254, 255,   0,   1,   0,   0, 
+     28,   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,  51, 
+     48,  46,  57,  50,  48,  48, 
+     46,  49,  54,  51,  56,  52, 
+      0, 171,  73,  83,  71,  78, 
+     72,   0,   0,   0,   2,   0, 
+      0,   0,   8,   0,   0,   0, 
+     56,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,   0,   0, 
+      0,   0,   7,   7,   0,   0, 
+     65,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      2,   0,   0,   0,   1,   0, 
+      0,   0,  15,  15,   0,   0, 
+     80,  79,  83,  73,  84,  73, 
+     79,  78,   0,  67,  79,  76, 
+     79,  82,   0, 171,  79,  83, 
+     71,  78,  76,   0,   0,   0, 
+      2,   0,   0,   0,   8,   0, 
+      0,   0,  56,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  68,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+      1,   0,   0,   0,  15,   0, 
+      0,   0,  83,  86,  95,  80, 
+     79,  83,  73,  84,  73,  79, 
+     78,   0,  67,  79,  76,  79, 
+     82,   0, 171, 171,  83,  72, 
+     68,  82, 124,   0,   0,   0, 
+     64,   0,   1,   0,  31,   0, 
+      0,   0,  95,   0,   0,   3, 
+    114,  16,  16,   0,   0,   0, 
+      0,   0,  95,   0,   0,   3, 
+    242,  16,  16,   0,   1,   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, 
+     54,   0,   0,   5, 114,  32, 
+     16,   0,   0,   0,   0,   0, 
+     70,  18,  16,   0,   0,   0, 
+      0,   0,  54,   0,   0,   5, 
+    130,  32,  16,   0,   0,   0, 
+      0,   0,   1,  64,   0,   0, 
+      0,   0, 128,  63,  54,   0, 
+      0,   5, 242,  32,  16,   0, 
+      1,   0,   0,   0,  70,  30, 
+     16,   0,   1,   0,   0,   0, 
+     62,   0,   0,   1,  83,  84, 
+     65,  84, 116,   0,   0,   0, 
+      4,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      4,   0,   0,   0,   0,   0, 
+      0,   0,   0,   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,   4,   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
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledclearuint11psh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/clearuint11ps.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/clearuint11ps.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/clearuint11ps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,196 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float       
+// COLOR                    0   xyzw        1     NONE    uint   xyzw
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_TARGET                0   xyzw        0   TARGET    uint   xyzw
+// SV_TARGET                1   xyzw        1   TARGET    uint   xyzw
+// SV_TARGET                2   xyzw        2   TARGET    uint   xyzw
+// SV_TARGET                3   xyzw        3   TARGET    uint   xyzw
+// SV_TARGET                4   xyzw        4   TARGET    uint   xyzw
+// SV_TARGET                5   xyzw        5   TARGET    uint   xyzw
+// SV_TARGET                6   xyzw        6   TARGET    uint   xyzw
+// SV_TARGET                7   xyzw        7   TARGET    uint   xyzw
+//
+ps_4_0
+dcl_input_ps constant v1.xyzw
+dcl_output o0.xyzw
+dcl_output o1.xyzw
+dcl_output o2.xyzw
+dcl_output o3.xyzw
+dcl_output o4.xyzw
+dcl_output o5.xyzw
+dcl_output o6.xyzw
+dcl_output o7.xyzw
+mov o0.xyzw, v1.xyzw
+mov o1.xyzw, v1.xyzw
+mov o2.xyzw, v1.xyzw
+mov o3.xyzw, v1.xyzw
+mov o4.xyzw, v1.xyzw
+mov o5.xyzw, v1.xyzw
+mov o6.xyzw, v1.xyzw
+mov o7.xyzw, v1.xyzw
+ret 
+// Approximately 9 instruction slots used
+#endif
+
+const BYTE g_PS_ClearUint[] =
+{
+     68,  88,  66,  67, 199,  72, 
+    167, 165,  16, 175,  86, 185, 
+     38,  71,   2, 169, 180,  38, 
+    231, 204,   1,   0,   0,   0, 
+     88,   3,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    140,   0,   0,   0, 224,   0, 
+      0,   0, 188,   1,   0,   0, 
+    220,   2,   0,   0,  82,  68, 
+     69,  70,  80,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+     28,   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,  51, 
+     48,  46,  57,  50,  48,  48, 
+     46,  49,  54,  51,  56,  52, 
+      0, 171,  73,  83,  71,  78, 
+     76,   0,   0,   0,   2,   0, 
+      0,   0,   8,   0,   0,   0, 
+     56,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+      3,   0,   0,   0,   0,   0, 
+      0,   0,  15,   0,   0,   0, 
+     68,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   1,   0, 
+      0,   0,  15,  15,   0,   0, 
+     83,  86,  95,  80,  79,  83, 
+     73,  84,  73,  79,  78,   0, 
+     67,  79,  76,  79,  82,   0, 
+    171, 171,  79,  83,  71,  78, 
+    212,   0,   0,   0,   8,   0, 
+      0,   0,   8,   0,   0,   0, 
+    200,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,  15,   0,   0,   0, 
+    200,   0,   0,   0,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   1,   0, 
+      0,   0,  15,   0,   0,   0, 
+    200,   0,   0,   0,   2,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   2,   0, 
+      0,   0,  15,   0,   0,   0, 
+    200,   0,   0,   0,   3,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   3,   0, 
+      0,   0,  15,   0,   0,   0, 
+    200,   0,   0,   0,   4,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   4,   0, 
+      0,   0,  15,   0,   0,   0, 
+    200,   0,   0,   0,   5,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   5,   0, 
+      0,   0,  15,   0,   0,   0, 
+    200,   0,   0,   0,   6,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   6,   0, 
+      0,   0,  15,   0,   0,   0, 
+    200,   0,   0,   0,   7,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   7,   0, 
+      0,   0,  15,   0,   0,   0, 
+     83,  86,  95,  84,  65,  82, 
+     71,  69,  84,   0, 171, 171, 
+     83,  72,  68,  82,  24,   1, 
+      0,   0,  64,   0,   0,   0, 
+     70,   0,   0,   0,  98,   8, 
+      0,   3, 242,  16,  16,   0, 
+      1,   0,   0,   0, 101,   0, 
+      0,   3, 242,  32,  16,   0, 
+      0,   0,   0,   0, 101,   0, 
+      0,   3, 242,  32,  16,   0, 
+      1,   0,   0,   0, 101,   0, 
+      0,   3, 242,  32,  16,   0, 
+      2,   0,   0,   0, 101,   0, 
+      0,   3, 242,  32,  16,   0, 
+      3,   0,   0,   0, 101,   0, 
+      0,   3, 242,  32,  16,   0, 
+      4,   0,   0,   0, 101,   0, 
+      0,   3, 242,  32,  16,   0, 
+      5,   0,   0,   0, 101,   0, 
+      0,   3, 242,  32,  16,   0, 
+      6,   0,   0,   0, 101,   0, 
+      0,   3, 242,  32,  16,   0, 
+      7,   0,   0,   0,  54,   0, 
+      0,   5, 242,  32,  16,   0, 
+      0,   0,   0,   0,  70,  30, 
+     16,   0,   1,   0,   0,   0, 
+     54,   0,   0,   5, 242,  32, 
+     16,   0,   1,   0,   0,   0, 
+     70,  30,  16,   0,   1,   0, 
+      0,   0,  54,   0,   0,   5, 
+    242,  32,  16,   0,   2,   0, 
+      0,   0,  70,  30,  16,   0, 
+      1,   0,   0,   0,  54,   0, 
+      0,   5, 242,  32,  16,   0, 
+      3,   0,   0,   0,  70,  30, 
+     16,   0,   1,   0,   0,   0, 
+     54,   0,   0,   5, 242,  32, 
+     16,   0,   4,   0,   0,   0, 
+     70,  30,  16,   0,   1,   0, 
+      0,   0,  54,   0,   0,   5, 
+    242,  32,  16,   0,   5,   0, 
+      0,   0,  70,  30,  16,   0, 
+      1,   0,   0,   0,  54,   0, 
+      0,   5, 242,  32,  16,   0, 
+      6,   0,   0,   0,  70,  30, 
+     16,   0,   1,   0,   0,   0, 
+     54,   0,   0,   5, 242,  32, 
+     16,   0,   7,   0,   0,   0, 
+     70,  30,  16,   0,   1,   0, 
+      0,   0,  62,   0,   0,   1, 
+     83,  84,  65,  84, 116,   0, 
+      0,   0,   9,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   9,   0,   0,   0, 
+      0,   0,   0,   0,   0,   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, 
+      9,   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
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledclearuint11vsh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/clearuint11vs.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/clearuint11vs.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/clearuint11vs.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,131 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// POSITION                 0   xyz         0     NONE   float   xyz 
+// COLOR                    0   xyzw        1     NONE    uint   xyzw
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float   xyzw
+// COLOR                    0   xyzw        1     NONE    uint   xyzw
+//
+vs_4_0
+dcl_input v0.xyz
+dcl_input v1.xyzw
+dcl_output_siv o0.xyzw, position
+dcl_output o1.xyzw
+mov o0.xyz, v0.xyzx
+mov o0.w, l(1.000000)
+mov o1.xyzw, v1.xyzw
+ret 
+// Approximately 4 instruction slots used
+#endif
+
+const BYTE g_VS_ClearUint[] =
+{
+     68,  88,  66,  67, 143, 217, 
+      8,  75, 126, 180, 129, 114, 
+    145, 192, 142, 211, 178, 208, 
+    255, 251,   1,   0,   0,   0, 
+     48,   2,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    140,   0,   0,   0, 220,   0, 
+      0,   0,  48,   1,   0,   0, 
+    180,   1,   0,   0,  82,  68, 
+     69,  70,  80,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    254, 255,   0,   1,   0,   0, 
+     28,   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,  51, 
+     48,  46,  57,  50,  48,  48, 
+     46,  49,  54,  51,  56,  52, 
+      0, 171,  73,  83,  71,  78, 
+     72,   0,   0,   0,   2,   0, 
+      0,   0,   8,   0,   0,   0, 
+     56,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,   0,   0, 
+      0,   0,   7,   7,   0,   0, 
+     65,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   1,   0, 
+      0,   0,  15,  15,   0,   0, 
+     80,  79,  83,  73,  84,  73, 
+     79,  78,   0,  67,  79,  76, 
+     79,  82,   0, 171,  79,  83, 
+     71,  78,  76,   0,   0,   0, 
+      2,   0,   0,   0,   8,   0, 
+      0,   0,  56,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  68,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+      1,   0,   0,   0,  15,   0, 
+      0,   0,  83,  86,  95,  80, 
+     79,  83,  73,  84,  73,  79, 
+     78,   0,  67,  79,  76,  79, 
+     82,   0, 171, 171,  83,  72, 
+     68,  82, 124,   0,   0,   0, 
+     64,   0,   1,   0,  31,   0, 
+      0,   0,  95,   0,   0,   3, 
+    114,  16,  16,   0,   0,   0, 
+      0,   0,  95,   0,   0,   3, 
+    242,  16,  16,   0,   1,   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, 
+     54,   0,   0,   5, 114,  32, 
+     16,   0,   0,   0,   0,   0, 
+     70,  18,  16,   0,   0,   0, 
+      0,   0,  54,   0,   0,   5, 
+    130,  32,  16,   0,   0,   0, 
+      0,   0,   1,  64,   0,   0, 
+      0,   0, 128,  63,  54,   0, 
+      0,   5, 242,  32,  16,   0, 
+      1,   0,   0,   0,  70,  30, 
+     16,   0,   1,   0,   0,   0, 
+     62,   0,   0,   1,  83,  84, 
+     65,  84, 116,   0,   0,   0, 
+      4,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      4,   0,   0,   0,   0,   0, 
+      0,   0,   0,   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,   4,   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
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthrough11vsh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthrough11vs.h (168114 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthrough11vs.h        2014-05-01 19:23:29 UTC (rev 168114)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthrough11vs.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -1,134 +0,0 @@
</span><del>-#if 0
-//
-// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
-//
-//
-///
-//
-// Input signature:
-//
-// Name                 Index   Mask Register SysValue  Format   Used
-// -------------------- ----- ------ -------- -------- ------- ------
-// POSITION                 0   xy          0     NONE   float   xy  
-// TEXCOORD                 0   xy          1     NONE   float   xy  
-//
-//
-// Output signature:
-//
-// Name                 Index   Mask Register SysValue  Format   Used
-// -------------------- ----- ------ -------- -------- ------- ------
-// SV_POSITION              0   xyzw        0      POS   float   xyzw
-// TEXCOORD                 0   xy          1     NONE   float   xy  
-//
-vs_4_0
-dcl_input v0.xy
-dcl_input v1.xy
-dcl_output_siv o0.xyzw, position
-dcl_output o1.xy
-mov o0.xy, v0.xyxx
-mov o0.zw, l(0,0,0,1.000000)
-mov o1.xy, v1.xyxx
-ret 
-// Approximately 4 instruction slots used
-#endif
-
-const BYTE g_VS_Passthrough[] =
-{
-     68,  88,  66,  67, 197, 214, 
-    184,  85, 240,  94,  71,  48, 
-    165,  34, 142, 233,   0, 135, 
-    193, 178,   1,   0,   0,   0, 
-     68,   2,   0,   0,   5,   0, 
-      0,   0,  52,   0,   0,   0, 
-    140,   0,   0,   0, 224,   0, 
-      0,   0,  56,   1,   0,   0, 
-    200,   1,   0,   0,  82,  68, 
-     69,  70,  80,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-     28,   0,   0,   0,   0,   4, 
-    254, 255,   0,   1,   0,   0, 
-     28,   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,  51, 
-     48,  46,  57,  50,  48,  48, 
-     46,  49,  54,  51,  56,  52, 
-      0, 171,  73,  83,  71,  78, 
-     76,   0,   0,   0,   2,   0, 
-      0,   0,   8,   0,   0,   0, 
-     56,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      3,   0,   0,   0,   0,   0, 
-      0,   0,   3,   3,   0,   0, 
-     65,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      3,   0,   0,   0,   1,   0, 
-      0,   0,   3,   3,   0,   0, 
-     80,  79,  83,  73,  84,  73, 
-     79,  78,   0,  84,  69,  88, 
-     67,  79,  79,  82,  68,   0, 
-    171, 171,  79,  83,  71,  78, 
-     80,   0,   0,   0,   2,   0, 
-      0,   0,   8,   0,   0,   0, 
-     56,   0,   0,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-      3,   0,   0,   0,   0,   0, 
-      0,   0,  15,   0,   0,   0, 
-     68,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      3,   0,   0,   0,   1,   0, 
-      0,   0,   3,  12,   0,   0, 
-     83,  86,  95,  80,  79,  83, 
-     73,  84,  73,  79,  78,   0, 
-     84,  69,  88,  67,  79,  79, 
-     82,  68,   0, 171, 171, 171, 
-     83,  72,  68,  82, 136,   0, 
-      0,   0,  64,   0,   1,   0, 
-     34,   0,   0,   0,  95,   0, 
-      0,   3,  50,  16,  16,   0, 
-      0,   0,   0,   0,  95,   0, 
-      0,   3,  50,  16,  16,   0, 
-      1,   0,   0,   0, 103,   0, 
-      0,   4, 242,  32,  16,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0, 101,   0,   0,   3, 
-     50,  32,  16,   0,   1,   0, 
-      0,   0,  54,   0,   0,   5, 
-     50,  32,  16,   0,   0,   0, 
-      0,   0,  70,  16,  16,   0, 
-      0,   0,   0,   0,  54,   0, 
-      0,   8, 194,  32,  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, 
-     54,   0,   0,   5,  50,  32, 
-     16,   0,   1,   0,   0,   0, 
-     70,  16,  16,   0,   1,   0, 
-      0,   0,  62,   0,   0,   1, 
-     83,  84,  65,  84, 116,   0, 
-      0,   0,   4,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   4,   0,   0,   0, 
-      0,   0,   0,   0,   0,   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, 
-      4,   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
-};
</del></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthrough2d11vsh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthrough2d11vs.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthrough2d11vs.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthrough2d11vs.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,134 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// POSITION                 0   xy          0     NONE   float   xy  
+// TEXCOORD                 0   xy          1     NONE   float   xy  
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float   xyzw
+// TEXCOORD                 0   xy          1     NONE   float   xy  
+//
+vs_4_0
+dcl_input v0.xy
+dcl_input v1.xy
+dcl_output_siv o0.xyzw, position
+dcl_output o1.xy
+mov o0.xy, v0.xyxx
+mov o0.zw, l(0,0,0,1.000000)
+mov o1.xy, v1.xyxx
+ret 
+// Approximately 4 instruction slots used
+#endif
+
+const BYTE g_VS_Passthrough2D[] =
+{
+     68,  88,  66,  67, 197, 214, 
+    184,  85, 240,  94,  71,  48, 
+    165,  34, 142, 233,   0, 135, 
+    193, 178,   1,   0,   0,   0, 
+     68,   2,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    140,   0,   0,   0, 224,   0, 
+      0,   0,  56,   1,   0,   0, 
+    200,   1,   0,   0,  82,  68, 
+     69,  70,  80,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    254, 255,   0,   1,   0,   0, 
+     28,   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,  51, 
+     48,  46,  57,  50,  48,  48, 
+     46,  49,  54,  51,  56,  52, 
+      0, 171,  73,  83,  71,  78, 
+     76,   0,   0,   0,   2,   0, 
+      0,   0,   8,   0,   0,   0, 
+     56,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,   0,   0, 
+      0,   0,   3,   3,   0,   0, 
+     65,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,   1,   0, 
+      0,   0,   3,   3,   0,   0, 
+     80,  79,  83,  73,  84,  73, 
+     79,  78,   0,  84,  69,  88, 
+     67,  79,  79,  82,  68,   0, 
+    171, 171,  79,  83,  71,  78, 
+     80,   0,   0,   0,   2,   0, 
+      0,   0,   8,   0,   0,   0, 
+     56,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+      3,   0,   0,   0,   0,   0, 
+      0,   0,  15,   0,   0,   0, 
+     68,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,   1,   0, 
+      0,   0,   3,  12,   0,   0, 
+     83,  86,  95,  80,  79,  83, 
+     73,  84,  73,  79,  78,   0, 
+     84,  69,  88,  67,  79,  79, 
+     82,  68,   0, 171, 171, 171, 
+     83,  72,  68,  82, 136,   0, 
+      0,   0,  64,   0,   1,   0, 
+     34,   0,   0,   0,  95,   0, 
+      0,   3,  50,  16,  16,   0, 
+      0,   0,   0,   0,  95,   0, 
+      0,   3,  50,  16,  16,   0, 
+      1,   0,   0,   0, 103,   0, 
+      0,   4, 242,  32,  16,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0, 101,   0,   0,   3, 
+     50,  32,  16,   0,   1,   0, 
+      0,   0,  54,   0,   0,   5, 
+     50,  32,  16,   0,   0,   0, 
+      0,   0,  70,  16,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   8, 194,  32,  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, 
+     54,   0,   0,   5,  50,  32, 
+     16,   0,   1,   0,   0,   0, 
+     70,  16,  16,   0,   1,   0, 
+      0,   0,  62,   0,   0,   1, 
+     83,  84,  65,  84, 116,   0, 
+      0,   0,   4,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   4,   0,   0,   0, 
+      0,   0,   0,   0,   0,   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, 
+      4,   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
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthrough3d11gsh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthrough3d11gs.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthrough3d11gs.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthrough3d11gs.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,192 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float   xyzw
+// LAYER                    0   x           1     NONE    uint   x   
+// TEXCOORD                 0   xyz         2     NONE   float   xyz 
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float   xyzw
+// SV_RENDERTARGETARRAYINDEX     0   x           1  RTINDEX    uint   x   
+// TEXCOORD                 0   xyz         2     NONE   float   xyz 
+//
+gs_4_0
+dcl_input_siv v[3][0].xyzw, position
+dcl_input v[3][1].x
+dcl_input v[3][2].xyz
+dcl_temps 1
+dcl_inputprimitive triangle 
+dcl_outputtopology trianglestrip 
+dcl_output_siv o0.xyzw, position
+dcl_output_siv o1.x, rendertarget_array_index
+dcl_output o2.xyz
+dcl_maxout 3
+mov r0.x, l(0)
+loop 
+  ige r0.y, r0.x, l(3)
+  breakc_nz r0.y
+  mov o0.xyzw, v[r0.x + 0][0].xyzw
+  mov o1.x, v[r0.x + 0][1].x
+  mov o2.xyz, v[r0.x + 0][2].xyzx
+  emit 
+  iadd r0.x, r0.x, l(1)
+endloop 
+ret 
+// Approximately 11 instruction slots used
+#endif
+
+const BYTE g_GS_Passthrough3D[] =
+{
+     68,  88,  66,  67,  21,  92, 
+    188, 203,  22,  49, 177, 239, 
+    121, 233, 148, 135, 212,  27, 
+    172, 209,   1,   0,   0,   0, 
+     72,   3,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    140,   0,   0,   0,   0,   1, 
+      0,   0, 136,   1,   0,   0, 
+    204,   2,   0,   0,  82,  68, 
+     69,  70,  80,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+     83,  71,   0,   1,   0,   0, 
+     28,   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,  51, 
+     48,  46,  57,  50,  48,  48, 
+     46,  49,  54,  51,  56,  52, 
+      0, 171,  73,  83,  71,  78, 
+    108,   0,   0,   0,   3,   0, 
+      0,   0,   8,   0,   0,   0, 
+     80,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+      3,   0,   0,   0,   0,   0, 
+      0,   0,  15,  15,   0,   0, 
+     92,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   1,   0, 
+      0,   0,   1,   1,   0,   0, 
+     98,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,   2,   0, 
+      0,   0,   7,   7,   0,   0, 
+     83,  86,  95,  80,  79,  83, 
+     73,  84,  73,  79,  78,   0, 
+     76,  65,  89,  69,  82,   0, 
+     84,  69,  88,  67,  79,  79, 
+     82,  68,   0, 171,  79,  83, 
+     71,  78, 128,   0,   0,   0, 
+      3,   0,   0,   0,   8,   0, 
+      0,   0,  80,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  92,   0,   0,   0, 
+      0,   0,   0,   0,   4,   0, 
+      0,   0,   1,   0,   0,   0, 
+      1,   0,   0,   0,   1,  14, 
+      0,   0, 118,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+      2,   0,   0,   0,   7,   8, 
+      0,   0,  83,  86,  95,  80, 
+     79,  83,  73,  84,  73,  79, 
+     78,   0,  83,  86,  95,  82, 
+     69,  78,  68,  69,  82,  84, 
+     65,  82,  71,  69,  84,  65, 
+     82,  82,  65,  89,  73,  78, 
+     68,  69,  88,   0,  84,  69, 
+     88,  67,  79,  79,  82,  68, 
+      0, 171,  83,  72,  68,  82, 
+     60,   1,   0,   0,  64,   0, 
+      2,   0,  79,   0,   0,   0, 
+     97,   0,   0,   5, 242,  16, 
+     32,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  95,   0,   0,   4, 
+     18,  16,  32,   0,   3,   0, 
+      0,   0,   1,   0,   0,   0, 
+     95,   0,   0,   4, 114,  16, 
+     32,   0,   3,   0,   0,   0, 
+      2,   0,   0,   0, 104,   0, 
+      0,   2,   1,   0,   0,   0, 
+     93,  24,   0,   1,  92,  40, 
+      0,   1, 103,   0,   0,   4, 
+    242,  32,  16,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+    103,   0,   0,   4,  18,  32, 
+     16,   0,   1,   0,   0,   0, 
+      4,   0,   0,   0, 101,   0, 
+      0,   3, 114,  32,  16,   0, 
+      2,   0,   0,   0,  94,   0, 
+      0,   2,   3,   0,   0,   0, 
+     54,   0,   0,   5,  18,   0, 
+     16,   0,   0,   0,   0,   0, 
+      1,  64,   0,   0,   0,   0, 
+      0,   0,  48,   0,   0,   1, 
+     33,   0,   0,   7,  34,   0, 
+     16,   0,   0,   0,   0,   0, 
+     10,   0,  16,   0,   0,   0, 
+      0,   0,   1,  64,   0,   0, 
+      3,   0,   0,   0,   3,   0, 
+      4,   3,  26,   0,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   7, 242,  32,  16,   0, 
+      0,   0,   0,   0,  70,  30, 
+    160,   0,  10,   0,  16,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  54,   0,   0,   7, 
+     18,  32,  16,   0,   1,   0, 
+      0,   0,  10,  16, 160,   0, 
+     10,   0,  16,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+     54,   0,   0,   7, 114,  32, 
+     16,   0,   2,   0,   0,   0, 
+     70,  18, 160,   0,  10,   0, 
+     16,   0,   0,   0,   0,   0, 
+      2,   0,   0,   0,  19,   0, 
+      0,   1,  30,   0,   0,   7, 
+     18,   0,  16,   0,   0,   0, 
+      0,   0,  10,   0,  16,   0, 
+      0,   0,   0,   0,   1,  64, 
+      0,   0,   1,   0,   0,   0, 
+     22,   0,   0,   1,  62,   0, 
+      0,   1,  83,  84,  65,  84, 
+    116,   0,   0,   0,  11,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   6,   0, 
+      0,   0,   0,   0,   0,   0, 
+      2,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+      1,   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,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  12,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,   5,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthrough3d11vsh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthrough3d11vs.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthrough3d11vs.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthrough3d11vs.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,156 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// POSITION                 0   xy          0     NONE   float   xy  
+// LAYER                    0   x           1     NONE    uint   x   
+// TEXCOORD                 0   xyz         2     NONE   float   xyz 
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float   xyzw
+// LAYER                    0   x           1     NONE    uint   x   
+// TEXCOORD                 0   xyz         2     NONE   float   xyz 
+//
+vs_4_0
+dcl_input v0.xy
+dcl_input v1.x
+dcl_input v2.xyz
+dcl_output_siv o0.xyzw, position
+dcl_output o1.x
+dcl_output o2.xyz
+mov o0.xy, v0.xyxx
+mov o0.zw, l(0,0,0,1.000000)
+mov o1.x, v1.x
+mov o2.xyz, v2.xyzx
+ret 
+// Approximately 5 instruction slots used
+#endif
+
+const BYTE g_VS_Passthrough3D[] =
+{
+     68,  88,  66,  67,  92,  60, 
+     15, 188,  90, 157, 249, 215, 
+    202, 142,  58, 127, 103, 200, 
+    181,  87,   1,   0,   0,   0, 
+    168,   2,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    140,   0,   0,   0, 252,   0, 
+      0,   0, 112,   1,   0,   0, 
+     44,   2,   0,   0,  82,  68, 
+     69,  70,  80,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    254, 255,   0,   1,   0,   0, 
+     28,   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,  51, 
+     48,  46,  57,  50,  48,  48, 
+     46,  49,  54,  51,  56,  52, 
+      0, 171,  73,  83,  71,  78, 
+    104,   0,   0,   0,   3,   0, 
+      0,   0,   8,   0,   0,   0, 
+     80,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,   0,   0, 
+      0,   0,   3,   3,   0,   0, 
+     89,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   1,   0, 
+      0,   0,   1,   1,   0,   0, 
+     95,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,   2,   0, 
+      0,   0,   7,   7,   0,   0, 
+     80,  79,  83,  73,  84,  73, 
+     79,  78,   0,  76,  65,  89, 
+     69,  82,   0,  84,  69,  88, 
+     67,  79,  79,  82,  68,   0, 
+     79,  83,  71,  78, 108,   0, 
+      0,   0,   3,   0,   0,   0, 
+      8,   0,   0,   0,  80,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   3,   0, 
+      0,   0,   0,   0,   0,   0, 
+     15,   0,   0,   0,  92,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   1,   0,   0,   0, 
+      1,  14,   0,   0,  98,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   3,   0, 
+      0,   0,   2,   0,   0,   0, 
+      7,   8,   0,   0,  83,  86, 
+     95,  80,  79,  83,  73,  84, 
+     73,  79,  78,   0,  76,  65, 
+     89,  69,  82,   0,  84,  69, 
+     88,  67,  79,  79,  82,  68, 
+      0, 171,  83,  72,  68,  82, 
+    180,   0,   0,   0,  64,   0, 
+      1,   0,  45,   0,   0,   0, 
+     95,   0,   0,   3,  50,  16, 
+     16,   0,   0,   0,   0,   0, 
+     95,   0,   0,   3,  18,  16, 
+     16,   0,   1,   0,   0,   0, 
+     95,   0,   0,   3, 114,  16, 
+     16,   0,   2,   0,   0,   0, 
+    103,   0,   0,   4, 242,  32, 
+     16,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0, 101,   0, 
+      0,   3,  18,  32,  16,   0, 
+      1,   0,   0,   0, 101,   0, 
+      0,   3, 114,  32,  16,   0, 
+      2,   0,   0,   0,  54,   0, 
+      0,   5,  50,  32,  16,   0, 
+      0,   0,   0,   0,  70,  16, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   8, 194,  32, 
+     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,  54,   0,   0,   5, 
+     18,  32,  16,   0,   1,   0, 
+      0,   0,  10,  16,  16,   0, 
+      1,   0,   0,   0,  54,   0, 
+      0,   5, 114,  32,  16,   0, 
+      2,   0,   0,   0,  70,  18, 
+     16,   0,   2,   0,   0,   0, 
+     62,   0,   0,   1,  83,  84, 
+     65,  84, 116,   0,   0,   0, 
+      5,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      6,   0,   0,   0,   0,   0, 
+      0,   0,   0,   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, 
+      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
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughdepth2d11psh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughdepth2d11ps.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughdepth2d11ps.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughdepth2d11ps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,146 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+// Resource Bindings:
+//
+// Name                                 Type  Format         Dim Slot Elements
+// ------------------------------ ---------- ------- ----------- ---- --------
+// Sampler                           sampler      NA          NA    0        1
+// TextureF                          texture  float4          2d    0        1
+//
+//
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float       
+// TEXCOORD                 0   xy          1     NONE   float   xy  
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_DEPTH                 0    N/A   oDepth    DEPTH   float    YES
+//
+ps_4_0
+dcl_sampler s0, mode_default
+dcl_resource_texture2d (float,float,float,float) t0
+dcl_input_ps linear v1.xy
+dcl_output oDepth
+dcl_temps 1
+sample r0.xyzw, v1.xyxx, t0.xyzw, s0
+mov oDepth, r0.x
+ret 
+// Approximately 3 instruction slots used
+#endif
+
+const BYTE g_PS_PassthroughDepth2D[] =
+{
+     68,  88,  66,  67, 205, 127, 
+    148, 170, 168,  91, 194, 133, 
+    180, 181,  17,  51,  13,  53, 
+     48,  72,   1,   0,   0,   0, 
+    100,   2,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    220,   0,   0,   0,  52,   1, 
+      0,   0, 104,   1,   0,   0, 
+    232,   1,   0,   0,  82,  68, 
+     69,  70, 160,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+    109,   0,   0,   0,  92,   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,   1,   0,   0,   0, 
+    100,   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,  13,   0, 
+      0,   0,  83,  97, 109, 112, 
+    108, 101, 114,   0,  84, 101, 
+    120, 116, 117, 114, 101,  70, 
+      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,  51,  48,  46,  57, 
+     50,  48,  48,  46,  49,  54, 
+     51,  56,  52,   0,  73,  83, 
+     71,  78,  80,   0,   0,   0, 
+      2,   0,   0,   0,   8,   0, 
+      0,   0,  56,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  68,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+      1,   0,   0,   0,   3,   3, 
+      0,   0,  83,  86,  95,  80, 
+     79,  83,  73,  84,  73,  79, 
+     78,   0,  84,  69,  88,  67, 
+     79,  79,  82,  68,   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, 255, 255, 
+    255, 255,   1,  14,   0,   0, 
+     83,  86,  95,  68,  69,  80, 
+     84,  72,   0, 171, 171, 171, 
+     83,  72,  68,  82, 120,   0, 
+      0,   0,  64,   0,   0,   0, 
+     30,   0,   0,   0,  90,   0, 
+      0,   3,   0,  96,  16,   0, 
+      0,   0,   0,   0,  88,  24, 
+      0,   4,   0, 112,  16,   0, 
+      0,   0,   0,   0,  85,  85, 
+      0,   0,  98,  16,   0,   3, 
+     50,  16,  16,   0,   1,   0, 
+      0,   0, 101,   0,   0,   2, 
+      1, 192,   0,   0, 104,   0, 
+      0,   2,   1,   0,   0,   0, 
+     69,   0,   0,   9, 242,   0, 
+     16,   0,   0,   0,   0,   0, 
+     70,  16,  16,   0,   1,   0, 
+      0,   0,  70, 126,  16,   0, 
+      0,   0,   0,   0,   0,  96, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   4,   1, 192, 
+      0,   0,  10,   0,  16,   0, 
+      0,   0,   0,   0,  62,   0, 
+      0,   1,  83,  84,  65,  84, 
+    116,   0,   0,   0,   3,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   2,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   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, 
+      1,   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,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughlum11psh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughlum11ps.h (168114 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughlum11ps.h        2014-05-01 19:23:29 UTC (rev 168114)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughlum11ps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -1,152 +0,0 @@
</span><del>-#if 0
-//
-// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
-//
-//
-///
-// Resource Bindings:
-//
-// Name                                 Type  Format         Dim Slot Elements
-// ------------------------------ ---------- ------- ----------- ---- --------
-// Sampler                           sampler      NA          NA    0        1
-// Texture                           texture  float4          2d    0        1
-//
-//
-//
-// Input signature:
-//
-// Name                 Index   Mask Register SysValue  Format   Used
-// -------------------- ----- ------ -------- -------- ------- ------
-// SV_POSITION              0   xyzw        0      POS   float       
-// TEXCOORD                 0   xy          1     NONE   float   xy  
-//
-//
-// Output signature:
-//
-// Name                 Index   Mask Register SysValue  Format   Used
-// -------------------- ----- ------ -------- -------- ------- ------
-// SV_TARGET                0   xyzw        0   TARGET   float   xyzw
-//
-ps_4_0
-dcl_sampler s0, mode_default
-dcl_resource_texture2d (float,float,float,float) t0
-dcl_input_ps linear v1.xy
-dcl_output o0.xyzw
-dcl_temps 1
-sample r0.xyzw, v1.xyxx, t0.xyzw, s0
-mov o0.xyz, r0.xxxx
-mov o0.w, l(1.000000)
-ret 
-// Approximately 4 instruction slots used
-#endif
-
-const BYTE g_PS_PassthroughLum[] =
-{
-     68,  88,  66,  67, 244,   9, 
-    213, 147,  19, 249,  70, 111, 
-    157,  92, 243, 160,  40, 144, 
-    238, 221,   1,   0,   0,   0, 
-    128,   2,   0,   0,   5,   0, 
-      0,   0,  52,   0,   0,   0, 
-    220,   0,   0,   0,  52,   1, 
-      0,   0, 104,   1,   0,   0, 
-      4,   2,   0,   0,  82,  68, 
-     69,  70, 160,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   2,   0,   0,   0, 
-     28,   0,   0,   0,   0,   4, 
-    255, 255,   0,   1,   0,   0, 
-    108,   0,   0,   0,  92,   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,   1,   0,   0,   0, 
-    100,   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,  13,   0, 
-      0,   0,  83,  97, 109, 112, 
-    108, 101, 114,   0,  84, 101, 
-    120, 116, 117, 114, 101,   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,  51,  48,  46,  57,  50, 
-     48,  48,  46,  49,  54,  51, 
-     56,  52,   0, 171,  73,  83, 
-     71,  78,  80,   0,   0,   0, 
-      2,   0,   0,   0,   8,   0, 
-      0,   0,  56,   0,   0,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,   3,   0,   0,   0, 
-      0,   0,   0,   0,  15,   0, 
-      0,   0,  68,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   3,   0,   0,   0, 
-      1,   0,   0,   0,   3,   3, 
-      0,   0,  83,  86,  95,  80, 
-     79,  83,  73,  84,  73,  79, 
-     78,   0,  84,  69,  88,  67, 
-     79,  79,  82,  68,   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,  65,  82, 
-     71,  69,  84,   0, 171, 171, 
-     83,  72,  68,  82, 148,   0, 
-      0,   0,  64,   0,   0,   0, 
-     37,   0,   0,   0,  90,   0, 
-      0,   3,   0,  96,  16,   0, 
-      0,   0,   0,   0,  88,  24, 
-      0,   4,   0, 112,  16,   0, 
-      0,   0,   0,   0,  85,  85, 
-      0,   0,  98,  16,   0,   3, 
-     50,  16,  16,   0,   1,   0, 
-      0,   0, 101,   0,   0,   3, 
-    242,  32,  16,   0,   0,   0, 
-      0,   0, 104,   0,   0,   2, 
-      1,   0,   0,   0,  69,   0, 
-      0,   9, 242,   0,  16,   0, 
-      0,   0,   0,   0,  70,  16, 
-     16,   0,   1,   0,   0,   0, 
-     70, 126,  16,   0,   0,   0, 
-      0,   0,   0,  96,  16,   0, 
-      0,   0,   0,   0,  54,   0, 
-      0,   5, 114,  32,  16,   0, 
-      0,   0,   0,   0,   6,   0, 
-     16,   0,   0,   0,   0,   0, 
-     54,   0,   0,   5, 130,  32, 
-     16,   0,   0,   0,   0,   0, 
-      1,  64,   0,   0,   0,   0, 
-    128,  63,  62,   0,   0,   1, 
-     83,  84,  65,  84, 116,   0, 
-      0,   0,   4,   0,   0,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0,   2,   0,   0,   0, 
-      0,   0,   0,   0,   0,   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,   1,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   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, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0
-};
</del></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughlum2d11psh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughlum2d11ps.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughlum2d11ps.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughlum2d11ps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,152 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+// Resource Bindings:
+//
+// Name                                 Type  Format         Dim Slot Elements
+// ------------------------------ ---------- ------- ----------- ---- --------
+// Sampler                           sampler      NA          NA    0        1
+// TextureF                          texture  float4          2d    0        1
+//
+//
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float       
+// TEXCOORD                 0   xy          1     NONE   float   xy  
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_TARGET                0   xyzw        0   TARGET   float   xyzw
+//
+ps_4_0
+dcl_sampler s0, mode_default
+dcl_resource_texture2d (float,float,float,float) t0
+dcl_input_ps linear v1.xy
+dcl_output o0.xyzw
+dcl_temps 1
+sample r0.xyzw, v1.xyxx, t0.xyzw, s0
+mov o0.xyz, r0.xxxx
+mov o0.w, l(1.000000)
+ret 
+// Approximately 4 instruction slots used
+#endif
+
+const BYTE g_PS_PassthroughLum2D[] =
+{
+     68,  88,  66,  67,  75,  65, 
+    224,  54, 123, 121,  78, 132, 
+    180,  89,  93, 146,  31, 209, 
+    114,  35,   1,   0,   0,   0, 
+    128,   2,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    220,   0,   0,   0,  52,   1, 
+      0,   0, 104,   1,   0,   0, 
+      4,   2,   0,   0,  82,  68, 
+     69,  70, 160,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+    109,   0,   0,   0,  92,   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,   1,   0,   0,   0, 
+    100,   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,  13,   0, 
+      0,   0,  83,  97, 109, 112, 
+    108, 101, 114,   0,  84, 101, 
+    120, 116, 117, 114, 101,  70, 
+      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,  51,  48,  46,  57, 
+     50,  48,  48,  46,  49,  54, 
+     51,  56,  52,   0,  73,  83, 
+     71,  78,  80,   0,   0,   0, 
+      2,   0,   0,   0,   8,   0, 
+      0,   0,  56,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  68,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+      1,   0,   0,   0,   3,   3, 
+      0,   0,  83,  86,  95,  80, 
+     79,  83,  73,  84,  73,  79, 
+     78,   0,  84,  69,  88,  67, 
+     79,  79,  82,  68,   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,  65,  82, 
+     71,  69,  84,   0, 171, 171, 
+     83,  72,  68,  82, 148,   0, 
+      0,   0,  64,   0,   0,   0, 
+     37,   0,   0,   0,  90,   0, 
+      0,   3,   0,  96,  16,   0, 
+      0,   0,   0,   0,  88,  24, 
+      0,   4,   0, 112,  16,   0, 
+      0,   0,   0,   0,  85,  85, 
+      0,   0,  98,  16,   0,   3, 
+     50,  16,  16,   0,   1,   0, 
+      0,   0, 101,   0,   0,   3, 
+    242,  32,  16,   0,   0,   0, 
+      0,   0, 104,   0,   0,   2, 
+      1,   0,   0,   0,  69,   0, 
+      0,   9, 242,   0,  16,   0, 
+      0,   0,   0,   0,  70,  16, 
+     16,   0,   1,   0,   0,   0, 
+     70, 126,  16,   0,   0,   0, 
+      0,   0,   0,  96,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   5, 114,  32,  16,   0, 
+      0,   0,   0,   0,   6,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   5, 130,  32, 
+     16,   0,   0,   0,   0,   0, 
+      1,  64,   0,   0,   0,   0, 
+    128,  63,  62,   0,   0,   1, 
+     83,  84,  65,  84, 116,   0, 
+      0,   0,   4,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+      0,   0,   0,   0,   0,   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,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   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, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughlum3d11psh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughlum3d11ps.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughlum3d11ps.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughlum3d11ps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,161 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+// Resource Bindings:
+//
+// Name                                 Type  Format         Dim Slot Elements
+// ------------------------------ ---------- ------- ----------- ---- --------
+// Sampler                           sampler      NA          NA    0        1
+// TextureF                          texture  float4          3d    0        1
+//
+//
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float       
+// SV_RENDERTARGETARRAYINDEX     0   x           1  RTINDEX    uint       
+// TEXCOORD                 0   xyz         2     NONE   float   xyz 
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_TARGET                0   xyzw        0   TARGET   float   xyzw
+//
+ps_4_0
+dcl_sampler s0, mode_default
+dcl_resource_texture3d (float,float,float,float) t0
+dcl_input_ps linear v2.xyz
+dcl_output o0.xyzw
+dcl_temps 1
+sample r0.xyzw, v2.xyzx, t0.xyzw, s0
+mov o0.xyz, r0.xxxx
+mov o0.w, l(1.000000)
+ret 
+// Approximately 4 instruction slots used
+#endif
+
+const BYTE g_PS_PassthroughLum3D[] =
+{
+     68,  88,  66,  67, 139, 183, 
+    126,  70,  59, 171, 117,  78, 
+     58, 168, 253, 206, 241,  67, 
+    236, 117,   1,   0,   0,   0, 
+    176,   2,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    220,   0,   0,   0, 100,   1, 
+      0,   0, 152,   1,   0,   0, 
+     52,   2,   0,   0,  82,  68, 
+     69,  70, 160,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+    109,   0,   0,   0,  92,   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,   1,   0,   0,   0, 
+    100,   0,   0,   0,   2,   0, 
+      0,   0,   5,   0,   0,   0, 
+      8,   0,   0,   0, 255, 255, 
+    255, 255,   0,   0,   0,   0, 
+      1,   0,   0,   0,  13,   0, 
+      0,   0,  83,  97, 109, 112, 
+    108, 101, 114,   0,  84, 101, 
+    120, 116, 117, 114, 101,  70, 
+      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,  51,  48,  46,  57, 
+     50,  48,  48,  46,  49,  54, 
+     51,  56,  52,   0,  73,  83, 
+     71,  78, 128,   0,   0,   0, 
+      3,   0,   0,   0,   8,   0, 
+      0,   0,  80,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  92,   0,   0,   0, 
+      0,   0,   0,   0,   4,   0, 
+      0,   0,   1,   0,   0,   0, 
+      1,   0,   0,   0,   1,   0, 
+      0,   0, 118,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+      2,   0,   0,   0,   7,   7, 
+      0,   0,  83,  86,  95,  80, 
+     79,  83,  73,  84,  73,  79, 
+     78,   0,  83,  86,  95,  82, 
+     69,  78,  68,  69,  82,  84, 
+     65,  82,  71,  69,  84,  65, 
+     82,  82,  65,  89,  73,  78, 
+     68,  69,  88,   0,  84,  69, 
+     88,  67,  79,  79,  82,  68, 
+      0, 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,  65,  82, 
+     71,  69,  84,   0, 171, 171, 
+     83,  72,  68,  82, 148,   0, 
+      0,   0,  64,   0,   0,   0, 
+     37,   0,   0,   0,  90,   0, 
+      0,   3,   0,  96,  16,   0, 
+      0,   0,   0,   0,  88,  40, 
+      0,   4,   0, 112,  16,   0, 
+      0,   0,   0,   0,  85,  85, 
+      0,   0,  98,  16,   0,   3, 
+    114,  16,  16,   0,   2,   0, 
+      0,   0, 101,   0,   0,   3, 
+    242,  32,  16,   0,   0,   0, 
+      0,   0, 104,   0,   0,   2, 
+      1,   0,   0,   0,  69,   0, 
+      0,   9, 242,   0,  16,   0, 
+      0,   0,   0,   0,  70,  18, 
+     16,   0,   2,   0,   0,   0, 
+     70, 126,  16,   0,   0,   0, 
+      0,   0,   0,  96,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   5, 114,  32,  16,   0, 
+      0,   0,   0,   0,   6,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   5, 130,  32, 
+     16,   0,   0,   0,   0,   0, 
+      1,  64,   0,   0,   0,   0, 
+    128,  63,  62,   0,   0,   1, 
+     83,  84,  65,  84, 116,   0, 
+      0,   0,   4,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+      0,   0,   0,   0,   0,   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,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   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, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughlumalpha11psh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughlumalpha11ps.h (168114 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughlumalpha11ps.h        2014-05-01 19:23:29 UTC (rev 168114)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughlumalpha11ps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -1,148 +0,0 @@
</span><del>-#if 0
-//
-// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
-//
-//
-///
-// Resource Bindings:
-//
-// Name                                 Type  Format         Dim Slot Elements
-// ------------------------------ ---------- ------- ----------- ---- --------
-// Sampler                           sampler      NA          NA    0        1
-// Texture                           texture  float4          2d    0        1
-//
-//
-//
-// Input signature:
-//
-// Name                 Index   Mask Register SysValue  Format   Used
-// -------------------- ----- ------ -------- -------- ------- ------
-// SV_POSITION              0   xyzw        0      POS   float       
-// TEXCOORD                 0   xy          1     NONE   float   xy  
-//
-//
-// Output signature:
-//
-// Name                 Index   Mask Register SysValue  Format   Used
-// -------------------- ----- ------ -------- -------- ------- ------
-// SV_TARGET                0   xyzw        0   TARGET   float   xyzw
-//
-ps_4_0
-dcl_sampler s0, mode_default
-dcl_resource_texture2d (float,float,float,float) t0
-dcl_input_ps linear v1.xy
-dcl_output o0.xyzw
-dcl_temps 1
-sample r0.xyzw, v1.xyxx, t0.xyzw, s0
-mov o0.xyzw, r0.xxxw
-ret 
-// Approximately 3 instruction slots used
-#endif
-
-const BYTE g_PS_PassthroughLumAlpha[] =
-{
-     68,  88,  66,  67, 185,  14, 
-     84, 223, 192,  42,  16, 133, 
-     46, 100,  95, 221, 183,  97, 
-    192,  23,   1,   0,   0,   0, 
-    108,   2,   0,   0,   5,   0, 
-      0,   0,  52,   0,   0,   0, 
-    220,   0,   0,   0,  52,   1, 
-      0,   0, 104,   1,   0,   0, 
-    240,   1,   0,   0,  82,  68, 
-     69,  70, 160,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   2,   0,   0,   0, 
-     28,   0,   0,   0,   0,   4, 
-    255, 255,   0,   1,   0,   0, 
-    108,   0,   0,   0,  92,   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,   1,   0,   0,   0, 
-    100,   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,  13,   0, 
-      0,   0,  83,  97, 109, 112, 
-    108, 101, 114,   0,  84, 101, 
-    120, 116, 117, 114, 101,   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,  51,  48,  46,  57,  50, 
-     48,  48,  46,  49,  54,  51, 
-     56,  52,   0, 171,  73,  83, 
-     71,  78,  80,   0,   0,   0, 
-      2,   0,   0,   0,   8,   0, 
-      0,   0,  56,   0,   0,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,   3,   0,   0,   0, 
-      0,   0,   0,   0,  15,   0, 
-      0,   0,  68,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   3,   0,   0,   0, 
-      1,   0,   0,   0,   3,   3, 
-      0,   0,  83,  86,  95,  80, 
-     79,  83,  73,  84,  73,  79, 
-     78,   0,  84,  69,  88,  67, 
-     79,  79,  82,  68,   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,  65,  82, 
-     71,  69,  84,   0, 171, 171, 
-     83,  72,  68,  82, 128,   0, 
-      0,   0,  64,   0,   0,   0, 
-     32,   0,   0,   0,  90,   0, 
-      0,   3,   0,  96,  16,   0, 
-      0,   0,   0,   0,  88,  24, 
-      0,   4,   0, 112,  16,   0, 
-      0,   0,   0,   0,  85,  85, 
-      0,   0,  98,  16,   0,   3, 
-     50,  16,  16,   0,   1,   0, 
-      0,   0, 101,   0,   0,   3, 
-    242,  32,  16,   0,   0,   0, 
-      0,   0, 104,   0,   0,   2, 
-      1,   0,   0,   0,  69,   0, 
-      0,   9, 242,   0,  16,   0, 
-      0,   0,   0,   0,  70,  16, 
-     16,   0,   1,   0,   0,   0, 
-     70, 126,  16,   0,   0,   0, 
-      0,   0,   0,  96,  16,   0, 
-      0,   0,   0,   0,  54,   0, 
-      0,   5, 242,  32,  16,   0, 
-      0,   0,   0,   0,   6,  12, 
-     16,   0,   0,   0,   0,   0, 
-     62,   0,   0,   1,  83,  84, 
-     65,  84, 116,   0,   0,   0, 
-      3,   0,   0,   0,   1,   0, 
-      0,   0,   0,   0,   0,   0, 
-      2,   0,   0,   0,   0,   0, 
-      0,   0,   0,   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,   1,   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, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0
-};
</del></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughlumalpha2d11psh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughlumalpha2d11ps.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughlumalpha2d11ps.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughlumalpha2d11ps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,148 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+// Resource Bindings:
+//
+// Name                                 Type  Format         Dim Slot Elements
+// ------------------------------ ---------- ------- ----------- ---- --------
+// Sampler                           sampler      NA          NA    0        1
+// TextureF                          texture  float4          2d    0        1
+//
+//
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float       
+// TEXCOORD                 0   xy          1     NONE   float   xy  
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_TARGET                0   xyzw        0   TARGET   float   xyzw
+//
+ps_4_0
+dcl_sampler s0, mode_default
+dcl_resource_texture2d (float,float,float,float) t0
+dcl_input_ps linear v1.xy
+dcl_output o0.xyzw
+dcl_temps 1
+sample r0.xyzw, v1.xyxx, t0.xyzw, s0
+mov o0.xyzw, r0.xxxw
+ret 
+// Approximately 3 instruction slots used
+#endif
+
+const BYTE g_PS_PassthroughLumAlpha2D[] =
+{
+     68,  88,  66,  67, 211,  12, 
+    122, 206, 209, 255, 137, 132, 
+    163, 164,  87, 202,  31,  60, 
+     79, 244,   1,   0,   0,   0, 
+    108,   2,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    220,   0,   0,   0,  52,   1, 
+      0,   0, 104,   1,   0,   0, 
+    240,   1,   0,   0,  82,  68, 
+     69,  70, 160,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+    109,   0,   0,   0,  92,   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,   1,   0,   0,   0, 
+    100,   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,  13,   0, 
+      0,   0,  83,  97, 109, 112, 
+    108, 101, 114,   0,  84, 101, 
+    120, 116, 117, 114, 101,  70, 
+      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,  51,  48,  46,  57, 
+     50,  48,  48,  46,  49,  54, 
+     51,  56,  52,   0,  73,  83, 
+     71,  78,  80,   0,   0,   0, 
+      2,   0,   0,   0,   8,   0, 
+      0,   0,  56,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  68,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+      1,   0,   0,   0,   3,   3, 
+      0,   0,  83,  86,  95,  80, 
+     79,  83,  73,  84,  73,  79, 
+     78,   0,  84,  69,  88,  67, 
+     79,  79,  82,  68,   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,  65,  82, 
+     71,  69,  84,   0, 171, 171, 
+     83,  72,  68,  82, 128,   0, 
+      0,   0,  64,   0,   0,   0, 
+     32,   0,   0,   0,  90,   0, 
+      0,   3,   0,  96,  16,   0, 
+      0,   0,   0,   0,  88,  24, 
+      0,   4,   0, 112,  16,   0, 
+      0,   0,   0,   0,  85,  85, 
+      0,   0,  98,  16,   0,   3, 
+     50,  16,  16,   0,   1,   0, 
+      0,   0, 101,   0,   0,   3, 
+    242,  32,  16,   0,   0,   0, 
+      0,   0, 104,   0,   0,   2, 
+      1,   0,   0,   0,  69,   0, 
+      0,   9, 242,   0,  16,   0, 
+      0,   0,   0,   0,  70,  16, 
+     16,   0,   1,   0,   0,   0, 
+     70, 126,  16,   0,   0,   0, 
+      0,   0,   0,  96,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   5, 242,  32,  16,   0, 
+      0,   0,   0,   0,   6,  12, 
+     16,   0,   0,   0,   0,   0, 
+     62,   0,   0,   1,  83,  84, 
+     65,  84, 116,   0,   0,   0, 
+      3,   0,   0,   0,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      2,   0,   0,   0,   0,   0, 
+      0,   0,   0,   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,   1,   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, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughlumalpha3d11psh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughlumalpha3d11ps.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughlumalpha3d11ps.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughlumalpha3d11ps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,157 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+// Resource Bindings:
+//
+// Name                                 Type  Format         Dim Slot Elements
+// ------------------------------ ---------- ------- ----------- ---- --------
+// Sampler                           sampler      NA          NA    0        1
+// TextureF                          texture  float4          3d    0        1
+//
+//
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float       
+// SV_RENDERTARGETARRAYINDEX     0   x           1  RTINDEX    uint       
+// TEXCOORD                 0   xyz         2     NONE   float   xyz 
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_TARGET                0   xyzw        0   TARGET   float   xyzw
+//
+ps_4_0
+dcl_sampler s0, mode_default
+dcl_resource_texture3d (float,float,float,float) t0
+dcl_input_ps linear v2.xyz
+dcl_output o0.xyzw
+dcl_temps 1
+sample r0.xyzw, v2.xyzx, t0.xyzw, s0
+mov o0.xyzw, r0.xxxw
+ret 
+// Approximately 3 instruction slots used
+#endif
+
+const BYTE g_PS_PassthroughLumAlpha3D[] =
+{
+     68,  88,  66,  67,  79, 152, 
+     38, 183, 191, 232, 234,  74, 
+     20, 216, 159,  98, 130,  89, 
+     67, 230,   1,   0,   0,   0, 
+    156,   2,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    220,   0,   0,   0, 100,   1, 
+      0,   0, 152,   1,   0,   0, 
+     32,   2,   0,   0,  82,  68, 
+     69,  70, 160,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+    109,   0,   0,   0,  92,   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,   1,   0,   0,   0, 
+    100,   0,   0,   0,   2,   0, 
+      0,   0,   5,   0,   0,   0, 
+      8,   0,   0,   0, 255, 255, 
+    255, 255,   0,   0,   0,   0, 
+      1,   0,   0,   0,  13,   0, 
+      0,   0,  83,  97, 109, 112, 
+    108, 101, 114,   0,  84, 101, 
+    120, 116, 117, 114, 101,  70, 
+      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,  51,  48,  46,  57, 
+     50,  48,  48,  46,  49,  54, 
+     51,  56,  52,   0,  73,  83, 
+     71,  78, 128,   0,   0,   0, 
+      3,   0,   0,   0,   8,   0, 
+      0,   0,  80,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  92,   0,   0,   0, 
+      0,   0,   0,   0,   4,   0, 
+      0,   0,   1,   0,   0,   0, 
+      1,   0,   0,   0,   1,   0, 
+      0,   0, 118,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+      2,   0,   0,   0,   7,   7, 
+      0,   0,  83,  86,  95,  80, 
+     79,  83,  73,  84,  73,  79, 
+     78,   0,  83,  86,  95,  82, 
+     69,  78,  68,  69,  82,  84, 
+     65,  82,  71,  69,  84,  65, 
+     82,  82,  65,  89,  73,  78, 
+     68,  69,  88,   0,  84,  69, 
+     88,  67,  79,  79,  82,  68, 
+      0, 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,  65,  82, 
+     71,  69,  84,   0, 171, 171, 
+     83,  72,  68,  82, 128,   0, 
+      0,   0,  64,   0,   0,   0, 
+     32,   0,   0,   0,  90,   0, 
+      0,   3,   0,  96,  16,   0, 
+      0,   0,   0,   0,  88,  40, 
+      0,   4,   0, 112,  16,   0, 
+      0,   0,   0,   0,  85,  85, 
+      0,   0,  98,  16,   0,   3, 
+    114,  16,  16,   0,   2,   0, 
+      0,   0, 101,   0,   0,   3, 
+    242,  32,  16,   0,   0,   0, 
+      0,   0, 104,   0,   0,   2, 
+      1,   0,   0,   0,  69,   0, 
+      0,   9, 242,   0,  16,   0, 
+      0,   0,   0,   0,  70,  18, 
+     16,   0,   2,   0,   0,   0, 
+     70, 126,  16,   0,   0,   0, 
+      0,   0,   0,  96,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   5, 242,  32,  16,   0, 
+      0,   0,   0,   0,   6,  12, 
+     16,   0,   0,   0,   0,   0, 
+     62,   0,   0,   1,  83,  84, 
+     65,  84, 116,   0,   0,   0, 
+      3,   0,   0,   0,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      2,   0,   0,   0,   0,   0, 
+      0,   0,   0,   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,   1,   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, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughr2d11psh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughr2d11ps.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughr2d11ps.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughr2d11ps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,154 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+// Resource Bindings:
+//
+// Name                                 Type  Format         Dim Slot Elements
+// ------------------------------ ---------- ------- ----------- ---- --------
+// Sampler                           sampler      NA          NA    0        1
+// TextureF                          texture  float4          2d    0        1
+//
+//
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float       
+// TEXCOORD                 0   xy          1     NONE   float   xy  
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_TARGET                0   xyzw        0   TARGET   float   xyzw
+//
+ps_4_0
+dcl_sampler s0, mode_default
+dcl_resource_texture2d (float,float,float,float) t0
+dcl_input_ps linear v1.xy
+dcl_output o0.xyzw
+dcl_temps 1
+sample r0.xyzw, v1.xyxx, t0.xyzw, s0
+mov o0.x, r0.x
+mov o0.yzw, l(0,0,0,1.000000)
+ret 
+// Approximately 4 instruction slots used
+#endif
+
+const BYTE g_PS_PassthroughR2D[] =
+{
+     68,  88,  66,  67, 165, 241, 
+    169, 123,  72, 216, 126, 110, 
+    212,  26,  98, 247,  42,  20, 
+     73, 129,   1,   0,   0,   0, 
+    140,   2,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    220,   0,   0,   0,  52,   1, 
+      0,   0, 104,   1,   0,   0, 
+     16,   2,   0,   0,  82,  68, 
+     69,  70, 160,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+    109,   0,   0,   0,  92,   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,   1,   0,   0,   0, 
+    100,   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,  13,   0, 
+      0,   0,  83,  97, 109, 112, 
+    108, 101, 114,   0,  84, 101, 
+    120, 116, 117, 114, 101,  70, 
+      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,  51,  48,  46,  57, 
+     50,  48,  48,  46,  49,  54, 
+     51,  56,  52,   0,  73,  83, 
+     71,  78,  80,   0,   0,   0, 
+      2,   0,   0,   0,   8,   0, 
+      0,   0,  56,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  68,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+      1,   0,   0,   0,   3,   3, 
+      0,   0,  83,  86,  95,  80, 
+     79,  83,  73,  84,  73,  79, 
+     78,   0,  84,  69,  88,  67, 
+     79,  79,  82,  68,   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,  65,  82, 
+     71,  69,  84,   0, 171, 171, 
+     83,  72,  68,  82, 160,   0, 
+      0,   0,  64,   0,   0,   0, 
+     40,   0,   0,   0,  90,   0, 
+      0,   3,   0,  96,  16,   0, 
+      0,   0,   0,   0,  88,  24, 
+      0,   4,   0, 112,  16,   0, 
+      0,   0,   0,   0,  85,  85, 
+      0,   0,  98,  16,   0,   3, 
+     50,  16,  16,   0,   1,   0, 
+      0,   0, 101,   0,   0,   3, 
+    242,  32,  16,   0,   0,   0, 
+      0,   0, 104,   0,   0,   2, 
+      1,   0,   0,   0,  69,   0, 
+      0,   9, 242,   0,  16,   0, 
+      0,   0,   0,   0,  70,  16, 
+     16,   0,   1,   0,   0,   0, 
+     70, 126,  16,   0,   0,   0, 
+      0,   0,   0,  96,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   5,  18,  32,  16,   0, 
+      0,   0,   0,   0,  10,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   8, 226,  32, 
+     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,  62,   0,   0,   1, 
+     83,  84,  65,  84, 116,   0, 
+      0,   0,   4,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+      0,   0,   0,   0,   0,   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,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   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, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughr2di11psh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughr2di11ps.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughr2di11ps.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughr2di11ps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,168 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+// Resource Bindings:
+//
+// Name                                 Type  Format         Dim Slot Elements
+// ------------------------------ ---------- ------- ----------- ---- --------
+// TextureI                          texture   sint4          2d    0        1
+//
+//
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float       
+// TEXCOORD                 0   xy          1     NONE   float   xy  
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_TARGET                0   xyzw        0   TARGET     int   xyzw
+//
+ps_4_0
+dcl_resource_texture2d (sint,sint,sint,sint) t0
+dcl_input_ps linear v1.xy
+dcl_output o0.xyzw
+dcl_temps 1
+resinfo_uint r0.xyzw, l(0), t0.xyzw
+utof r0.xy, r0.xyxx
+mul r0.xy, r0.xyxx, v1.xyxx
+ftoi r0.xy, r0.xyxx
+mov r0.zw, l(0,0,0,0)
+ld r0.xyzw, r0.xyzw, t0.xyzw
+mov o0.x, r0.x
+mov o0.yzw, l(0,0,0,0)
+ret 
+// Approximately 9 instruction slots used
+#endif
+
+const BYTE g_PS_PassthroughR2DI[] =
+{
+     68,  88,  66,  67, 175,  34, 
+     58,  63,  77, 138, 186,  41, 
+     33, 239, 107, 231,  51, 122, 
+    194, 229,   1,   0,   0,   0, 
+    208,   2,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    180,   0,   0,   0,  12,   1, 
+      0,   0,  64,   1,   0,   0, 
+     84,   2,   0,   0,  82,  68, 
+     69,  70, 120,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+     69,   0,   0,   0,  60,   0, 
+      0,   0,   2,   0,   0,   0, 
+      3,   0,   0,   0,   4,   0, 
+      0,   0, 255, 255, 255, 255, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  13,   0,   0,   0, 
+     84, 101, 120, 116, 117, 114, 
+    101,  73,   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,  51,  48, 
+     46,  57,  50,  48,  48,  46, 
+     49,  54,  51,  56,  52,   0, 
+     73,  83,  71,  78,  80,   0, 
+      0,   0,   2,   0,   0,   0, 
+      8,   0,   0,   0,  56,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   3,   0, 
+      0,   0,   0,   0,   0,   0, 
+     15,   0,   0,   0,  68,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   3,   0, 
+      0,   0,   1,   0,   0,   0, 
+      3,   3,   0,   0,  83,  86, 
+     95,  80,  79,  83,  73,  84, 
+     73,  79,  78,   0,  84,  69, 
+     88,  67,  79,  79,  82,  68, 
+      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,   2,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  83,  86,  95,  84, 
+     65,  82,  71,  69,  84,   0, 
+    171, 171,  83,  72,  68,  82, 
+     12,   1,   0,   0,  64,   0, 
+      0,   0,  67,   0,   0,   0, 
+     88,  24,   0,   4,   0, 112, 
+     16,   0,   0,   0,   0,   0, 
+     51,  51,   0,   0,  98,  16, 
+      0,   3,  50,  16,  16,   0, 
+      1,   0,   0,   0, 101,   0, 
+      0,   3, 242,  32,  16,   0, 
+      0,   0,   0,   0, 104,   0, 
+      0,   2,   1,   0,   0,   0, 
+     61,  16,   0,   7, 242,   0, 
+     16,   0,   0,   0,   0,   0, 
+      1,  64,   0,   0,   0,   0, 
+      0,   0,  70, 126,  16,   0, 
+      0,   0,   0,   0,  86,   0, 
+      0,   5,  50,   0,  16,   0, 
+      0,   0,   0,   0,  70,   0, 
+     16,   0,   0,   0,   0,   0, 
+     56,   0,   0,   7,  50,   0, 
+     16,   0,   0,   0,   0,   0, 
+     70,   0,  16,   0,   0,   0, 
+      0,   0,  70,  16,  16,   0, 
+      1,   0,   0,   0,  27,   0, 
+      0,   5,  50,   0,  16,   0, 
+      0,   0,   0,   0,  70,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   8, 194,   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, 
+      0,   0,  45,   0,   0,   7, 
+    242,   0,  16,   0,   0,   0, 
+      0,   0,  70,  14,  16,   0, 
+      0,   0,   0,   0,  70, 126, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   5,  18,  32, 
+     16,   0,   0,   0,   0,   0, 
+     10,   0,  16,   0,   0,   0, 
+      0,   0,  54,   0,   0,   8, 
+    226,  32,  16,   0,   0,   0, 
+      0,   0,   2,  64,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  62,   0, 
+      0,   1,  83,  84,  65,  84, 
+    116,   0,   0,   0,   9,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   2,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   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,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   4,   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, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughr2dui11psh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughr2dui11ps.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughr2dui11ps.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughr2dui11ps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,169 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+// Resource Bindings:
+//
+// Name                                 Type  Format         Dim Slot Elements
+// ------------------------------ ---------- ------- ----------- ---- --------
+// TextureUI                         texture   uint4          2d    0        1
+//
+//
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float       
+// TEXCOORD                 0   xy          1     NONE   float   xy  
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_TARGET                0   xyzw        0   TARGET    uint   xyzw
+//
+ps_4_0
+dcl_resource_texture2d (uint,uint,uint,uint) t0
+dcl_input_ps linear v1.xy
+dcl_output o0.xyzw
+dcl_temps 1
+resinfo_uint r0.xyzw, l(0), t0.xyzw
+utof r0.xy, r0.xyxx
+mul r0.xy, r0.xyxx, v1.xyxx
+ftoi r0.xy, r0.xyxx
+mov r0.zw, l(0,0,0,0)
+ld r0.xyzw, r0.xyzw, t0.xyzw
+mov o0.x, r0.x
+mov o0.yzw, l(0,0,0,0)
+ret 
+// Approximately 9 instruction slots used
+#endif
+
+const BYTE g_PS_PassthroughR2DUI[] =
+{
+     68,  88,  66,  67, 166, 175, 
+     86, 113, 175, 196, 222, 119, 
+    102, 108,   1,  17, 158,  88, 
+     24, 124,   1,   0,   0,   0, 
+    212,   2,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    184,   0,   0,   0,  16,   1, 
+      0,   0,  68,   1,   0,   0, 
+     88,   2,   0,   0,  82,  68, 
+     69,  70, 124,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+     70,   0,   0,   0,  60,   0, 
+      0,   0,   2,   0,   0,   0, 
+      4,   0,   0,   0,   4,   0, 
+      0,   0, 255, 255, 255, 255, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  13,   0,   0,   0, 
+     84, 101, 120, 116, 117, 114, 
+    101,  85,  73,   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,  51, 
+     48,  46,  57,  50,  48,  48, 
+     46,  49,  54,  51,  56,  52, 
+      0, 171, 171, 171,  73,  83, 
+     71,  78,  80,   0,   0,   0, 
+      2,   0,   0,   0,   8,   0, 
+      0,   0,  56,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  68,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+      1,   0,   0,   0,   3,   3, 
+      0,   0,  83,  86,  95,  80, 
+     79,  83,  73,  84,  73,  79, 
+     78,   0,  84,  69,  88,  67, 
+     79,  79,  82,  68,   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, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,  15,   0,   0,   0, 
+     83,  86,  95,  84,  65,  82, 
+     71,  69,  84,   0, 171, 171, 
+     83,  72,  68,  82,  12,   1, 
+      0,   0,  64,   0,   0,   0, 
+     67,   0,   0,   0,  88,  24, 
+      0,   4,   0, 112,  16,   0, 
+      0,   0,   0,   0,  68,  68, 
+      0,   0,  98,  16,   0,   3, 
+     50,  16,  16,   0,   1,   0, 
+      0,   0, 101,   0,   0,   3, 
+    242,  32,  16,   0,   0,   0, 
+      0,   0, 104,   0,   0,   2, 
+      1,   0,   0,   0,  61,  16, 
+      0,   7, 242,   0,  16,   0, 
+      0,   0,   0,   0,   1,  64, 
+      0,   0,   0,   0,   0,   0, 
+     70, 126,  16,   0,   0,   0, 
+      0,   0,  86,   0,   0,   5, 
+     50,   0,  16,   0,   0,   0, 
+      0,   0,  70,   0,  16,   0, 
+      0,   0,   0,   0,  56,   0, 
+      0,   7,  50,   0,  16,   0, 
+      0,   0,   0,   0,  70,   0, 
+     16,   0,   0,   0,   0,   0, 
+     70,  16,  16,   0,   1,   0, 
+      0,   0,  27,   0,   0,   5, 
+     50,   0,  16,   0,   0,   0, 
+      0,   0,  70,   0,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   8, 194,   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,   0,   0, 
+     45,   0,   0,   7, 242,   0, 
+     16,   0,   0,   0,   0,   0, 
+     70,  14,  16,   0,   0,   0, 
+      0,   0,  70, 126,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   5,  18,  32,  16,   0, 
+      0,   0,   0,   0,  10,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   8, 226,  32, 
+     16,   0,   0,   0,   0,   0, 
+      2,  64,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  62,   0,   0,   1, 
+     83,  84,  65,  84, 116,   0, 
+      0,   0,   9,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+      1,   0,   0,   0,   0,   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,   1,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      4,   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,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughr3d11psh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughr3d11ps.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughr3d11ps.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughr3d11ps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,163 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+// Resource Bindings:
+//
+// Name                                 Type  Format         Dim Slot Elements
+// ------------------------------ ---------- ------- ----------- ---- --------
+// Sampler                           sampler      NA          NA    0        1
+// TextureF                          texture  float4          3d    0        1
+//
+//
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float       
+// SV_RENDERTARGETARRAYINDEX     0   x           1  RTINDEX    uint       
+// TEXCOORD                 0   xyz         2     NONE   float   xyz 
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_TARGET                0   xyzw        0   TARGET   float   xyzw
+//
+ps_4_0
+dcl_sampler s0, mode_default
+dcl_resource_texture3d (float,float,float,float) t0
+dcl_input_ps linear v2.xyz
+dcl_output o0.xyzw
+dcl_temps 1
+sample r0.xyzw, v2.xyzx, t0.xyzw, s0
+mov o0.x, r0.x
+mov o0.yzw, l(0,0,0,1.000000)
+ret 
+// Approximately 4 instruction slots used
+#endif
+
+const BYTE g_PS_PassthroughR3D[] =
+{
+     68,  88,  66,  67, 154, 126, 
+    157, 110,  55,  22, 118, 195, 
+    222,  16,   4,  44,   4, 186, 
+    175, 193,   1,   0,   0,   0, 
+    188,   2,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    220,   0,   0,   0, 100,   1, 
+      0,   0, 152,   1,   0,   0, 
+     64,   2,   0,   0,  82,  68, 
+     69,  70, 160,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+    109,   0,   0,   0,  92,   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,   1,   0,   0,   0, 
+    100,   0,   0,   0,   2,   0, 
+      0,   0,   5,   0,   0,   0, 
+      8,   0,   0,   0, 255, 255, 
+    255, 255,   0,   0,   0,   0, 
+      1,   0,   0,   0,  13,   0, 
+      0,   0,  83,  97, 109, 112, 
+    108, 101, 114,   0,  84, 101, 
+    120, 116, 117, 114, 101,  70, 
+      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,  51,  48,  46,  57, 
+     50,  48,  48,  46,  49,  54, 
+     51,  56,  52,   0,  73,  83, 
+     71,  78, 128,   0,   0,   0, 
+      3,   0,   0,   0,   8,   0, 
+      0,   0,  80,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  92,   0,   0,   0, 
+      0,   0,   0,   0,   4,   0, 
+      0,   0,   1,   0,   0,   0, 
+      1,   0,   0,   0,   1,   0, 
+      0,   0, 118,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+      2,   0,   0,   0,   7,   7, 
+      0,   0,  83,  86,  95,  80, 
+     79,  83,  73,  84,  73,  79, 
+     78,   0,  83,  86,  95,  82, 
+     69,  78,  68,  69,  82,  84, 
+     65,  82,  71,  69,  84,  65, 
+     82,  82,  65,  89,  73,  78, 
+     68,  69,  88,   0,  84,  69, 
+     88,  67,  79,  79,  82,  68, 
+      0, 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,  65,  82, 
+     71,  69,  84,   0, 171, 171, 
+     83,  72,  68,  82, 160,   0, 
+      0,   0,  64,   0,   0,   0, 
+     40,   0,   0,   0,  90,   0, 
+      0,   3,   0,  96,  16,   0, 
+      0,   0,   0,   0,  88,  40, 
+      0,   4,   0, 112,  16,   0, 
+      0,   0,   0,   0,  85,  85, 
+      0,   0,  98,  16,   0,   3, 
+    114,  16,  16,   0,   2,   0, 
+      0,   0, 101,   0,   0,   3, 
+    242,  32,  16,   0,   0,   0, 
+      0,   0, 104,   0,   0,   2, 
+      1,   0,   0,   0,  69,   0, 
+      0,   9, 242,   0,  16,   0, 
+      0,   0,   0,   0,  70,  18, 
+     16,   0,   2,   0,   0,   0, 
+     70, 126,  16,   0,   0,   0, 
+      0,   0,   0,  96,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   5,  18,  32,  16,   0, 
+      0,   0,   0,   0,  10,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   8, 226,  32, 
+     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,  62,   0,   0,   1, 
+     83,  84,  65,  84, 116,   0, 
+      0,   0,   4,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+      0,   0,   0,   0,   0,   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,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   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, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughr3di11psh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughr3di11ps.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughr3di11ps.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughr3di11ps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,175 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+// Resource Bindings:
+//
+// Name                                 Type  Format         Dim Slot Elements
+// ------------------------------ ---------- ------- ----------- ---- --------
+// TextureI                          texture   sint4          3d    0        1
+//
+//
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float       
+// SV_RENDERTARGETARRAYINDEX     0   x           1  RTINDEX    uint       
+// TEXCOORD                 0   xyz         2     NONE   float   xyz 
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_TARGET                0   xyzw        0   TARGET     int   xyzw
+//
+ps_4_0
+dcl_resource_texture3d (sint,sint,sint,sint) t0
+dcl_input_ps linear v2.xyz
+dcl_output o0.xyzw
+dcl_temps 1
+resinfo_uint r0.xyzw, l(0), t0.xyzw
+utof r0.xyz, r0.xyzx
+mul r0.xyz, r0.xyzx, v2.xyzx
+ftoi r0.xyz, r0.xyzx
+mov r0.w, l(0)
+ld r0.xyzw, r0.xyzw, t0.xyzw
+mov o0.x, r0.x
+mov o0.yzw, l(0,0,0,0)
+ret 
+// Approximately 9 instruction slots used
+#endif
+
+const BYTE g_PS_PassthroughR3DI[] =
+{
+     68,  88,  66,  67,  32, 229, 
+    168,  57, 179,  12, 205, 158, 
+    146,  39, 161, 133,   6, 137, 
+    250, 121,   1,   0,   0,   0, 
+    244,   2,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    180,   0,   0,   0,  60,   1, 
+      0,   0, 112,   1,   0,   0, 
+    120,   2,   0,   0,  82,  68, 
+     69,  70, 120,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+     69,   0,   0,   0,  60,   0, 
+      0,   0,   2,   0,   0,   0, 
+      3,   0,   0,   0,   8,   0, 
+      0,   0, 255, 255, 255, 255, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  13,   0,   0,   0, 
+     84, 101, 120, 116, 117, 114, 
+    101,  73,   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,  51,  48, 
+     46,  57,  50,  48,  48,  46, 
+     49,  54,  51,  56,  52,   0, 
+     73,  83,  71,  78, 128,   0, 
+      0,   0,   3,   0,   0,   0, 
+      8,   0,   0,   0,  80,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   3,   0, 
+      0,   0,   0,   0,   0,   0, 
+     15,   0,   0,   0,  92,   0, 
+      0,   0,   0,   0,   0,   0, 
+      4,   0,   0,   0,   1,   0, 
+      0,   0,   1,   0,   0,   0, 
+      1,   0,   0,   0, 118,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   3,   0, 
+      0,   0,   2,   0,   0,   0, 
+      7,   7,   0,   0,  83,  86, 
+     95,  80,  79,  83,  73,  84, 
+     73,  79,  78,   0,  83,  86, 
+     95,  82,  69,  78,  68,  69, 
+     82,  84,  65,  82,  71,  69, 
+     84,  65,  82,  82,  65,  89, 
+     73,  78,  68,  69,  88,   0, 
+     84,  69,  88,  67,  79,  79, 
+     82,  68,   0, 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,   2,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  83,  86,  95,  84, 
+     65,  82,  71,  69,  84,   0, 
+    171, 171,  83,  72,  68,  82, 
+      0,   1,   0,   0,  64,   0, 
+      0,   0,  64,   0,   0,   0, 
+     88,  40,   0,   4,   0, 112, 
+     16,   0,   0,   0,   0,   0, 
+     51,  51,   0,   0,  98,  16, 
+      0,   3, 114,  16,  16,   0, 
+      2,   0,   0,   0, 101,   0, 
+      0,   3, 242,  32,  16,   0, 
+      0,   0,   0,   0, 104,   0, 
+      0,   2,   1,   0,   0,   0, 
+     61,  16,   0,   7, 242,   0, 
+     16,   0,   0,   0,   0,   0, 
+      1,  64,   0,   0,   0,   0, 
+      0,   0,  70, 126,  16,   0, 
+      0,   0,   0,   0,  86,   0, 
+      0,   5, 114,   0,  16,   0, 
+      0,   0,   0,   0,  70,   2, 
+     16,   0,   0,   0,   0,   0, 
+     56,   0,   0,   7, 114,   0, 
+     16,   0,   0,   0,   0,   0, 
+     70,   2,  16,   0,   0,   0, 
+      0,   0,  70,  18,  16,   0, 
+      2,   0,   0,   0,  27,   0, 
+      0,   5, 114,   0,  16,   0, 
+      0,   0,   0,   0,  70,   2, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   5, 130,   0, 
+     16,   0,   0,   0,   0,   0, 
+      1,  64,   0,   0,   0,   0, 
+      0,   0,  45,   0,   0,   7, 
+    242,   0,  16,   0,   0,   0, 
+      0,   0,  70,  14,  16,   0, 
+      0,   0,   0,   0,  70, 126, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   5,  18,  32, 
+     16,   0,   0,   0,   0,   0, 
+     10,   0,  16,   0,   0,   0, 
+      0,   0,  54,   0,   0,   8, 
+    226,  32,  16,   0,   0,   0, 
+      0,   0,   2,  64,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  62,   0, 
+      0,   1,  83,  84,  65,  84, 
+    116,   0,   0,   0,   9,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   2,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   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,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   4,   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, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughr3dui11psh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughr3dui11ps.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughr3dui11ps.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughr3dui11ps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,176 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+// Resource Bindings:
+//
+// Name                                 Type  Format         Dim Slot Elements
+// ------------------------------ ---------- ------- ----------- ---- --------
+// TextureUI                         texture   uint4          3d    0        1
+//
+//
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float       
+// SV_RENDERTARGETARRAYINDEX     0   x           1  RTINDEX    uint       
+// TEXCOORD                 0   xyz         2     NONE   float   xyz 
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_TARGET                0   xyzw        0   TARGET    uint   xyzw
+//
+ps_4_0
+dcl_resource_texture3d (uint,uint,uint,uint) t0
+dcl_input_ps linear v2.xyz
+dcl_output o0.xyzw
+dcl_temps 1
+resinfo_uint r0.xyzw, l(0), t0.xyzw
+utof r0.xyz, r0.xyzx
+mul r0.xyz, r0.xyzx, v2.xyzx
+ftoi r0.xyz, r0.xyzx
+mov r0.w, l(0)
+ld r0.xyzw, r0.xyzw, t0.xyzw
+mov o0.x, r0.x
+mov o0.yzw, l(0,0,0,0)
+ret 
+// Approximately 9 instruction slots used
+#endif
+
+const BYTE g_PS_PassthroughR3DUI[] =
+{
+     68,  88,  66,  67,   8,  69, 
+    203,  31,  19,  83, 247, 164, 
+    150, 170, 250, 231, 193, 198, 
+    155, 234,   1,   0,   0,   0, 
+    248,   2,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    184,   0,   0,   0,  64,   1, 
+      0,   0, 116,   1,   0,   0, 
+    124,   2,   0,   0,  82,  68, 
+     69,  70, 124,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+     70,   0,   0,   0,  60,   0, 
+      0,   0,   2,   0,   0,   0, 
+      4,   0,   0,   0,   8,   0, 
+      0,   0, 255, 255, 255, 255, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  13,   0,   0,   0, 
+     84, 101, 120, 116, 117, 114, 
+    101,  85,  73,   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,  51, 
+     48,  46,  57,  50,  48,  48, 
+     46,  49,  54,  51,  56,  52, 
+      0, 171, 171, 171,  73,  83, 
+     71,  78, 128,   0,   0,   0, 
+      3,   0,   0,   0,   8,   0, 
+      0,   0,  80,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  92,   0,   0,   0, 
+      0,   0,   0,   0,   4,   0, 
+      0,   0,   1,   0,   0,   0, 
+      1,   0,   0,   0,   1,   0, 
+      0,   0, 118,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+      2,   0,   0,   0,   7,   7, 
+      0,   0,  83,  86,  95,  80, 
+     79,  83,  73,  84,  73,  79, 
+     78,   0,  83,  86,  95,  82, 
+     69,  78,  68,  69,  82,  84, 
+     65,  82,  71,  69,  84,  65, 
+     82,  82,  65,  89,  73,  78, 
+     68,  69,  88,   0,  84,  69, 
+     88,  67,  79,  79,  82,  68, 
+      0, 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, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,  15,   0,   0,   0, 
+     83,  86,  95,  84,  65,  82, 
+     71,  69,  84,   0, 171, 171, 
+     83,  72,  68,  82,   0,   1, 
+      0,   0,  64,   0,   0,   0, 
+     64,   0,   0,   0,  88,  40, 
+      0,   4,   0, 112,  16,   0, 
+      0,   0,   0,   0,  68,  68, 
+      0,   0,  98,  16,   0,   3, 
+    114,  16,  16,   0,   2,   0, 
+      0,   0, 101,   0,   0,   3, 
+    242,  32,  16,   0,   0,   0, 
+      0,   0, 104,   0,   0,   2, 
+      1,   0,   0,   0,  61,  16, 
+      0,   7, 242,   0,  16,   0, 
+      0,   0,   0,   0,   1,  64, 
+      0,   0,   0,   0,   0,   0, 
+     70, 126,  16,   0,   0,   0, 
+      0,   0,  86,   0,   0,   5, 
+    114,   0,  16,   0,   0,   0, 
+      0,   0,  70,   2,  16,   0, 
+      0,   0,   0,   0,  56,   0, 
+      0,   7, 114,   0,  16,   0, 
+      0,   0,   0,   0,  70,   2, 
+     16,   0,   0,   0,   0,   0, 
+     70,  18,  16,   0,   2,   0, 
+      0,   0,  27,   0,   0,   5, 
+    114,   0,  16,   0,   0,   0, 
+      0,   0,  70,   2,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   5, 130,   0,  16,   0, 
+      0,   0,   0,   0,   1,  64, 
+      0,   0,   0,   0,   0,   0, 
+     45,   0,   0,   7, 242,   0, 
+     16,   0,   0,   0,   0,   0, 
+     70,  14,  16,   0,   0,   0, 
+      0,   0,  70, 126,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   5,  18,  32,  16,   0, 
+      0,   0,   0,   0,  10,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   8, 226,  32, 
+     16,   0,   0,   0,   0,   0, 
+      2,  64,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  62,   0,   0,   1, 
+     83,  84,  65,  84, 116,   0, 
+      0,   0,   9,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+      1,   0,   0,   0,   0,   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,   1,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      4,   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,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughrg2d11psh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrg2d11ps.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrg2d11ps.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrg2d11ps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,154 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+// Resource Bindings:
+//
+// Name                                 Type  Format         Dim Slot Elements
+// ------------------------------ ---------- ------- ----------- ---- --------
+// Sampler                           sampler      NA          NA    0        1
+// TextureF                          texture  float4          2d    0        1
+//
+//
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float       
+// TEXCOORD                 0   xy          1     NONE   float   xy  
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_TARGET                0   xyzw        0   TARGET   float   xyzw
+//
+ps_4_0
+dcl_sampler s0, mode_default
+dcl_resource_texture2d (float,float,float,float) t0
+dcl_input_ps linear v1.xy
+dcl_output o0.xyzw
+dcl_temps 1
+sample r0.xyzw, v1.xyxx, t0.xyzw, s0
+mov o0.xy, r0.xyxx
+mov o0.zw, l(0,0,0,1.000000)
+ret 
+// Approximately 4 instruction slots used
+#endif
+
+const BYTE g_PS_PassthroughRG2D[] =
+{
+     68,  88,  66,  67, 106, 129, 
+     89,  74,  87,  68, 176, 125, 
+     58,  44,  17, 208, 223, 126, 
+     71, 132,   1,   0,   0,   0, 
+    140,   2,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    220,   0,   0,   0,  52,   1, 
+      0,   0, 104,   1,   0,   0, 
+     16,   2,   0,   0,  82,  68, 
+     69,  70, 160,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+    109,   0,   0,   0,  92,   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,   1,   0,   0,   0, 
+    100,   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,  13,   0, 
+      0,   0,  83,  97, 109, 112, 
+    108, 101, 114,   0,  84, 101, 
+    120, 116, 117, 114, 101,  70, 
+      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,  51,  48,  46,  57, 
+     50,  48,  48,  46,  49,  54, 
+     51,  56,  52,   0,  73,  83, 
+     71,  78,  80,   0,   0,   0, 
+      2,   0,   0,   0,   8,   0, 
+      0,   0,  56,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  68,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+      1,   0,   0,   0,   3,   3, 
+      0,   0,  83,  86,  95,  80, 
+     79,  83,  73,  84,  73,  79, 
+     78,   0,  84,  69,  88,  67, 
+     79,  79,  82,  68,   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,  65,  82, 
+     71,  69,  84,   0, 171, 171, 
+     83,  72,  68,  82, 160,   0, 
+      0,   0,  64,   0,   0,   0, 
+     40,   0,   0,   0,  90,   0, 
+      0,   3,   0,  96,  16,   0, 
+      0,   0,   0,   0,  88,  24, 
+      0,   4,   0, 112,  16,   0, 
+      0,   0,   0,   0,  85,  85, 
+      0,   0,  98,  16,   0,   3, 
+     50,  16,  16,   0,   1,   0, 
+      0,   0, 101,   0,   0,   3, 
+    242,  32,  16,   0,   0,   0, 
+      0,   0, 104,   0,   0,   2, 
+      1,   0,   0,   0,  69,   0, 
+      0,   9, 242,   0,  16,   0, 
+      0,   0,   0,   0,  70,  16, 
+     16,   0,   1,   0,   0,   0, 
+     70, 126,  16,   0,   0,   0, 
+      0,   0,   0,  96,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   5,  50,  32,  16,   0, 
+      0,   0,   0,   0,  70,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   8, 194,  32, 
+     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,  62,   0,   0,   1, 
+     83,  84,  65,  84, 116,   0, 
+      0,   0,   4,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+      0,   0,   0,   0,   0,   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,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   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, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughrg2di11psh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrg2di11ps.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrg2di11ps.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrg2di11ps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,168 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+// Resource Bindings:
+//
+// Name                                 Type  Format         Dim Slot Elements
+// ------------------------------ ---------- ------- ----------- ---- --------
+// TextureI                          texture   sint4          2d    0        1
+//
+//
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float       
+// TEXCOORD                 0   xy          1     NONE   float   xy  
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_TARGET                0   xyzw        0   TARGET     int   xyzw
+//
+ps_4_0
+dcl_resource_texture2d (sint,sint,sint,sint) t0
+dcl_input_ps linear v1.xy
+dcl_output o0.xyzw
+dcl_temps 1
+resinfo_uint r0.xyzw, l(0), t0.xyzw
+utof r0.xy, r0.xyxx
+mul r0.xy, r0.xyxx, v1.xyxx
+ftoi r0.xy, r0.xyxx
+mov r0.zw, l(0,0,0,0)
+ld r0.xyzw, r0.xyzw, t0.xyzw
+mov o0.xy, r0.xyxx
+mov o0.zw, l(0,0,0,0)
+ret 
+// Approximately 9 instruction slots used
+#endif
+
+const BYTE g_PS_PassthroughRG2DI[] =
+{
+     68,  88,  66,  67,   0,  22, 
+    144, 161, 146,  93, 225,  81, 
+    225, 191,  53,  51, 239,  96, 
+    173,  21,   1,   0,   0,   0, 
+    208,   2,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    180,   0,   0,   0,  12,   1, 
+      0,   0,  64,   1,   0,   0, 
+     84,   2,   0,   0,  82,  68, 
+     69,  70, 120,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+     69,   0,   0,   0,  60,   0, 
+      0,   0,   2,   0,   0,   0, 
+      3,   0,   0,   0,   4,   0, 
+      0,   0, 255, 255, 255, 255, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  13,   0,   0,   0, 
+     84, 101, 120, 116, 117, 114, 
+    101,  73,   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,  51,  48, 
+     46,  57,  50,  48,  48,  46, 
+     49,  54,  51,  56,  52,   0, 
+     73,  83,  71,  78,  80,   0, 
+      0,   0,   2,   0,   0,   0, 
+      8,   0,   0,   0,  56,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   3,   0, 
+      0,   0,   0,   0,   0,   0, 
+     15,   0,   0,   0,  68,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   3,   0, 
+      0,   0,   1,   0,   0,   0, 
+      3,   3,   0,   0,  83,  86, 
+     95,  80,  79,  83,  73,  84, 
+     73,  79,  78,   0,  84,  69, 
+     88,  67,  79,  79,  82,  68, 
+      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,   2,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  83,  86,  95,  84, 
+     65,  82,  71,  69,  84,   0, 
+    171, 171,  83,  72,  68,  82, 
+     12,   1,   0,   0,  64,   0, 
+      0,   0,  67,   0,   0,   0, 
+     88,  24,   0,   4,   0, 112, 
+     16,   0,   0,   0,   0,   0, 
+     51,  51,   0,   0,  98,  16, 
+      0,   3,  50,  16,  16,   0, 
+      1,   0,   0,   0, 101,   0, 
+      0,   3, 242,  32,  16,   0, 
+      0,   0,   0,   0, 104,   0, 
+      0,   2,   1,   0,   0,   0, 
+     61,  16,   0,   7, 242,   0, 
+     16,   0,   0,   0,   0,   0, 
+      1,  64,   0,   0,   0,   0, 
+      0,   0,  70, 126,  16,   0, 
+      0,   0,   0,   0,  86,   0, 
+      0,   5,  50,   0,  16,   0, 
+      0,   0,   0,   0,  70,   0, 
+     16,   0,   0,   0,   0,   0, 
+     56,   0,   0,   7,  50,   0, 
+     16,   0,   0,   0,   0,   0, 
+     70,   0,  16,   0,   0,   0, 
+      0,   0,  70,  16,  16,   0, 
+      1,   0,   0,   0,  27,   0, 
+      0,   5,  50,   0,  16,   0, 
+      0,   0,   0,   0,  70,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   8, 194,   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, 
+      0,   0,  45,   0,   0,   7, 
+    242,   0,  16,   0,   0,   0, 
+      0,   0,  70,  14,  16,   0, 
+      0,   0,   0,   0,  70, 126, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   5,  50,  32, 
+     16,   0,   0,   0,   0,   0, 
+     70,   0,  16,   0,   0,   0, 
+      0,   0,  54,   0,   0,   8, 
+    194,  32,  16,   0,   0,   0, 
+      0,   0,   2,  64,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  62,   0, 
+      0,   1,  83,  84,  65,  84, 
+    116,   0,   0,   0,   9,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   2,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   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,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   4,   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, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughrg2dui11psh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrg2dui11ps.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrg2dui11ps.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrg2dui11ps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,169 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+// Resource Bindings:
+//
+// Name                                 Type  Format         Dim Slot Elements
+// ------------------------------ ---------- ------- ----------- ---- --------
+// TextureUI                         texture   uint4          2d    0        1
+//
+//
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float       
+// TEXCOORD                 0   xy          1     NONE   float   xy  
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_TARGET                0   xyzw        0   TARGET    uint   xyzw
+//
+ps_4_0
+dcl_resource_texture2d (uint,uint,uint,uint) t0
+dcl_input_ps linear v1.xy
+dcl_output o0.xyzw
+dcl_temps 1
+resinfo_uint r0.xyzw, l(0), t0.xyzw
+utof r0.xy, r0.xyxx
+mul r0.xy, r0.xyxx, v1.xyxx
+ftoi r0.xy, r0.xyxx
+mov r0.zw, l(0,0,0,0)
+ld r0.xyzw, r0.xyzw, t0.xyzw
+mov o0.xy, r0.xyxx
+mov o0.zw, l(0,0,0,0)
+ret 
+// Approximately 9 instruction slots used
+#endif
+
+const BYTE g_PS_PassthroughRG2DUI[] =
+{
+     68,  88,  66,  67, 130, 164, 
+    140, 202, 225, 164,   4, 123, 
+    218, 122,  13,  46,  22,   3, 
+    146, 201,   1,   0,   0,   0, 
+    212,   2,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    184,   0,   0,   0,  16,   1, 
+      0,   0,  68,   1,   0,   0, 
+     88,   2,   0,   0,  82,  68, 
+     69,  70, 124,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+     70,   0,   0,   0,  60,   0, 
+      0,   0,   2,   0,   0,   0, 
+      4,   0,   0,   0,   4,   0, 
+      0,   0, 255, 255, 255, 255, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  13,   0,   0,   0, 
+     84, 101, 120, 116, 117, 114, 
+    101,  85,  73,   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,  51, 
+     48,  46,  57,  50,  48,  48, 
+     46,  49,  54,  51,  56,  52, 
+      0, 171, 171, 171,  73,  83, 
+     71,  78,  80,   0,   0,   0, 
+      2,   0,   0,   0,   8,   0, 
+      0,   0,  56,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  68,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+      1,   0,   0,   0,   3,   3, 
+      0,   0,  83,  86,  95,  80, 
+     79,  83,  73,  84,  73,  79, 
+     78,   0,  84,  69,  88,  67, 
+     79,  79,  82,  68,   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, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,  15,   0,   0,   0, 
+     83,  86,  95,  84,  65,  82, 
+     71,  69,  84,   0, 171, 171, 
+     83,  72,  68,  82,  12,   1, 
+      0,   0,  64,   0,   0,   0, 
+     67,   0,   0,   0,  88,  24, 
+      0,   4,   0, 112,  16,   0, 
+      0,   0,   0,   0,  68,  68, 
+      0,   0,  98,  16,   0,   3, 
+     50,  16,  16,   0,   1,   0, 
+      0,   0, 101,   0,   0,   3, 
+    242,  32,  16,   0,   0,   0, 
+      0,   0, 104,   0,   0,   2, 
+      1,   0,   0,   0,  61,  16, 
+      0,   7, 242,   0,  16,   0, 
+      0,   0,   0,   0,   1,  64, 
+      0,   0,   0,   0,   0,   0, 
+     70, 126,  16,   0,   0,   0, 
+      0,   0,  86,   0,   0,   5, 
+     50,   0,  16,   0,   0,   0, 
+      0,   0,  70,   0,  16,   0, 
+      0,   0,   0,   0,  56,   0, 
+      0,   7,  50,   0,  16,   0, 
+      0,   0,   0,   0,  70,   0, 
+     16,   0,   0,   0,   0,   0, 
+     70,  16,  16,   0,   1,   0, 
+      0,   0,  27,   0,   0,   5, 
+     50,   0,  16,   0,   0,   0, 
+      0,   0,  70,   0,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   8, 194,   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,   0,   0, 
+     45,   0,   0,   7, 242,   0, 
+     16,   0,   0,   0,   0,   0, 
+     70,  14,  16,   0,   0,   0, 
+      0,   0,  70, 126,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   5,  50,  32,  16,   0, 
+      0,   0,   0,   0,  70,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   8, 194,  32, 
+     16,   0,   0,   0,   0,   0, 
+      2,  64,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  62,   0,   0,   1, 
+     83,  84,  65,  84, 116,   0, 
+      0,   0,   9,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+      1,   0,   0,   0,   0,   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,   1,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      4,   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,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughrg3d11psh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrg3d11ps.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrg3d11ps.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrg3d11ps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,163 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+// Resource Bindings:
+//
+// Name                                 Type  Format         Dim Slot Elements
+// ------------------------------ ---------- ------- ----------- ---- --------
+// Sampler                           sampler      NA          NA    0        1
+// TextureF                          texture  float4          3d    0        1
+//
+//
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float       
+// SV_RENDERTARGETARRAYINDEX     0   x           1  RTINDEX    uint       
+// TEXCOORD                 0   xyz         2     NONE   float   xyz 
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_TARGET                0   xyzw        0   TARGET   float   xyzw
+//
+ps_4_0
+dcl_sampler s0, mode_default
+dcl_resource_texture3d (float,float,float,float) t0
+dcl_input_ps linear v2.xyz
+dcl_output o0.xyzw
+dcl_temps 1
+sample r0.xyzw, v2.xyzx, t0.xyzw, s0
+mov o0.xy, r0.xyxx
+mov o0.zw, l(0,0,0,1.000000)
+ret 
+// Approximately 4 instruction slots used
+#endif
+
+const BYTE g_PS_PassthroughRG3D[] =
+{
+     68,  88,  66,  67, 142, 241, 
+     58,  49, 223,  78,  87,  10, 
+     12,  78,  47, 182,  66, 149, 
+    242, 111,   1,   0,   0,   0, 
+    188,   2,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    220,   0,   0,   0, 100,   1, 
+      0,   0, 152,   1,   0,   0, 
+     64,   2,   0,   0,  82,  68, 
+     69,  70, 160,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+    109,   0,   0,   0,  92,   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,   1,   0,   0,   0, 
+    100,   0,   0,   0,   2,   0, 
+      0,   0,   5,   0,   0,   0, 
+      8,   0,   0,   0, 255, 255, 
+    255, 255,   0,   0,   0,   0, 
+      1,   0,   0,   0,  13,   0, 
+      0,   0,  83,  97, 109, 112, 
+    108, 101, 114,   0,  84, 101, 
+    120, 116, 117, 114, 101,  70, 
+      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,  51,  48,  46,  57, 
+     50,  48,  48,  46,  49,  54, 
+     51,  56,  52,   0,  73,  83, 
+     71,  78, 128,   0,   0,   0, 
+      3,   0,   0,   0,   8,   0, 
+      0,   0,  80,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  92,   0,   0,   0, 
+      0,   0,   0,   0,   4,   0, 
+      0,   0,   1,   0,   0,   0, 
+      1,   0,   0,   0,   1,   0, 
+      0,   0, 118,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+      2,   0,   0,   0,   7,   7, 
+      0,   0,  83,  86,  95,  80, 
+     79,  83,  73,  84,  73,  79, 
+     78,   0,  83,  86,  95,  82, 
+     69,  78,  68,  69,  82,  84, 
+     65,  82,  71,  69,  84,  65, 
+     82,  82,  65,  89,  73,  78, 
+     68,  69,  88,   0,  84,  69, 
+     88,  67,  79,  79,  82,  68, 
+      0, 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,  65,  82, 
+     71,  69,  84,   0, 171, 171, 
+     83,  72,  68,  82, 160,   0, 
+      0,   0,  64,   0,   0,   0, 
+     40,   0,   0,   0,  90,   0, 
+      0,   3,   0,  96,  16,   0, 
+      0,   0,   0,   0,  88,  40, 
+      0,   4,   0, 112,  16,   0, 
+      0,   0,   0,   0,  85,  85, 
+      0,   0,  98,  16,   0,   3, 
+    114,  16,  16,   0,   2,   0, 
+      0,   0, 101,   0,   0,   3, 
+    242,  32,  16,   0,   0,   0, 
+      0,   0, 104,   0,   0,   2, 
+      1,   0,   0,   0,  69,   0, 
+      0,   9, 242,   0,  16,   0, 
+      0,   0,   0,   0,  70,  18, 
+     16,   0,   2,   0,   0,   0, 
+     70, 126,  16,   0,   0,   0, 
+      0,   0,   0,  96,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   5,  50,  32,  16,   0, 
+      0,   0,   0,   0,  70,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   8, 194,  32, 
+     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,  62,   0,   0,   1, 
+     83,  84,  65,  84, 116,   0, 
+      0,   0,   4,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+      0,   0,   0,   0,   0,   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,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   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, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughrg3di11psh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrg3di11ps.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrg3di11ps.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrg3di11ps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,175 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+// Resource Bindings:
+//
+// Name                                 Type  Format         Dim Slot Elements
+// ------------------------------ ---------- ------- ----------- ---- --------
+// TextureI                          texture   sint4          3d    0        1
+//
+//
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float       
+// SV_RENDERTARGETARRAYINDEX     0   x           1  RTINDEX    uint       
+// TEXCOORD                 0   xyz         2     NONE   float   xyz 
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_TARGET                0   xyzw        0   TARGET     int   xyzw
+//
+ps_4_0
+dcl_resource_texture3d (sint,sint,sint,sint) t0
+dcl_input_ps linear v2.xyz
+dcl_output o0.xyzw
+dcl_temps 1
+resinfo_uint r0.xyzw, l(0), t0.xyzw
+utof r0.xyz, r0.xyzx
+mul r0.xyz, r0.xyzx, v2.xyzx
+ftoi r0.xyz, r0.xyzx
+mov r0.w, l(0)
+ld r0.xyzw, r0.xyzw, t0.xyzw
+mov o0.xy, r0.xyxx
+mov o0.zw, l(0,0,0,0)
+ret 
+// Approximately 9 instruction slots used
+#endif
+
+const BYTE g_PS_PassthroughRG3DI[] =
+{
+     68,  88,  66,  67, 177,  20, 
+    184, 219,  63, 125, 238, 228, 
+     90,  44, 180, 111, 221,   4, 
+    193, 138,   1,   0,   0,   0, 
+    244,   2,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    180,   0,   0,   0,  60,   1, 
+      0,   0, 112,   1,   0,   0, 
+    120,   2,   0,   0,  82,  68, 
+     69,  70, 120,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+     69,   0,   0,   0,  60,   0, 
+      0,   0,   2,   0,   0,   0, 
+      3,   0,   0,   0,   8,   0, 
+      0,   0, 255, 255, 255, 255, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  13,   0,   0,   0, 
+     84, 101, 120, 116, 117, 114, 
+    101,  73,   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,  51,  48, 
+     46,  57,  50,  48,  48,  46, 
+     49,  54,  51,  56,  52,   0, 
+     73,  83,  71,  78, 128,   0, 
+      0,   0,   3,   0,   0,   0, 
+      8,   0,   0,   0,  80,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   3,   0, 
+      0,   0,   0,   0,   0,   0, 
+     15,   0,   0,   0,  92,   0, 
+      0,   0,   0,   0,   0,   0, 
+      4,   0,   0,   0,   1,   0, 
+      0,   0,   1,   0,   0,   0, 
+      1,   0,   0,   0, 118,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   3,   0, 
+      0,   0,   2,   0,   0,   0, 
+      7,   7,   0,   0,  83,  86, 
+     95,  80,  79,  83,  73,  84, 
+     73,  79,  78,   0,  83,  86, 
+     95,  82,  69,  78,  68,  69, 
+     82,  84,  65,  82,  71,  69, 
+     84,  65,  82,  82,  65,  89, 
+     73,  78,  68,  69,  88,   0, 
+     84,  69,  88,  67,  79,  79, 
+     82,  68,   0, 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,   2,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  83,  86,  95,  84, 
+     65,  82,  71,  69,  84,   0, 
+    171, 171,  83,  72,  68,  82, 
+      0,   1,   0,   0,  64,   0, 
+      0,   0,  64,   0,   0,   0, 
+     88,  40,   0,   4,   0, 112, 
+     16,   0,   0,   0,   0,   0, 
+     51,  51,   0,   0,  98,  16, 
+      0,   3, 114,  16,  16,   0, 
+      2,   0,   0,   0, 101,   0, 
+      0,   3, 242,  32,  16,   0, 
+      0,   0,   0,   0, 104,   0, 
+      0,   2,   1,   0,   0,   0, 
+     61,  16,   0,   7, 242,   0, 
+     16,   0,   0,   0,   0,   0, 
+      1,  64,   0,   0,   0,   0, 
+      0,   0,  70, 126,  16,   0, 
+      0,   0,   0,   0,  86,   0, 
+      0,   5, 114,   0,  16,   0, 
+      0,   0,   0,   0,  70,   2, 
+     16,   0,   0,   0,   0,   0, 
+     56,   0,   0,   7, 114,   0, 
+     16,   0,   0,   0,   0,   0, 
+     70,   2,  16,   0,   0,   0, 
+      0,   0,  70,  18,  16,   0, 
+      2,   0,   0,   0,  27,   0, 
+      0,   5, 114,   0,  16,   0, 
+      0,   0,   0,   0,  70,   2, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   5, 130,   0, 
+     16,   0,   0,   0,   0,   0, 
+      1,  64,   0,   0,   0,   0, 
+      0,   0,  45,   0,   0,   7, 
+    242,   0,  16,   0,   0,   0, 
+      0,   0,  70,  14,  16,   0, 
+      0,   0,   0,   0,  70, 126, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   5,  50,  32, 
+     16,   0,   0,   0,   0,   0, 
+     70,   0,  16,   0,   0,   0, 
+      0,   0,  54,   0,   0,   8, 
+    194,  32,  16,   0,   0,   0, 
+      0,   0,   2,  64,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  62,   0, 
+      0,   1,  83,  84,  65,  84, 
+    116,   0,   0,   0,   9,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   2,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   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,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   4,   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, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughrg3dui11psh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrg3dui11ps.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrg3dui11ps.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrg3dui11ps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,176 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+// Resource Bindings:
+//
+// Name                                 Type  Format         Dim Slot Elements
+// ------------------------------ ---------- ------- ----------- ---- --------
+// TextureUI                         texture   uint4          3d    0        1
+//
+//
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float       
+// SV_RENDERTARGETARRAYINDEX     0   x           1  RTINDEX    uint       
+// TEXCOORD                 0   xyz         2     NONE   float   xyz 
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_TARGET                0   xyzw        0   TARGET    uint   xyzw
+//
+ps_4_0
+dcl_resource_texture3d (uint,uint,uint,uint) t0
+dcl_input_ps linear v2.xyz
+dcl_output o0.xyzw
+dcl_temps 1
+resinfo_uint r0.xyzw, l(0), t0.xyzw
+utof r0.xyz, r0.xyzx
+mul r0.xyz, r0.xyzx, v2.xyzx
+ftoi r0.xyz, r0.xyzx
+mov r0.w, l(0)
+ld r0.xyzw, r0.xyzw, t0.xyzw
+mov o0.xy, r0.xyxx
+mov o0.zw, l(0,0,0,0)
+ret 
+// Approximately 9 instruction slots used
+#endif
+
+const BYTE g_PS_PassthroughRG3DUI[] =
+{
+     68,  88,  66,  67,  44,  75, 
+    122, 141, 176,  19, 231, 192, 
+    165, 252, 210,  30, 121,  18, 
+     77,  89,   1,   0,   0,   0, 
+    248,   2,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    184,   0,   0,   0,  64,   1, 
+      0,   0, 116,   1,   0,   0, 
+    124,   2,   0,   0,  82,  68, 
+     69,  70, 124,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+     70,   0,   0,   0,  60,   0, 
+      0,   0,   2,   0,   0,   0, 
+      4,   0,   0,   0,   8,   0, 
+      0,   0, 255, 255, 255, 255, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  13,   0,   0,   0, 
+     84, 101, 120, 116, 117, 114, 
+    101,  85,  73,   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,  51, 
+     48,  46,  57,  50,  48,  48, 
+     46,  49,  54,  51,  56,  52, 
+      0, 171, 171, 171,  73,  83, 
+     71,  78, 128,   0,   0,   0, 
+      3,   0,   0,   0,   8,   0, 
+      0,   0,  80,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  92,   0,   0,   0, 
+      0,   0,   0,   0,   4,   0, 
+      0,   0,   1,   0,   0,   0, 
+      1,   0,   0,   0,   1,   0, 
+      0,   0, 118,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+      2,   0,   0,   0,   7,   7, 
+      0,   0,  83,  86,  95,  80, 
+     79,  83,  73,  84,  73,  79, 
+     78,   0,  83,  86,  95,  82, 
+     69,  78,  68,  69,  82,  84, 
+     65,  82,  71,  69,  84,  65, 
+     82,  82,  65,  89,  73,  78, 
+     68,  69,  88,   0,  84,  69, 
+     88,  67,  79,  79,  82,  68, 
+      0, 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, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,  15,   0,   0,   0, 
+     83,  86,  95,  84,  65,  82, 
+     71,  69,  84,   0, 171, 171, 
+     83,  72,  68,  82,   0,   1, 
+      0,   0,  64,   0,   0,   0, 
+     64,   0,   0,   0,  88,  40, 
+      0,   4,   0, 112,  16,   0, 
+      0,   0,   0,   0,  68,  68, 
+      0,   0,  98,  16,   0,   3, 
+    114,  16,  16,   0,   2,   0, 
+      0,   0, 101,   0,   0,   3, 
+    242,  32,  16,   0,   0,   0, 
+      0,   0, 104,   0,   0,   2, 
+      1,   0,   0,   0,  61,  16, 
+      0,   7, 242,   0,  16,   0, 
+      0,   0,   0,   0,   1,  64, 
+      0,   0,   0,   0,   0,   0, 
+     70, 126,  16,   0,   0,   0, 
+      0,   0,  86,   0,   0,   5, 
+    114,   0,  16,   0,   0,   0, 
+      0,   0,  70,   2,  16,   0, 
+      0,   0,   0,   0,  56,   0, 
+      0,   7, 114,   0,  16,   0, 
+      0,   0,   0,   0,  70,   2, 
+     16,   0,   0,   0,   0,   0, 
+     70,  18,  16,   0,   2,   0, 
+      0,   0,  27,   0,   0,   5, 
+    114,   0,  16,   0,   0,   0, 
+      0,   0,  70,   2,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   5, 130,   0,  16,   0, 
+      0,   0,   0,   0,   1,  64, 
+      0,   0,   0,   0,   0,   0, 
+     45,   0,   0,   7, 242,   0, 
+     16,   0,   0,   0,   0,   0, 
+     70,  14,  16,   0,   0,   0, 
+      0,   0,  70, 126,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   5,  50,  32,  16,   0, 
+      0,   0,   0,   0,  70,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   8, 194,  32, 
+     16,   0,   0,   0,   0,   0, 
+      2,  64,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  62,   0,   0,   1, 
+     83,  84,  65,  84, 116,   0, 
+      0,   0,   9,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+      1,   0,   0,   0,   0,   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,   1,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      4,   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,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughrgb11psh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgb11ps.h (168114 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgb11ps.h        2014-05-01 19:23:29 UTC (rev 168114)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgb11ps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -1,152 +0,0 @@
</span><del>-#if 0
-//
-// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
-//
-//
-///
-// Resource Bindings:
-//
-// Name                                 Type  Format         Dim Slot Elements
-// ------------------------------ ---------- ------- ----------- ---- --------
-// Sampler                           sampler      NA          NA    0        1
-// Texture                           texture  float4          2d    0        1
-//
-//
-//
-// Input signature:
-//
-// Name                 Index   Mask Register SysValue  Format   Used
-// -------------------- ----- ------ -------- -------- ------- ------
-// SV_POSITION              0   xyzw        0      POS   float       
-// TEXCOORD                 0   xy          1     NONE   float   xy  
-//
-//
-// Output signature:
-//
-// Name                 Index   Mask Register SysValue  Format   Used
-// -------------------- ----- ------ -------- -------- ------- ------
-// SV_TARGET                0   xyzw        0   TARGET   float   xyzw
-//
-ps_4_0
-dcl_sampler s0, mode_default
-dcl_resource_texture2d (float,float,float,float) t0
-dcl_input_ps linear v1.xy
-dcl_output o0.xyzw
-dcl_temps 1
-sample r0.xyzw, v1.xyxx, t0.xyzw, s0
-mov o0.xyz, r0.xyzx
-mov o0.w, l(1.000000)
-ret 
-// Approximately 4 instruction slots used
-#endif
-
-const BYTE g_PS_PassthroughRGB[] =
-{
-     68,  88,  66,  67, 125, 186, 
-    250, 242, 113, 255,  59, 239, 
-    119, 158, 237,  78, 220,  43, 
-    160,  46,   1,   0,   0,   0, 
-    128,   2,   0,   0,   5,   0, 
-      0,   0,  52,   0,   0,   0, 
-    220,   0,   0,   0,  52,   1, 
-      0,   0, 104,   1,   0,   0, 
-      4,   2,   0,   0,  82,  68, 
-     69,  70, 160,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   2,   0,   0,   0, 
-     28,   0,   0,   0,   0,   4, 
-    255, 255,   0,   1,   0,   0, 
-    108,   0,   0,   0,  92,   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,   1,   0,   0,   0, 
-    100,   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,  13,   0, 
-      0,   0,  83,  97, 109, 112, 
-    108, 101, 114,   0,  84, 101, 
-    120, 116, 117, 114, 101,   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,  51,  48,  46,  57,  50, 
-     48,  48,  46,  49,  54,  51, 
-     56,  52,   0, 171,  73,  83, 
-     71,  78,  80,   0,   0,   0, 
-      2,   0,   0,   0,   8,   0, 
-      0,   0,  56,   0,   0,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,   3,   0,   0,   0, 
-      0,   0,   0,   0,  15,   0, 
-      0,   0,  68,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   3,   0,   0,   0, 
-      1,   0,   0,   0,   3,   3, 
-      0,   0,  83,  86,  95,  80, 
-     79,  83,  73,  84,  73,  79, 
-     78,   0,  84,  69,  88,  67, 
-     79,  79,  82,  68,   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,  65,  82, 
-     71,  69,  84,   0, 171, 171, 
-     83,  72,  68,  82, 148,   0, 
-      0,   0,  64,   0,   0,   0, 
-     37,   0,   0,   0,  90,   0, 
-      0,   3,   0,  96,  16,   0, 
-      0,   0,   0,   0,  88,  24, 
-      0,   4,   0, 112,  16,   0, 
-      0,   0,   0,   0,  85,  85, 
-      0,   0,  98,  16,   0,   3, 
-     50,  16,  16,   0,   1,   0, 
-      0,   0, 101,   0,   0,   3, 
-    242,  32,  16,   0,   0,   0, 
-      0,   0, 104,   0,   0,   2, 
-      1,   0,   0,   0,  69,   0, 
-      0,   9, 242,   0,  16,   0, 
-      0,   0,   0,   0,  70,  16, 
-     16,   0,   1,   0,   0,   0, 
-     70, 126,  16,   0,   0,   0, 
-      0,   0,   0,  96,  16,   0, 
-      0,   0,   0,   0,  54,   0, 
-      0,   5, 114,  32,  16,   0, 
-      0,   0,   0,   0,  70,   2, 
-     16,   0,   0,   0,   0,   0, 
-     54,   0,   0,   5, 130,  32, 
-     16,   0,   0,   0,   0,   0, 
-      1,  64,   0,   0,   0,   0, 
-    128,  63,  62,   0,   0,   1, 
-     83,  84,  65,  84, 116,   0, 
-      0,   0,   4,   0,   0,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0,   2,   0,   0,   0, 
-      0,   0,   0,   0,   0,   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,   1,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   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, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0
-};
</del></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughrgb2d11psh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgb2d11ps.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgb2d11ps.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgb2d11ps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,152 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+// Resource Bindings:
+//
+// Name                                 Type  Format         Dim Slot Elements
+// ------------------------------ ---------- ------- ----------- ---- --------
+// Sampler                           sampler      NA          NA    0        1
+// TextureF                          texture  float4          2d    0        1
+//
+//
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float       
+// TEXCOORD                 0   xy          1     NONE   float   xy  
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_TARGET                0   xyzw        0   TARGET   float   xyzw
+//
+ps_4_0
+dcl_sampler s0, mode_default
+dcl_resource_texture2d (float,float,float,float) t0
+dcl_input_ps linear v1.xy
+dcl_output o0.xyzw
+dcl_temps 1
+sample r0.xyzw, v1.xyxx, t0.xyzw, s0
+mov o0.xyz, r0.xyzx
+mov o0.w, l(1.000000)
+ret 
+// Approximately 4 instruction slots used
+#endif
+
+const BYTE g_PS_PassthroughRGB2D[] =
+{
+     68,  88,  66,  67, 173, 177, 
+     43,  26, 103, 245,  60, 209, 
+     56,  67,  66, 231,  81, 165, 
+     64,  69,   1,   0,   0,   0, 
+    128,   2,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    220,   0,   0,   0,  52,   1, 
+      0,   0, 104,   1,   0,   0, 
+      4,   2,   0,   0,  82,  68, 
+     69,  70, 160,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+    109,   0,   0,   0,  92,   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,   1,   0,   0,   0, 
+    100,   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,  13,   0, 
+      0,   0,  83,  97, 109, 112, 
+    108, 101, 114,   0,  84, 101, 
+    120, 116, 117, 114, 101,  70, 
+      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,  51,  48,  46,  57, 
+     50,  48,  48,  46,  49,  54, 
+     51,  56,  52,   0,  73,  83, 
+     71,  78,  80,   0,   0,   0, 
+      2,   0,   0,   0,   8,   0, 
+      0,   0,  56,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  68,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+      1,   0,   0,   0,   3,   3, 
+      0,   0,  83,  86,  95,  80, 
+     79,  83,  73,  84,  73,  79, 
+     78,   0,  84,  69,  88,  67, 
+     79,  79,  82,  68,   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,  65,  82, 
+     71,  69,  84,   0, 171, 171, 
+     83,  72,  68,  82, 148,   0, 
+      0,   0,  64,   0,   0,   0, 
+     37,   0,   0,   0,  90,   0, 
+      0,   3,   0,  96,  16,   0, 
+      0,   0,   0,   0,  88,  24, 
+      0,   4,   0, 112,  16,   0, 
+      0,   0,   0,   0,  85,  85, 
+      0,   0,  98,  16,   0,   3, 
+     50,  16,  16,   0,   1,   0, 
+      0,   0, 101,   0,   0,   3, 
+    242,  32,  16,   0,   0,   0, 
+      0,   0, 104,   0,   0,   2, 
+      1,   0,   0,   0,  69,   0, 
+      0,   9, 242,   0,  16,   0, 
+      0,   0,   0,   0,  70,  16, 
+     16,   0,   1,   0,   0,   0, 
+     70, 126,  16,   0,   0,   0, 
+      0,   0,   0,  96,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   5, 114,  32,  16,   0, 
+      0,   0,   0,   0,  70,   2, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   5, 130,  32, 
+     16,   0,   0,   0,   0,   0, 
+      1,  64,   0,   0,   0,   0, 
+    128,  63,  62,   0,   0,   1, 
+     83,  84,  65,  84, 116,   0, 
+      0,   0,   4,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+      0,   0,   0,   0,   0,   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,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   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, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughrgb2di11psh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgb2di11ps.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgb2di11ps.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgb2di11ps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,166 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+// Resource Bindings:
+//
+// Name                                 Type  Format         Dim Slot Elements
+// ------------------------------ ---------- ------- ----------- ---- --------
+// TextureI                          texture   sint4          2d    0        1
+//
+//
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float       
+// TEXCOORD                 0   xy          1     NONE   float   xy  
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_TARGET                0   xyzw        0   TARGET     int   xyzw
+//
+ps_4_0
+dcl_resource_texture2d (sint,sint,sint,sint) t0
+dcl_input_ps linear v1.xy
+dcl_output o0.xyzw
+dcl_temps 1
+resinfo_uint r0.xyzw, l(0), t0.xyzw
+utof r0.xy, r0.xyxx
+mul r0.xy, r0.xyxx, v1.xyxx
+ftoi r0.xy, r0.xyxx
+mov r0.zw, l(0,0,0,0)
+ld r0.xyzw, r0.xyzw, t0.xyzw
+mov o0.xyz, r0.xyzx
+mov o0.w, l(0)
+ret 
+// Approximately 9 instruction slots used
+#endif
+
+const BYTE g_PS_PassthroughRGB2DI[] =
+{
+     68,  88,  66,  67, 249,  26, 
+    212, 170,   3,  17, 240, 188, 
+    220, 164, 244, 167, 202, 103, 
+      2, 190,   1,   0,   0,   0, 
+    196,   2,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    180,   0,   0,   0,  12,   1, 
+      0,   0,  64,   1,   0,   0, 
+     72,   2,   0,   0,  82,  68, 
+     69,  70, 120,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+     69,   0,   0,   0,  60,   0, 
+      0,   0,   2,   0,   0,   0, 
+      3,   0,   0,   0,   4,   0, 
+      0,   0, 255, 255, 255, 255, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  13,   0,   0,   0, 
+     84, 101, 120, 116, 117, 114, 
+    101,  73,   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,  51,  48, 
+     46,  57,  50,  48,  48,  46, 
+     49,  54,  51,  56,  52,   0, 
+     73,  83,  71,  78,  80,   0, 
+      0,   0,   2,   0,   0,   0, 
+      8,   0,   0,   0,  56,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   3,   0, 
+      0,   0,   0,   0,   0,   0, 
+     15,   0,   0,   0,  68,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   3,   0, 
+      0,   0,   1,   0,   0,   0, 
+      3,   3,   0,   0,  83,  86, 
+     95,  80,  79,  83,  73,  84, 
+     73,  79,  78,   0,  84,  69, 
+     88,  67,  79,  79,  82,  68, 
+      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,   2,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  83,  86,  95,  84, 
+     65,  82,  71,  69,  84,   0, 
+    171, 171,  83,  72,  68,  82, 
+      0,   1,   0,   0,  64,   0, 
+      0,   0,  64,   0,   0,   0, 
+     88,  24,   0,   4,   0, 112, 
+     16,   0,   0,   0,   0,   0, 
+     51,  51,   0,   0,  98,  16, 
+      0,   3,  50,  16,  16,   0, 
+      1,   0,   0,   0, 101,   0, 
+      0,   3, 242,  32,  16,   0, 
+      0,   0,   0,   0, 104,   0, 
+      0,   2,   1,   0,   0,   0, 
+     61,  16,   0,   7, 242,   0, 
+     16,   0,   0,   0,   0,   0, 
+      1,  64,   0,   0,   0,   0, 
+      0,   0,  70, 126,  16,   0, 
+      0,   0,   0,   0,  86,   0, 
+      0,   5,  50,   0,  16,   0, 
+      0,   0,   0,   0,  70,   0, 
+     16,   0,   0,   0,   0,   0, 
+     56,   0,   0,   7,  50,   0, 
+     16,   0,   0,   0,   0,   0, 
+     70,   0,  16,   0,   0,   0, 
+      0,   0,  70,  16,  16,   0, 
+      1,   0,   0,   0,  27,   0, 
+      0,   5,  50,   0,  16,   0, 
+      0,   0,   0,   0,  70,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   8, 194,   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, 
+      0,   0,  45,   0,   0,   7, 
+    242,   0,  16,   0,   0,   0, 
+      0,   0,  70,  14,  16,   0, 
+      0,   0,   0,   0,  70, 126, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   5, 114,  32, 
+     16,   0,   0,   0,   0,   0, 
+     70,   2,  16,   0,   0,   0, 
+      0,   0,  54,   0,   0,   5, 
+    130,  32,  16,   0,   0,   0, 
+      0,   0,   1,  64,   0,   0, 
+      0,   0,   0,   0,  62,   0, 
+      0,   1,  83,  84,  65,  84, 
+    116,   0,   0,   0,   9,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   2,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   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,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   4,   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, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughrgb2dui11psh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgb2dui11ps.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgb2dui11ps.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgb2dui11ps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,167 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+// Resource Bindings:
+//
+// Name                                 Type  Format         Dim Slot Elements
+// ------------------------------ ---------- ------- ----------- ---- --------
+// TextureUI                         texture   uint4          2d    0        1
+//
+//
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float       
+// TEXCOORD                 0   xy          1     NONE   float   xy  
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_TARGET                0   xyzw        0   TARGET    uint   xyzw
+//
+ps_4_0
+dcl_resource_texture2d (uint,uint,uint,uint) t0
+dcl_input_ps linear v1.xy
+dcl_output o0.xyzw
+dcl_temps 1
+resinfo_uint r0.xyzw, l(0), t0.xyzw
+utof r0.xy, r0.xyxx
+mul r0.xy, r0.xyxx, v1.xyxx
+ftoi r0.xy, r0.xyxx
+mov r0.zw, l(0,0,0,0)
+ld r0.xyzw, r0.xyzw, t0.xyzw
+mov o0.xyz, r0.xyzx
+mov o0.w, l(0)
+ret 
+// Approximately 9 instruction slots used
+#endif
+
+const BYTE g_PS_PassthroughRGB2DUI[] =
+{
+     68,  88,  66,  67, 158, 133, 
+    153, 245,  14, 212,  29,  23, 
+     89,  41, 242, 173,  58, 186, 
+     36,  20,   1,   0,   0,   0, 
+    200,   2,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    184,   0,   0,   0,  16,   1, 
+      0,   0,  68,   1,   0,   0, 
+     76,   2,   0,   0,  82,  68, 
+     69,  70, 124,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+     70,   0,   0,   0,  60,   0, 
+      0,   0,   2,   0,   0,   0, 
+      4,   0,   0,   0,   4,   0, 
+      0,   0, 255, 255, 255, 255, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  13,   0,   0,   0, 
+     84, 101, 120, 116, 117, 114, 
+    101,  85,  73,   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,  51, 
+     48,  46,  57,  50,  48,  48, 
+     46,  49,  54,  51,  56,  52, 
+      0, 171, 171, 171,  73,  83, 
+     71,  78,  80,   0,   0,   0, 
+      2,   0,   0,   0,   8,   0, 
+      0,   0,  56,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  68,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+      1,   0,   0,   0,   3,   3, 
+      0,   0,  83,  86,  95,  80, 
+     79,  83,  73,  84,  73,  79, 
+     78,   0,  84,  69,  88,  67, 
+     79,  79,  82,  68,   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, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,  15,   0,   0,   0, 
+     83,  86,  95,  84,  65,  82, 
+     71,  69,  84,   0, 171, 171, 
+     83,  72,  68,  82,   0,   1, 
+      0,   0,  64,   0,   0,   0, 
+     64,   0,   0,   0,  88,  24, 
+      0,   4,   0, 112,  16,   0, 
+      0,   0,   0,   0,  68,  68, 
+      0,   0,  98,  16,   0,   3, 
+     50,  16,  16,   0,   1,   0, 
+      0,   0, 101,   0,   0,   3, 
+    242,  32,  16,   0,   0,   0, 
+      0,   0, 104,   0,   0,   2, 
+      1,   0,   0,   0,  61,  16, 
+      0,   7, 242,   0,  16,   0, 
+      0,   0,   0,   0,   1,  64, 
+      0,   0,   0,   0,   0,   0, 
+     70, 126,  16,   0,   0,   0, 
+      0,   0,  86,   0,   0,   5, 
+     50,   0,  16,   0,   0,   0, 
+      0,   0,  70,   0,  16,   0, 
+      0,   0,   0,   0,  56,   0, 
+      0,   7,  50,   0,  16,   0, 
+      0,   0,   0,   0,  70,   0, 
+     16,   0,   0,   0,   0,   0, 
+     70,  16,  16,   0,   1,   0, 
+      0,   0,  27,   0,   0,   5, 
+     50,   0,  16,   0,   0,   0, 
+      0,   0,  70,   0,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   8, 194,   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,   0,   0, 
+     45,   0,   0,   7, 242,   0, 
+     16,   0,   0,   0,   0,   0, 
+     70,  14,  16,   0,   0,   0, 
+      0,   0,  70, 126,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   5, 114,  32,  16,   0, 
+      0,   0,   0,   0,  70,   2, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   5, 130,  32, 
+     16,   0,   0,   0,   0,   0, 
+      1,  64,   0,   0,   0,   0, 
+      0,   0,  62,   0,   0,   1, 
+     83,  84,  65,  84, 116,   0, 
+      0,   0,   9,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+      1,   0,   0,   0,   0,   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,   1,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      4,   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,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughrgb3d11psh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgb3d11ps.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgb3d11ps.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgb3d11ps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,161 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+// Resource Bindings:
+//
+// Name                                 Type  Format         Dim Slot Elements
+// ------------------------------ ---------- ------- ----------- ---- --------
+// Sampler                           sampler      NA          NA    0        1
+// TextureF                          texture  float4          3d    0        1
+//
+//
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float       
+// SV_RENDERTARGETARRAYINDEX     0   x           1  RTINDEX    uint       
+// TEXCOORD                 0   xyz         2     NONE   float   xyz 
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_TARGET                0   xyzw        0   TARGET   float   xyzw
+//
+ps_4_0
+dcl_sampler s0, mode_default
+dcl_resource_texture3d (float,float,float,float) t0
+dcl_input_ps linear v2.xyz
+dcl_output o0.xyzw
+dcl_temps 1
+sample r0.xyzw, v2.xyzx, t0.xyzw, s0
+mov o0.xyz, r0.xyzx
+mov o0.w, l(1.000000)
+ret 
+// Approximately 4 instruction slots used
+#endif
+
+const BYTE g_PS_PassthroughRGB3D[] =
+{
+     68,  88,  66,  67, 151, 192, 
+     30, 128, 185, 187,  67, 126, 
+    162,  19, 147,  24,  96, 236, 
+     66, 114,   1,   0,   0,   0, 
+    176,   2,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    220,   0,   0,   0, 100,   1, 
+      0,   0, 152,   1,   0,   0, 
+     52,   2,   0,   0,  82,  68, 
+     69,  70, 160,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+    109,   0,   0,   0,  92,   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,   1,   0,   0,   0, 
+    100,   0,   0,   0,   2,   0, 
+      0,   0,   5,   0,   0,   0, 
+      8,   0,   0,   0, 255, 255, 
+    255, 255,   0,   0,   0,   0, 
+      1,   0,   0,   0,  13,   0, 
+      0,   0,  83,  97, 109, 112, 
+    108, 101, 114,   0,  84, 101, 
+    120, 116, 117, 114, 101,  70, 
+      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,  51,  48,  46,  57, 
+     50,  48,  48,  46,  49,  54, 
+     51,  56,  52,   0,  73,  83, 
+     71,  78, 128,   0,   0,   0, 
+      3,   0,   0,   0,   8,   0, 
+      0,   0,  80,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  92,   0,   0,   0, 
+      0,   0,   0,   0,   4,   0, 
+      0,   0,   1,   0,   0,   0, 
+      1,   0,   0,   0,   1,   0, 
+      0,   0, 118,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+      2,   0,   0,   0,   7,   7, 
+      0,   0,  83,  86,  95,  80, 
+     79,  83,  73,  84,  73,  79, 
+     78,   0,  83,  86,  95,  82, 
+     69,  78,  68,  69,  82,  84, 
+     65,  82,  71,  69,  84,  65, 
+     82,  82,  65,  89,  73,  78, 
+     68,  69,  88,   0,  84,  69, 
+     88,  67,  79,  79,  82,  68, 
+      0, 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,  65,  82, 
+     71,  69,  84,   0, 171, 171, 
+     83,  72,  68,  82, 148,   0, 
+      0,   0,  64,   0,   0,   0, 
+     37,   0,   0,   0,  90,   0, 
+      0,   3,   0,  96,  16,   0, 
+      0,   0,   0,   0,  88,  40, 
+      0,   4,   0, 112,  16,   0, 
+      0,   0,   0,   0,  85,  85, 
+      0,   0,  98,  16,   0,   3, 
+    114,  16,  16,   0,   2,   0, 
+      0,   0, 101,   0,   0,   3, 
+    242,  32,  16,   0,   0,   0, 
+      0,   0, 104,   0,   0,   2, 
+      1,   0,   0,   0,  69,   0, 
+      0,   9, 242,   0,  16,   0, 
+      0,   0,   0,   0,  70,  18, 
+     16,   0,   2,   0,   0,   0, 
+     70, 126,  16,   0,   0,   0, 
+      0,   0,   0,  96,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   5, 114,  32,  16,   0, 
+      0,   0,   0,   0,  70,   2, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   5, 130,  32, 
+     16,   0,   0,   0,   0,   0, 
+      1,  64,   0,   0,   0,   0, 
+    128,  63,  62,   0,   0,   1, 
+     83,  84,  65,  84, 116,   0, 
+      0,   0,   4,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+      0,   0,   0,   0,   0,   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,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   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, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughrgb3di11psh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgb3di11ps.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgb3di11ps.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgb3di11ps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,173 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+// Resource Bindings:
+//
+// Name                                 Type  Format         Dim Slot Elements
+// ------------------------------ ---------- ------- ----------- ---- --------
+// TextureI                          texture   sint4          3d    0        1
+//
+//
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float       
+// SV_RENDERTARGETARRAYINDEX     0   x           1  RTINDEX    uint       
+// TEXCOORD                 0   xyz         2     NONE   float   xyz 
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_TARGET                0   xyzw        0   TARGET     int   xyzw
+//
+ps_4_0
+dcl_resource_texture3d (sint,sint,sint,sint) t0
+dcl_input_ps linear v2.xyz
+dcl_output o0.xyzw
+dcl_temps 1
+resinfo_uint r0.xyzw, l(0), t0.xyzw
+utof r0.xyz, r0.xyzx
+mul r0.xyz, r0.xyzx, v2.xyzx
+ftoi r0.xyz, r0.xyzx
+mov r0.w, l(0)
+ld r0.xyzw, r0.xyzw, t0.xyzw
+mov o0.xyz, r0.xyzx
+mov o0.w, l(0)
+ret 
+// Approximately 9 instruction slots used
+#endif
+
+const BYTE g_PS_PassthroughRGB3DI[] =
+{
+     68,  88,  66,  67, 159, 150, 
+    210,  67, 149, 116, 221,  62, 
+    207,  82, 157, 210,   9, 100, 
+    131, 204,   1,   0,   0,   0, 
+    232,   2,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    180,   0,   0,   0,  60,   1, 
+      0,   0, 112,   1,   0,   0, 
+    108,   2,   0,   0,  82,  68, 
+     69,  70, 120,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+     69,   0,   0,   0,  60,   0, 
+      0,   0,   2,   0,   0,   0, 
+      3,   0,   0,   0,   8,   0, 
+      0,   0, 255, 255, 255, 255, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  13,   0,   0,   0, 
+     84, 101, 120, 116, 117, 114, 
+    101,  73,   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,  51,  48, 
+     46,  57,  50,  48,  48,  46, 
+     49,  54,  51,  56,  52,   0, 
+     73,  83,  71,  78, 128,   0, 
+      0,   0,   3,   0,   0,   0, 
+      8,   0,   0,   0,  80,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   3,   0, 
+      0,   0,   0,   0,   0,   0, 
+     15,   0,   0,   0,  92,   0, 
+      0,   0,   0,   0,   0,   0, 
+      4,   0,   0,   0,   1,   0, 
+      0,   0,   1,   0,   0,   0, 
+      1,   0,   0,   0, 118,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   3,   0, 
+      0,   0,   2,   0,   0,   0, 
+      7,   7,   0,   0,  83,  86, 
+     95,  80,  79,  83,  73,  84, 
+     73,  79,  78,   0,  83,  86, 
+     95,  82,  69,  78,  68,  69, 
+     82,  84,  65,  82,  71,  69, 
+     84,  65,  82,  82,  65,  89, 
+     73,  78,  68,  69,  88,   0, 
+     84,  69,  88,  67,  79,  79, 
+     82,  68,   0, 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,   2,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  83,  86,  95,  84, 
+     65,  82,  71,  69,  84,   0, 
+    171, 171,  83,  72,  68,  82, 
+    244,   0,   0,   0,  64,   0, 
+      0,   0,  61,   0,   0,   0, 
+     88,  40,   0,   4,   0, 112, 
+     16,   0,   0,   0,   0,   0, 
+     51,  51,   0,   0,  98,  16, 
+      0,   3, 114,  16,  16,   0, 
+      2,   0,   0,   0, 101,   0, 
+      0,   3, 242,  32,  16,   0, 
+      0,   0,   0,   0, 104,   0, 
+      0,   2,   1,   0,   0,   0, 
+     61,  16,   0,   7, 242,   0, 
+     16,   0,   0,   0,   0,   0, 
+      1,  64,   0,   0,   0,   0, 
+      0,   0,  70, 126,  16,   0, 
+      0,   0,   0,   0,  86,   0, 
+      0,   5, 114,   0,  16,   0, 
+      0,   0,   0,   0,  70,   2, 
+     16,   0,   0,   0,   0,   0, 
+     56,   0,   0,   7, 114,   0, 
+     16,   0,   0,   0,   0,   0, 
+     70,   2,  16,   0,   0,   0, 
+      0,   0,  70,  18,  16,   0, 
+      2,   0,   0,   0,  27,   0, 
+      0,   5, 114,   0,  16,   0, 
+      0,   0,   0,   0,  70,   2, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   5, 130,   0, 
+     16,   0,   0,   0,   0,   0, 
+      1,  64,   0,   0,   0,   0, 
+      0,   0,  45,   0,   0,   7, 
+    242,   0,  16,   0,   0,   0, 
+      0,   0,  70,  14,  16,   0, 
+      0,   0,   0,   0,  70, 126, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   5, 114,  32, 
+     16,   0,   0,   0,   0,   0, 
+     70,   2,  16,   0,   0,   0, 
+      0,   0,  54,   0,   0,   5, 
+    130,  32,  16,   0,   0,   0, 
+      0,   0,   1,  64,   0,   0, 
+      0,   0,   0,   0,  62,   0, 
+      0,   1,  83,  84,  65,  84, 
+    116,   0,   0,   0,   9,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   2,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   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,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   4,   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, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughrgb3dui11psh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgb3dui11ps.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgb3dui11ps.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgb3dui11ps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,174 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+// Resource Bindings:
+//
+// Name                                 Type  Format         Dim Slot Elements
+// ------------------------------ ---------- ------- ----------- ---- --------
+// TextureUI                         texture   uint4          3d    0        1
+//
+//
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float       
+// SV_RENDERTARGETARRAYINDEX     0   x           1  RTINDEX    uint       
+// TEXCOORD                 0   xyz         2     NONE   float   xyz 
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_TARGET                0   xyzw        0   TARGET    uint   xyzw
+//
+ps_4_0
+dcl_resource_texture3d (uint,uint,uint,uint) t0
+dcl_input_ps linear v2.xyz
+dcl_output o0.xyzw
+dcl_temps 1
+resinfo_uint r0.xyzw, l(0), t0.xyzw
+utof r0.xyz, r0.xyzx
+mul r0.xyz, r0.xyzx, v2.xyzx
+ftoi r0.xyz, r0.xyzx
+mov r0.w, l(0)
+ld r0.xyzw, r0.xyzw, t0.xyzw
+mov o0.xyz, r0.xyzx
+mov o0.w, l(0)
+ret 
+// Approximately 9 instruction slots used
+#endif
+
+const BYTE g_PS_PassthroughRGB3DUI[] =
+{
+     68,  88,  66,  67, 120,  50, 
+    182, 251, 216,   8,  85,  92, 
+    127, 151, 194,  64, 248, 151, 
+     55, 163,   1,   0,   0,   0, 
+    236,   2,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    184,   0,   0,   0,  64,   1, 
+      0,   0, 116,   1,   0,   0, 
+    112,   2,   0,   0,  82,  68, 
+     69,  70, 124,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+     70,   0,   0,   0,  60,   0, 
+      0,   0,   2,   0,   0,   0, 
+      4,   0,   0,   0,   8,   0, 
+      0,   0, 255, 255, 255, 255, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  13,   0,   0,   0, 
+     84, 101, 120, 116, 117, 114, 
+    101,  85,  73,   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,  51, 
+     48,  46,  57,  50,  48,  48, 
+     46,  49,  54,  51,  56,  52, 
+      0, 171, 171, 171,  73,  83, 
+     71,  78, 128,   0,   0,   0, 
+      3,   0,   0,   0,   8,   0, 
+      0,   0,  80,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  92,   0,   0,   0, 
+      0,   0,   0,   0,   4,   0, 
+      0,   0,   1,   0,   0,   0, 
+      1,   0,   0,   0,   1,   0, 
+      0,   0, 118,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+      2,   0,   0,   0,   7,   7, 
+      0,   0,  83,  86,  95,  80, 
+     79,  83,  73,  84,  73,  79, 
+     78,   0,  83,  86,  95,  82, 
+     69,  78,  68,  69,  82,  84, 
+     65,  82,  71,  69,  84,  65, 
+     82,  82,  65,  89,  73,  78, 
+     68,  69,  88,   0,  84,  69, 
+     88,  67,  79,  79,  82,  68, 
+      0, 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, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,  15,   0,   0,   0, 
+     83,  86,  95,  84,  65,  82, 
+     71,  69,  84,   0, 171, 171, 
+     83,  72,  68,  82, 244,   0, 
+      0,   0,  64,   0,   0,   0, 
+     61,   0,   0,   0,  88,  40, 
+      0,   4,   0, 112,  16,   0, 
+      0,   0,   0,   0,  68,  68, 
+      0,   0,  98,  16,   0,   3, 
+    114,  16,  16,   0,   2,   0, 
+      0,   0, 101,   0,   0,   3, 
+    242,  32,  16,   0,   0,   0, 
+      0,   0, 104,   0,   0,   2, 
+      1,   0,   0,   0,  61,  16, 
+      0,   7, 242,   0,  16,   0, 
+      0,   0,   0,   0,   1,  64, 
+      0,   0,   0,   0,   0,   0, 
+     70, 126,  16,   0,   0,   0, 
+      0,   0,  86,   0,   0,   5, 
+    114,   0,  16,   0,   0,   0, 
+      0,   0,  70,   2,  16,   0, 
+      0,   0,   0,   0,  56,   0, 
+      0,   7, 114,   0,  16,   0, 
+      0,   0,   0,   0,  70,   2, 
+     16,   0,   0,   0,   0,   0, 
+     70,  18,  16,   0,   2,   0, 
+      0,   0,  27,   0,   0,   5, 
+    114,   0,  16,   0,   0,   0, 
+      0,   0,  70,   2,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   5, 130,   0,  16,   0, 
+      0,   0,   0,   0,   1,  64, 
+      0,   0,   0,   0,   0,   0, 
+     45,   0,   0,   7, 242,   0, 
+     16,   0,   0,   0,   0,   0, 
+     70,  14,  16,   0,   0,   0, 
+      0,   0,  70, 126,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   5, 114,  32,  16,   0, 
+      0,   0,   0,   0,  70,   2, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   5, 130,  32, 
+     16,   0,   0,   0,   0,   0, 
+      1,  64,   0,   0,   0,   0, 
+      0,   0,  62,   0,   0,   1, 
+     83,  84,  65,  84, 116,   0, 
+      0,   0,   9,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+      1,   0,   0,   0,   0,   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,   1,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      4,   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,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughrgba11psh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgba11ps.h (168114 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgba11ps.h        2014-05-01 19:23:29 UTC (rev 168114)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgba11ps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -1,141 +0,0 @@
</span><del>-#if 0
-//
-// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
-//
-//
-///
-// Resource Bindings:
-//
-// Name                                 Type  Format         Dim Slot Elements
-// ------------------------------ ---------- ------- ----------- ---- --------
-// Sampler                           sampler      NA          NA    0        1
-// Texture                           texture  float4          2d    0        1
-//
-//
-//
-// Input signature:
-//
-// Name                 Index   Mask Register SysValue  Format   Used
-// -------------------- ----- ------ -------- -------- ------- ------
-// SV_POSITION              0   xyzw        0      POS   float       
-// TEXCOORD                 0   xy          1     NONE   float   xy  
-//
-//
-// Output signature:
-//
-// Name                 Index   Mask Register SysValue  Format   Used
-// -------------------- ----- ------ -------- -------- ------- ------
-// SV_TARGET                0   xyzw        0   TARGET   float   xyzw
-//
-ps_4_0
-dcl_sampler s0, mode_default
-dcl_resource_texture2d (float,float,float,float) t0
-dcl_input_ps linear v1.xy
-dcl_output o0.xyzw
-sample o0.xyzw, v1.xyxx, t0.xyzw, s0
-ret 
-// Approximately 2 instruction slots used
-#endif
-
-const BYTE g_PS_PassthroughRGBA[] =
-{
-     68,  88,  66,  67, 151, 152, 
-      8, 102, 174, 135,  76,  57, 
-    100, 146,  59,  74, 205,  35, 
-    206,  21,   1,   0,   0,   0, 
-     80,   2,   0,   0,   5,   0, 
-      0,   0,  52,   0,   0,   0, 
-    220,   0,   0,   0,  52,   1, 
-      0,   0, 104,   1,   0,   0, 
-    212,   1,   0,   0,  82,  68, 
-     69,  70, 160,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   2,   0,   0,   0, 
-     28,   0,   0,   0,   0,   4, 
-    255, 255,   0,   1,   0,   0, 
-    108,   0,   0,   0,  92,   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,   1,   0,   0,   0, 
-    100,   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,  13,   0, 
-      0,   0,  83,  97, 109, 112, 
-    108, 101, 114,   0,  84, 101, 
-    120, 116, 117, 114, 101,   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,  51,  48,  46,  57,  50, 
-     48,  48,  46,  49,  54,  51, 
-     56,  52,   0, 171,  73,  83, 
-     71,  78,  80,   0,   0,   0, 
-      2,   0,   0,   0,   8,   0, 
-      0,   0,  56,   0,   0,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,   3,   0,   0,   0, 
-      0,   0,   0,   0,  15,   0, 
-      0,   0,  68,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   3,   0,   0,   0, 
-      1,   0,   0,   0,   3,   3, 
-      0,   0,  83,  86,  95,  80, 
-     79,  83,  73,  84,  73,  79, 
-     78,   0,  84,  69,  88,  67, 
-     79,  79,  82,  68,   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,  65,  82, 
-     71,  69,  84,   0, 171, 171, 
-     83,  72,  68,  82, 100,   0, 
-      0,   0,  64,   0,   0,   0, 
-     25,   0,   0,   0,  90,   0, 
-      0,   3,   0,  96,  16,   0, 
-      0,   0,   0,   0,  88,  24, 
-      0,   4,   0, 112,  16,   0, 
-      0,   0,   0,   0,  85,  85, 
-      0,   0,  98,  16,   0,   3, 
-     50,  16,  16,   0,   1,   0, 
-      0,   0, 101,   0,   0,   3, 
-    242,  32,  16,   0,   0,   0, 
-      0,   0,  69,   0,   0,   9, 
-    242,  32,  16,   0,   0,   0, 
-      0,   0,  70,  16,  16,   0, 
-      1,   0,   0,   0,  70, 126, 
-     16,   0,   0,   0,   0,   0, 
-      0,  96,  16,   0,   0,   0, 
-      0,   0,  62,   0,   0,   1, 
-     83,  84,  65,  84, 116,   0, 
-      0,   0,   2,   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, 
-      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,   1,   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,   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
-};
</del></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughrgba2d11psh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgba2d11ps.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgba2d11ps.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgba2d11ps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,141 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+// Resource Bindings:
+//
+// Name                                 Type  Format         Dim Slot Elements
+// ------------------------------ ---------- ------- ----------- ---- --------
+// Sampler                           sampler      NA          NA    0        1
+// TextureF                          texture  float4          2d    0        1
+//
+//
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float       
+// TEXCOORD                 0   xy          1     NONE   float   xy  
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_TARGET                0   xyzw        0   TARGET   float   xyzw
+//
+ps_4_0
+dcl_sampler s0, mode_default
+dcl_resource_texture2d (float,float,float,float) t0
+dcl_input_ps linear v1.xy
+dcl_output o0.xyzw
+sample o0.xyzw, v1.xyxx, t0.xyzw, s0
+ret 
+// Approximately 2 instruction slots used
+#endif
+
+const BYTE g_PS_PassthroughRGBA2D[] =
+{
+     68,  88,  66,  67, 185, 246, 
+    217,  85, 112, 245, 247, 121, 
+    114, 229, 186, 138, 215, 134, 
+     18,   1,   1,   0,   0,   0, 
+     80,   2,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    220,   0,   0,   0,  52,   1, 
+      0,   0, 104,   1,   0,   0, 
+    212,   1,   0,   0,  82,  68, 
+     69,  70, 160,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+    109,   0,   0,   0,  92,   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,   1,   0,   0,   0, 
+    100,   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,  13,   0, 
+      0,   0,  83,  97, 109, 112, 
+    108, 101, 114,   0,  84, 101, 
+    120, 116, 117, 114, 101,  70, 
+      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,  51,  48,  46,  57, 
+     50,  48,  48,  46,  49,  54, 
+     51,  56,  52,   0,  73,  83, 
+     71,  78,  80,   0,   0,   0, 
+      2,   0,   0,   0,   8,   0, 
+      0,   0,  56,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  68,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+      1,   0,   0,   0,   3,   3, 
+      0,   0,  83,  86,  95,  80, 
+     79,  83,  73,  84,  73,  79, 
+     78,   0,  84,  69,  88,  67, 
+     79,  79,  82,  68,   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,  65,  82, 
+     71,  69,  84,   0, 171, 171, 
+     83,  72,  68,  82, 100,   0, 
+      0,   0,  64,   0,   0,   0, 
+     25,   0,   0,   0,  90,   0, 
+      0,   3,   0,  96,  16,   0, 
+      0,   0,   0,   0,  88,  24, 
+      0,   4,   0, 112,  16,   0, 
+      0,   0,   0,   0,  85,  85, 
+      0,   0,  98,  16,   0,   3, 
+     50,  16,  16,   0,   1,   0, 
+      0,   0, 101,   0,   0,   3, 
+    242,  32,  16,   0,   0,   0, 
+      0,   0,  69,   0,   0,   9, 
+    242,  32,  16,   0,   0,   0, 
+      0,   0,  70,  16,  16,   0, 
+      1,   0,   0,   0,  70, 126, 
+     16,   0,   0,   0,   0,   0, 
+      0,  96,  16,   0,   0,   0, 
+      0,   0,  62,   0,   0,   1, 
+     83,  84,  65,  84, 116,   0, 
+      0,   0,   2,   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, 
+      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,   1,   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,   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
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughrgba2di11psh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgba2di11ps.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgba2di11ps.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgba2di11ps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,158 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+// Resource Bindings:
+//
+// Name                                 Type  Format         Dim Slot Elements
+// ------------------------------ ---------- ------- ----------- ---- --------
+// TextureI                          texture   sint4          2d    0        1
+//
+//
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float       
+// TEXCOORD                 0   xy          1     NONE   float   xy  
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_TARGET                0   xyzw        0   TARGET     int   xyzw
+//
+ps_4_0
+dcl_resource_texture2d (sint,sint,sint,sint) t0
+dcl_input_ps linear v1.xy
+dcl_output o0.xyzw
+dcl_temps 1
+resinfo_uint r0.xyzw, l(0), t0.xyzw
+utof r0.xy, r0.xyxx
+mul r0.xy, r0.xyxx, v1.xyxx
+ftoi r0.xy, r0.xyxx
+mov r0.zw, l(0,0,0,0)
+ld o0.xyzw, r0.xyzw, t0.xyzw
+ret 
+// Approximately 7 instruction slots used
+#endif
+
+const BYTE g_PS_PassthroughRGBA2DI[] =
+{
+     68,  88,  66,  67, 154,  22, 
+     19, 195,  64, 124,  15,  43, 
+     32, 163, 142,  31,  97, 239, 
+     22,   9,   1,   0,   0,   0, 
+    156,   2,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    180,   0,   0,   0,  12,   1, 
+      0,   0,  64,   1,   0,   0, 
+     32,   2,   0,   0,  82,  68, 
+     69,  70, 120,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+     69,   0,   0,   0,  60,   0, 
+      0,   0,   2,   0,   0,   0, 
+      3,   0,   0,   0,   4,   0, 
+      0,   0, 255, 255, 255, 255, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  13,   0,   0,   0, 
+     84, 101, 120, 116, 117, 114, 
+    101,  73,   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,  51,  48, 
+     46,  57,  50,  48,  48,  46, 
+     49,  54,  51,  56,  52,   0, 
+     73,  83,  71,  78,  80,   0, 
+      0,   0,   2,   0,   0,   0, 
+      8,   0,   0,   0,  56,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   3,   0, 
+      0,   0,   0,   0,   0,   0, 
+     15,   0,   0,   0,  68,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   3,   0, 
+      0,   0,   1,   0,   0,   0, 
+      3,   3,   0,   0,  83,  86, 
+     95,  80,  79,  83,  73,  84, 
+     73,  79,  78,   0,  84,  69, 
+     88,  67,  79,  79,  82,  68, 
+      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,   2,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  83,  86,  95,  84, 
+     65,  82,  71,  69,  84,   0, 
+    171, 171,  83,  72,  68,  82, 
+    216,   0,   0,   0,  64,   0, 
+      0,   0,  54,   0,   0,   0, 
+     88,  24,   0,   4,   0, 112, 
+     16,   0,   0,   0,   0,   0, 
+     51,  51,   0,   0,  98,  16, 
+      0,   3,  50,  16,  16,   0, 
+      1,   0,   0,   0, 101,   0, 
+      0,   3, 242,  32,  16,   0, 
+      0,   0,   0,   0, 104,   0, 
+      0,   2,   1,   0,   0,   0, 
+     61,  16,   0,   7, 242,   0, 
+     16,   0,   0,   0,   0,   0, 
+      1,  64,   0,   0,   0,   0, 
+      0,   0,  70, 126,  16,   0, 
+      0,   0,   0,   0,  86,   0, 
+      0,   5,  50,   0,  16,   0, 
+      0,   0,   0,   0,  70,   0, 
+     16,   0,   0,   0,   0,   0, 
+     56,   0,   0,   7,  50,   0, 
+     16,   0,   0,   0,   0,   0, 
+     70,   0,  16,   0,   0,   0, 
+      0,   0,  70,  16,  16,   0, 
+      1,   0,   0,   0,  27,   0, 
+      0,   5,  50,   0,  16,   0, 
+      0,   0,   0,   0,  70,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   8, 194,   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, 
+      0,   0,  45,   0,   0,   7, 
+    242,  32,  16,   0,   0,   0, 
+      0,   0,  70,  14,  16,   0, 
+      0,   0,   0,   0,  70, 126, 
+     16,   0,   0,   0,   0,   0, 
+     62,   0,   0,   1,  83,  84, 
+     65,  84, 116,   0,   0,   0, 
+      7,   0,   0,   0,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      2,   0,   0,   0,   1,   0, 
+      0,   0,   0,   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, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   2,   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,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughrgba2dui11psh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgba2dui11ps.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgba2dui11ps.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgba2dui11ps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,158 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+// Resource Bindings:
+//
+// Name                                 Type  Format         Dim Slot Elements
+// ------------------------------ ---------- ------- ----------- ---- --------
+// TextureUI                         texture   uint4          2d    0        1
+//
+//
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float       
+// TEXCOORD                 0   xy          1     NONE   float   xy  
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_TARGET                0   xyzw        0   TARGET    uint   xyzw
+//
+ps_4_0
+dcl_resource_texture2d (uint,uint,uint,uint) t0
+dcl_input_ps linear v1.xy
+dcl_output o0.xyzw
+dcl_temps 1
+resinfo_uint r0.xyzw, l(0), t0.xyzw
+utof r0.xy, r0.xyxx
+mul r0.xy, r0.xyxx, v1.xyxx
+ftoi r0.xy, r0.xyxx
+mov r0.zw, l(0,0,0,0)
+ld o0.xyzw, r0.xyzw, t0.xyzw
+ret 
+// Approximately 7 instruction slots used
+#endif
+
+const BYTE g_PS_PassthroughRGBA2DUI[] =
+{
+     68,  88,  66,  67,  70, 254, 
+    149, 124, 180, 164, 152, 186, 
+    218, 175,  81,  67,  76,  30, 
+     28,  75,   1,   0,   0,   0, 
+    160,   2,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    184,   0,   0,   0,  16,   1, 
+      0,   0,  68,   1,   0,   0, 
+     36,   2,   0,   0,  82,  68, 
+     69,  70, 124,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+     70,   0,   0,   0,  60,   0, 
+      0,   0,   2,   0,   0,   0, 
+      4,   0,   0,   0,   4,   0, 
+      0,   0, 255, 255, 255, 255, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  13,   0,   0,   0, 
+     84, 101, 120, 116, 117, 114, 
+    101,  85,  73,   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,  51, 
+     48,  46,  57,  50,  48,  48, 
+     46,  49,  54,  51,  56,  52, 
+      0, 171, 171, 171,  73,  83, 
+     71,  78,  80,   0,   0,   0, 
+      2,   0,   0,   0,   8,   0, 
+      0,   0,  56,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  68,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+      1,   0,   0,   0,   3,   3, 
+      0,   0,  83,  86,  95,  80, 
+     79,  83,  73,  84,  73,  79, 
+     78,   0,  84,  69,  88,  67, 
+     79,  79,  82,  68,   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, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,  15,   0,   0,   0, 
+     83,  86,  95,  84,  65,  82, 
+     71,  69,  84,   0, 171, 171, 
+     83,  72,  68,  82, 216,   0, 
+      0,   0,  64,   0,   0,   0, 
+     54,   0,   0,   0,  88,  24, 
+      0,   4,   0, 112,  16,   0, 
+      0,   0,   0,   0,  68,  68, 
+      0,   0,  98,  16,   0,   3, 
+     50,  16,  16,   0,   1,   0, 
+      0,   0, 101,   0,   0,   3, 
+    242,  32,  16,   0,   0,   0, 
+      0,   0, 104,   0,   0,   2, 
+      1,   0,   0,   0,  61,  16, 
+      0,   7, 242,   0,  16,   0, 
+      0,   0,   0,   0,   1,  64, 
+      0,   0,   0,   0,   0,   0, 
+     70, 126,  16,   0,   0,   0, 
+      0,   0,  86,   0,   0,   5, 
+     50,   0,  16,   0,   0,   0, 
+      0,   0,  70,   0,  16,   0, 
+      0,   0,   0,   0,  56,   0, 
+      0,   7,  50,   0,  16,   0, 
+      0,   0,   0,   0,  70,   0, 
+     16,   0,   0,   0,   0,   0, 
+     70,  16,  16,   0,   1,   0, 
+      0,   0,  27,   0,   0,   5, 
+     50,   0,  16,   0,   0,   0, 
+      0,   0,  70,   0,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   8, 194,   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,   0,   0, 
+     45,   0,   0,   7, 242,  32, 
+     16,   0,   0,   0,   0,   0, 
+     70,  14,  16,   0,   0,   0, 
+      0,   0,  70, 126,  16,   0, 
+      0,   0,   0,   0,  62,   0, 
+      0,   1,  83,  84,  65,  84, 
+    116,   0,   0,   0,   7,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   2,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   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,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   2,   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, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughrgba3d11psh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgba3d11ps.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgba3d11ps.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgba3d11ps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,150 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+// Resource Bindings:
+//
+// Name                                 Type  Format         Dim Slot Elements
+// ------------------------------ ---------- ------- ----------- ---- --------
+// Sampler                           sampler      NA          NA    0        1
+// TextureF                          texture  float4          3d    0        1
+//
+//
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float       
+// SV_RENDERTARGETARRAYINDEX     0   x           1  RTINDEX    uint       
+// TEXCOORD                 0   xyz         2     NONE   float   xyz 
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_TARGET                0   xyzw        0   TARGET   float   xyzw
+//
+ps_4_0
+dcl_sampler s0, mode_default
+dcl_resource_texture3d (float,float,float,float) t0
+dcl_input_ps linear v2.xyz
+dcl_output o0.xyzw
+sample o0.xyzw, v2.xyzx, t0.xyzw, s0
+ret 
+// Approximately 2 instruction slots used
+#endif
+
+const BYTE g_PS_PassthroughRGBA3D[] =
+{
+     68,  88,  66,  67, 210, 245, 
+     69, 229, 208, 176, 191,  93, 
+     81,  12, 174, 136,   0, 184, 
+     83, 208,   1,   0,   0,   0, 
+    128,   2,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    220,   0,   0,   0, 100,   1, 
+      0,   0, 152,   1,   0,   0, 
+      4,   2,   0,   0,  82,  68, 
+     69,  70, 160,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+    109,   0,   0,   0,  92,   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,   1,   0,   0,   0, 
+    100,   0,   0,   0,   2,   0, 
+      0,   0,   5,   0,   0,   0, 
+      8,   0,   0,   0, 255, 255, 
+    255, 255,   0,   0,   0,   0, 
+      1,   0,   0,   0,  13,   0, 
+      0,   0,  83,  97, 109, 112, 
+    108, 101, 114,   0,  84, 101, 
+    120, 116, 117, 114, 101,  70, 
+      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,  51,  48,  46,  57, 
+     50,  48,  48,  46,  49,  54, 
+     51,  56,  52,   0,  73,  83, 
+     71,  78, 128,   0,   0,   0, 
+      3,   0,   0,   0,   8,   0, 
+      0,   0,  80,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  92,   0,   0,   0, 
+      0,   0,   0,   0,   4,   0, 
+      0,   0,   1,   0,   0,   0, 
+      1,   0,   0,   0,   1,   0, 
+      0,   0, 118,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+      2,   0,   0,   0,   7,   7, 
+      0,   0,  83,  86,  95,  80, 
+     79,  83,  73,  84,  73,  79, 
+     78,   0,  83,  86,  95,  82, 
+     69,  78,  68,  69,  82,  84, 
+     65,  82,  71,  69,  84,  65, 
+     82,  82,  65,  89,  73,  78, 
+     68,  69,  88,   0,  84,  69, 
+     88,  67,  79,  79,  82,  68, 
+      0, 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,  65,  82, 
+     71,  69,  84,   0, 171, 171, 
+     83,  72,  68,  82, 100,   0, 
+      0,   0,  64,   0,   0,   0, 
+     25,   0,   0,   0,  90,   0, 
+      0,   3,   0,  96,  16,   0, 
+      0,   0,   0,   0,  88,  40, 
+      0,   4,   0, 112,  16,   0, 
+      0,   0,   0,   0,  85,  85, 
+      0,   0,  98,  16,   0,   3, 
+    114,  16,  16,   0,   2,   0, 
+      0,   0, 101,   0,   0,   3, 
+    242,  32,  16,   0,   0,   0, 
+      0,   0,  69,   0,   0,   9, 
+    242,  32,  16,   0,   0,   0, 
+      0,   0,  70,  18,  16,   0, 
+      2,   0,   0,   0,  70, 126, 
+     16,   0,   0,   0,   0,   0, 
+      0,  96,  16,   0,   0,   0, 
+      0,   0,  62,   0,   0,   1, 
+     83,  84,  65,  84, 116,   0, 
+      0,   0,   2,   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, 
+      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,   1,   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,   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
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughrgba3di11psh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgba3di11ps.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgba3di11ps.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgba3di11ps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,165 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+// Resource Bindings:
+//
+// Name                                 Type  Format         Dim Slot Elements
+// ------------------------------ ---------- ------- ----------- ---- --------
+// TextureI                          texture   sint4          3d    0        1
+//
+//
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float       
+// SV_RENDERTARGETARRAYINDEX     0   x           1  RTINDEX    uint       
+// TEXCOORD                 0   xyz         2     NONE   float   xyz 
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_TARGET                0   xyzw        0   TARGET     int   xyzw
+//
+ps_4_0
+dcl_resource_texture3d (sint,sint,sint,sint) t0
+dcl_input_ps linear v2.xyz
+dcl_output o0.xyzw
+dcl_temps 1
+resinfo_uint r0.xyzw, l(0), t0.xyzw
+utof r0.xyz, r0.xyzx
+mul r0.xyz, r0.xyzx, v2.xyzx
+ftoi r0.xyz, r0.xyzx
+mov r0.w, l(0)
+ld o0.xyzw, r0.xyzw, t0.xyzw
+ret 
+// Approximately 7 instruction slots used
+#endif
+
+const BYTE g_PS_PassthroughRGBA3DI[] =
+{
+     68,  88,  66,  67, 152, 248, 
+    214, 130,  39,   9,  70,  81, 
+     25, 166,  69,  85,  30, 229, 
+    132, 197,   1,   0,   0,   0, 
+    192,   2,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    180,   0,   0,   0,  60,   1, 
+      0,   0, 112,   1,   0,   0, 
+     68,   2,   0,   0,  82,  68, 
+     69,  70, 120,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+     69,   0,   0,   0,  60,   0, 
+      0,   0,   2,   0,   0,   0, 
+      3,   0,   0,   0,   8,   0, 
+      0,   0, 255, 255, 255, 255, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  13,   0,   0,   0, 
+     84, 101, 120, 116, 117, 114, 
+    101,  73,   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,  51,  48, 
+     46,  57,  50,  48,  48,  46, 
+     49,  54,  51,  56,  52,   0, 
+     73,  83,  71,  78, 128,   0, 
+      0,   0,   3,   0,   0,   0, 
+      8,   0,   0,   0,  80,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   3,   0, 
+      0,   0,   0,   0,   0,   0, 
+     15,   0,   0,   0,  92,   0, 
+      0,   0,   0,   0,   0,   0, 
+      4,   0,   0,   0,   1,   0, 
+      0,   0,   1,   0,   0,   0, 
+      1,   0,   0,   0, 118,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   3,   0, 
+      0,   0,   2,   0,   0,   0, 
+      7,   7,   0,   0,  83,  86, 
+     95,  80,  79,  83,  73,  84, 
+     73,  79,  78,   0,  83,  86, 
+     95,  82,  69,  78,  68,  69, 
+     82,  84,  65,  82,  71,  69, 
+     84,  65,  82,  82,  65,  89, 
+     73,  78,  68,  69,  88,   0, 
+     84,  69,  88,  67,  79,  79, 
+     82,  68,   0, 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,   2,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  83,  86,  95,  84, 
+     65,  82,  71,  69,  84,   0, 
+    171, 171,  83,  72,  68,  82, 
+    204,   0,   0,   0,  64,   0, 
+      0,   0,  51,   0,   0,   0, 
+     88,  40,   0,   4,   0, 112, 
+     16,   0,   0,   0,   0,   0, 
+     51,  51,   0,   0,  98,  16, 
+      0,   3, 114,  16,  16,   0, 
+      2,   0,   0,   0, 101,   0, 
+      0,   3, 242,  32,  16,   0, 
+      0,   0,   0,   0, 104,   0, 
+      0,   2,   1,   0,   0,   0, 
+     61,  16,   0,   7, 242,   0, 
+     16,   0,   0,   0,   0,   0, 
+      1,  64,   0,   0,   0,   0, 
+      0,   0,  70, 126,  16,   0, 
+      0,   0,   0,   0,  86,   0, 
+      0,   5, 114,   0,  16,   0, 
+      0,   0,   0,   0,  70,   2, 
+     16,   0,   0,   0,   0,   0, 
+     56,   0,   0,   7, 114,   0, 
+     16,   0,   0,   0,   0,   0, 
+     70,   2,  16,   0,   0,   0, 
+      0,   0,  70,  18,  16,   0, 
+      2,   0,   0,   0,  27,   0, 
+      0,   5, 114,   0,  16,   0, 
+      0,   0,   0,   0,  70,   2, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   5, 130,   0, 
+     16,   0,   0,   0,   0,   0, 
+      1,  64,   0,   0,   0,   0, 
+      0,   0,  45,   0,   0,   7, 
+    242,  32,  16,   0,   0,   0, 
+      0,   0,  70,  14,  16,   0, 
+      0,   0,   0,   0,  70, 126, 
+     16,   0,   0,   0,   0,   0, 
+     62,   0,   0,   1,  83,  84, 
+     65,  84, 116,   0,   0,   0, 
+      7,   0,   0,   0,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      2,   0,   0,   0,   1,   0, 
+      0,   0,   0,   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, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   2,   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,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledpassthroughrgba3dui11psh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgba3dui11ps.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgba3dui11ps.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/passthroughrgba3dui11ps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,165 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+// Resource Bindings:
+//
+// Name                                 Type  Format         Dim Slot Elements
+// ------------------------------ ---------- ------- ----------- ---- --------
+// TextureUI                         texture   uint4          3d    0        1
+//
+//
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float       
+// SV_RENDERTARGETARRAYINDEX     0   x           1  RTINDEX    uint       
+// TEXCOORD                 0   xyz         2     NONE   float   xyz 
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_TARGET                0   xyzw        0   TARGET    uint   xyzw
+//
+ps_4_0
+dcl_resource_texture3d (uint,uint,uint,uint) t0
+dcl_input_ps linear v2.xyz
+dcl_output o0.xyzw
+dcl_temps 1
+resinfo_uint r0.xyzw, l(0), t0.xyzw
+utof r0.xyz, r0.xyzx
+mul r0.xyz, r0.xyzx, v2.xyzx
+ftoi r0.xyz, r0.xyzx
+mov r0.w, l(0)
+ld o0.xyzw, r0.xyzw, t0.xyzw
+ret 
+// Approximately 7 instruction slots used
+#endif
+
+const BYTE g_PS_PassthroughRGBA3DUI[] =
+{
+     68,  88,  66,  67,  24, 171, 
+    238, 127, 243,  33, 183, 183, 
+    228, 225,  69, 159,  98, 227, 
+    253,  69,   1,   0,   0,   0, 
+    196,   2,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    184,   0,   0,   0,  64,   1, 
+      0,   0, 116,   1,   0,   0, 
+     72,   2,   0,   0,  82,  68, 
+     69,  70, 124,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+     70,   0,   0,   0,  60,   0, 
+      0,   0,   2,   0,   0,   0, 
+      4,   0,   0,   0,   8,   0, 
+      0,   0, 255, 255, 255, 255, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  13,   0,   0,   0, 
+     84, 101, 120, 116, 117, 114, 
+    101,  85,  73,   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,  51, 
+     48,  46,  57,  50,  48,  48, 
+     46,  49,  54,  51,  56,  52, 
+      0, 171, 171, 171,  73,  83, 
+     71,  78, 128,   0,   0,   0, 
+      3,   0,   0,   0,   8,   0, 
+      0,   0,  80,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  92,   0,   0,   0, 
+      0,   0,   0,   0,   4,   0, 
+      0,   0,   1,   0,   0,   0, 
+      1,   0,   0,   0,   1,   0, 
+      0,   0, 118,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+      2,   0,   0,   0,   7,   7, 
+      0,   0,  83,  86,  95,  80, 
+     79,  83,  73,  84,  73,  79, 
+     78,   0,  83,  86,  95,  82, 
+     69,  78,  68,  69,  82,  84, 
+     65,  82,  71,  69,  84,  65, 
+     82,  82,  65,  89,  73,  78, 
+     68,  69,  88,   0,  84,  69, 
+     88,  67,  79,  79,  82,  68, 
+      0, 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, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,  15,   0,   0,   0, 
+     83,  86,  95,  84,  65,  82, 
+     71,  69,  84,   0, 171, 171, 
+     83,  72,  68,  82, 204,   0, 
+      0,   0,  64,   0,   0,   0, 
+     51,   0,   0,   0,  88,  40, 
+      0,   4,   0, 112,  16,   0, 
+      0,   0,   0,   0,  68,  68, 
+      0,   0,  98,  16,   0,   3, 
+    114,  16,  16,   0,   2,   0, 
+      0,   0, 101,   0,   0,   3, 
+    242,  32,  16,   0,   0,   0, 
+      0,   0, 104,   0,   0,   2, 
+      1,   0,   0,   0,  61,  16, 
+      0,   7, 242,   0,  16,   0, 
+      0,   0,   0,   0,   1,  64, 
+      0,   0,   0,   0,   0,   0, 
+     70, 126,  16,   0,   0,   0, 
+      0,   0,  86,   0,   0,   5, 
+    114,   0,  16,   0,   0,   0, 
+      0,   0,  70,   2,  16,   0, 
+      0,   0,   0,   0,  56,   0, 
+      0,   7, 114,   0,  16,   0, 
+      0,   0,   0,   0,  70,   2, 
+     16,   0,   0,   0,   0,   0, 
+     70,  18,  16,   0,   2,   0, 
+      0,   0,  27,   0,   0,   5, 
+    114,   0,  16,   0,   0,   0, 
+      0,   0,  70,   2,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   5, 130,   0,  16,   0, 
+      0,   0,   0,   0,   1,  64, 
+      0,   0,   0,   0,   0,   0, 
+     45,   0,   0,   7, 242,  32, 
+     16,   0,   0,   0,   0,   0, 
+     70,  14,  16,   0,   0,   0, 
+      0,   0,  70, 126,  16,   0, 
+      0,   0,   0,   0,  62,   0, 
+      0,   1,  83,  84,  65,  84, 
+    116,   0,   0,   0,   7,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   2,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   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,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   2,   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, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledswizzlef2darraypsh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzlef2darrayps.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzlef2darrayps.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzlef2darrayps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,279 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+// Buffer Definitions: 
+//
+// cbuffer SwizzleProperties
+// {
+//
+//   uint4 SwizzleIndices;              // Offset:    0 Size:    16
+//
+// }
+//
+//
+// Resource Bindings:
+//
+// Name                                 Type  Format         Dim Slot Elements
+// ------------------------------ ---------- ------- ----------- ---- --------
+// Sampler                           sampler      NA          NA    0        1
+// TextureF2DArray                   texture  float4     2darray    0        1
+// SwizzleProperties                 cbuffer      NA          NA    0        1
+//
+//
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float       
+// SV_RENDERTARGETARRAYINDEX     0   x           1  RTINDEX    uint   x   
+// TEXCOORD                 0   xyz         2     NONE   float   xy  
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_TARGET                0   xyzw        0   TARGET   float   xyzw
+//
+ps_4_0
+dcl_constantbuffer cb0[1], immediateIndexed
+dcl_sampler s0, mode_default
+dcl_resource_texture2darray (float,float,float,float) t0
+dcl_input_ps_siv constant v1.x, rendertarget_array_index
+dcl_input_ps linear v2.xy
+dcl_output o0.xyzw
+dcl_temps 1
+dcl_indexableTemp x0[6], 4
+utof r0.z, v1.x
+mov r0.xy, v2.xyxx
+sample r0.xyzw, r0.xyzx, t0.xyzw, s0
+mov x0[0].x, r0.x
+mov x0[1].x, r0.y
+mov x0[2].x, r0.z
+mov x0[3].x, r0.w
+mov x0[4].x, l(0)
+mov x0[5].x, l(1.000000)
+mov r0.x, cb0[0].x
+mov o0.x, x0[r0.x + 0].x
+mov r0.x, cb0[0].y
+mov o0.y, x0[r0.x + 0].x
+mov r0.x, cb0[0].z
+mov o0.z, x0[r0.x + 0].x
+mov r0.x, cb0[0].w
+mov o0.w, x0[r0.x + 0].x
+ret 
+// Approximately 18 instruction slots used
+#endif
+
+const BYTE g_PS_SwizzleF2DArray[] =
+{
+     68,  88,  66,  67, 161, 112, 
+    176, 131, 216, 246,  27,  65, 
+     39, 246,  72, 161, 231,  81, 
+    229, 143,   1,   0,   0,   0, 
+    204,   4,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    104,   1,   0,   0, 240,   1, 
+      0,   0,  36,   2,   0,   0, 
+     80,   4,   0,   0,  82,  68, 
+     69,  70,  44,   1,   0,   0, 
+      1,   0,   0,   0, 168,   0, 
+      0,   0,   3,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+    248,   0,   0,   0, 124,   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,   1,   0,   0,   0, 
+    132,   0,   0,   0,   2,   0, 
+      0,   0,   5,   0,   0,   0, 
+      5,   0,   0,   0, 255, 255, 
+    255, 255,   0,   0,   0,   0, 
+      1,   0,   0,   0,  13,   0, 
+      0,   0, 148,   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, 
+      1,   0,   0,   0,  83,  97, 
+    109, 112, 108, 101, 114,   0, 
+     84, 101, 120, 116, 117, 114, 
+    101,  70,  50,  68,  65, 114, 
+    114,  97, 121,   0,  83, 119, 
+    105, 122, 122, 108, 101,  80, 
+    114, 111, 112, 101, 114, 116, 
+    105, 101, 115,   0, 171, 171, 
+    148,   0,   0,   0,   1,   0, 
+      0,   0, 192,   0,   0,   0, 
+     16,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+    216,   0,   0,   0,   0,   0, 
+      0,   0,  16,   0,   0,   0, 
+      2,   0,   0,   0, 232,   0, 
+      0,   0,   0,   0,   0,   0, 
+     83, 119, 105, 122, 122, 108, 
+    101,  73, 110, 100, 105,  99, 
+    101, 115,   0, 171,   1,   0, 
+     19,   0,   1,   0,   4,   0, 
+      0,   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,  51,  48,  46, 
+     57,  50,  48,  48,  46,  49, 
+     54,  51,  56,  52,   0, 171, 
+     73,  83,  71,  78, 128,   0, 
+      0,   0,   3,   0,   0,   0, 
+      8,   0,   0,   0,  80,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   3,   0, 
+      0,   0,   0,   0,   0,   0, 
+     15,   0,   0,   0,  92,   0, 
+      0,   0,   0,   0,   0,   0, 
+      4,   0,   0,   0,   1,   0, 
+      0,   0,   1,   0,   0,   0, 
+      1,   1,   0,   0, 118,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   3,   0, 
+      0,   0,   2,   0,   0,   0, 
+      7,   3,   0,   0,  83,  86, 
+     95,  80,  79,  83,  73,  84, 
+     73,  79,  78,   0,  83,  86, 
+     95,  82,  69,  78,  68,  69, 
+     82,  84,  65,  82,  71,  69, 
+     84,  65,  82,  82,  65,  89, 
+     73,  78,  68,  69,  88,   0, 
+     84,  69,  88,  67,  79,  79, 
+     82,  68,   0, 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, 
+     65,  82,  71,  69,  84,   0, 
+    171, 171,  83,  72,  68,  82, 
+     36,   2,   0,   0,  64,   0, 
+      0,   0, 137,   0,   0,   0, 
+     89,   0,   0,   4,  70, 142, 
+     32,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,  90,   0, 
+      0,   3,   0,  96,  16,   0, 
+      0,   0,   0,   0,  88,  64, 
+      0,   4,   0, 112,  16,   0, 
+      0,   0,   0,   0,  85,  85, 
+      0,   0, 100,   8,   0,   4, 
+     18,  16,  16,   0,   1,   0, 
+      0,   0,   4,   0,   0,   0, 
+     98,  16,   0,   3,  50,  16, 
+     16,   0,   2,   0,   0,   0, 
+    101,   0,   0,   3, 242,  32, 
+     16,   0,   0,   0,   0,   0, 
+    104,   0,   0,   2,   1,   0, 
+      0,   0, 105,   0,   0,   4, 
+      0,   0,   0,   0,   6,   0, 
+      0,   0,   4,   0,   0,   0, 
+     86,   0,   0,   5,  66,   0, 
+     16,   0,   0,   0,   0,   0, 
+     10,  16,  16,   0,   1,   0, 
+      0,   0,  54,   0,   0,   5, 
+     50,   0,  16,   0,   0,   0, 
+      0,   0,  70,  16,  16,   0, 
+      2,   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,   0,   0, 
+      0,   0,   0,  96,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   6,  18,  48,  32,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  10,   0,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   6,  18,  48,  32,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  26,   0,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   6,  18,  48,  32,   0, 
+      0,   0,   0,   0,   2,   0, 
+      0,   0,  42,   0,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   6,  18,  48,  32,   0, 
+      0,   0,   0,   0,   3,   0, 
+      0,   0,  58,   0,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   6,  18,  48,  32,   0, 
+      0,   0,   0,   0,   4,   0, 
+      0,   0,   1,  64,   0,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   6,  18,  48,  32,   0, 
+      0,   0,   0,   0,   5,   0, 
+      0,   0,   1,  64,   0,   0, 
+      0,   0, 128,  63,  54,   0, 
+      0,   6,  18,   0,  16,   0, 
+      0,   0,   0,   0,  10, 128, 
+     32,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   7,  18,  32,  16,   0, 
+      0,   0,   0,   0,  10,  48, 
+     32,   4,   0,   0,   0,   0, 
+     10,   0,  16,   0,   0,   0, 
+      0,   0,  54,   0,   0,   6, 
+     18,   0,  16,   0,   0,   0, 
+      0,   0,  26, 128,  32,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  54,   0,   0,   7, 
+     34,  32,  16,   0,   0,   0, 
+      0,   0,  10,  48,  32,   4, 
+      0,   0,   0,   0,  10,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   6,  18,   0, 
+     16,   0,   0,   0,   0,   0, 
+     42, 128,  32,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     54,   0,   0,   7,  66,  32, 
+     16,   0,   0,   0,   0,   0, 
+     10,  48,  32,   4,   0,   0, 
+      0,   0,  10,   0,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   6,  18,   0,  16,   0, 
+      0,   0,   0,   0,  58, 128, 
+     32,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   7, 130,  32,  16,   0, 
+      0,   0,   0,   0,  10,  48, 
+     32,   4,   0,   0,   0,   0, 
+     10,   0,  16,   0,   0,   0, 
+      0,   0,  62,   0,   0,   1, 
+     83,  84,  65,  84, 116,   0, 
+      0,   0,  18,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      6,   0,   0,   0,  10,   0, 
+      0,   0,   0,   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, 
+      6,   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
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledswizzlef2dpsh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzlef2dps.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzlef2dps.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzlef2dps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,257 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+// Buffer Definitions: 
+//
+// cbuffer SwizzleProperties
+// {
+//
+//   uint4 SwizzleIndices;              // Offset:    0 Size:    16
+//
+// }
+//
+//
+// Resource Bindings:
+//
+// Name                                 Type  Format         Dim Slot Elements
+// ------------------------------ ---------- ------- ----------- ---- --------
+// Sampler                           sampler      NA          NA    0        1
+// TextureF2D                        texture  float4          2d    0        1
+// SwizzleProperties                 cbuffer      NA          NA    0        1
+//
+//
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float       
+// TEXCOORD                 0   xy          1     NONE   float   xy  
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_TARGET                0   xyzw        0   TARGET   float   xyzw
+//
+ps_4_0
+dcl_constantbuffer cb0[1], immediateIndexed
+dcl_sampler s0, mode_default
+dcl_resource_texture2d (float,float,float,float) t0
+dcl_input_ps linear v1.xy
+dcl_output o0.xyzw
+dcl_temps 1
+dcl_indexableTemp x0[6], 4
+sample r0.xyzw, v1.xyxx, t0.xyzw, s0
+mov x0[0].x, r0.x
+mov x0[1].x, r0.y
+mov x0[2].x, r0.z
+mov x0[3].x, r0.w
+mov x0[4].x, l(0)
+mov x0[5].x, l(1.000000)
+mov r0.x, cb0[0].x
+mov o0.x, x0[r0.x + 0].x
+mov r0.x, cb0[0].y
+mov o0.y, x0[r0.x + 0].x
+mov r0.x, cb0[0].z
+mov o0.z, x0[r0.x + 0].x
+mov r0.x, cb0[0].w
+mov o0.w, x0[r0.x + 0].x
+ret 
+// Approximately 16 instruction slots used
+#endif
+
+const BYTE g_PS_SwizzleF2D[] =
+{
+     68,  88,  66,  67, 162, 151, 
+     82,  12,  22, 214, 143, 216, 
+     57,  84,  12,  76, 109, 120, 
+    162, 201,   1,   0,   0,   0, 
+     96,   4,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    100,   1,   0,   0, 188,   1, 
+      0,   0, 240,   1,   0,   0, 
+    228,   3,   0,   0,  82,  68, 
+     69,  70,  40,   1,   0,   0, 
+      1,   0,   0,   0, 164,   0, 
+      0,   0,   3,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+    244,   0,   0,   0, 124,   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,   1,   0,   0,   0, 
+    132,   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,  13,   0, 
+      0,   0, 143,   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, 
+      1,   0,   0,   0,  83,  97, 
+    109, 112, 108, 101, 114,   0, 
+     84, 101, 120, 116, 117, 114, 
+    101,  70,  50,  68,   0,  83, 
+    119, 105, 122, 122, 108, 101, 
+     80, 114, 111, 112, 101, 114, 
+    116, 105, 101, 115,   0, 171, 
+    171, 171, 143,   0,   0,   0, 
+      1,   0,   0,   0, 188,   0, 
+      0,   0,  16,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0, 212,   0,   0,   0, 
+      0,   0,   0,   0,  16,   0, 
+      0,   0,   2,   0,   0,   0, 
+    228,   0,   0,   0,   0,   0, 
+      0,   0,  83, 119, 105, 122, 
+    122, 108, 101,  73, 110, 100, 
+    105,  99, 101, 115,   0, 171, 
+      1,   0,  19,   0,   1,   0, 
+      4,   0,   0,   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,  51, 
+     48,  46,  57,  50,  48,  48, 
+     46,  49,  54,  51,  56,  52, 
+      0, 171,  73,  83,  71,  78, 
+     80,   0,   0,   0,   2,   0, 
+      0,   0,   8,   0,   0,   0, 
+     56,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+      3,   0,   0,   0,   0,   0, 
+      0,   0,  15,   0,   0,   0, 
+     68,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,   1,   0, 
+      0,   0,   3,   3,   0,   0, 
+     83,  86,  95,  80,  79,  83, 
+     73,  84,  73,  79,  78,   0, 
+     84,  69,  88,  67,  79,  79, 
+     82,  68,   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,  65,  82,  71,  69, 
+     84,   0, 171, 171,  83,  72, 
+     68,  82, 236,   1,   0,   0, 
+     64,   0,   0,   0, 123,   0, 
+      0,   0,  89,   0,   0,   4, 
+     70, 142,  32,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+     90,   0,   0,   3,   0,  96, 
+     16,   0,   0,   0,   0,   0, 
+     88,  24,   0,   4,   0, 112, 
+     16,   0,   0,   0,   0,   0, 
+     85,  85,   0,   0,  98,  16, 
+      0,   3,  50,  16,  16,   0, 
+      1,   0,   0,   0, 101,   0, 
+      0,   3, 242,  32,  16,   0, 
+      0,   0,   0,   0, 104,   0, 
+      0,   2,   1,   0,   0,   0, 
+    105,   0,   0,   4,   0,   0, 
+      0,   0,   6,   0,   0,   0, 
+      4,   0,   0,   0,  69,   0, 
+      0,   9, 242,   0,  16,   0, 
+      0,   0,   0,   0,  70,  16, 
+     16,   0,   1,   0,   0,   0, 
+     70, 126,  16,   0,   0,   0, 
+      0,   0,   0,  96,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   6,  18,  48,  32,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  10,   0,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   6,  18,  48,  32,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  26,   0,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   6,  18,  48,  32,   0, 
+      0,   0,   0,   0,   2,   0, 
+      0,   0,  42,   0,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   6,  18,  48,  32,   0, 
+      0,   0,   0,   0,   3,   0, 
+      0,   0,  58,   0,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   6,  18,  48,  32,   0, 
+      0,   0,   0,   0,   4,   0, 
+      0,   0,   1,  64,   0,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   6,  18,  48,  32,   0, 
+      0,   0,   0,   0,   5,   0, 
+      0,   0,   1,  64,   0,   0, 
+      0,   0, 128,  63,  54,   0, 
+      0,   6,  18,   0,  16,   0, 
+      0,   0,   0,   0,  10, 128, 
+     32,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   7,  18,  32,  16,   0, 
+      0,   0,   0,   0,  10,  48, 
+     32,   4,   0,   0,   0,   0, 
+     10,   0,  16,   0,   0,   0, 
+      0,   0,  54,   0,   0,   6, 
+     18,   0,  16,   0,   0,   0, 
+      0,   0,  26, 128,  32,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  54,   0,   0,   7, 
+     34,  32,  16,   0,   0,   0, 
+      0,   0,  10,  48,  32,   4, 
+      0,   0,   0,   0,  10,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   6,  18,   0, 
+     16,   0,   0,   0,   0,   0, 
+     42, 128,  32,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     54,   0,   0,   7,  66,  32, 
+     16,   0,   0,   0,   0,   0, 
+     10,  48,  32,   4,   0,   0, 
+      0,   0,  10,   0,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   6,  18,   0,  16,   0, 
+      0,   0,   0,   0,  58, 128, 
+     32,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   7, 130,  32,  16,   0, 
+      0,   0,   0,   0,  10,  48, 
+     32,   4,   0,   0,   0,   0, 
+     10,   0,  16,   0,   0,   0, 
+      0,   0,  62,   0,   0,   1, 
+     83,  84,  65,  84, 116,   0, 
+      0,   0,  16,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      6,   0,   0,   0,  10,   0, 
+      0,   0,   0,   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, 
+      5,   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
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledswizzlef3dpsh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzlef3dps.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzlef3dps.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzlef3dps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,266 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+// Buffer Definitions: 
+//
+// cbuffer SwizzleProperties
+// {
+//
+//   uint4 SwizzleIndices;              // Offset:    0 Size:    16
+//
+// }
+//
+//
+// Resource Bindings:
+//
+// Name                                 Type  Format         Dim Slot Elements
+// ------------------------------ ---------- ------- ----------- ---- --------
+// Sampler                           sampler      NA          NA    0        1
+// TextureF3D                        texture  float4          3d    0        1
+// SwizzleProperties                 cbuffer      NA          NA    0        1
+//
+//
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float       
+// SV_RENDERTARGETARRAYINDEX     0   x           1  RTINDEX    uint       
+// TEXCOORD                 0   xyz         2     NONE   float   xyz 
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_TARGET                0   xyzw        0   TARGET   float   xyzw
+//
+ps_4_0
+dcl_constantbuffer cb0[1], immediateIndexed
+dcl_sampler s0, mode_default
+dcl_resource_texture3d (float,float,float,float) t0
+dcl_input_ps linear v2.xyz
+dcl_output o0.xyzw
+dcl_temps 1
+dcl_indexableTemp x0[6], 4
+sample r0.xyzw, v2.xyzx, t0.xyzw, s0
+mov x0[0].x, r0.x
+mov x0[1].x, r0.y
+mov x0[2].x, r0.z
+mov x0[3].x, r0.w
+mov x0[4].x, l(0)
+mov x0[5].x, l(1.000000)
+mov r0.x, cb0[0].x
+mov o0.x, x0[r0.x + 0].x
+mov r0.x, cb0[0].y
+mov o0.y, x0[r0.x + 0].x
+mov r0.x, cb0[0].z
+mov o0.z, x0[r0.x + 0].x
+mov r0.x, cb0[0].w
+mov o0.w, x0[r0.x + 0].x
+ret 
+// Approximately 16 instruction slots used
+#endif
+
+const BYTE g_PS_SwizzleF3D[] =
+{
+     68,  88,  66,  67, 112,  23, 
+     39, 219, 141,  10, 170,  22, 
+    165, 204, 123, 149, 248,  84, 
+    184, 117,   1,   0,   0,   0, 
+    144,   4,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    100,   1,   0,   0, 236,   1, 
+      0,   0,  32,   2,   0,   0, 
+     20,   4,   0,   0,  82,  68, 
+     69,  70,  40,   1,   0,   0, 
+      1,   0,   0,   0, 164,   0, 
+      0,   0,   3,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+    244,   0,   0,   0, 124,   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,   1,   0,   0,   0, 
+    132,   0,   0,   0,   2,   0, 
+      0,   0,   5,   0,   0,   0, 
+      8,   0,   0,   0, 255, 255, 
+    255, 255,   0,   0,   0,   0, 
+      1,   0,   0,   0,  13,   0, 
+      0,   0, 143,   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, 
+      1,   0,   0,   0,  83,  97, 
+    109, 112, 108, 101, 114,   0, 
+     84, 101, 120, 116, 117, 114, 
+    101,  70,  51,  68,   0,  83, 
+    119, 105, 122, 122, 108, 101, 
+     80, 114, 111, 112, 101, 114, 
+    116, 105, 101, 115,   0, 171, 
+    171, 171, 143,   0,   0,   0, 
+      1,   0,   0,   0, 188,   0, 
+      0,   0,  16,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0, 212,   0,   0,   0, 
+      0,   0,   0,   0,  16,   0, 
+      0,   0,   2,   0,   0,   0, 
+    228,   0,   0,   0,   0,   0, 
+      0,   0,  83, 119, 105, 122, 
+    122, 108, 101,  73, 110, 100, 
+    105,  99, 101, 115,   0, 171, 
+      1,   0,  19,   0,   1,   0, 
+      4,   0,   0,   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,  51, 
+     48,  46,  57,  50,  48,  48, 
+     46,  49,  54,  51,  56,  52, 
+      0, 171,  73,  83,  71,  78, 
+    128,   0,   0,   0,   3,   0, 
+      0,   0,   8,   0,   0,   0, 
+     80,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+      3,   0,   0,   0,   0,   0, 
+      0,   0,  15,   0,   0,   0, 
+     92,   0,   0,   0,   0,   0, 
+      0,   0,   4,   0,   0,   0, 
+      1,   0,   0,   0,   1,   0, 
+      0,   0,   1,   0,   0,   0, 
+    118,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,   2,   0, 
+      0,   0,   7,   7,   0,   0, 
+     83,  86,  95,  80,  79,  83, 
+     73,  84,  73,  79,  78,   0, 
+     83,  86,  95,  82,  69,  78, 
+     68,  69,  82,  84,  65,  82, 
+     71,  69,  84,  65,  82,  82, 
+     65,  89,  73,  78,  68,  69, 
+     88,   0,  84,  69,  88,  67, 
+     79,  79,  82,  68,   0, 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,  65,  82,  71,  69, 
+     84,   0, 171, 171,  83,  72, 
+     68,  82, 236,   1,   0,   0, 
+     64,   0,   0,   0, 123,   0, 
+      0,   0,  89,   0,   0,   4, 
+     70, 142,  32,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+     90,   0,   0,   3,   0,  96, 
+     16,   0,   0,   0,   0,   0, 
+     88,  40,   0,   4,   0, 112, 
+     16,   0,   0,   0,   0,   0, 
+     85,  85,   0,   0,  98,  16, 
+      0,   3, 114,  16,  16,   0, 
+      2,   0,   0,   0, 101,   0, 
+      0,   3, 242,  32,  16,   0, 
+      0,   0,   0,   0, 104,   0, 
+      0,   2,   1,   0,   0,   0, 
+    105,   0,   0,   4,   0,   0, 
+      0,   0,   6,   0,   0,   0, 
+      4,   0,   0,   0,  69,   0, 
+      0,   9, 242,   0,  16,   0, 
+      0,   0,   0,   0,  70,  18, 
+     16,   0,   2,   0,   0,   0, 
+     70, 126,  16,   0,   0,   0, 
+      0,   0,   0,  96,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   6,  18,  48,  32,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  10,   0,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   6,  18,  48,  32,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  26,   0,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   6,  18,  48,  32,   0, 
+      0,   0,   0,   0,   2,   0, 
+      0,   0,  42,   0,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   6,  18,  48,  32,   0, 
+      0,   0,   0,   0,   3,   0, 
+      0,   0,  58,   0,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   6,  18,  48,  32,   0, 
+      0,   0,   0,   0,   4,   0, 
+      0,   0,   1,  64,   0,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   6,  18,  48,  32,   0, 
+      0,   0,   0,   0,   5,   0, 
+      0,   0,   1,  64,   0,   0, 
+      0,   0, 128,  63,  54,   0, 
+      0,   6,  18,   0,  16,   0, 
+      0,   0,   0,   0,  10, 128, 
+     32,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   7,  18,  32,  16,   0, 
+      0,   0,   0,   0,  10,  48, 
+     32,   4,   0,   0,   0,   0, 
+     10,   0,  16,   0,   0,   0, 
+      0,   0,  54,   0,   0,   6, 
+     18,   0,  16,   0,   0,   0, 
+      0,   0,  26, 128,  32,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  54,   0,   0,   7, 
+     34,  32,  16,   0,   0,   0, 
+      0,   0,  10,  48,  32,   4, 
+      0,   0,   0,   0,  10,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   6,  18,   0, 
+     16,   0,   0,   0,   0,   0, 
+     42, 128,  32,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     54,   0,   0,   7,  66,  32, 
+     16,   0,   0,   0,   0,   0, 
+     10,  48,  32,   4,   0,   0, 
+      0,   0,  10,   0,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   6,  18,   0,  16,   0, 
+      0,   0,   0,   0,  58, 128, 
+     32,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   7, 130,  32,  16,   0, 
+      0,   0,   0,   0,  10,  48, 
+     32,   4,   0,   0,   0,   0, 
+     10,   0,  16,   0,   0,   0, 
+      0,   0,  62,   0,   0,   1, 
+     83,  84,  65,  84, 116,   0, 
+      0,   0,  16,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      6,   0,   0,   0,  10,   0, 
+      0,   0,   0,   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, 
+      5,   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
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledswizzlei2darraypsh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzlei2darrayps.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzlei2darrayps.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzlei2darrayps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,287 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+// Buffer Definitions: 
+//
+// cbuffer SwizzleProperties
+// {
+//
+//   uint4 SwizzleIndices;              // Offset:    0 Size:    16
+//
+// }
+//
+//
+// Resource Bindings:
+//
+// Name                                 Type  Format         Dim Slot Elements
+// ------------------------------ ---------- ------- ----------- ---- --------
+// TextureI2DArray                   texture   sint4     2darray    0        1
+// SwizzleProperties                 cbuffer      NA          NA    0        1
+//
+//
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float       
+// SV_RENDERTARGETARRAYINDEX     0   x           1  RTINDEX    uint   x   
+// TEXCOORD                 0   xyz         2     NONE   float   xy  
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_TARGET                0   xyzw        0   TARGET     int   xyzw
+//
+ps_4_0
+dcl_constantbuffer cb0[1], immediateIndexed
+dcl_resource_texture2darray (sint,sint,sint,sint) t0
+dcl_input_ps_siv constant v1.x, rendertarget_array_index
+dcl_input_ps linear v2.xy
+dcl_output o0.xyzw
+dcl_temps 1
+dcl_indexableTemp x0[6], 4
+resinfo_uint r0.xyzw, l(0), t0.xyzw
+utof r0.xy, r0.xyxx
+mul r0.xy, r0.xyxx, v2.xyxx
+ftoi r0.xy, r0.xyxx
+mov r0.z, v1.x
+mov r0.w, l(0)
+ld r0.xyzw, r0.xyzw, t0.xyzw
+mov x0[0].x, r0.x
+mov x0[1].x, r0.y
+mov x0[2].x, r0.z
+mov x0[3].x, r0.w
+mov x0[4].x, l(0)
+mov x0[5].x, l(1)
+mov r0.x, cb0[0].x
+mov o0.x, x0[r0.x + 0].x
+mov r0.x, cb0[0].y
+mov o0.y, x0[r0.x + 0].x
+mov r0.x, cb0[0].z
+mov o0.z, x0[r0.x + 0].x
+mov r0.x, cb0[0].w
+mov o0.w, x0[r0.x + 0].x
+ret 
+// Approximately 22 instruction slots used
+#endif
+
+const BYTE g_PS_SwizzleI2DArray[] =
+{
+     68,  88,  66,  67,  75,  76, 
+      4, 200, 179, 192, 148, 142, 
+    191,  41, 209, 141, 122, 203, 
+    184,  74,   1,   0,   0,   0, 
+    240,   4,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+     64,   1,   0,   0, 200,   1, 
+      0,   0, 252,   1,   0,   0, 
+    116,   4,   0,   0,  82,  68, 
+     69,  70,   4,   1,   0,   0, 
+      1,   0,   0,   0, 128,   0, 
+      0,   0,   2,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+    208,   0,   0,   0,  92,   0, 
+      0,   0,   2,   0,   0,   0, 
+      3,   0,   0,   0,   5,   0, 
+      0,   0, 255, 255, 255, 255, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  13,   0,   0,   0, 
+    108,   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,   1,   0, 
+      0,   0,  84, 101, 120, 116, 
+    117, 114, 101,  73,  50,  68, 
+     65, 114, 114,  97, 121,   0, 
+     83, 119, 105, 122, 122, 108, 
+    101,  80, 114, 111, 112, 101, 
+    114, 116, 105, 101, 115,   0, 
+    171, 171, 108,   0,   0,   0, 
+      1,   0,   0,   0, 152,   0, 
+      0,   0,  16,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0, 176,   0,   0,   0, 
+      0,   0,   0,   0,  16,   0, 
+      0,   0,   2,   0,   0,   0, 
+    192,   0,   0,   0,   0,   0, 
+      0,   0,  83, 119, 105, 122, 
+    122, 108, 101,  73, 110, 100, 
+    105,  99, 101, 115,   0, 171, 
+      1,   0,  19,   0,   1,   0, 
+      4,   0,   0,   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,  51, 
+     48,  46,  57,  50,  48,  48, 
+     46,  49,  54,  51,  56,  52, 
+      0, 171,  73,  83,  71,  78, 
+    128,   0,   0,   0,   3,   0, 
+      0,   0,   8,   0,   0,   0, 
+     80,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+      3,   0,   0,   0,   0,   0, 
+      0,   0,  15,   0,   0,   0, 
+     92,   0,   0,   0,   0,   0, 
+      0,   0,   4,   0,   0,   0, 
+      1,   0,   0,   0,   1,   0, 
+      0,   0,   1,   1,   0,   0, 
+    118,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,   2,   0, 
+      0,   0,   7,   3,   0,   0, 
+     83,  86,  95,  80,  79,  83, 
+     73,  84,  73,  79,  78,   0, 
+     83,  86,  95,  82,  69,  78, 
+     68,  69,  82,  84,  65,  82, 
+     71,  69,  84,  65,  82,  82, 
+     65,  89,  73,  78,  68,  69, 
+     88,   0,  84,  69,  88,  67, 
+     79,  79,  82,  68,   0, 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,   2,   0, 
+      0,   0,   0,   0,   0,   0, 
+     15,   0,   0,   0,  83,  86, 
+     95,  84,  65,  82,  71,  69, 
+     84,   0, 171, 171,  83,  72, 
+     68,  82, 112,   2,   0,   0, 
+     64,   0,   0,   0, 156,   0, 
+      0,   0,  89,   0,   0,   4, 
+     70, 142,  32,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+     88,  64,   0,   4,   0, 112, 
+     16,   0,   0,   0,   0,   0, 
+     51,  51,   0,   0, 100,   8, 
+      0,   4,  18,  16,  16,   0, 
+      1,   0,   0,   0,   4,   0, 
+      0,   0,  98,  16,   0,   3, 
+     50,  16,  16,   0,   2,   0, 
+      0,   0, 101,   0,   0,   3, 
+    242,  32,  16,   0,   0,   0, 
+      0,   0, 104,   0,   0,   2, 
+      1,   0,   0,   0, 105,   0, 
+      0,   4,   0,   0,   0,   0, 
+      6,   0,   0,   0,   4,   0, 
+      0,   0,  61,  16,   0,   7, 
+    242,   0,  16,   0,   0,   0, 
+      0,   0,   1,  64,   0,   0, 
+      0,   0,   0,   0,  70, 126, 
+     16,   0,   0,   0,   0,   0, 
+     86,   0,   0,   5,  50,   0, 
+     16,   0,   0,   0,   0,   0, 
+     70,   0,  16,   0,   0,   0, 
+      0,   0,  56,   0,   0,   7, 
+     50,   0,  16,   0,   0,   0, 
+      0,   0,  70,   0,  16,   0, 
+      0,   0,   0,   0,  70,  16, 
+     16,   0,   2,   0,   0,   0, 
+     27,   0,   0,   5,  50,   0, 
+     16,   0,   0,   0,   0,   0, 
+     70,   0,  16,   0,   0,   0, 
+      0,   0,  54,   0,   0,   5, 
+     66,   0,  16,   0,   0,   0, 
+      0,   0,  10,  16,  16,   0, 
+      1,   0,   0,   0,  54,   0, 
+      0,   5, 130,   0,  16,   0, 
+      0,   0,   0,   0,   1,  64, 
+      0,   0,   0,   0,   0,   0, 
+     45,   0,   0,   7, 242,   0, 
+     16,   0,   0,   0,   0,   0, 
+     70,  14,  16,   0,   0,   0, 
+      0,   0,  70, 126,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   6,  18,  48,  32,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  10,   0,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   6,  18,  48,  32,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  26,   0,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   6,  18,  48,  32,   0, 
+      0,   0,   0,   0,   2,   0, 
+      0,   0,  42,   0,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   6,  18,  48,  32,   0, 
+      0,   0,   0,   0,   3,   0, 
+      0,   0,  58,   0,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   6,  18,  48,  32,   0, 
+      0,   0,   0,   0,   4,   0, 
+      0,   0,   1,  64,   0,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   6,  18,  48,  32,   0, 
+      0,   0,   0,   0,   5,   0, 
+      0,   0,   1,  64,   0,   0, 
+      1,   0,   0,   0,  54,   0, 
+      0,   6,  18,   0,  16,   0, 
+      0,   0,   0,   0,  10, 128, 
+     32,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   7,  18,  32,  16,   0, 
+      0,   0,   0,   0,  10,  48, 
+     32,   4,   0,   0,   0,   0, 
+     10,   0,  16,   0,   0,   0, 
+      0,   0,  54,   0,   0,   6, 
+     18,   0,  16,   0,   0,   0, 
+      0,   0,  26, 128,  32,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  54,   0,   0,   7, 
+     34,  32,  16,   0,   0,   0, 
+      0,   0,  10,  48,  32,   4, 
+      0,   0,   0,   0,  10,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   6,  18,   0, 
+     16,   0,   0,   0,   0,   0, 
+     42, 128,  32,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     54,   0,   0,   7,  66,  32, 
+     16,   0,   0,   0,   0,   0, 
+     10,  48,  32,   4,   0,   0, 
+      0,   0,  10,   0,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   6,  18,   0,  16,   0, 
+      0,   0,   0,   0,  58, 128, 
+     32,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   7, 130,  32,  16,   0, 
+      0,   0,   0,   0,  10,  48, 
+     32,   4,   0,   0,   0,   0, 
+     10,   0,  16,   0,   0,   0, 
+      0,   0,  62,   0,   0,   1, 
+     83,  84,  65,  84, 116,   0, 
+      0,   0,  22,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      6,   0,   0,   0,  10,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      7,   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,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledswizzlei2dpsh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzlei2dps.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzlei2dps.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzlei2dps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,271 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+// Buffer Definitions: 
+//
+// cbuffer SwizzleProperties
+// {
+//
+//   uint4 SwizzleIndices;              // Offset:    0 Size:    16
+//
+// }
+//
+//
+// Resource Bindings:
+//
+// Name                                 Type  Format         Dim Slot Elements
+// ------------------------------ ---------- ------- ----------- ---- --------
+// TextureI2D                        texture   sint4          2d    0        1
+// SwizzleProperties                 cbuffer      NA          NA    0        1
+//
+//
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float       
+// TEXCOORD                 0   xy          1     NONE   float   xy  
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_TARGET                0   xyzw        0   TARGET     int   xyzw
+//
+ps_4_0
+dcl_constantbuffer cb0[1], immediateIndexed
+dcl_resource_texture2d (sint,sint,sint,sint) t0
+dcl_input_ps linear v1.xy
+dcl_output o0.xyzw
+dcl_temps 1
+dcl_indexableTemp x0[6], 4
+resinfo_uint r0.xyzw, l(0), t0.xyzw
+utof r0.xy, r0.xyxx
+mul r0.xy, r0.xyxx, v1.xyxx
+ftoi r0.xy, r0.xyxx
+mov r0.zw, l(0,0,0,0)
+ld r0.xyzw, r0.xyzw, t0.xyzw
+mov x0[0].x, r0.x
+mov x0[1].x, r0.y
+mov x0[2].x, r0.z
+mov x0[3].x, r0.w
+mov x0[4].x, l(0)
+mov x0[5].x, l(1)
+mov r0.x, cb0[0].x
+mov o0.x, x0[r0.x + 0].x
+mov r0.x, cb0[0].y
+mov o0.y, x0[r0.x + 0].x
+mov r0.x, cb0[0].z
+mov o0.z, x0[r0.x + 0].x
+mov r0.x, cb0[0].w
+mov o0.w, x0[r0.x + 0].x
+ret 
+// Approximately 21 instruction slots used
+#endif
+
+const BYTE g_PS_SwizzleI2D[] =
+{
+     68,  88,  66,  67, 137,  89, 
+    210, 142, 141,   7,  14, 194, 
+    111,  71,  23, 167, 232, 166, 
+    154,  59,   1,   0,   0,   0, 
+    164,   4,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+     60,   1,   0,   0, 148,   1, 
+      0,   0, 200,   1,   0,   0, 
+     40,   4,   0,   0,  82,  68, 
+     69,  70,   0,   1,   0,   0, 
+      1,   0,   0,   0, 124,   0, 
+      0,   0,   2,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+    204,   0,   0,   0,  92,   0, 
+      0,   0,   2,   0,   0,   0, 
+      3,   0,   0,   0,   4,   0, 
+      0,   0, 255, 255, 255, 255, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  13,   0,   0,   0, 
+    103,   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,   1,   0, 
+      0,   0,  84, 101, 120, 116, 
+    117, 114, 101,  73,  50,  68, 
+      0,  83, 119, 105, 122, 122, 
+    108, 101,  80, 114, 111, 112, 
+    101, 114, 116, 105, 101, 115, 
+      0, 171, 171, 171, 103,   0, 
+      0,   0,   1,   0,   0,   0, 
+    148,   0,   0,   0,  16,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0, 172,   0, 
+      0,   0,   0,   0,   0,   0, 
+     16,   0,   0,   0,   2,   0, 
+      0,   0, 188,   0,   0,   0, 
+      0,   0,   0,   0,  83, 119, 
+    105, 122, 122, 108, 101,  73, 
+    110, 100, 105,  99, 101, 115, 
+      0, 171,   1,   0,  19,   0, 
+      1,   0,   4,   0,   0,   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,  51,  48,  46,  57,  50, 
+     48,  48,  46,  49,  54,  51, 
+     56,  52,   0, 171,  73,  83, 
+     71,  78,  80,   0,   0,   0, 
+      2,   0,   0,   0,   8,   0, 
+      0,   0,  56,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  68,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+      1,   0,   0,   0,   3,   3, 
+      0,   0,  83,  86,  95,  80, 
+     79,  83,  73,  84,  73,  79, 
+     78,   0,  84,  69,  88,  67, 
+     79,  79,  82,  68,   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, 
+      2,   0,   0,   0,   0,   0, 
+      0,   0,  15,   0,   0,   0, 
+     83,  86,  95,  84,  65,  82, 
+     71,  69,  84,   0, 171, 171, 
+     83,  72,  68,  82,  88,   2, 
+      0,   0,  64,   0,   0,   0, 
+    150,   0,   0,   0,  89,   0, 
+      0,   4,  70, 142,  32,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  88,  24,   0,   4, 
+      0, 112,  16,   0,   0,   0, 
+      0,   0,  51,  51,   0,   0, 
+     98,  16,   0,   3,  50,  16, 
+     16,   0,   1,   0,   0,   0, 
+    101,   0,   0,   3, 242,  32, 
+     16,   0,   0,   0,   0,   0, 
+    104,   0,   0,   2,   1,   0, 
+      0,   0, 105,   0,   0,   4, 
+      0,   0,   0,   0,   6,   0, 
+      0,   0,   4,   0,   0,   0, 
+     61,  16,   0,   7, 242,   0, 
+     16,   0,   0,   0,   0,   0, 
+      1,  64,   0,   0,   0,   0, 
+      0,   0,  70, 126,  16,   0, 
+      0,   0,   0,   0,  86,   0, 
+      0,   5,  50,   0,  16,   0, 
+      0,   0,   0,   0,  70,   0, 
+     16,   0,   0,   0,   0,   0, 
+     56,   0,   0,   7,  50,   0, 
+     16,   0,   0,   0,   0,   0, 
+     70,   0,  16,   0,   0,   0, 
+      0,   0,  70,  16,  16,   0, 
+      1,   0,   0,   0,  27,   0, 
+      0,   5,  50,   0,  16,   0, 
+      0,   0,   0,   0,  70,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   8, 194,   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, 
+      0,   0,  45,   0,   0,   7, 
+    242,   0,  16,   0,   0,   0, 
+      0,   0,  70,  14,  16,   0, 
+      0,   0,   0,   0,  70, 126, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   6,  18,  48, 
+     32,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  10,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   6,  18,  48, 
+     32,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,  26,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   6,  18,  48, 
+     32,   0,   0,   0,   0,   0, 
+      2,   0,   0,   0,  42,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   6,  18,  48, 
+     32,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,  58,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   6,  18,  48, 
+     32,   0,   0,   0,   0,   0, 
+      4,   0,   0,   0,   1,  64, 
+      0,   0,   0,   0,   0,   0, 
+     54,   0,   0,   6,  18,  48, 
+     32,   0,   0,   0,   0,   0, 
+      5,   0,   0,   0,   1,  64, 
+      0,   0,   1,   0,   0,   0, 
+     54,   0,   0,   6,  18,   0, 
+     16,   0,   0,   0,   0,   0, 
+     10, 128,  32,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     54,   0,   0,   7,  18,  32, 
+     16,   0,   0,   0,   0,   0, 
+     10,  48,  32,   4,   0,   0, 
+      0,   0,  10,   0,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   6,  18,   0,  16,   0, 
+      0,   0,   0,   0,  26, 128, 
+     32,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   7,  34,  32,  16,   0, 
+      0,   0,   0,   0,  10,  48, 
+     32,   4,   0,   0,   0,   0, 
+     10,   0,  16,   0,   0,   0, 
+      0,   0,  54,   0,   0,   6, 
+     18,   0,  16,   0,   0,   0, 
+      0,   0,  42, 128,  32,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  54,   0,   0,   7, 
+     66,  32,  16,   0,   0,   0, 
+      0,   0,  10,  48,  32,   4, 
+      0,   0,   0,   0,  10,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   6,  18,   0, 
+     16,   0,   0,   0,   0,   0, 
+     58, 128,  32,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     54,   0,   0,   7, 130,  32, 
+     16,   0,   0,   0,   0,   0, 
+     10,  48,  32,   4,   0,   0, 
+      0,   0,  10,   0,  16,   0, 
+      0,   0,   0,   0,  62,   0, 
+      0,   1,  83,  84,  65,  84, 
+    116,   0,   0,   0,  21,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   2,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   6,   0,   0,   0, 
+     10,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   6,   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, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledswizzlei3dpsh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzlei3dps.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzlei3dps.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzlei3dps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,278 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+// Buffer Definitions: 
+//
+// cbuffer SwizzleProperties
+// {
+//
+//   uint4 SwizzleIndices;              // Offset:    0 Size:    16
+//
+// }
+//
+//
+// Resource Bindings:
+//
+// Name                                 Type  Format         Dim Slot Elements
+// ------------------------------ ---------- ------- ----------- ---- --------
+// TextureI3D                        texture   sint4          3d    0        1
+// SwizzleProperties                 cbuffer      NA          NA    0        1
+//
+//
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float       
+// SV_RENDERTARGETARRAYINDEX     0   x           1  RTINDEX    uint       
+// TEXCOORD                 0   xyz         2     NONE   float   xyz 
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_TARGET                0   xyzw        0   TARGET     int   xyzw
+//
+ps_4_0
+dcl_constantbuffer cb0[1], immediateIndexed
+dcl_resource_texture3d (sint,sint,sint,sint) t0
+dcl_input_ps linear v2.xyz
+dcl_output o0.xyzw
+dcl_temps 1
+dcl_indexableTemp x0[6], 4
+resinfo_uint r0.xyzw, l(0), t0.xyzw
+utof r0.xyz, r0.xyzx
+mul r0.xyz, r0.xyzx, v2.xyzx
+ftoi r0.xyz, r0.xyzx
+mov r0.w, l(0)
+ld r0.xyzw, r0.xyzw, t0.xyzw
+mov x0[0].x, r0.x
+mov x0[1].x, r0.y
+mov x0[2].x, r0.z
+mov x0[3].x, r0.w
+mov x0[4].x, l(0)
+mov x0[5].x, l(1)
+mov r0.x, cb0[0].x
+mov o0.x, x0[r0.x + 0].x
+mov r0.x, cb0[0].y
+mov o0.y, x0[r0.x + 0].x
+mov r0.x, cb0[0].z
+mov o0.z, x0[r0.x + 0].x
+mov r0.x, cb0[0].w
+mov o0.w, x0[r0.x + 0].x
+ret 
+// Approximately 21 instruction slots used
+#endif
+
+const BYTE g_PS_SwizzleI3D[] =
+{
+     68,  88,  66,  67, 101,  41, 
+    194, 229, 103, 175, 204, 102, 
+    192,  43, 200, 161, 117, 114, 
+     19, 252,   1,   0,   0,   0, 
+    200,   4,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+     60,   1,   0,   0, 196,   1, 
+      0,   0, 248,   1,   0,   0, 
+     76,   4,   0,   0,  82,  68, 
+     69,  70,   0,   1,   0,   0, 
+      1,   0,   0,   0, 124,   0, 
+      0,   0,   2,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+    204,   0,   0,   0,  92,   0, 
+      0,   0,   2,   0,   0,   0, 
+      3,   0,   0,   0,   8,   0, 
+      0,   0, 255, 255, 255, 255, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  13,   0,   0,   0, 
+    103,   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,   1,   0, 
+      0,   0,  84, 101, 120, 116, 
+    117, 114, 101,  73,  51,  68, 
+      0,  83, 119, 105, 122, 122, 
+    108, 101,  80, 114, 111, 112, 
+    101, 114, 116, 105, 101, 115, 
+      0, 171, 171, 171, 103,   0, 
+      0,   0,   1,   0,   0,   0, 
+    148,   0,   0,   0,  16,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0, 172,   0, 
+      0,   0,   0,   0,   0,   0, 
+     16,   0,   0,   0,   2,   0, 
+      0,   0, 188,   0,   0,   0, 
+      0,   0,   0,   0,  83, 119, 
+    105, 122, 122, 108, 101,  73, 
+    110, 100, 105,  99, 101, 115, 
+      0, 171,   1,   0,  19,   0, 
+      1,   0,   4,   0,   0,   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,  51,  48,  46,  57,  50, 
+     48,  48,  46,  49,  54,  51, 
+     56,  52,   0, 171,  73,  83, 
+     71,  78, 128,   0,   0,   0, 
+      3,   0,   0,   0,   8,   0, 
+      0,   0,  80,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  92,   0,   0,   0, 
+      0,   0,   0,   0,   4,   0, 
+      0,   0,   1,   0,   0,   0, 
+      1,   0,   0,   0,   1,   0, 
+      0,   0, 118,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+      2,   0,   0,   0,   7,   7, 
+      0,   0,  83,  86,  95,  80, 
+     79,  83,  73,  84,  73,  79, 
+     78,   0,  83,  86,  95,  82, 
+     69,  78,  68,  69,  82,  84, 
+     65,  82,  71,  69,  84,  65, 
+     82,  82,  65,  89,  73,  78, 
+     68,  69,  88,   0,  84,  69, 
+     88,  67,  79,  79,  82,  68, 
+      0, 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, 
+      2,   0,   0,   0,   0,   0, 
+      0,   0,  15,   0,   0,   0, 
+     83,  86,  95,  84,  65,  82, 
+     71,  69,  84,   0, 171, 171, 
+     83,  72,  68,  82,  76,   2, 
+      0,   0,  64,   0,   0,   0, 
+    147,   0,   0,   0,  89,   0, 
+      0,   4,  70, 142,  32,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  88,  40,   0,   4, 
+      0, 112,  16,   0,   0,   0, 
+      0,   0,  51,  51,   0,   0, 
+     98,  16,   0,   3, 114,  16, 
+     16,   0,   2,   0,   0,   0, 
+    101,   0,   0,   3, 242,  32, 
+     16,   0,   0,   0,   0,   0, 
+    104,   0,   0,   2,   1,   0, 
+      0,   0, 105,   0,   0,   4, 
+      0,   0,   0,   0,   6,   0, 
+      0,   0,   4,   0,   0,   0, 
+     61,  16,   0,   7, 242,   0, 
+     16,   0,   0,   0,   0,   0, 
+      1,  64,   0,   0,   0,   0, 
+      0,   0,  70, 126,  16,   0, 
+      0,   0,   0,   0,  86,   0, 
+      0,   5, 114,   0,  16,   0, 
+      0,   0,   0,   0,  70,   2, 
+     16,   0,   0,   0,   0,   0, 
+     56,   0,   0,   7, 114,   0, 
+     16,   0,   0,   0,   0,   0, 
+     70,   2,  16,   0,   0,   0, 
+      0,   0,  70,  18,  16,   0, 
+      2,   0,   0,   0,  27,   0, 
+      0,   5, 114,   0,  16,   0, 
+      0,   0,   0,   0,  70,   2, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   5, 130,   0, 
+     16,   0,   0,   0,   0,   0, 
+      1,  64,   0,   0,   0,   0, 
+      0,   0,  45,   0,   0,   7, 
+    242,   0,  16,   0,   0,   0, 
+      0,   0,  70,  14,  16,   0, 
+      0,   0,   0,   0,  70, 126, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   6,  18,  48, 
+     32,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  10,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   6,  18,  48, 
+     32,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,  26,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   6,  18,  48, 
+     32,   0,   0,   0,   0,   0, 
+      2,   0,   0,   0,  42,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   6,  18,  48, 
+     32,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,  58,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   6,  18,  48, 
+     32,   0,   0,   0,   0,   0, 
+      4,   0,   0,   0,   1,  64, 
+      0,   0,   0,   0,   0,   0, 
+     54,   0,   0,   6,  18,  48, 
+     32,   0,   0,   0,   0,   0, 
+      5,   0,   0,   0,   1,  64, 
+      0,   0,   1,   0,   0,   0, 
+     54,   0,   0,   6,  18,   0, 
+     16,   0,   0,   0,   0,   0, 
+     10, 128,  32,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     54,   0,   0,   7,  18,  32, 
+     16,   0,   0,   0,   0,   0, 
+     10,  48,  32,   4,   0,   0, 
+      0,   0,  10,   0,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   6,  18,   0,  16,   0, 
+      0,   0,   0,   0,  26, 128, 
+     32,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   7,  34,  32,  16,   0, 
+      0,   0,   0,   0,  10,  48, 
+     32,   4,   0,   0,   0,   0, 
+     10,   0,  16,   0,   0,   0, 
+      0,   0,  54,   0,   0,   6, 
+     18,   0,  16,   0,   0,   0, 
+      0,   0,  42, 128,  32,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  54,   0,   0,   7, 
+     66,  32,  16,   0,   0,   0, 
+      0,   0,  10,  48,  32,   4, 
+      0,   0,   0,   0,  10,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   6,  18,   0, 
+     16,   0,   0,   0,   0,   0, 
+     58, 128,  32,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     54,   0,   0,   7, 130,  32, 
+     16,   0,   0,   0,   0,   0, 
+     10,  48,  32,   4,   0,   0, 
+      0,   0,  10,   0,  16,   0, 
+      0,   0,   0,   0,  62,   0, 
+      0,   1,  83,  84,  65,  84, 
+    116,   0,   0,   0,  21,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   2,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   6,   0,   0,   0, 
+     10,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   6,   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, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledswizzleui2darraypsh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzleui2darrayps.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzleui2darrayps.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzleui2darrayps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,287 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+// Buffer Definitions: 
+//
+// cbuffer SwizzleProperties
+// {
+//
+//   uint4 SwizzleIndices;              // Offset:    0 Size:    16
+//
+// }
+//
+//
+// Resource Bindings:
+//
+// Name                                 Type  Format         Dim Slot Elements
+// ------------------------------ ---------- ------- ----------- ---- --------
+// TextureUI2DArray                  texture   uint4     2darray    0        1
+// SwizzleProperties                 cbuffer      NA          NA    0        1
+//
+//
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float       
+// SV_RENDERTARGETARRAYINDEX     0   x           1  RTINDEX    uint   x   
+// TEXCOORD                 0   xyz         2     NONE   float   xy  
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_TARGET                0   xyzw        0   TARGET    uint   xyzw
+//
+ps_4_0
+dcl_constantbuffer cb0[1], immediateIndexed
+dcl_resource_texture2darray (uint,uint,uint,uint) t0
+dcl_input_ps_siv constant v1.x, rendertarget_array_index
+dcl_input_ps linear v2.xy
+dcl_output o0.xyzw
+dcl_temps 1
+dcl_indexableTemp x0[6], 4
+resinfo_uint r0.xyzw, l(0), t0.xyzw
+utof r0.xy, r0.xyxx
+mul r0.xy, r0.xyxx, v2.xyxx
+ftoi r0.xy, r0.xyxx
+mov r0.z, v1.x
+mov r0.w, l(0)
+ld r0.xyzw, r0.xyzw, t0.xyzw
+mov x0[0].x, r0.x
+mov x0[1].x, r0.y
+mov x0[2].x, r0.z
+mov x0[3].x, r0.w
+mov x0[4].x, l(0)
+mov x0[5].x, l(1)
+mov r0.x, cb0[0].x
+mov o0.x, x0[r0.x + 0].x
+mov r0.x, cb0[0].y
+mov o0.y, x0[r0.x + 0].x
+mov r0.x, cb0[0].z
+mov o0.z, x0[r0.x + 0].x
+mov r0.x, cb0[0].w
+mov o0.w, x0[r0.x + 0].x
+ret 
+// Approximately 22 instruction slots used
+#endif
+
+const BYTE g_PS_SwizzleUI2DArray[] =
+{
+     68,  88,  66,  67, 239, 117, 
+    221,  64, 238, 147, 130,  15, 
+     39,  48, 171, 143,  66,  71, 
+    242,  70,   1,   0,   0,   0, 
+    240,   4,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+     64,   1,   0,   0, 200,   1, 
+      0,   0, 252,   1,   0,   0, 
+    116,   4,   0,   0,  82,  68, 
+     69,  70,   4,   1,   0,   0, 
+      1,   0,   0,   0, 128,   0, 
+      0,   0,   2,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+    208,   0,   0,   0,  92,   0, 
+      0,   0,   2,   0,   0,   0, 
+      4,   0,   0,   0,   5,   0, 
+      0,   0, 255, 255, 255, 255, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  13,   0,   0,   0, 
+    109,   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,   1,   0, 
+      0,   0,  84, 101, 120, 116, 
+    117, 114, 101,  85,  73,  50, 
+     68,  65, 114, 114,  97, 121, 
+      0,  83, 119, 105, 122, 122, 
+    108, 101,  80, 114, 111, 112, 
+    101, 114, 116, 105, 101, 115, 
+      0, 171, 109,   0,   0,   0, 
+      1,   0,   0,   0, 152,   0, 
+      0,   0,  16,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0, 176,   0,   0,   0, 
+      0,   0,   0,   0,  16,   0, 
+      0,   0,   2,   0,   0,   0, 
+    192,   0,   0,   0,   0,   0, 
+      0,   0,  83, 119, 105, 122, 
+    122, 108, 101,  73, 110, 100, 
+    105,  99, 101, 115,   0, 171, 
+      1,   0,  19,   0,   1,   0, 
+      4,   0,   0,   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,  51, 
+     48,  46,  57,  50,  48,  48, 
+     46,  49,  54,  51,  56,  52, 
+      0, 171,  73,  83,  71,  78, 
+    128,   0,   0,   0,   3,   0, 
+      0,   0,   8,   0,   0,   0, 
+     80,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+      3,   0,   0,   0,   0,   0, 
+      0,   0,  15,   0,   0,   0, 
+     92,   0,   0,   0,   0,   0, 
+      0,   0,   4,   0,   0,   0, 
+      1,   0,   0,   0,   1,   0, 
+      0,   0,   1,   1,   0,   0, 
+    118,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,   2,   0, 
+      0,   0,   7,   3,   0,   0, 
+     83,  86,  95,  80,  79,  83, 
+     73,  84,  73,  79,  78,   0, 
+     83,  86,  95,  82,  69,  78, 
+     68,  69,  82,  84,  65,  82, 
+     71,  69,  84,  65,  82,  82, 
+     65,  89,  73,  78,  68,  69, 
+     88,   0,  84,  69,  88,  67, 
+     79,  79,  82,  68,   0, 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,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+     15,   0,   0,   0,  83,  86, 
+     95,  84,  65,  82,  71,  69, 
+     84,   0, 171, 171,  83,  72, 
+     68,  82, 112,   2,   0,   0, 
+     64,   0,   0,   0, 156,   0, 
+      0,   0,  89,   0,   0,   4, 
+     70, 142,  32,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+     88,  64,   0,   4,   0, 112, 
+     16,   0,   0,   0,   0,   0, 
+     68,  68,   0,   0, 100,   8, 
+      0,   4,  18,  16,  16,   0, 
+      1,   0,   0,   0,   4,   0, 
+      0,   0,  98,  16,   0,   3, 
+     50,  16,  16,   0,   2,   0, 
+      0,   0, 101,   0,   0,   3, 
+    242,  32,  16,   0,   0,   0, 
+      0,   0, 104,   0,   0,   2, 
+      1,   0,   0,   0, 105,   0, 
+      0,   4,   0,   0,   0,   0, 
+      6,   0,   0,   0,   4,   0, 
+      0,   0,  61,  16,   0,   7, 
+    242,   0,  16,   0,   0,   0, 
+      0,   0,   1,  64,   0,   0, 
+      0,   0,   0,   0,  70, 126, 
+     16,   0,   0,   0,   0,   0, 
+     86,   0,   0,   5,  50,   0, 
+     16,   0,   0,   0,   0,   0, 
+     70,   0,  16,   0,   0,   0, 
+      0,   0,  56,   0,   0,   7, 
+     50,   0,  16,   0,   0,   0, 
+      0,   0,  70,   0,  16,   0, 
+      0,   0,   0,   0,  70,  16, 
+     16,   0,   2,   0,   0,   0, 
+     27,   0,   0,   5,  50,   0, 
+     16,   0,   0,   0,   0,   0, 
+     70,   0,  16,   0,   0,   0, 
+      0,   0,  54,   0,   0,   5, 
+     66,   0,  16,   0,   0,   0, 
+      0,   0,  10,  16,  16,   0, 
+      1,   0,   0,   0,  54,   0, 
+      0,   5, 130,   0,  16,   0, 
+      0,   0,   0,   0,   1,  64, 
+      0,   0,   0,   0,   0,   0, 
+     45,   0,   0,   7, 242,   0, 
+     16,   0,   0,   0,   0,   0, 
+     70,  14,  16,   0,   0,   0, 
+      0,   0,  70, 126,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   6,  18,  48,  32,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  10,   0,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   6,  18,  48,  32,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  26,   0,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   6,  18,  48,  32,   0, 
+      0,   0,   0,   0,   2,   0, 
+      0,   0,  42,   0,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   6,  18,  48,  32,   0, 
+      0,   0,   0,   0,   3,   0, 
+      0,   0,  58,   0,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   6,  18,  48,  32,   0, 
+      0,   0,   0,   0,   4,   0, 
+      0,   0,   1,  64,   0,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   6,  18,  48,  32,   0, 
+      0,   0,   0,   0,   5,   0, 
+      0,   0,   1,  64,   0,   0, 
+      1,   0,   0,   0,  54,   0, 
+      0,   6,  18,   0,  16,   0, 
+      0,   0,   0,   0,  10, 128, 
+     32,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   7,  18,  32,  16,   0, 
+      0,   0,   0,   0,  10,  48, 
+     32,   4,   0,   0,   0,   0, 
+     10,   0,  16,   0,   0,   0, 
+      0,   0,  54,   0,   0,   6, 
+     18,   0,  16,   0,   0,   0, 
+      0,   0,  26, 128,  32,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  54,   0,   0,   7, 
+     34,  32,  16,   0,   0,   0, 
+      0,   0,  10,  48,  32,   4, 
+      0,   0,   0,   0,  10,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   6,  18,   0, 
+     16,   0,   0,   0,   0,   0, 
+     42, 128,  32,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     54,   0,   0,   7,  66,  32, 
+     16,   0,   0,   0,   0,   0, 
+     10,  48,  32,   4,   0,   0, 
+      0,   0,  10,   0,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   6,  18,   0,  16,   0, 
+      0,   0,   0,   0,  58, 128, 
+     32,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   7, 130,  32,  16,   0, 
+      0,   0,   0,   0,  10,  48, 
+     32,   4,   0,   0,   0,   0, 
+     10,   0,  16,   0,   0,   0, 
+      0,   0,  62,   0,   0,   1, 
+     83,  84,  65,  84, 116,   0, 
+      0,   0,  22,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      6,   0,   0,   0,  10,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      7,   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,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledswizzleui2dpsh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzleui2dps.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzleui2dps.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzleui2dps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,271 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+// Buffer Definitions: 
+//
+// cbuffer SwizzleProperties
+// {
+//
+//   uint4 SwizzleIndices;              // Offset:    0 Size:    16
+//
+// }
+//
+//
+// Resource Bindings:
+//
+// Name                                 Type  Format         Dim Slot Elements
+// ------------------------------ ---------- ------- ----------- ---- --------
+// TextureUI2D                       texture   uint4          2d    0        1
+// SwizzleProperties                 cbuffer      NA          NA    0        1
+//
+//
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float       
+// TEXCOORD                 0   xy          1     NONE   float   xy  
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_TARGET                0   xyzw        0   TARGET    uint   xyzw
+//
+ps_4_0
+dcl_constantbuffer cb0[1], immediateIndexed
+dcl_resource_texture2d (uint,uint,uint,uint) t0
+dcl_input_ps linear v1.xy
+dcl_output o0.xyzw
+dcl_temps 1
+dcl_indexableTemp x0[6], 4
+resinfo_uint r0.xyzw, l(0), t0.xyzw
+utof r0.xy, r0.xyxx
+mul r0.xy, r0.xyxx, v1.xyxx
+ftoi r0.xy, r0.xyxx
+mov r0.zw, l(0,0,0,0)
+ld r0.xyzw, r0.xyzw, t0.xyzw
+mov x0[0].x, r0.x
+mov x0[1].x, r0.y
+mov x0[2].x, r0.z
+mov x0[3].x, r0.w
+mov x0[4].x, l(0)
+mov x0[5].x, l(1)
+mov r0.x, cb0[0].x
+mov o0.x, x0[r0.x + 0].x
+mov r0.x, cb0[0].y
+mov o0.y, x0[r0.x + 0].x
+mov r0.x, cb0[0].z
+mov o0.z, x0[r0.x + 0].x
+mov r0.x, cb0[0].w
+mov o0.w, x0[r0.x + 0].x
+ret 
+// Approximately 21 instruction slots used
+#endif
+
+const BYTE g_PS_SwizzleUI2D[] =
+{
+     68,  88,  66,  67, 255, 167, 
+     19, 151,  79, 137,  69, 230, 
+    159,  28, 107, 211,  13, 155, 
+    249, 151,   1,   0,   0,   0, 
+    164,   4,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+     60,   1,   0,   0, 148,   1, 
+      0,   0, 200,   1,   0,   0, 
+     40,   4,   0,   0,  82,  68, 
+     69,  70,   0,   1,   0,   0, 
+      1,   0,   0,   0, 124,   0, 
+      0,   0,   2,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+    204,   0,   0,   0,  92,   0, 
+      0,   0,   2,   0,   0,   0, 
+      4,   0,   0,   0,   4,   0, 
+      0,   0, 255, 255, 255, 255, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  13,   0,   0,   0, 
+    104,   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,   1,   0, 
+      0,   0,  84, 101, 120, 116, 
+    117, 114, 101,  85,  73,  50, 
+     68,   0,  83, 119, 105, 122, 
+    122, 108, 101,  80, 114, 111, 
+    112, 101, 114, 116, 105, 101, 
+    115,   0, 171, 171, 104,   0, 
+      0,   0,   1,   0,   0,   0, 
+    148,   0,   0,   0,  16,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0, 172,   0, 
+      0,   0,   0,   0,   0,   0, 
+     16,   0,   0,   0,   2,   0, 
+      0,   0, 188,   0,   0,   0, 
+      0,   0,   0,   0,  83, 119, 
+    105, 122, 122, 108, 101,  73, 
+    110, 100, 105,  99, 101, 115, 
+      0, 171,   1,   0,  19,   0, 
+      1,   0,   4,   0,   0,   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,  51,  48,  46,  57,  50, 
+     48,  48,  46,  49,  54,  51, 
+     56,  52,   0, 171,  73,  83, 
+     71,  78,  80,   0,   0,   0, 
+      2,   0,   0,   0,   8,   0, 
+      0,   0,  56,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  68,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+      1,   0,   0,   0,   3,   3, 
+      0,   0,  83,  86,  95,  80, 
+     79,  83,  73,  84,  73,  79, 
+     78,   0,  84,  69,  88,  67, 
+     79,  79,  82,  68,   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, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,  15,   0,   0,   0, 
+     83,  86,  95,  84,  65,  82, 
+     71,  69,  84,   0, 171, 171, 
+     83,  72,  68,  82,  88,   2, 
+      0,   0,  64,   0,   0,   0, 
+    150,   0,   0,   0,  89,   0, 
+      0,   4,  70, 142,  32,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  88,  24,   0,   4, 
+      0, 112,  16,   0,   0,   0, 
+      0,   0,  68,  68,   0,   0, 
+     98,  16,   0,   3,  50,  16, 
+     16,   0,   1,   0,   0,   0, 
+    101,   0,   0,   3, 242,  32, 
+     16,   0,   0,   0,   0,   0, 
+    104,   0,   0,   2,   1,   0, 
+      0,   0, 105,   0,   0,   4, 
+      0,   0,   0,   0,   6,   0, 
+      0,   0,   4,   0,   0,   0, 
+     61,  16,   0,   7, 242,   0, 
+     16,   0,   0,   0,   0,   0, 
+      1,  64,   0,   0,   0,   0, 
+      0,   0,  70, 126,  16,   0, 
+      0,   0,   0,   0,  86,   0, 
+      0,   5,  50,   0,  16,   0, 
+      0,   0,   0,   0,  70,   0, 
+     16,   0,   0,   0,   0,   0, 
+     56,   0,   0,   7,  50,   0, 
+     16,   0,   0,   0,   0,   0, 
+     70,   0,  16,   0,   0,   0, 
+      0,   0,  70,  16,  16,   0, 
+      1,   0,   0,   0,  27,   0, 
+      0,   5,  50,   0,  16,   0, 
+      0,   0,   0,   0,  70,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   8, 194,   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, 
+      0,   0,  45,   0,   0,   7, 
+    242,   0,  16,   0,   0,   0, 
+      0,   0,  70,  14,  16,   0, 
+      0,   0,   0,   0,  70, 126, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   6,  18,  48, 
+     32,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  10,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   6,  18,  48, 
+     32,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,  26,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   6,  18,  48, 
+     32,   0,   0,   0,   0,   0, 
+      2,   0,   0,   0,  42,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   6,  18,  48, 
+     32,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,  58,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   6,  18,  48, 
+     32,   0,   0,   0,   0,   0, 
+      4,   0,   0,   0,   1,  64, 
+      0,   0,   0,   0,   0,   0, 
+     54,   0,   0,   6,  18,  48, 
+     32,   0,   0,   0,   0,   0, 
+      5,   0,   0,   0,   1,  64, 
+      0,   0,   1,   0,   0,   0, 
+     54,   0,   0,   6,  18,   0, 
+     16,   0,   0,   0,   0,   0, 
+     10, 128,  32,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     54,   0,   0,   7,  18,  32, 
+     16,   0,   0,   0,   0,   0, 
+     10,  48,  32,   4,   0,   0, 
+      0,   0,  10,   0,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   6,  18,   0,  16,   0, 
+      0,   0,   0,   0,  26, 128, 
+     32,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   7,  34,  32,  16,   0, 
+      0,   0,   0,   0,  10,  48, 
+     32,   4,   0,   0,   0,   0, 
+     10,   0,  16,   0,   0,   0, 
+      0,   0,  54,   0,   0,   6, 
+     18,   0,  16,   0,   0,   0, 
+      0,   0,  42, 128,  32,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  54,   0,   0,   7, 
+     66,  32,  16,   0,   0,   0, 
+      0,   0,  10,  48,  32,   4, 
+      0,   0,   0,   0,  10,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   6,  18,   0, 
+     16,   0,   0,   0,   0,   0, 
+     58, 128,  32,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     54,   0,   0,   7, 130,  32, 
+     16,   0,   0,   0,   0,   0, 
+     10,  48,  32,   4,   0,   0, 
+      0,   0,  10,   0,  16,   0, 
+      0,   0,   0,   0,  62,   0, 
+      0,   1,  83,  84,  65,  84, 
+    116,   0,   0,   0,  21,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   2,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   6,   0,   0,   0, 
+     10,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   6,   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, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d11shaderscompiledswizzleui3dpsh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzleui3dps.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzleui3dps.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d11/shaders/compiled/swizzleui3dps.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,278 @@
</span><ins>+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.16384
+//
+//
+///
+// Buffer Definitions: 
+//
+// cbuffer SwizzleProperties
+// {
+//
+//   uint4 SwizzleIndices;              // Offset:    0 Size:    16
+//
+// }
+//
+//
+// Resource Bindings:
+//
+// Name                                 Type  Format         Dim Slot Elements
+// ------------------------------ ---------- ------- ----------- ---- --------
+// TextureUI3D                       texture   uint4          3d    0        1
+// SwizzleProperties                 cbuffer      NA          NA    0        1
+//
+//
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float       
+// SV_RENDERTARGETARRAYINDEX     0   x           1  RTINDEX    uint       
+// TEXCOORD                 0   xyz         2     NONE   float   xyz 
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_TARGET                0   xyzw        0   TARGET    uint   xyzw
+//
+ps_4_0
+dcl_constantbuffer cb0[1], immediateIndexed
+dcl_resource_texture3d (uint,uint,uint,uint) t0
+dcl_input_ps linear v2.xyz
+dcl_output o0.xyzw
+dcl_temps 1
+dcl_indexableTemp x0[6], 4
+resinfo_uint r0.xyzw, l(0), t0.xyzw
+utof r0.xyz, r0.xyzx
+mul r0.xyz, r0.xyzx, v2.xyzx
+ftoi r0.xyz, r0.xyzx
+mov r0.w, l(0)
+ld r0.xyzw, r0.xyzw, t0.xyzw
+mov x0[0].x, r0.x
+mov x0[1].x, r0.y
+mov x0[2].x, r0.z
+mov x0[3].x, r0.w
+mov x0[4].x, l(0)
+mov x0[5].x, l(1)
+mov r0.x, cb0[0].x
+mov o0.x, x0[r0.x + 0].x
+mov r0.x, cb0[0].y
+mov o0.y, x0[r0.x + 0].x
+mov r0.x, cb0[0].z
+mov o0.z, x0[r0.x + 0].x
+mov r0.x, cb0[0].w
+mov o0.w, x0[r0.x + 0].x
+ret 
+// Approximately 21 instruction slots used
+#endif
+
+const BYTE g_PS_SwizzleUI3D[] =
+{
+     68,  88,  66,  67,  49,   1, 
+    112, 225, 163, 227, 102,  82, 
+    218,   3, 161,  60, 179,  27, 
+     12, 252,   1,   0,   0,   0, 
+    200,   4,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+     60,   1,   0,   0, 196,   1, 
+      0,   0, 248,   1,   0,   0, 
+     76,   4,   0,   0,  82,  68, 
+     69,  70,   0,   1,   0,   0, 
+      1,   0,   0,   0, 124,   0, 
+      0,   0,   2,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+    204,   0,   0,   0,  92,   0, 
+      0,   0,   2,   0,   0,   0, 
+      4,   0,   0,   0,   8,   0, 
+      0,   0, 255, 255, 255, 255, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  13,   0,   0,   0, 
+    104,   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,   1,   0, 
+      0,   0,  84, 101, 120, 116, 
+    117, 114, 101,  85,  73,  51, 
+     68,   0,  83, 119, 105, 122, 
+    122, 108, 101,  80, 114, 111, 
+    112, 101, 114, 116, 105, 101, 
+    115,   0, 171, 171, 104,   0, 
+      0,   0,   1,   0,   0,   0, 
+    148,   0,   0,   0,  16,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0, 172,   0, 
+      0,   0,   0,   0,   0,   0, 
+     16,   0,   0,   0,   2,   0, 
+      0,   0, 188,   0,   0,   0, 
+      0,   0,   0,   0,  83, 119, 
+    105, 122, 122, 108, 101,  73, 
+    110, 100, 105,  99, 101, 115, 
+      0, 171,   1,   0,  19,   0, 
+      1,   0,   4,   0,   0,   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,  51,  48,  46,  57,  50, 
+     48,  48,  46,  49,  54,  51, 
+     56,  52,   0, 171,  73,  83, 
+     71,  78, 128,   0,   0,   0, 
+      3,   0,   0,   0,   8,   0, 
+      0,   0,  80,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  92,   0,   0,   0, 
+      0,   0,   0,   0,   4,   0, 
+      0,   0,   1,   0,   0,   0, 
+      1,   0,   0,   0,   1,   0, 
+      0,   0, 118,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+      2,   0,   0,   0,   7,   7, 
+      0,   0,  83,  86,  95,  80, 
+     79,  83,  73,  84,  73,  79, 
+     78,   0,  83,  86,  95,  82, 
+     69,  78,  68,  69,  82,  84, 
+     65,  82,  71,  69,  84,  65, 
+     82,  82,  65,  89,  73,  78, 
+     68,  69,  88,   0,  84,  69, 
+     88,  67,  79,  79,  82,  68, 
+      0, 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, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,  15,   0,   0,   0, 
+     83,  86,  95,  84,  65,  82, 
+     71,  69,  84,   0, 171, 171, 
+     83,  72,  68,  82,  76,   2, 
+      0,   0,  64,   0,   0,   0, 
+    147,   0,   0,   0,  89,   0, 
+      0,   4,  70, 142,  32,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  88,  40,   0,   4, 
+      0, 112,  16,   0,   0,   0, 
+      0,   0,  68,  68,   0,   0, 
+     98,  16,   0,   3, 114,  16, 
+     16,   0,   2,   0,   0,   0, 
+    101,   0,   0,   3, 242,  32, 
+     16,   0,   0,   0,   0,   0, 
+    104,   0,   0,   2,   1,   0, 
+      0,   0, 105,   0,   0,   4, 
+      0,   0,   0,   0,   6,   0, 
+      0,   0,   4,   0,   0,   0, 
+     61,  16,   0,   7, 242,   0, 
+     16,   0,   0,   0,   0,   0, 
+      1,  64,   0,   0,   0,   0, 
+      0,   0,  70, 126,  16,   0, 
+      0,   0,   0,   0,  86,   0, 
+      0,   5, 114,   0,  16,   0, 
+      0,   0,   0,   0,  70,   2, 
+     16,   0,   0,   0,   0,   0, 
+     56,   0,   0,   7, 114,   0, 
+     16,   0,   0,   0,   0,   0, 
+     70,   2,  16,   0,   0,   0, 
+      0,   0,  70,  18,  16,   0, 
+      2,   0,   0,   0,  27,   0, 
+      0,   5, 114,   0,  16,   0, 
+      0,   0,   0,   0,  70,   2, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   5, 130,   0, 
+     16,   0,   0,   0,   0,   0, 
+      1,  64,   0,   0,   0,   0, 
+      0,   0,  45,   0,   0,   7, 
+    242,   0,  16,   0,   0,   0, 
+      0,   0,  70,  14,  16,   0, 
+      0,   0,   0,   0,  70, 126, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   6,  18,  48, 
+     32,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  10,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   6,  18,  48, 
+     32,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,  26,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   6,  18,  48, 
+     32,   0,   0,   0,   0,   0, 
+      2,   0,   0,   0,  42,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   6,  18,  48, 
+     32,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,  58,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   6,  18,  48, 
+     32,   0,   0,   0,   0,   0, 
+      4,   0,   0,   0,   1,  64, 
+      0,   0,   0,   0,   0,   0, 
+     54,   0,   0,   6,  18,  48, 
+     32,   0,   0,   0,   0,   0, 
+      5,   0,   0,   0,   1,  64, 
+      0,   0,   1,   0,   0,   0, 
+     54,   0,   0,   6,  18,   0, 
+     16,   0,   0,   0,   0,   0, 
+     10, 128,  32,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     54,   0,   0,   7,  18,  32, 
+     16,   0,   0,   0,   0,   0, 
+     10,  48,  32,   4,   0,   0, 
+      0,   0,  10,   0,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   6,  18,   0,  16,   0, 
+      0,   0,   0,   0,  26, 128, 
+     32,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   7,  34,  32,  16,   0, 
+      0,   0,   0,   0,  10,  48, 
+     32,   4,   0,   0,   0,   0, 
+     10,   0,  16,   0,   0,   0, 
+      0,   0,  54,   0,   0,   6, 
+     18,   0,  16,   0,   0,   0, 
+      0,   0,  42, 128,  32,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  54,   0,   0,   7, 
+     66,  32,  16,   0,   0,   0, 
+      0,   0,  10,  48,  32,   4, 
+      0,   0,   0,   0,  10,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   6,  18,   0, 
+     16,   0,   0,   0,   0,   0, 
+     58, 128,  32,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     54,   0,   0,   7, 130,  32, 
+     16,   0,   0,   0,   0,   0, 
+     10,  48,  32,   4,   0,   0, 
+      0,   0,  10,   0,  16,   0, 
+      0,   0,   0,   0,  62,   0, 
+      0,   1,  83,  84,  65,  84, 
+    116,   0,   0,   0,  21,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   2,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   6,   0,   0,   0, 
+     10,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   6,   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, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0
+};
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d9Blitcpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d9/Blit.cpp (168114 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d9/Blit.cpp        2014-05-01 19:23:29 UTC (rev 168114)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d9/Blit.cpp        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -1,595 +0,0 @@
</span><del>-#include &quot;precompiled.h&quot;
-//
-// Copyright (c) 2002-2010 The ANGLE Project Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-
-// Blit.cpp: Surface copy utility class.
-
-#include &quot;libGLESv2/renderer/d3d9/Blit.h&quot;
-
-#include &quot;libGLESv2/main.h&quot;
-#include &quot;libGLESv2/renderer/d3d9/renderer9_utils.h&quot;
-#include &quot;libGLESv2/renderer/d3d9/TextureStorage9.h&quot;
-#include &quot;libGLESv2/renderer/d3d9/RenderTarget9.h&quot;
-#include &quot;libGLESv2/renderer/d3d9/Renderer9.h&quot;
-#include &quot;libGLESv2/Framebuffer.h&quot;
-#include &quot;libGLESv2/Renderbuffer.h&quot;
-
-namespace
-{
-#include &quot;libGLESv2/renderer/d3d9/shaders/compiled/standardvs.h&quot;
-#include &quot;libGLESv2/renderer/d3d9/shaders/compiled/flipyvs.h&quot;
-#include &quot;libGLESv2/renderer/d3d9/shaders/compiled/passthroughps.h&quot;
-#include &quot;libGLESv2/renderer/d3d9/shaders/compiled/luminanceps.h&quot;
-#include &quot;libGLESv2/renderer/d3d9/shaders/compiled/componentmaskps.h&quot;
-
-const BYTE* const g_shaderCode[] =
-{
-    g_vs20_standardvs,
-    g_vs20_flipyvs,
-    g_ps20_passthroughps,
-    g_ps20_luminanceps,
-    g_ps20_componentmaskps
-};
-
-const size_t g_shaderSize[] =
-{
-    sizeof(g_vs20_standardvs),
-    sizeof(g_vs20_flipyvs),
-    sizeof(g_ps20_passthroughps),
-    sizeof(g_ps20_luminanceps),
-    sizeof(g_ps20_componentmaskps)
-};
-}
-
-namespace rx
-{
-Blit::Blit(rx::Renderer9 *renderer)
-  : mRenderer(renderer), mQuadVertexBuffer(NULL), mQuadVertexDeclaration(NULL), mSavedStateBlock(NULL), mSavedRenderTarget(NULL), mSavedDepthStencil(NULL)
-{
-    initGeometry();
-    memset(mCompiledShaders, 0, sizeof(mCompiledShaders));
-}
-
-Blit::~Blit()
-{
-    if (mSavedStateBlock) mSavedStateBlock-&gt;Release();
-    if (mQuadVertexBuffer) mQuadVertexBuffer-&gt;Release();
-    if (mQuadVertexDeclaration) mQuadVertexDeclaration-&gt;Release();
-
-    for (int i = 0; i &lt; SHADER_COUNT; i++)
-    {
-        if (mCompiledShaders[i])
-        {
-            mCompiledShaders[i]-&gt;Release();
-        }
-    }
-}
-
-void Blit::initGeometry()
-{
-    static const float quad[] =
-    {
-        -1, -1,
-        -1,  1,
-         1, -1,
-         1,  1
-    };
-
-    IDirect3DDevice9 *device = mRenderer-&gt;getDevice();
-
-    HRESULT result = device-&gt;CreateVertexBuffer(sizeof(quad), D3DUSAGE_WRITEONLY, 0, D3DPOOL_DEFAULT, &amp;mQuadVertexBuffer, NULL);
-
-    if (FAILED(result))
-    {
-        ASSERT(result == D3DERR_OUTOFVIDEOMEMORY || result == E_OUTOFMEMORY);
-        return gl::error(GL_OUT_OF_MEMORY);
-    }
-
-    void *lockPtr = NULL;
-    result = mQuadVertexBuffer-&gt;Lock(0, 0, &amp;lockPtr, 0);
-
-    if (FAILED(result) || lockPtr == NULL)
-    {
-        ASSERT(result == D3DERR_OUTOFVIDEOMEMORY || result == E_OUTOFMEMORY);
-        return gl::error(GL_OUT_OF_MEMORY);
-    }
-
-    memcpy(lockPtr, quad, sizeof(quad));
-    mQuadVertexBuffer-&gt;Unlock();
-
-    static const D3DVERTEXELEMENT9 elements[] =
-    {
-        { 0, 0, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0 },
-        D3DDECL_END()
-    };
-
-    result = device-&gt;CreateVertexDeclaration(elements, &amp;mQuadVertexDeclaration);
-
-    if (FAILED(result))
-    {
-        ASSERT(result == D3DERR_OUTOFVIDEOMEMORY || result == E_OUTOFMEMORY);
-        return gl::error(GL_OUT_OF_MEMORY);
-    }
-}
-
-template &lt;class D3DShaderType&gt;
-bool Blit::setShader(ShaderId source, const char *profile,
-                     D3DShaderType *(rx::Renderer9::*createShader)(const DWORD *, size_t length),
-                     HRESULT (WINAPI IDirect3DDevice9::*setShader)(D3DShaderType*))
-{
-    IDirect3DDevice9 *device = mRenderer-&gt;getDevice();
-
-    D3DShaderType *shader;
-
-    if (mCompiledShaders[source] != NULL)
-    {
-        shader = static_cast&lt;D3DShaderType*&gt;(mCompiledShaders[source]);
-    }
-    else
-    {
-        const BYTE* shaderCode = g_shaderCode[source];
-        size_t shaderSize = g_shaderSize[source];
-
-        shader = (mRenderer-&gt;*createShader)(reinterpret_cast&lt;const DWORD*&gt;(shaderCode), shaderSize);
-        if (!shader)
-        {
-            ERR(&quot;Failed to create shader for blit operation&quot;);
-            return false;
-        }
-
-        mCompiledShaders[source] = shader;
-    }
-
-    HRESULT hr = (device-&gt;*setShader)(shader);
-
-    if (FAILED(hr))
-    {
-        ERR(&quot;Failed to set shader for blit operation&quot;);
-        return false;
-    }
-
-    return true;
-}
-
-bool Blit::setVertexShader(ShaderId shader)
-{
-    return setShader&lt;IDirect3DVertexShader9&gt;(shader, &quot;vs_2_0&quot;, &amp;rx::Renderer9::createVertexShader, &amp;IDirect3DDevice9::SetVertexShader);
-}
-
-bool Blit::setPixelShader(ShaderId shader)
-{
-    return setShader&lt;IDirect3DPixelShader9&gt;(shader, &quot;ps_2_0&quot;, &amp;rx::Renderer9::createPixelShader, &amp;IDirect3DDevice9::SetPixelShader);
-}
-
-RECT Blit::getSurfaceRect(IDirect3DSurface9 *surface) const
-{
-    D3DSURFACE_DESC desc;
-    surface-&gt;GetDesc(&amp;desc);
-
-    RECT rect;
-    rect.left = 0;
-    rect.top = 0;
-    rect.right = desc.Width;
-    rect.bottom = desc.Height;
-
-    return rect;
-}
-
-bool Blit::boxFilter(IDirect3DSurface9 *source, IDirect3DSurface9 *dest)
-{
-    IDirect3DTexture9 *texture = copySurfaceToTexture(source, getSurfaceRect(source));
-    if (!texture)
-    {
-        return false;
-    }
-
-    IDirect3DDevice9 *device = mRenderer-&gt;getDevice();
-
-    saveState();
-
-    device-&gt;SetTexture(0, texture);
-    device-&gt;SetRenderTarget(0, dest);
-
-    setVertexShader(SHADER_VS_STANDARD);
-    setPixelShader(SHADER_PS_PASSTHROUGH);
-
-    setCommonBlitState();
-    device-&gt;SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR);
-    device-&gt;SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR);
-
-    setViewport(getSurfaceRect(dest), 0, 0);
-
-    render();
-
-    texture-&gt;Release();
-
-    restoreState();
-
-    return true;
-}
-
-bool Blit::copy(gl::Framebuffer *framebuffer, const RECT &amp;sourceRect, GLenum destFormat, GLint xoffset, GLint yoffset, TextureStorageInterface2D *storage, GLint level)
-{
-    RenderTarget9 *renderTarget = NULL;
-    IDirect3DSurface9 *source = NULL;
-    gl::Renderbuffer *colorbuffer = framebuffer-&gt;getColorbuffer(0);
-
-    if (colorbuffer)
-    {
-        renderTarget = RenderTarget9::makeRenderTarget9(colorbuffer-&gt;getRenderTarget());
-    }
-    
-    if (renderTarget)
-    {
-        source = renderTarget-&gt;getSurface();
-    }
-
-    if (!source)
-    {
-        ERR(&quot;Failed to retrieve the render target.&quot;);
-        return gl::error(GL_OUT_OF_MEMORY, false);
-    }
-
-    TextureStorage9_2D *storage9 = TextureStorage9_2D::makeTextureStorage9_2D(storage-&gt;getStorageInstance());
-    IDirect3DSurface9 *destSurface = storage9-&gt;getSurfaceLevel(level, true);
-    bool result = false;
-        
-    if (destSurface)
-    {
-        result = copy(source, sourceRect, destFormat, xoffset, yoffset, destSurface);
-        destSurface-&gt;Release();
-    }
-
-    source-&gt;Release();
-    return result;
-}
-
-bool Blit::copy(gl::Framebuffer *framebuffer, const RECT &amp;sourceRect, GLenum destFormat, GLint xoffset, GLint yoffset, TextureStorageInterfaceCube *storage, GLenum target, GLint level)
-{
-    RenderTarget9 *renderTarget = NULL;
-    IDirect3DSurface9 *source = NULL;
-    gl::Renderbuffer *colorbuffer = framebuffer-&gt;getColorbuffer(0);
-
-    if (colorbuffer)
-    {
-        renderTarget = RenderTarget9::makeRenderTarget9(colorbuffer-&gt;getRenderTarget());
-    }
-    
-    if (renderTarget)
-    {
-        source = renderTarget-&gt;getSurface();
-    }
-
-    if (!source)
-    {
-        ERR(&quot;Failed to retrieve the render target.&quot;);
-        return gl::error(GL_OUT_OF_MEMORY, false);
-    }
-
-    TextureStorage9_Cube *storage9 = TextureStorage9_Cube::makeTextureStorage9_Cube(storage-&gt;getStorageInstance());
-    IDirect3DSurface9 *destSurface = storage9-&gt;getCubeMapSurface(target, level, true);
-    bool result = false;
-
-    if (destSurface)
-    {
-        result = copy(source, sourceRect, destFormat, xoffset, yoffset, destSurface);
-        destSurface-&gt;Release();
-    }
-
-    source-&gt;Release();
-    return result;
-}
-
-bool Blit::copy(IDirect3DSurface9 *source, const RECT &amp;sourceRect, GLenum destFormat, GLint xoffset, GLint yoffset, IDirect3DSurface9 *dest)
-{
-    if (!dest)
-    {
-        return false;
-    }
-
-    IDirect3DDevice9 *device = mRenderer-&gt;getDevice();
-
-    D3DSURFACE_DESC sourceDesc;
-    D3DSURFACE_DESC destDesc;
-    source-&gt;GetDesc(&amp;sourceDesc);
-    dest-&gt;GetDesc(&amp;destDesc);
-
-    if (sourceDesc.Format == destDesc.Format &amp;&amp; destDesc.Usage &amp; D3DUSAGE_RENDERTARGET &amp;&amp;
-        d3d9_gl::IsFormatChannelEquivalent(destDesc.Format, destFormat))   // Can use StretchRect
-    {
-        RECT destRect = {xoffset, yoffset, xoffset + (sourceRect.right - sourceRect.left), yoffset + (sourceRect.bottom - sourceRect.top)};
-        HRESULT result = device-&gt;StretchRect(source, &amp;sourceRect, dest, &amp;destRect, D3DTEXF_POINT);
-
-        if (FAILED(result))
-        {
-            ASSERT(result == D3DERR_OUTOFVIDEOMEMORY || result == E_OUTOFMEMORY);
-            return gl::error(GL_OUT_OF_MEMORY, false);
-        }
-    }
-    else
-    {
-        return formatConvert(source, sourceRect, destFormat, xoffset, yoffset, dest);
-    }
-    return true;
-}
-
-bool Blit::formatConvert(IDirect3DSurface9 *source, const RECT &amp;sourceRect, GLenum destFormat, GLint xoffset, GLint yoffset, IDirect3DSurface9 *dest)
-{
-    IDirect3DTexture9 *texture = copySurfaceToTexture(source, sourceRect);
-    if (!texture)
-    {
-        return false;
-    }
-
-    IDirect3DDevice9 *device = mRenderer-&gt;getDevice();
-
-    saveState();
-
-    device-&gt;SetTexture(0, texture);
-    device-&gt;SetRenderTarget(0, dest);
-
-    setViewport(sourceRect, xoffset, yoffset);
-
-    setCommonBlitState();
-    if (setFormatConvertShaders(destFormat))
-    {
-        render();
-    }
-
-    texture-&gt;Release();
-
-    restoreState();
-
-    return true;
-}
-
-bool Blit::setFormatConvertShaders(GLenum destFormat)
-{
-    bool okay = setVertexShader(SHADER_VS_STANDARD);
-
-    switch (destFormat)
-    {
-      default: UNREACHABLE();
-      case GL_RGBA:
-      case GL_BGRA_EXT:
-      case GL_RGB:
-      case GL_ALPHA:
-        okay = okay &amp;&amp; setPixelShader(SHADER_PS_COMPONENTMASK);
-        break;
-
-      case GL_LUMINANCE:
-      case GL_LUMINANCE_ALPHA:
-        okay = okay &amp;&amp; setPixelShader(SHADER_PS_LUMINANCE);
-        break;
-    }
-
-    if (!okay)
-    {
-        return false;
-    }
-
-    enum { X = 0, Y = 1, Z = 2, W = 3 };
-
-    // The meaning of this constant depends on the shader that was selected.
-    // See the shader assembly code above for details.
-    float psConst0[4] = { 0, 0, 0, 0 };
-
-    switch (destFormat)
-    {
-      default: UNREACHABLE();
-      case GL_RGBA:
-      case GL_BGRA_EXT:
-        psConst0[X] = 1;
-        psConst0[Z] = 1;
-        break;
-
-      case GL_RGB:
-        psConst0[X] = 1;
-        psConst0[W] = 1;
-        break;
-
-      case GL_ALPHA:
-        psConst0[Z] = 1;
-        break;
-
-      case GL_LUMINANCE:
-        psConst0[Y] = 1;
-        break;
-
-      case GL_LUMINANCE_ALPHA:
-        psConst0[X] = 1;
-        break;
-    }
-
-    mRenderer-&gt;getDevice()-&gt;SetPixelShaderConstantF(0, psConst0, 1);
-
-    return true;
-}
-
-IDirect3DTexture9 *Blit::copySurfaceToTexture(IDirect3DSurface9 *surface, const RECT &amp;sourceRect)
-{
-    if (!surface)
-    {
-        return NULL;
-    }
-
-    IDirect3DDevice9 *device = mRenderer-&gt;getDevice();
-
-    D3DSURFACE_DESC sourceDesc;
-    surface-&gt;GetDesc(&amp;sourceDesc);
-
-    // Copy the render target into a texture
-    IDirect3DTexture9 *texture;
-    HRESULT result = device-&gt;CreateTexture(sourceRect.right - sourceRect.left, sourceRect.bottom - sourceRect.top, 1, D3DUSAGE_RENDERTARGET, sourceDesc.Format, D3DPOOL_DEFAULT, &amp;texture, NULL);
-
-    if (FAILED(result))
-    {
-        ASSERT(result == D3DERR_OUTOFVIDEOMEMORY || result == E_OUTOFMEMORY);
-        return gl::error(GL_OUT_OF_MEMORY, (IDirect3DTexture9*)NULL);
-    }
-
-    IDirect3DSurface9 *textureSurface;
-    result = texture-&gt;GetSurfaceLevel(0, &amp;textureSurface);
-
-    if (FAILED(result))
-    {
-        ASSERT(result == D3DERR_OUTOFVIDEOMEMORY || result == E_OUTOFMEMORY);
-        texture-&gt;Release();
-        return gl::error(GL_OUT_OF_MEMORY, (IDirect3DTexture9*)NULL);
-    }
-
-    mRenderer-&gt;endScene();
-    result = device-&gt;StretchRect(surface, &amp;sourceRect, textureSurface, NULL, D3DTEXF_NONE);
-
-    textureSurface-&gt;Release();
-
-    if (FAILED(result))
-    {
-        ASSERT(result == D3DERR_OUTOFVIDEOMEMORY || result == E_OUTOFMEMORY);
-        texture-&gt;Release();
-        return gl::error(GL_OUT_OF_MEMORY, (IDirect3DTexture9*)NULL);
-    }
-
-    return texture;
-}
-
-void Blit::setViewport(const RECT &amp;sourceRect, GLint xoffset, GLint yoffset)
-{
-    IDirect3DDevice9 *device = mRenderer-&gt;getDevice();
-
-    D3DVIEWPORT9 vp;
-    vp.X      = xoffset;
-    vp.Y      = yoffset;
-    vp.Width  = sourceRect.right - sourceRect.left;
-    vp.Height = sourceRect.bottom - sourceRect.top;
-    vp.MinZ   = 0.0f;
-    vp.MaxZ   = 1.0f;
-    device-&gt;SetViewport(&amp;vp);
-
-    float halfPixelAdjust[4] = { -1.0f/vp.Width, 1.0f/vp.Height, 0, 0 };
-    device-&gt;SetVertexShaderConstantF(0, halfPixelAdjust, 1);
-}
-
-void Blit::setCommonBlitState()
-{
-    IDirect3DDevice9 *device = mRenderer-&gt;getDevice();
-
-    device-&gt;SetDepthStencilSurface(NULL);
-
-    device-&gt;SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID);
-    device-&gt;SetRenderState(D3DRS_ALPHATESTENABLE, FALSE);
-    device-&gt;SetRenderState(D3DRS_ALPHABLENDENABLE, FALSE);
-    device-&gt;SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);
-    device-&gt;SetRenderState(D3DRS_CLIPPLANEENABLE, 0);
-    device-&gt;SetRenderState(D3DRS_COLORWRITEENABLE, D3DCOLORWRITEENABLE_ALPHA | D3DCOLORWRITEENABLE_BLUE | D3DCOLORWRITEENABLE_GREEN | D3DCOLORWRITEENABLE_RED);
-    device-&gt;SetRenderState(D3DRS_SRGBWRITEENABLE, FALSE);
-    device-&gt;SetRenderState(D3DRS_SCISSORTESTENABLE, FALSE);
-
-    device-&gt;SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_POINT);
-    device-&gt;SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_POINT);
-    device-&gt;SetSamplerState(0, D3DSAMP_SRGBTEXTURE, FALSE);
-    device-&gt;SetSamplerState(0, D3DSAMP_ADDRESSU, D3DTADDRESS_CLAMP);
-    device-&gt;SetSamplerState(0, D3DSAMP_ADDRESSV, D3DTADDRESS_CLAMP);
-
-    RECT scissorRect = {0};   // Scissoring is disabled for flipping, but we need this to capture and restore the old rectangle
-    device-&gt;SetScissorRect(&amp;scissorRect);
-
-    for(int i = 0; i &lt; gl::MAX_VERTEX_ATTRIBS; i++)
-    {
-        device-&gt;SetStreamSourceFreq(i, 1);
-    }
-}
-
-void Blit::render()
-{
-    IDirect3DDevice9 *device = mRenderer-&gt;getDevice();
-
-    HRESULT hr = device-&gt;SetStreamSource(0, mQuadVertexBuffer, 0, 2 * sizeof(float));
-    hr = device-&gt;SetVertexDeclaration(mQuadVertexDeclaration);
-
-    mRenderer-&gt;startScene();
-    hr = device-&gt;DrawPrimitive(D3DPT_TRIANGLESTRIP, 0, 2);
-}
-
-void Blit::saveState()
-{
-    IDirect3DDevice9 *device = mRenderer-&gt;getDevice();
-
-    HRESULT hr;
-
-    device-&gt;GetDepthStencilSurface(&amp;mSavedDepthStencil);
-    device-&gt;GetRenderTarget(0, &amp;mSavedRenderTarget);
-
-    if (mSavedStateBlock == NULL)
-    {
-        hr = device-&gt;BeginStateBlock();
-        ASSERT(SUCCEEDED(hr) || hr == D3DERR_OUTOFVIDEOMEMORY || hr == E_OUTOFMEMORY);
-
-        setCommonBlitState();
-
-        static const float dummyConst[4] = { 0, 0, 0, 0 };
-
-        device-&gt;SetVertexShader(NULL);
-        device-&gt;SetVertexShaderConstantF(0, dummyConst, 1);
-        device-&gt;SetPixelShader(NULL);
-        device-&gt;SetPixelShaderConstantF(0, dummyConst, 1);
-
-        D3DVIEWPORT9 dummyVp;
-        dummyVp.X = 0;
-        dummyVp.Y = 0;
-        dummyVp.Width = 1;
-        dummyVp.Height = 1;
-        dummyVp.MinZ = 0;
-        dummyVp.MaxZ = 1;
-
-        device-&gt;SetViewport(&amp;dummyVp);
-
-        device-&gt;SetTexture(0, NULL);
-
-        device-&gt;SetStreamSource(0, mQuadVertexBuffer, 0, 0);
-
-        device-&gt;SetVertexDeclaration(mQuadVertexDeclaration);
-
-        hr = device-&gt;EndStateBlock(&amp;mSavedStateBlock);
-        ASSERT(SUCCEEDED(hr) || hr == D3DERR_OUTOFVIDEOMEMORY || hr == E_OUTOFMEMORY);
-    }
-
-    ASSERT(mSavedStateBlock != NULL);
-
-    if (mSavedStateBlock != NULL)
-    {
-        hr = mSavedStateBlock-&gt;Capture();
-        ASSERT(SUCCEEDED(hr));
-    }
-}
-
-void Blit::restoreState()
-{
-    IDirect3DDevice9 *device = mRenderer-&gt;getDevice();
-
-    device-&gt;SetDepthStencilSurface(mSavedDepthStencil);
-    if (mSavedDepthStencil != NULL)
-    {
-        mSavedDepthStencil-&gt;Release();
-        mSavedDepthStencil = NULL;
-    }
-
-    device-&gt;SetRenderTarget(0, mSavedRenderTarget);
-    if (mSavedRenderTarget != NULL)
-    {
-        mSavedRenderTarget-&gt;Release();
-        mSavedRenderTarget = NULL;
-    }
-
-    ASSERT(mSavedStateBlock != NULL);
-
-    if (mSavedStateBlock != NULL)
-    {
-        mSavedStateBlock-&gt;Apply();
-    }
-}
-
-}
</del></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d9Blith"></a>
<div class="delfile"><h4>Deleted: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d9/Blit.h (168114 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d9/Blit.h        2014-05-01 19:23:29 UTC (rev 168114)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d9/Blit.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -1,94 +0,0 @@
</span><del>-//
-// Copyright (c) 2002-2010 The ANGLE Project Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-
-// Blit.cpp: Surface copy utility class.
-
-#ifndef LIBGLESV2_BLIT_H_
-#define LIBGLESV2_BLIT_H_
-
-#include &quot;common/angleutils.h&quot;
-
-namespace gl
-{
-class Framebuffer;
-}
-
-namespace rx
-{
-class Renderer9;
-class TextureStorageInterface2D;
-class TextureStorageInterfaceCube;
-
-class Blit
-{
-  public:
-    explicit Blit(Renderer9 *renderer);
-    ~Blit();
-
-    // Copy from source surface to dest surface.
-    // sourceRect, xoffset, yoffset are in D3D coordinates (0,0 in upper-left)
-    bool copy(gl::Framebuffer *framebuffer, const RECT &amp;sourceRect, GLenum destFormat, GLint xoffset, GLint yoffset, TextureStorageInterface2D *storage, GLint level);
-    bool copy(gl::Framebuffer *framebuffer, const RECT &amp;sourceRect, GLenum destFormat, GLint xoffset, GLint yoffset, TextureStorageInterfaceCube *storage, GLenum target, GLint level);
-
-    // Copy from source surface to dest surface.
-    // sourceRect, xoffset, yoffset are in D3D coordinates (0,0 in upper-left)
-    // source is interpreted as RGBA and destFormat specifies the desired result format. For example, if destFormat = GL_RGB, the alpha channel will be forced to 0.
-    bool formatConvert(IDirect3DSurface9 *source, const RECT &amp;sourceRect, GLenum destFormat, GLint xoffset, GLint yoffset, IDirect3DSurface9 *dest);
-
-    // 2x2 box filter sample from source to dest.
-    // Requires that source is RGB(A) and dest has the same format as source.
-    bool boxFilter(IDirect3DSurface9 *source, IDirect3DSurface9 *dest);
-
-  private:
-    rx::Renderer9 *mRenderer;
-
-    IDirect3DVertexBuffer9 *mQuadVertexBuffer;
-    IDirect3DVertexDeclaration9 *mQuadVertexDeclaration;
-
-    void initGeometry();
-
-    bool setFormatConvertShaders(GLenum destFormat);
-
-    bool copy(IDirect3DSurface9 *source, const RECT &amp;sourceRect, GLenum destFormat, GLint xoffset, GLint yoffset, IDirect3DSurface9 *dest);
-    IDirect3DTexture9 *copySurfaceToTexture(IDirect3DSurface9 *surface, const RECT &amp;sourceRect);
-    void setViewport(const RECT &amp;sourceRect, GLint xoffset, GLint yoffset);
-    void setCommonBlitState();
-    RECT getSurfaceRect(IDirect3DSurface9 *surface) const;
-
-    // This enum is used to index mCompiledShaders and mShaderSource.
-    enum ShaderId
-    {
-        SHADER_VS_STANDARD,
-        SHADER_VS_FLIPY,
-        SHADER_PS_PASSTHROUGH,
-        SHADER_PS_LUMINANCE,
-        SHADER_PS_COMPONENTMASK,
-        SHADER_COUNT
-    };
-
-    // This actually contains IDirect3DVertexShader9 or IDirect3DPixelShader9 casted to IUnknown.
-    IUnknown *mCompiledShaders[SHADER_COUNT];
-
-    template &lt;class D3DShaderType&gt;
-    bool setShader(ShaderId source, const char *profile,
-                   D3DShaderType *(Renderer9::*createShader)(const DWORD *, size_t length),
-                   HRESULT (WINAPI IDirect3DDevice9::*setShader)(D3DShaderType*));
-
-    bool setVertexShader(ShaderId shader);
-    bool setPixelShader(ShaderId shader);
-    void render();
-
-    void saveState();
-    void restoreState();
-    IDirect3DStateBlock9 *mSavedStateBlock;
-    IDirect3DSurface9 *mSavedRenderTarget;
-    IDirect3DSurface9 *mSavedDepthStencil;
-
-    DISALLOW_COPY_AND_ASSIGN(Blit);
-};
-}
-
-#endif   // LIBGLESV2_BLIT_H_
</del></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d9Blit9cpp"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d9/Blit9.cpp (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d9/Blit9.cpp                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d9/Blit9.cpp        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,645 @@
</span><ins>+#include &quot;precompiled.h&quot;
+//
+// Copyright (c) 2002-2010 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+
+// Blit9.cpp: Surface copy utility class.
+
+#include &quot;libGLESv2/renderer/d3d9/Blit9.h&quot;
+
+#include &quot;libGLESv2/main.h&quot;
+#include &quot;libGLESv2/renderer/d3d9/renderer9_utils.h&quot;
+#include &quot;libGLESv2/renderer/d3d9/formatutils9.h&quot;
+#include &quot;libGLESv2/renderer/d3d9/TextureStorage9.h&quot;
+#include &quot;libGLESv2/renderer/d3d9/RenderTarget9.h&quot;
+#include &quot;libGLESv2/renderer/d3d9/Renderer9.h&quot;
+#include &quot;libGLESv2/Framebuffer.h&quot;
+#include &quot;libGLESv2/Renderbuffer.h&quot;
+
+namespace
+{
+#include &quot;libGLESv2/renderer/d3d9/shaders/compiled/standardvs.h&quot;
+#include &quot;libGLESv2/renderer/d3d9/shaders/compiled/flipyvs.h&quot;
+#include &quot;libGLESv2/renderer/d3d9/shaders/compiled/passthroughps.h&quot;
+#include &quot;libGLESv2/renderer/d3d9/shaders/compiled/luminanceps.h&quot;
+#include &quot;libGLESv2/renderer/d3d9/shaders/compiled/componentmaskps.h&quot;
+
+const BYTE* const g_shaderCode[] =
+{
+    g_vs20_standardvs,
+    g_vs20_flipyvs,
+    g_ps20_passthroughps,
+    g_ps20_luminanceps,
+    g_ps20_componentmaskps
+};
+
+const size_t g_shaderSize[] =
+{
+    sizeof(g_vs20_standardvs),
+    sizeof(g_vs20_flipyvs),
+    sizeof(g_ps20_passthroughps),
+    sizeof(g_ps20_luminanceps),
+    sizeof(g_ps20_componentmaskps)
+};
+}
+
+namespace rx
+{
+Blit9::Blit9(rx::Renderer9 *renderer)
+  : mRenderer(renderer), mQuadVertexBuffer(NULL), mQuadVertexDeclaration(NULL), mSavedStateBlock(NULL), mSavedRenderTarget(NULL), mSavedDepthStencil(NULL)
+{
+    initGeometry();
+    memset(mCompiledShaders, 0, sizeof(mCompiledShaders));
+}
+
+Blit9::~Blit9()
+{
+    SafeRelease(mSavedStateBlock);
+    SafeRelease(mQuadVertexBuffer);
+    SafeRelease(mQuadVertexDeclaration);
+
+    for (int i = 0; i &lt; SHADER_COUNT; i++)
+    {
+        SafeRelease(mCompiledShaders[i]);
+    }
+}
+
+void Blit9::initGeometry()
+{
+    static const float quad[] =
+    {
+        -1, -1,
+        -1,  1,
+         1, -1,
+         1,  1
+    };
+
+    IDirect3DDevice9 *device = mRenderer-&gt;getDevice();
+
+    HRESULT result = device-&gt;CreateVertexBuffer(sizeof(quad), D3DUSAGE_WRITEONLY, 0, D3DPOOL_DEFAULT, &amp;mQuadVertexBuffer, NULL);
+
+    if (FAILED(result))
+    {
+        ASSERT(result == D3DERR_OUTOFVIDEOMEMORY || result == E_OUTOFMEMORY);
+        return gl::error(GL_OUT_OF_MEMORY);
+    }
+
+    void *lockPtr = NULL;
+    result = mQuadVertexBuffer-&gt;Lock(0, 0, &amp;lockPtr, 0);
+
+    if (FAILED(result) || lockPtr == NULL)
+    {
+        ASSERT(result == D3DERR_OUTOFVIDEOMEMORY || result == E_OUTOFMEMORY);
+        return gl::error(GL_OUT_OF_MEMORY);
+    }
+
+    memcpy(lockPtr, quad, sizeof(quad));
+    mQuadVertexBuffer-&gt;Unlock();
+
+    static const D3DVERTEXELEMENT9 elements[] =
+    {
+        { 0, 0, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0 },
+        D3DDECL_END()
+    };
+
+    result = device-&gt;CreateVertexDeclaration(elements, &amp;mQuadVertexDeclaration);
+
+    if (FAILED(result))
+    {
+        ASSERT(result == D3DERR_OUTOFVIDEOMEMORY || result == E_OUTOFMEMORY);
+        return gl::error(GL_OUT_OF_MEMORY);
+    }
+}
+
+template &lt;class D3DShaderType&gt;
+bool Blit9::setShader(ShaderId source, const char *profile,
+                     D3DShaderType *(rx::Renderer9::*createShader)(const DWORD *, size_t length),
+                     HRESULT (WINAPI IDirect3DDevice9::*setShader)(D3DShaderType*))
+{
+    IDirect3DDevice9 *device = mRenderer-&gt;getDevice();
+
+    D3DShaderType *shader;
+
+    if (mCompiledShaders[source] != NULL)
+    {
+        shader = static_cast&lt;D3DShaderType*&gt;(mCompiledShaders[source]);
+    }
+    else
+    {
+        const BYTE* shaderCode = g_shaderCode[source];
+        size_t shaderSize = g_shaderSize[source];
+
+        shader = (mRenderer-&gt;*createShader)(reinterpret_cast&lt;const DWORD*&gt;(shaderCode), shaderSize);
+        if (!shader)
+        {
+            ERR(&quot;Failed to create shader for blit operation&quot;);
+            return false;
+        }
+
+        mCompiledShaders[source] = shader;
+    }
+
+    HRESULT hr = (device-&gt;*setShader)(shader);
+
+    if (FAILED(hr))
+    {
+        ERR(&quot;Failed to set shader for blit operation&quot;);
+        return false;
+    }
+
+    return true;
+}
+
+bool Blit9::setVertexShader(ShaderId shader)
+{
+    return setShader&lt;IDirect3DVertexShader9&gt;(shader, &quot;vs_2_0&quot;, &amp;rx::Renderer9::createVertexShader, &amp;IDirect3DDevice9::SetVertexShader);
+}
+
+bool Blit9::setPixelShader(ShaderId shader)
+{
+    return setShader&lt;IDirect3DPixelShader9&gt;(shader, &quot;ps_2_0&quot;, &amp;rx::Renderer9::createPixelShader, &amp;IDirect3DDevice9::SetPixelShader);
+}
+
+RECT Blit9::getSurfaceRect(IDirect3DSurface9 *surface) const
+{
+    D3DSURFACE_DESC desc;
+    surface-&gt;GetDesc(&amp;desc);
+
+    RECT rect;
+    rect.left = 0;
+    rect.top = 0;
+    rect.right = desc.Width;
+    rect.bottom = desc.Height;
+
+    return rect;
+}
+
+bool Blit9::boxFilter(IDirect3DSurface9 *source, IDirect3DSurface9 *dest)
+{
+    IDirect3DTexture9 *texture = copySurfaceToTexture(source, getSurfaceRect(source));
+    if (!texture)
+    {
+        return false;
+    }
+
+    IDirect3DDevice9 *device = mRenderer-&gt;getDevice();
+
+    saveState();
+
+    device-&gt;SetTexture(0, texture);
+    device-&gt;SetRenderTarget(0, dest);
+
+    setVertexShader(SHADER_VS_STANDARD);
+    setPixelShader(SHADER_PS_PASSTHROUGH);
+
+    setCommonBlitState();
+    device-&gt;SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR);
+    device-&gt;SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR);
+
+    setViewport(getSurfaceRect(dest), 0, 0);
+
+    render();
+
+    SafeRelease(texture);
+
+    restoreState();
+
+    return true;
+}
+
+bool Blit9::copy(gl::Framebuffer *framebuffer, const RECT &amp;sourceRect, GLenum destFormat, GLint xoffset, GLint yoffset, TextureStorageInterface2D *storage, GLint level)
+{
+    RenderTarget9 *renderTarget = NULL;
+    IDirect3DSurface9 *source = NULL;
+    gl::Renderbuffer *colorbuffer = framebuffer-&gt;getColorbuffer(0);
+
+    if (colorbuffer)
+    {
+        renderTarget = RenderTarget9::makeRenderTarget9(colorbuffer-&gt;getRenderTarget());
+    }
+    
+    if (renderTarget)
+    {
+        source = renderTarget-&gt;getSurface();
+    }
+
+    if (!source)
+    {
+        ERR(&quot;Failed to retrieve the render target.&quot;);
+        return gl::error(GL_OUT_OF_MEMORY, false);
+    }
+
+    TextureStorage9_2D *storage9 = TextureStorage9_2D::makeTextureStorage9_2D(storage-&gt;getStorageInstance());
+    IDirect3DSurface9 *destSurface = storage9-&gt;getSurfaceLevel(level, true);
+    bool result = false;
+        
+    if (destSurface)
+    {
+        result = copy(source, sourceRect, destFormat, xoffset, yoffset, destSurface);
+        SafeRelease(destSurface);
+    }
+
+    SafeRelease(source);
+    return result;
+}
+
+bool Blit9::copy(gl::Framebuffer *framebuffer, const RECT &amp;sourceRect, GLenum destFormat, GLint xoffset, GLint yoffset, TextureStorageInterfaceCube *storage, GLenum target, GLint level)
+{
+    RenderTarget9 *renderTarget = NULL;
+    IDirect3DSurface9 *source = NULL;
+    gl::Renderbuffer *colorbuffer = framebuffer-&gt;getColorbuffer(0);
+
+    if (colorbuffer)
+    {
+        renderTarget = RenderTarget9::makeRenderTarget9(colorbuffer-&gt;getRenderTarget());
+    }
+    
+    if (renderTarget)
+    {
+        source = renderTarget-&gt;getSurface();
+    }
+
+    if (!source)
+    {
+        ERR(&quot;Failed to retrieve the render target.&quot;);
+        return gl::error(GL_OUT_OF_MEMORY, false);
+    }
+
+    TextureStorage9_Cube *storage9 = TextureStorage9_Cube::makeTextureStorage9_Cube(storage-&gt;getStorageInstance());
+    IDirect3DSurface9 *destSurface = storage9-&gt;getCubeMapSurface(target, level, true);
+    bool result = false;
+
+    if (destSurface)
+    {
+        result = copy(source, sourceRect, destFormat, xoffset, yoffset, destSurface);
+        SafeRelease(destSurface);
+    }
+
+    SafeRelease(source);
+    return result;
+}
+
+bool Blit9::copy(IDirect3DSurface9 *source, const RECT &amp;sourceRect, GLenum destFormat, GLint xoffset, GLint yoffset, IDirect3DSurface9 *dest)
+{
+    if (!dest)
+    {
+        return false;
+    }
+
+    IDirect3DDevice9 *device = mRenderer-&gt;getDevice();
+
+    D3DSURFACE_DESC sourceDesc;
+    D3DSURFACE_DESC destDesc;
+    source-&gt;GetDesc(&amp;sourceDesc);
+    dest-&gt;GetDesc(&amp;destDesc);
+
+    if (sourceDesc.Format == destDesc.Format &amp;&amp; destDesc.Usage &amp; D3DUSAGE_RENDERTARGET &amp;&amp;
+        d3d9_gl::IsFormatChannelEquivalent(destDesc.Format, destFormat, mRenderer-&gt;getCurrentClientVersion()))   // Can use StretchRect
+    {
+        RECT destRect = {xoffset, yoffset, xoffset + (sourceRect.right - sourceRect.left), yoffset + (sourceRect.bottom - sourceRect.top)};
+        HRESULT result = device-&gt;StretchRect(source, &amp;sourceRect, dest, &amp;destRect, D3DTEXF_POINT);
+
+        if (FAILED(result))
+        {
+            ASSERT(result == D3DERR_OUTOFVIDEOMEMORY || result == E_OUTOFMEMORY);
+            return gl::error(GL_OUT_OF_MEMORY, false);
+        }
+    }
+    else
+    {
+        return formatConvert(source, sourceRect, destFormat, xoffset, yoffset, dest);
+    }
+    return true;
+}
+
+bool Blit9::formatConvert(IDirect3DSurface9 *source, const RECT &amp;sourceRect, GLenum destFormat, GLint xoffset, GLint yoffset, IDirect3DSurface9 *dest)
+{
+    IDirect3DTexture9 *texture = copySurfaceToTexture(source, sourceRect);
+    if (!texture)
+    {
+        return false;
+    }
+
+    IDirect3DDevice9 *device = mRenderer-&gt;getDevice();
+
+    saveState();
+
+    device-&gt;SetTexture(0, texture);
+    device-&gt;SetRenderTarget(0, dest);
+
+    setViewport(sourceRect, xoffset, yoffset);
+
+    setCommonBlitState();
+    if (setFormatConvertShaders(destFormat))
+    {
+        render();
+    }
+
+    SafeRelease(texture);
+
+    restoreState();
+
+    return true;
+}
+
+bool Blit9::setFormatConvertShaders(GLenum destFormat)
+{
+    bool okay = setVertexShader(SHADER_VS_STANDARD);
+
+    switch (destFormat)
+    {
+      default: UNREACHABLE();
+      case GL_RGBA:
+      case GL_BGRA_EXT:
+      case GL_RGB:
+      case GL_RG_EXT:
+      case GL_RED_EXT:
+      case GL_ALPHA:
+        okay = okay &amp;&amp; setPixelShader(SHADER_PS_COMPONENTMASK);
+        break;
+
+      case GL_LUMINANCE:
+      case GL_LUMINANCE_ALPHA:
+        okay = okay &amp;&amp; setPixelShader(SHADER_PS_LUMINANCE);
+        break;
+    }
+
+    if (!okay)
+    {
+        return false;
+    }
+
+    enum { X = 0, Y = 1, Z = 2, W = 3 };
+
+    // The meaning of this constant depends on the shader that was selected.
+    // See the shader assembly code above for details.
+    // Allocate one array for both registers and split it into two float4's.
+    float psConst[8] = { 0 };
+    float *multConst = &amp;psConst[0];
+    float *addConst = &amp;psConst[4];
+
+    switch (destFormat)
+    {
+      default: UNREACHABLE();
+      case GL_RGBA:
+      case GL_BGRA_EXT:
+        multConst[X] = 1;
+        multConst[Y] = 1;
+        multConst[Z] = 1;
+        multConst[W] = 1;
+        addConst[X] = 0;
+        addConst[Y] = 0;
+        addConst[Z] = 0;
+        addConst[W] = 0;
+        break;
+
+      case GL_RGB:
+        multConst[X] = 1;
+        multConst[Y] = 1;
+        multConst[Z] = 1;
+        multConst[W] = 0;
+        addConst[X] = 0;
+        addConst[Y] = 0;
+        addConst[Z] = 0;
+        addConst[W] = 1;
+        break;
+
+      case GL_RG_EXT:
+        multConst[X] = 1;
+        multConst[Y] = 1;
+        multConst[Z] = 0;
+        multConst[W] = 0;
+        addConst[X] = 0;
+        addConst[Y] = 0;
+        addConst[Z] = 0;
+        addConst[W] = 1;
+        break;
+
+      case GL_RED_EXT:
+        multConst[X] = 1;
+        multConst[Y] = 0;
+        multConst[Z] = 0;
+        multConst[W] = 0;
+        addConst[X] = 0;
+        addConst[Y] = 0;
+        addConst[Z] = 0;
+        addConst[W] = 1;
+        break;
+
+      case GL_ALPHA:
+        multConst[X] = 0;
+        multConst[Y] = 0;
+        multConst[Z] = 0;
+        multConst[W] = 1;
+        addConst[X] = 0;
+        addConst[Y] = 0;
+        addConst[Z] = 0;
+        addConst[W] = 0;
+        break;
+
+      case GL_LUMINANCE:
+        multConst[X] = 1;
+        multConst[Y] = 0;
+        multConst[Z] = 0;
+        multConst[W] = 0;
+        addConst[X] = 0;
+        addConst[Y] = 0;
+        addConst[Z] = 0;
+        addConst[W] = 1;
+        break;
+
+      case GL_LUMINANCE_ALPHA:
+        multConst[X] = 1;
+        multConst[Y] = 0;
+        multConst[Z] = 0;
+        multConst[W] = 1;
+        addConst[X] = 0;
+        addConst[Y] = 0;
+        addConst[Z] = 0;
+        addConst[W] = 0;
+        break;
+    }
+
+    mRenderer-&gt;getDevice()-&gt;SetPixelShaderConstantF(0, psConst, 2);
+
+    return true;
+}
+
+IDirect3DTexture9 *Blit9::copySurfaceToTexture(IDirect3DSurface9 *surface, const RECT &amp;sourceRect)
+{
+    if (!surface)
+    {
+        return NULL;
+    }
+
+    IDirect3DDevice9 *device = mRenderer-&gt;getDevice();
+
+    D3DSURFACE_DESC sourceDesc;
+    surface-&gt;GetDesc(&amp;sourceDesc);
+
+    // Copy the render target into a texture
+    IDirect3DTexture9 *texture;
+    HRESULT result = device-&gt;CreateTexture(sourceRect.right - sourceRect.left, sourceRect.bottom - sourceRect.top, 1, D3DUSAGE_RENDERTARGET, sourceDesc.Format, D3DPOOL_DEFAULT, &amp;texture, NULL);
+
+    if (FAILED(result))
+    {
+        ASSERT(result == D3DERR_OUTOFVIDEOMEMORY || result == E_OUTOFMEMORY);
+        return gl::error(GL_OUT_OF_MEMORY, (IDirect3DTexture9*)NULL);
+    }
+
+    IDirect3DSurface9 *textureSurface;
+    result = texture-&gt;GetSurfaceLevel(0, &amp;textureSurface);
+
+    if (FAILED(result))
+    {
+        ASSERT(result == D3DERR_OUTOFVIDEOMEMORY || result == E_OUTOFMEMORY);
+        SafeRelease(texture);
+        return gl::error(GL_OUT_OF_MEMORY, (IDirect3DTexture9*)NULL);
+    }
+
+    mRenderer-&gt;endScene();
+    result = device-&gt;StretchRect(surface, &amp;sourceRect, textureSurface, NULL, D3DTEXF_NONE);
+
+    SafeRelease(textureSurface);
+
+    if (FAILED(result))
+    {
+        ASSERT(result == D3DERR_OUTOFVIDEOMEMORY || result == E_OUTOFMEMORY);
+        SafeRelease(texture);
+        return gl::error(GL_OUT_OF_MEMORY, (IDirect3DTexture9*)NULL);
+    }
+
+    return texture;
+}
+
+void Blit9::setViewport(const RECT &amp;sourceRect, GLint xoffset, GLint yoffset)
+{
+    IDirect3DDevice9 *device = mRenderer-&gt;getDevice();
+
+    D3DVIEWPORT9 vp;
+    vp.X      = xoffset;
+    vp.Y      = yoffset;
+    vp.Width  = sourceRect.right - sourceRect.left;
+    vp.Height = sourceRect.bottom - sourceRect.top;
+    vp.MinZ   = 0.0f;
+    vp.MaxZ   = 1.0f;
+    device-&gt;SetViewport(&amp;vp);
+
+    float halfPixelAdjust[4] = { -1.0f/vp.Width, 1.0f/vp.Height, 0, 0 };
+    device-&gt;SetVertexShaderConstantF(0, halfPixelAdjust, 1);
+}
+
+void Blit9::setCommonBlitState()
+{
+    IDirect3DDevice9 *device = mRenderer-&gt;getDevice();
+
+    device-&gt;SetDepthStencilSurface(NULL);
+
+    device-&gt;SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID);
+    device-&gt;SetRenderState(D3DRS_ALPHATESTENABLE, FALSE);
+    device-&gt;SetRenderState(D3DRS_ALPHABLENDENABLE, FALSE);
+    device-&gt;SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);
+    device-&gt;SetRenderState(D3DRS_CLIPPLANEENABLE, 0);
+    device-&gt;SetRenderState(D3DRS_COLORWRITEENABLE, D3DCOLORWRITEENABLE_ALPHA | D3DCOLORWRITEENABLE_BLUE | D3DCOLORWRITEENABLE_GREEN | D3DCOLORWRITEENABLE_RED);
+    device-&gt;SetRenderState(D3DRS_SRGBWRITEENABLE, FALSE);
+    device-&gt;SetRenderState(D3DRS_SCISSORTESTENABLE, FALSE);
+
+    device-&gt;SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_POINT);
+    device-&gt;SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_POINT);
+    device-&gt;SetSamplerState(0, D3DSAMP_SRGBTEXTURE, FALSE);
+    device-&gt;SetSamplerState(0, D3DSAMP_ADDRESSU, D3DTADDRESS_CLAMP);
+    device-&gt;SetSamplerState(0, D3DSAMP_ADDRESSV, D3DTADDRESS_CLAMP);
+
+    RECT scissorRect = {0};   // Scissoring is disabled for flipping, but we need this to capture and restore the old rectangle
+    device-&gt;SetScissorRect(&amp;scissorRect);
+
+    for(int i = 0; i &lt; gl::MAX_VERTEX_ATTRIBS; i++)
+    {
+        device-&gt;SetStreamSourceFreq(i, 1);
+    }
+}
+
+void Blit9::render()
+{
+    IDirect3DDevice9 *device = mRenderer-&gt;getDevice();
+
+    HRESULT hr = device-&gt;SetStreamSource(0, mQuadVertexBuffer, 0, 2 * sizeof(float));
+    hr = device-&gt;SetVertexDeclaration(mQuadVertexDeclaration);
+
+    mRenderer-&gt;startScene();
+    hr = device-&gt;DrawPrimitive(D3DPT_TRIANGLESTRIP, 0, 2);
+}
+
+void Blit9::saveState()
+{
+    IDirect3DDevice9 *device = mRenderer-&gt;getDevice();
+
+    HRESULT hr;
+
+    device-&gt;GetDepthStencilSurface(&amp;mSavedDepthStencil);
+    device-&gt;GetRenderTarget(0, &amp;mSavedRenderTarget);
+
+    if (mSavedStateBlock == NULL)
+    {
+        hr = device-&gt;BeginStateBlock();
+        ASSERT(SUCCEEDED(hr) || hr == D3DERR_OUTOFVIDEOMEMORY || hr == E_OUTOFMEMORY);
+
+        setCommonBlitState();
+
+        static const float dummyConst[8] = { 0 };
+
+        device-&gt;SetVertexShader(NULL);
+        device-&gt;SetVertexShaderConstantF(0, dummyConst, 2);
+        device-&gt;SetPixelShader(NULL);
+        device-&gt;SetPixelShaderConstantF(0, dummyConst, 2);
+
+        D3DVIEWPORT9 dummyVp;
+        dummyVp.X = 0;
+        dummyVp.Y = 0;
+        dummyVp.Width = 1;
+        dummyVp.Height = 1;
+        dummyVp.MinZ = 0;
+        dummyVp.MaxZ = 1;
+
+        device-&gt;SetViewport(&amp;dummyVp);
+
+        device-&gt;SetTexture(0, NULL);
+
+        device-&gt;SetStreamSource(0, mQuadVertexBuffer, 0, 0);
+
+        device-&gt;SetVertexDeclaration(mQuadVertexDeclaration);
+
+        hr = device-&gt;EndStateBlock(&amp;mSavedStateBlock);
+        ASSERT(SUCCEEDED(hr) || hr == D3DERR_OUTOFVIDEOMEMORY || hr == E_OUTOFMEMORY);
+    }
+
+    ASSERT(mSavedStateBlock != NULL);
+
+    if (mSavedStateBlock != NULL)
+    {
+        hr = mSavedStateBlock-&gt;Capture();
+        ASSERT(SUCCEEDED(hr));
+    }
+}
+
+void Blit9::restoreState()
+{
+    IDirect3DDevice9 *device = mRenderer-&gt;getDevice();
+
+    device-&gt;SetDepthStencilSurface(mSavedDepthStencil);
+    SafeRelease(mSavedDepthStencil);
+
+    device-&gt;SetRenderTarget(0, mSavedRenderTarget);
+    SafeRelease(mSavedRenderTarget);
+
+    ASSERT(mSavedStateBlock != NULL);
+
+    if (mSavedStateBlock != NULL)
+    {
+        mSavedStateBlock-&gt;Apply();
+    }
+}
+
+}
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d9Blit9h"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d9/Blit9.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d9/Blit9.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d9/Blit9.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,94 @@
</span><ins>+//
+// Copyright (c) 2002-2010 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+
+// Blit9.cpp: Surface copy utility class.
+
+#ifndef LIBGLESV2_BLIT9_H_
+#define LIBGLESV2_BLIT9_H_
+
+#include &quot;common/angleutils.h&quot;
+
+namespace gl
+{
+class Framebuffer;
+}
+
+namespace rx
+{
+class Renderer9;
+class TextureStorageInterface2D;
+class TextureStorageInterfaceCube;
+
+class Blit9
+{
+  public:
+    explicit Blit9(Renderer9 *renderer);
+    ~Blit9();
+
+    // Copy from source surface to dest surface.
+    // sourceRect, xoffset, yoffset are in D3D coordinates (0,0 in upper-left)
+    bool copy(gl::Framebuffer *framebuffer, const RECT &amp;sourceRect, GLenum destFormat, GLint xoffset, GLint yoffset, TextureStorageInterface2D *storage, GLint level);
+    bool copy(gl::Framebuffer *framebuffer, const RECT &amp;sourceRect, GLenum destFormat, GLint xoffset, GLint yoffset, TextureStorageInterfaceCube *storage, GLenum target, GLint level);
+
+    // Copy from source surface to dest surface.
+    // sourceRect, xoffset, yoffset are in D3D coordinates (0,0 in upper-left)
+    // source is interpreted as RGBA and destFormat specifies the desired result format. For example, if destFormat = GL_RGB, the alpha channel will be forced to 0.
+    bool formatConvert(IDirect3DSurface9 *source, const RECT &amp;sourceRect, GLenum destFormat, GLint xoffset, GLint yoffset, IDirect3DSurface9 *dest);
+
+    // 2x2 box filter sample from source to dest.
+    // Requires that source is RGB(A) and dest has the same format as source.
+    bool boxFilter(IDirect3DSurface9 *source, IDirect3DSurface9 *dest);
+
+  private:
+    rx::Renderer9 *mRenderer;
+
+    IDirect3DVertexBuffer9 *mQuadVertexBuffer;
+    IDirect3DVertexDeclaration9 *mQuadVertexDeclaration;
+
+    void initGeometry();
+
+    bool setFormatConvertShaders(GLenum destFormat);
+
+    bool copy(IDirect3DSurface9 *source, const RECT &amp;sourceRect, GLenum destFormat, GLint xoffset, GLint yoffset, IDirect3DSurface9 *dest);
+    IDirect3DTexture9 *copySurfaceToTexture(IDirect3DSurface9 *surface, const RECT &amp;sourceRect);
+    void setViewport(const RECT &amp;sourceRect, GLint xoffset, GLint yoffset);
+    void setCommonBlitState();
+    RECT getSurfaceRect(IDirect3DSurface9 *surface) const;
+
+    // This enum is used to index mCompiledShaders and mShaderSource.
+    enum ShaderId
+    {
+        SHADER_VS_STANDARD,
+        SHADER_VS_FLIPY,
+        SHADER_PS_PASSTHROUGH,
+        SHADER_PS_LUMINANCE,
+        SHADER_PS_COMPONENTMASK,
+        SHADER_COUNT
+    };
+
+    // This actually contains IDirect3DVertexShader9 or IDirect3DPixelShader9 casted to IUnknown.
+    IUnknown *mCompiledShaders[SHADER_COUNT];
+
+    template &lt;class D3DShaderType&gt;
+    bool setShader(ShaderId source, const char *profile,
+                   D3DShaderType *(Renderer9::*createShader)(const DWORD *, size_t length),
+                   HRESULT (WINAPI IDirect3DDevice9::*setShader)(D3DShaderType*));
+
+    bool setVertexShader(ShaderId shader);
+    bool setPixelShader(ShaderId shader);
+    void render();
+
+    void saveState();
+    void restoreState();
+    IDirect3DStateBlock9 *mSavedStateBlock;
+    IDirect3DSurface9 *mSavedRenderTarget;
+    IDirect3DSurface9 *mSavedDepthStencil;
+
+    DISALLOW_COPY_AND_ASSIGN(Blit9);
+};
+}
+
+#endif   // LIBGLESV2_BLIT9_H_
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d9ShaderCacheh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d9/ShaderCache.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d9/ShaderCache.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d9/ShaderCache.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,102 @@
</span><ins>+//
+// Copyright (c) 2012 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+
+// ShaderCache: Defines rx::ShaderCache, a cache of Direct3D shader objects
+// keyed by their byte code.
+
+#ifndef LIBGLESV2_RENDERER_SHADER_CACHE_H_
+#define LIBGLESV2_RENDERER_SHADER_CACHE_H_
+
+#include &quot;common/debug.h&quot;
+
+namespace rx
+{
+template &lt;typename ShaderObject&gt;
+class ShaderCache
+{
+  public:
+    ShaderCache() : mDevice(NULL)
+    {
+    }
+
+    ~ShaderCache()
+    {
+        // Call clear while the device is still valid.
+        ASSERT(mMap.empty());
+    }
+
+    void initialize(IDirect3DDevice9* device)
+    {
+        mDevice = device;
+    }
+
+    ShaderObject *create(const DWORD *function, size_t length)
+    {
+        std::string key(reinterpret_cast&lt;const char*&gt;(function), length);
+        typename Map::iterator it = mMap.find(key);
+        if (it != mMap.end())
+        {
+            it-&gt;second-&gt;AddRef();
+            return it-&gt;second;
+        }
+
+        ShaderObject *shader;
+        HRESULT result = createShader(function, &amp;shader);
+        if (FAILED(result))
+        {
+            return NULL;
+        }
+
+        // Random eviction policy.
+        if (mMap.size() &gt;= kMaxMapSize)
+        {
+            SafeRelease(mMap.begin()-&gt;second);
+            mMap.erase(mMap.begin());
+        }
+
+        shader-&gt;AddRef();
+        mMap[key] = shader;
+
+        return shader;
+    }
+
+    void clear()
+    {
+        for (typename Map::iterator it = mMap.begin(); it != mMap.end(); ++it)
+        {
+            SafeRelease(it-&gt;second);
+        }
+
+        mMap.clear();
+    }
+
+  private:
+    DISALLOW_COPY_AND_ASSIGN(ShaderCache);
+
+    const static size_t kMaxMapSize = 100;
+
+    HRESULT createShader(const DWORD *function, IDirect3DVertexShader9 **shader)
+    {
+        return mDevice-&gt;CreateVertexShader(function, shader);
+    }
+
+    HRESULT createShader(const DWORD *function, IDirect3DPixelShader9 **shader)
+    {
+        return mDevice-&gt;CreatePixelShader(function, shader);
+    }
+
+    typedef std::unordered_map&lt;std::string, ShaderObject*&gt; Map;
+    Map mMap;
+
+    IDirect3DDevice9 *mDevice;
+};
+
+typedef ShaderCache&lt;IDirect3DVertexShader9&gt; VertexShaderCache;
+typedef ShaderCache&lt;IDirect3DPixelShader9&gt; PixelShaderCache;
+
+}
+
+#endif   // LIBGLESV2_RENDERER_SHADER_CACHE_H_
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d9formatutils9cpp"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d9/formatutils9.cpp (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d9/formatutils9.cpp                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d9/formatutils9.cpp        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,863 @@
</span><ins>+#include &quot;precompiled.h&quot;
+//
+// Copyright (c) 2013 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+
+// formatutils9.cpp: Queries for GL image formats and their translations to D3D9
+// formats.
+
+#include &quot;libGLESv2/renderer/d3d9/formatutils9.h&quot;
+#include &quot;libGLESv2/renderer/d3d9/Renderer9.h&quot;
+#include &quot;libGLESv2/renderer/generatemip.h&quot;
+#include &quot;libGLESv2/renderer/loadimage.h&quot;
+#include &quot;libGLESv2/renderer/copyimage.h&quot;
+#include &quot;libGLESv2/renderer/vertexconversion.h&quot;
+
+namespace rx
+{
+
+// Each GL internal format corresponds to one D3D format and data loading function.
+// Due to not all formats being available all the time, some of the function/format types are wrapped
+// in templates that perform format support queries on a Renderer9 object which is supplied
+// when requesting the function or format.
+
+typedef bool ((Renderer9::*Renderer9FormatCheckFunction)(void) const);
+typedef LoadImageFunction (*RendererCheckLoadFunction)(const Renderer9 *renderer);
+
+template &lt;Renderer9FormatCheckFunction pred, LoadImageFunction prefered, LoadImageFunction fallback&gt;
+LoadImageFunction RendererCheckLoad(const Renderer9 *renderer)
+{
+    return ((renderer-&gt;*pred)()) ? prefered : fallback;
+}
+
+template &lt;LoadImageFunction loadFunc&gt;
+LoadImageFunction SimpleLoad(const Renderer9 *renderer)
+{
+    return loadFunc;
+}
+
+LoadImageFunction UnreachableLoad(const Renderer9 *renderer)
+{
+    UNREACHABLE();
+    return NULL;
+}
+
+typedef bool (*FallbackPredicateFunction)(void);
+
+template &lt;FallbackPredicateFunction pred, LoadImageFunction prefered, LoadImageFunction fallback&gt;
+LoadImageFunction FallbackLoadFunction(const Renderer9 *renderer)
+{
+    return pred() ? prefered : fallback;
+}
+
+typedef D3DFORMAT (*FormatQueryFunction)(const rx::Renderer9 *renderer);
+
+template &lt;Renderer9FormatCheckFunction pred, D3DFORMAT prefered, D3DFORMAT fallback&gt;
+D3DFORMAT CheckFormatSupport(const rx::Renderer9 *renderer)
+{
+    return (renderer-&gt;*pred)() ? prefered : fallback;
+}
+
+template &lt;D3DFORMAT format&gt;
+D3DFORMAT D3D9Format(const rx::Renderer9 *renderer)
+{
+    return format;
+}
+
+struct D3D9FormatInfo
+{
+    FormatQueryFunction mTexFormat;
+    FormatQueryFunction mRenderFormat;
+    RendererCheckLoadFunction mLoadFunction;
+
+    D3D9FormatInfo()
+        : mTexFormat(NULL), mRenderFormat(NULL), mLoadFunction(NULL)
+    { }
+
+    D3D9FormatInfo(FormatQueryFunction textureFormat, FormatQueryFunction renderFormat, RendererCheckLoadFunction loadFunc)
+        : mTexFormat(textureFormat), mRenderFormat(renderFormat), mLoadFunction(loadFunc)
+    { }
+};
+
+const D3DFORMAT D3DFMT_INTZ = ((D3DFORMAT)(MAKEFOURCC('I','N','T','Z')));
+const D3DFORMAT D3DFMT_NULL = ((D3DFORMAT)(MAKEFOURCC('N','U','L','L')));
+
+typedef std::pair&lt;GLenum, D3D9FormatInfo&gt; D3D9FormatPair;
+typedef std::map&lt;GLenum, D3D9FormatInfo&gt; D3D9FormatMap;
+
+static D3D9FormatMap BuildD3D9FormatMap()
+{
+    D3D9FormatMap map;
+
+    //                       | Internal format                                   | Texture format                  | Render format                    | Load function                                   |
+    map.insert(D3D9FormatPair(GL_NONE,                             D3D9FormatInfo(D3D9Format&lt;D3DFMT_NULL&gt;,          D3D9Format&lt;D3DFMT_NULL&gt;,           UnreachableLoad                                  )));
+
+    map.insert(D3D9FormatPair(GL_DEPTH_COMPONENT16,                D3D9FormatInfo(D3D9Format&lt;D3DFMT_INTZ&gt;,          D3D9Format&lt;D3DFMT_D24S8&gt;,          UnreachableLoad                                  )));
+    map.insert(D3D9FormatPair(GL_DEPTH_COMPONENT32_OES,            D3D9FormatInfo(D3D9Format&lt;D3DFMT_INTZ&gt;,          D3D9Format&lt;D3DFMT_D32&gt;,            UnreachableLoad                                  )));
+    map.insert(D3D9FormatPair(GL_DEPTH24_STENCIL8_OES,             D3D9FormatInfo(D3D9Format&lt;D3DFMT_INTZ&gt;,          D3D9Format&lt;D3DFMT_D24S8&gt;,          UnreachableLoad                                  )));
+    map.insert(D3D9FormatPair(GL_STENCIL_INDEX8,                   D3D9FormatInfo(D3D9Format&lt;D3DFMT_UNKNOWN&gt;,       D3D9Format&lt;D3DFMT_D24S8&gt;,          UnreachableLoad                                  ))); // TODO: What's the texture format?
+
+    map.insert(D3D9FormatPair(GL_RGBA32F_EXT,                      D3D9FormatInfo(D3D9Format&lt;D3DFMT_A32B32G32R32F&gt;, D3D9Format&lt;D3DFMT_A32B32G32R32F&gt;,  SimpleLoad&lt;loadToNative&lt;GLfloat, 4&gt; &gt;            )));
+    map.insert(D3D9FormatPair(GL_RGB32F_EXT,                       D3D9FormatInfo(D3D9Format&lt;D3DFMT_A32B32G32R32F&gt;, D3D9Format&lt;D3DFMT_A32B32G32R32F&gt;,  SimpleLoad&lt;loadToNative3To4&lt;GLfloat, gl::Float32One&gt; &gt;)));
+    map.insert(D3D9FormatPair(GL_RG32F_EXT,                        D3D9FormatInfo(D3D9Format&lt;D3DFMT_G32R32F&gt;,       D3D9Format&lt;D3DFMT_G32R32F&gt;,        SimpleLoad&lt;loadToNative&lt;GLfloat, 2&gt; &gt;            )));
+    map.insert(D3D9FormatPair(GL_R32F_EXT,                         D3D9FormatInfo(D3D9Format&lt;D3DFMT_R32F&gt;,          D3D9Format&lt;D3DFMT_R32F&gt;,           SimpleLoad&lt;loadToNative&lt;GLfloat, 1&gt; &gt;            )));
+    map.insert(D3D9FormatPair(GL_ALPHA32F_EXT,                     D3D9FormatInfo(D3D9Format&lt;D3DFMT_A32B32G32R32F&gt;, D3D9Format&lt;D3DFMT_UNKNOWN&gt;,        SimpleLoad&lt;loadAlphaFloatDataToRGBA&gt;             )));
+    map.insert(D3D9FormatPair(GL_LUMINANCE32F_EXT,                 D3D9FormatInfo(D3D9Format&lt;D3DFMT_A32B32G32R32F&gt;, D3D9Format&lt;D3DFMT_UNKNOWN&gt;,        SimpleLoad&lt;loadLuminanceFloatDataToRGBA&gt;         )));
+    map.insert(D3D9FormatPair(GL_LUMINANCE_ALPHA32F_EXT,           D3D9FormatInfo(D3D9Format&lt;D3DFMT_A32B32G32R32F&gt;, D3D9Format&lt;D3DFMT_UNKNOWN&gt;,        SimpleLoad&lt;loadLuminanceAlphaFloatDataToRGBA&gt;    )));
+
+    map.insert(D3D9FormatPair(GL_RGBA16F_EXT,                      D3D9FormatInfo(D3D9Format&lt;D3DFMT_A16B16G16R16F&gt;, D3D9Format&lt;D3DFMT_A16B16G16R16F&gt;,  SimpleLoad&lt;loadToNative&lt;GLhalf, 4&gt; &gt;             )));
+    map.insert(D3D9FormatPair(GL_RGB16F_EXT,                       D3D9FormatInfo(D3D9Format&lt;D3DFMT_A16B16G16R16F&gt;, D3D9Format&lt;D3DFMT_A16B16G16R16F&gt;,  SimpleLoad&lt;loadToNative3To4&lt;GLhalf, gl::Float16One&gt; &gt;)));
+    map.insert(D3D9FormatPair(GL_RG16F_EXT,                        D3D9FormatInfo(D3D9Format&lt;D3DFMT_G16R16F&gt;,       D3D9Format&lt;D3DFMT_G16R16F&gt;,        SimpleLoad&lt;loadToNative&lt;GLhalf, 2&gt; &gt;             )));
+    map.insert(D3D9FormatPair(GL_R16F_EXT,                         D3D9FormatInfo(D3D9Format&lt;D3DFMT_R16F&gt;,          D3D9Format&lt;D3DFMT_R16F&gt;,           SimpleLoad&lt;loadToNative&lt;GLhalf, 1&gt; &gt;             )));
+    map.insert(D3D9FormatPair(GL_ALPHA16F_EXT,                     D3D9FormatInfo(D3D9Format&lt;D3DFMT_A16B16G16R16F&gt;, D3D9Format&lt;D3DFMT_UNKNOWN&gt;,        SimpleLoad&lt;loadAlphaHalfFloatDataToRGBA&gt;         )));
+    map.insert(D3D9FormatPair(GL_LUMINANCE16F_EXT,                 D3D9FormatInfo(D3D9Format&lt;D3DFMT_A16B16G16R16F&gt;, D3D9Format&lt;D3DFMT_UNKNOWN&gt;,        SimpleLoad&lt;loadLuminanceHalfFloatDataToRGBA&gt;     )));
+    map.insert(D3D9FormatPair(GL_LUMINANCE_ALPHA16F_EXT,           D3D9FormatInfo(D3D9Format&lt;D3DFMT_A16B16G16R16F&gt;, D3D9Format&lt;D3DFMT_UNKNOWN&gt;,        SimpleLoad&lt;loadLuminanceAlphaHalfFloatDataToRGBA&gt;)));
+
+    map.insert(D3D9FormatPair(GL_ALPHA8_EXT,                       D3D9FormatInfo(D3D9Format&lt;D3DFMT_A8R8G8B8&gt;,      D3D9Format&lt;D3DFMT_A8R8G8B8&gt;,       FallbackLoadFunction&lt;gl::supportsSSE2, loadAlphaDataToBGRASSE2, loadAlphaDataToBGRA&gt;)));
+
+    map.insert(D3D9FormatPair(GL_RGB8_OES,                         D3D9FormatInfo(D3D9Format&lt;D3DFMT_X8R8G8B8&gt;,      D3D9Format&lt;D3DFMT_X8R8G8B8&gt;,       SimpleLoad&lt;loadRGBUByteDataToBGRX&gt;                )));
+    map.insert(D3D9FormatPair(GL_RGB565,                           D3D9FormatInfo(CheckFormatSupport&lt;&amp;Renderer9::getRGB565TextureSupport, D3DFMT_R5G6B5, D3DFMT_X8R8G8B8&gt;, CheckFormatSupport&lt;&amp;Renderer9::getRGB565TextureSupport, D3DFMT_R5G6B5, D3DFMT_X8R8G8B8&gt;, RendererCheckLoad&lt;&amp;Renderer9::getRGB565TextureSupport, loadToNative&lt;GLushort, 1&gt;, loadRGB565DataToBGRA&gt;)));
+    map.insert(D3D9FormatPair(GL_RGBA8_OES,                        D3D9FormatInfo(D3D9Format&lt;D3DFMT_A8R8G8B8&gt;,      D3D9Format&lt;D3DFMT_A8R8G8B8&gt;,       FallbackLoadFunction&lt;gl::supportsSSE2, loadRGBAUByteDataToBGRASSE2, loadRGBAUByteDataToBGRA&gt;)));
+    map.insert(D3D9FormatPair(GL_RGBA4,                            D3D9FormatInfo(D3D9Format&lt;D3DFMT_A8R8G8B8&gt;,      D3D9Format&lt;D3DFMT_A8R8G8B8&gt;,       SimpleLoad&lt;loadRGBA4444DataToBGRA&gt;                )));
+    map.insert(D3D9FormatPair(GL_RGB5_A1,                          D3D9FormatInfo(D3D9Format&lt;D3DFMT_A8R8G8B8&gt;,      D3D9Format&lt;D3DFMT_A8R8G8B8&gt;,       SimpleLoad&lt;loadRGBA5551DataToBGRA&gt;                )));
+    map.insert(D3D9FormatPair(GL_R8_EXT,                           D3D9FormatInfo(D3D9Format&lt;D3DFMT_X8R8G8B8&gt;,      D3D9Format&lt;D3DFMT_X8R8G8B8&gt;,       SimpleLoad&lt;loadRUByteDataToBGRX&gt;                  )));
+    map.insert(D3D9FormatPair(GL_RG8_EXT,                          D3D9FormatInfo(D3D9Format&lt;D3DFMT_X8R8G8B8&gt;,      D3D9Format&lt;D3DFMT_X8R8G8B8&gt;,       SimpleLoad&lt;loadRGUByteDataToBGRX&gt;                 )));
+
+    map.insert(D3D9FormatPair(GL_BGRA8_EXT,                        D3D9FormatInfo(D3D9Format&lt;D3DFMT_A8R8G8B8&gt;,      D3D9Format&lt;D3DFMT_A8R8G8B8&gt;,       SimpleLoad&lt;loadToNative&lt;GLubyte, 4&gt; &gt;             )));
+    map.insert(D3D9FormatPair(GL_BGRA4_ANGLEX,                     D3D9FormatInfo(D3D9Format&lt;D3DFMT_A8R8G8B8&gt;,      D3D9Format&lt;D3DFMT_A8R8G8B8&gt;,       SimpleLoad&lt;loadRGBA4444DataToRGBA&gt;                )));
+    map.insert(D3D9FormatPair(GL_BGR5_A1_ANGLEX,                   D3D9FormatInfo(D3D9Format&lt;D3DFMT_A8R8G8B8&gt;,      D3D9Format&lt;D3DFMT_A8R8G8B8&gt;,       SimpleLoad&lt;loadRGBA5551DataToRGBA&gt;                )));
+
+    map.insert(D3D9FormatPair(GL_COMPRESSED_RGB_S3TC_DXT1_EXT,     D3D9FormatInfo(D3D9Format&lt;D3DFMT_DXT1&gt;,          D3D9Format&lt;D3DFMT_UNKNOWN&gt;,        SimpleLoad&lt;loadCompressedBlockDataToNative&lt;4, 4,  8&gt; &gt;)));
+    map.insert(D3D9FormatPair(GL_COMPRESSED_RGBA_S3TC_DXT1_EXT,    D3D9FormatInfo(D3D9Format&lt;D3DFMT_DXT1&gt;,          D3D9Format&lt;D3DFMT_UNKNOWN&gt;,        SimpleLoad&lt;loadCompressedBlockDataToNative&lt;4, 4,  8&gt; &gt;)));
+    map.insert(D3D9FormatPair(GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE,  D3D9FormatInfo(D3D9Format&lt;D3DFMT_DXT3&gt;,          D3D9Format&lt;D3DFMT_UNKNOWN&gt;,        SimpleLoad&lt;loadCompressedBlockDataToNative&lt;4, 4, 16&gt; &gt;)));
+    map.insert(D3D9FormatPair(GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE,  D3D9FormatInfo(D3D9Format&lt;D3DFMT_DXT5&gt;,          D3D9Format&lt;D3DFMT_UNKNOWN&gt;,        SimpleLoad&lt;loadCompressedBlockDataToNative&lt;4, 4, 16&gt; &gt;)));
+
+    // These formats require checking if the renderer supports D3DFMT_L8 or D3DFMT_A8L8 and
+    // then changing the format and loading function appropriately.
+    map.insert(D3D9FormatPair(GL_LUMINANCE8_EXT,                   D3D9FormatInfo(CheckFormatSupport&lt;&amp;Renderer9::getLuminanceTextureSupport, D3DFMT_L8, D3DFMT_A8R8G8B8&gt;,        D3D9Format&lt;D3DFMT_UNKNOWN&gt;,  RendererCheckLoad&lt;&amp;Renderer9::getLuminanceTextureSupport, loadToNative&lt;GLubyte, 1&gt;, loadLuminanceDataToBGRA&gt;)));
+    map.insert(D3D9FormatPair(GL_LUMINANCE8_ALPHA8_EXT,            D3D9FormatInfo(CheckFormatSupport&lt;&amp;Renderer9::getLuminanceAlphaTextureSupport, D3DFMT_A8L8, D3DFMT_A8R8G8B8&gt;, D3D9Format&lt;D3DFMT_UNKNOWN&gt;,  RendererCheckLoad&lt;&amp;Renderer9::getLuminanceTextureSupport, loadToNative&lt;GLubyte, 2&gt;, loadLuminanceAlphaDataToBGRA&gt;)));
+
+    return map;
+}
+
+static bool GetD3D9FormatInfo(GLenum internalFormat, D3D9FormatInfo *outFormatInfo)
+{
+    static const D3D9FormatMap formatMap = BuildD3D9FormatMap();
+    D3D9FormatMap::const_iterator iter = formatMap.find(internalFormat);
+    if (iter != formatMap.end())
+    {
+        if (outFormatInfo)
+        {
+            *outFormatInfo = iter-&gt;second;
+        }
+        return true;
+    }
+    else
+    {
+        return false;
+    }
+}
+
+// A map to determine the pixel size and mip generation function of a given D3D format
+struct D3DFormatInfo
+{
+    GLuint mPixelBits;
+    GLuint mBlockWidth;
+    GLuint mBlockHeight;
+    GLenum mInternalFormat;
+
+    MipGenerationFunction mMipGenerationFunction;
+    ColorReadFunction mColorReadFunction;
+
+    D3DFormatInfo()
+        : mPixelBits(0), mBlockWidth(0), mBlockHeight(0), mInternalFormat(GL_NONE), mMipGenerationFunction(NULL),
+          mColorReadFunction(NULL)
+    { }
+
+    D3DFormatInfo(GLuint pixelBits, GLuint blockWidth, GLuint blockHeight, GLenum internalFormat,
+                  MipGenerationFunction mipFunc, ColorReadFunction readFunc)
+        : mPixelBits(pixelBits), mBlockWidth(blockWidth), mBlockHeight(blockHeight), mInternalFormat(internalFormat),
+          mMipGenerationFunction(mipFunc), mColorReadFunction(readFunc)
+    { }
+};
+
+typedef std::pair&lt;D3DFORMAT, D3DFormatInfo&gt; D3D9FormatInfoPair;
+typedef std::map&lt;D3DFORMAT, D3DFormatInfo&gt; D3D9FormatInfoMap;
+
+static D3D9FormatInfoMap BuildD3D9FormatInfoMap()
+{
+    D3D9FormatInfoMap map;
+
+    //                           | D3DFORMAT           |             | S  |W |H | Internal format                   | Mip generation function   | Color read function             |
+    map.insert(D3D9FormatInfoPair(D3DFMT_NULL,          D3DFormatInfo(  0, 0, 0, GL_NONE,                            NULL,                       NULL                             )));
+    map.insert(D3D9FormatInfoPair(D3DFMT_UNKNOWN,       D3DFormatInfo(  0, 0, 0, GL_NONE,                            NULL,                       NULL                             )));
+
+    map.insert(D3D9FormatInfoPair(D3DFMT_L8,            D3DFormatInfo(  8, 1, 1, GL_LUMINANCE8_EXT,                  GenerateMip&lt;L8&gt;,            ReadColor&lt;L8, GLfloat&gt;           )));
+    map.insert(D3D9FormatInfoPair(D3DFMT_A8,            D3DFormatInfo(  8, 1, 1, GL_ALPHA8_EXT,                      GenerateMip&lt;A8&gt;,            ReadColor&lt;A8, GLfloat&gt;           )));
+    map.insert(D3D9FormatInfoPair(D3DFMT_A8L8,          D3DFormatInfo( 16, 1, 1, GL_LUMINANCE8_ALPHA8_EXT,           GenerateMip&lt;A8L8&gt;,          ReadColor&lt;A8L8, GLfloat&gt;         )));
+    map.insert(D3D9FormatInfoPair(D3DFMT_A4R4G4B4,      D3DFormatInfo( 16, 1, 1, GL_BGRA4_ANGLEX,                    GenerateMip&lt;B4G4R4A4&gt;,      ReadColor&lt;B4G4R4A4, GLfloat&gt;     )));
+    map.insert(D3D9FormatInfoPair(D3DFMT_A1R5G5B5,      D3DFormatInfo( 16, 1, 1, GL_BGR5_A1_ANGLEX,                  GenerateMip&lt;B5G5R5A1&gt;,      ReadColor&lt;B5G5R5A1, GLfloat&gt;     )));
+    map.insert(D3D9FormatInfoPair(D3DFMT_R5G6B5,        D3DFormatInfo( 16, 1, 1, GL_RGB565,                          GenerateMip&lt;R5G6B5&gt;,        ReadColor&lt;R5G6B5, GLfloat&gt;       )));
+    map.insert(D3D9FormatInfoPair(D3DFMT_X8R8G8B8,      D3DFormatInfo( 32, 1, 1, GL_BGRA8_EXT,                       GenerateMip&lt;B8G8R8X8&gt;,      ReadColor&lt;B8G8R8X8, GLfloat&gt;     )));
+    map.insert(D3D9FormatInfoPair(D3DFMT_A8R8G8B8,      D3DFormatInfo( 32, 1, 1, GL_BGRA8_EXT,                       GenerateMip&lt;B8G8R8A8&gt;,      ReadColor&lt;B8G8R8A8, GLfloat&gt;     )));
+    map.insert(D3D9FormatInfoPair(D3DFMT_R16F,          D3DFormatInfo( 16, 1, 1, GL_R16F_EXT,                        GenerateMip&lt;R16F&gt;,          ReadColor&lt;R16F, GLfloat&gt;         )));
+    map.insert(D3D9FormatInfoPair(D3DFMT_G16R16F,       D3DFormatInfo( 32, 1, 1, GL_RG16F_EXT,                       GenerateMip&lt;R16G16F&gt;,       ReadColor&lt;R16G16F, GLfloat&gt;      )));
+    map.insert(D3D9FormatInfoPair(D3DFMT_A16B16G16R16F, D3DFormatInfo( 64, 1, 1, GL_RGBA16F_EXT,                     GenerateMip&lt;R16G16B16A16F&gt;, ReadColor&lt;R16G16B16A16F, GLfloat&gt;)));
+    map.insert(D3D9FormatInfoPair(D3DFMT_R32F,          D3DFormatInfo( 32, 1, 1, GL_R32F_EXT,                        GenerateMip&lt;R32F&gt;,          ReadColor&lt;R32F, GLfloat&gt;         )));
+    map.insert(D3D9FormatInfoPair(D3DFMT_G32R32F,       D3DFormatInfo( 64, 1, 1, GL_RG32F_EXT,                       GenerateMip&lt;R32G32F&gt;,       ReadColor&lt;R32G32F, GLfloat&gt;      )));
+    map.insert(D3D9FormatInfoPair(D3DFMT_A32B32G32R32F, D3DFormatInfo(128, 1, 1, GL_RGBA32F_EXT,                     GenerateMip&lt;R32G32B32A32F&gt;, ReadColor&lt;R32G32B32A32F, GLfloat&gt;)));
+
+    map.insert(D3D9FormatInfoPair(D3DFMT_D16,           D3DFormatInfo( 16, 1, 1, GL_DEPTH_COMPONENT16,               NULL,                       NULL                             )));
+    map.insert(D3D9FormatInfoPair(D3DFMT_D24S8,         D3DFormatInfo( 32, 1, 1, GL_DEPTH24_STENCIL8_OES,            NULL,                       NULL                             )));
+    map.insert(D3D9FormatInfoPair(D3DFMT_D24X8,         D3DFormatInfo( 32, 1, 1, GL_DEPTH_COMPONENT16,               NULL,                       NULL                             )));
+    map.insert(D3D9FormatInfoPair(D3DFMT_D32,           D3DFormatInfo( 32, 1, 1, GL_DEPTH_COMPONENT32_OES,           NULL,                       NULL                             )));
+
+    map.insert(D3D9FormatInfoPair(D3DFMT_INTZ,          D3DFormatInfo( 32, 1, 1, GL_DEPTH24_STENCIL8_OES,            NULL,                       NULL                             )));
+
+    map.insert(D3D9FormatInfoPair(D3DFMT_DXT1,          D3DFormatInfo( 64, 4, 4, GL_COMPRESSED_RGBA_S3TC_DXT1_EXT,   NULL,                       NULL                             )));
+    map.insert(D3D9FormatInfoPair(D3DFMT_DXT3,          D3DFormatInfo(128, 4, 4, GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE, NULL,                       NULL                             )));
+    map.insert(D3D9FormatInfoPair(D3DFMT_DXT5,          D3DFormatInfo(128, 4, 4, GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE, NULL,                       NULL                             )));
+
+    return map;
+}
+
+static const D3D9FormatInfoMap &amp;GetD3D9FormatInfoMap()
+{
+    static const D3D9FormatInfoMap infoMap = BuildD3D9FormatInfoMap();
+    return infoMap;
+}
+
+static bool GetD3D9FormatInfo(D3DFORMAT format, D3DFormatInfo *outFormatInfo)
+{
+    const D3D9FormatInfoMap &amp;infoMap = GetD3D9FormatInfoMap();
+    D3D9FormatInfoMap::const_iterator iter = infoMap.find(format);
+    if (iter != infoMap.end())
+    {
+        if (outFormatInfo)
+        {
+            *outFormatInfo = iter-&gt;second;
+        }
+        return true;
+    }
+    else
+    {
+        return false;
+    }
+}
+static d3d9::D3DFormatSet BuildAllD3DFormatSet()
+{
+    d3d9::D3DFormatSet set;
+
+    const D3D9FormatInfoMap &amp;infoMap = GetD3D9FormatInfoMap();
+    for (D3D9FormatInfoMap::const_iterator i = infoMap.begin(); i != infoMap.end(); ++i)
+    {
+        set.insert(i-&gt;first);
+    }
+
+    return set;
+}
+
+struct D3D9FastCopyFormat
+{
+    D3DFORMAT mSourceFormat;
+    GLenum mDestFormat;
+    GLenum mDestType;
+
+    D3D9FastCopyFormat(D3DFORMAT sourceFormat, GLenum destFormat, GLenum destType)
+        : mSourceFormat(sourceFormat), mDestFormat(destFormat), mDestType(destType)
+    { }
+
+    bool operator&lt;(const D3D9FastCopyFormat&amp; other) const
+    {
+        return memcmp(this, &amp;other, sizeof(D3D9FastCopyFormat)) &lt; 0;
+    }
+};
+
+typedef std::map&lt;D3D9FastCopyFormat, ColorCopyFunction&gt; D3D9FastCopyMap;
+typedef std::pair&lt;D3D9FastCopyFormat, ColorCopyFunction&gt; D3D9FastCopyPair;
+
+static D3D9FastCopyMap BuildFastCopyMap()
+{
+    D3D9FastCopyMap map;
+
+    map.insert(D3D9FastCopyPair(D3D9FastCopyFormat(D3DFMT_A8R8G8B8, GL_RGBA, GL_UNSIGNED_BYTE), CopyBGRAUByteToRGBAUByte));
+
+    return map;
+}
+
+typedef std::pair&lt;GLint, InitializeTextureDataFunction&gt; InternalFormatInitialzerPair;
+typedef std::map&lt;GLint, InitializeTextureDataFunction&gt; InternalFormatInitialzerMap;
+
+static InternalFormatInitialzerMap BuildInternalFormatInitialzerMap()
+{
+    InternalFormatInitialzerMap map;
+
+    map.insert(InternalFormatInitialzerPair(GL_RGB16F,  initialize4ComponentData&lt;GLhalf,   0x0000,     0x0000,     0x0000,     gl::Float16One&gt;));
+    map.insert(InternalFormatInitialzerPair(GL_RGB32F,  initialize4ComponentData&lt;GLfloat,  0x00000000, 0x00000000, 0x00000000, gl::Float32One&gt;));
+
+    return map;
+}
+
+static const InternalFormatInitialzerMap &amp;GetInternalFormatInitialzerMap()
+{
+    static const InternalFormatInitialzerMap map = BuildInternalFormatInitialzerMap();
+    return map;
+}
+
+namespace d3d9
+{
+
+MipGenerationFunction GetMipGenerationFunction(D3DFORMAT format)
+{
+    D3DFormatInfo d3dFormatInfo;
+    if (GetD3D9FormatInfo(format, &amp;d3dFormatInfo))
+    {
+        return d3dFormatInfo.mMipGenerationFunction;
+    }
+    else
+    {
+        UNREACHABLE();
+        return NULL;
+    }
+}
+
+LoadImageFunction GetImageLoadFunction(GLenum internalFormat, const Renderer9 *renderer)
+{
+    if (!renderer)
+    {
+        return NULL;
+    }
+
+    ASSERT(renderer-&gt;getCurrentClientVersion() == 2);
+
+    D3D9FormatInfo d3d9FormatInfo;
+    if (GetD3D9FormatInfo(internalFormat, &amp;d3d9FormatInfo))
+    {
+        return d3d9FormatInfo.mLoadFunction(renderer);
+    }
+    else
+    {
+        UNREACHABLE();
+        return NULL;
+    }
+}
+
+GLuint GetFormatPixelBytes(D3DFORMAT format)
+{
+    D3DFormatInfo d3dFormatInfo;
+    if (GetD3D9FormatInfo(format, &amp;d3dFormatInfo))
+    {
+        return d3dFormatInfo.mPixelBits / 8;
+    }
+    else
+    {
+        UNREACHABLE();
+        return 0;
+    }
+}
+
+GLuint GetBlockWidth(D3DFORMAT format)
+{
+    D3DFormatInfo d3dFormatInfo;
+    if (GetD3D9FormatInfo(format, &amp;d3dFormatInfo))
+    {
+        return d3dFormatInfo.mBlockWidth;
+    }
+    else
+    {
+        UNREACHABLE();
+        return 0;
+    }
+}
+
+GLuint GetBlockHeight(D3DFORMAT format)
+{
+    D3DFormatInfo d3dFormatInfo;
+    if (GetD3D9FormatInfo(format, &amp;d3dFormatInfo))
+    {
+        return d3dFormatInfo.mBlockHeight;
+    }
+    else
+    {
+        UNREACHABLE();
+        return 0;
+    }
+}
+
+GLuint GetBlockSize(D3DFORMAT format, GLuint width, GLuint height)
+{
+    D3DFormatInfo d3dFormatInfo;
+    if (GetD3D9FormatInfo(format, &amp;d3dFormatInfo))
+    {
+        GLuint numBlocksWide = (width + d3dFormatInfo.mBlockWidth - 1) / d3dFormatInfo.mBlockWidth;
+        GLuint numBlocksHight = (height + d3dFormatInfo.mBlockHeight - 1) / d3dFormatInfo.mBlockHeight;
+
+        return (d3dFormatInfo.mPixelBits * numBlocksWide * numBlocksHight) / 8;
+    }
+    else
+    {
+        UNREACHABLE();
+        return 0;
+    }
+}
+
+void MakeValidSize(bool isImage, D3DFORMAT format, GLsizei *requestWidth, GLsizei *requestHeight, int *levelOffset)
+{
+    D3DFormatInfo d3dFormatInfo;
+    if (GetD3D9FormatInfo(format, &amp;d3dFormatInfo))
+    {
+        int upsampleCount = 0;
+
+        GLsizei blockWidth = d3dFormatInfo.mBlockWidth;
+        GLsizei blockHeight = d3dFormatInfo.mBlockHeight;
+
+        // Don't expand the size of full textures that are at least (blockWidth x blockHeight) already.
+        if (isImage || *requestWidth &lt; blockWidth || *requestHeight &lt; blockHeight)
+        {
+            while (*requestWidth % blockWidth != 0 || *requestHeight % blockHeight != 0)
+            {
+                *requestWidth &lt;&lt;= 1;
+                *requestHeight &lt;&lt;= 1;
+                upsampleCount++;
+            }
+        }
+        *levelOffset = upsampleCount;
+    }
+}
+
+const D3DFormatSet &amp;GetAllUsedD3DFormats()
+{
+    static const D3DFormatSet formatSet = BuildAllD3DFormatSet();
+    return formatSet;
+}
+
+ColorReadFunction GetColorReadFunction(D3DFORMAT format)
+{
+    D3DFormatInfo d3dFormatInfo;
+    if (GetD3D9FormatInfo(format, &amp;d3dFormatInfo))
+    {
+        return d3dFormatInfo.mColorReadFunction;
+    }
+    else
+    {
+        UNREACHABLE();
+        return NULL;
+    }
+}
+
+ColorCopyFunction GetFastCopyFunction(D3DFORMAT sourceFormat, GLenum destFormat, GLenum destType, GLuint clientVersion)
+{
+    static const D3D9FastCopyMap fastCopyMap = BuildFastCopyMap();
+    D3D9FastCopyMap::const_iterator iter = fastCopyMap.find(D3D9FastCopyFormat(sourceFormat, destFormat, destType));
+    return (iter != fastCopyMap.end()) ? iter-&gt;second : NULL;
+}
+
+GLenum GetDeclTypeComponentType(D3DDECLTYPE declType)
+{
+    switch (declType)
+    {
+      case D3DDECLTYPE_FLOAT1:   return GL_FLOAT;
+      case D3DDECLTYPE_FLOAT2:   return GL_FLOAT;
+      case D3DDECLTYPE_FLOAT3:   return GL_FLOAT;
+      case D3DDECLTYPE_FLOAT4:   return GL_FLOAT;
+      case D3DDECLTYPE_UBYTE4:   return GL_UNSIGNED_INT;
+      case D3DDECLTYPE_SHORT2:   return GL_INT;
+      case D3DDECLTYPE_SHORT4:   return GL_INT;
+      case D3DDECLTYPE_UBYTE4N:  return GL_UNSIGNED_NORMALIZED;
+      case D3DDECLTYPE_SHORT4N:  return GL_SIGNED_NORMALIZED;
+      case D3DDECLTYPE_USHORT4N: return GL_UNSIGNED_NORMALIZED;
+      case D3DDECLTYPE_SHORT2N:  return GL_SIGNED_NORMALIZED;
+      default: UNREACHABLE();    return GL_NONE;
+    }
+}
+
+// Attribute format conversion
+enum { NUM_GL_VERTEX_ATTRIB_TYPES = 6 };
+
+struct FormatConverter
+{
+    bool identity;
+    std::size_t outputElementSize;
+    void (*convertArray)(const void *in, std::size_t stride, std::size_t n, void *out);
+    D3DDECLTYPE d3dDeclType;
+};
+
+struct TranslationDescription
+{
+    DWORD capsFlag;
+    FormatConverter preferredConversion;
+    FormatConverter fallbackConversion;
+};
+
+static unsigned int typeIndex(GLenum type);
+static const FormatConverter &amp;formatConverter(const gl::VertexAttribute &amp;attribute);
+
+bool mTranslationsInitialized = false;
+FormatConverter mFormatConverters[NUM_GL_VERTEX_ATTRIB_TYPES][2][4];
+
+// Mapping from OpenGL-ES vertex attrib type to D3D decl type:
+//
+// BYTE                 SHORT (Cast)
+// BYTE-norm            FLOAT (Normalize) (can't be exactly represented as SHORT-norm)
+// UNSIGNED_BYTE        UBYTE4 (Identity) or SHORT (Cast)
+// UNSIGNED_BYTE-norm   UBYTE4N (Identity) or FLOAT (Normalize)
+// SHORT                SHORT (Identity)
+// SHORT-norm           SHORT-norm (Identity) or FLOAT (Normalize)
+// UNSIGNED_SHORT       FLOAT (Cast)
+// UNSIGNED_SHORT-norm  USHORT-norm (Identity) or FLOAT (Normalize)
+// FIXED (not in WebGL) FLOAT (FixedToFloat)
+// FLOAT                FLOAT (Identity)
+
+// GLToCType maps from GL type (as GLenum) to the C typedef.
+template &lt;GLenum GLType&gt; struct GLToCType { };
+
+template &lt;&gt; struct GLToCType&lt;GL_BYTE&gt;           { typedef GLbyte type;      };
+template &lt;&gt; struct GLToCType&lt;GL_UNSIGNED_BYTE&gt;  { typedef GLubyte type;     };
+template &lt;&gt; struct GLToCType&lt;GL_SHORT&gt;          { typedef GLshort type;     };
+template &lt;&gt; struct GLToCType&lt;GL_UNSIGNED_SHORT&gt; { typedef GLushort type;    };
+template &lt;&gt; struct GLToCType&lt;GL_FIXED&gt;          { typedef GLuint type;      };
+template &lt;&gt; struct GLToCType&lt;GL_FLOAT&gt;          { typedef GLfloat type;     };
+
+// This differs from D3DDECLTYPE in that it is unsized. (Size expansion is applied last.)
+enum D3DVertexType
+{
+    D3DVT_FLOAT,
+    D3DVT_SHORT,
+    D3DVT_SHORT_NORM,
+    D3DVT_UBYTE,
+    D3DVT_UBYTE_NORM,
+    D3DVT_USHORT_NORM
+};
+
+// D3DToCType maps from D3D vertex type (as enum D3DVertexType) to the corresponding C type.
+template &lt;unsigned int D3DType&gt; struct D3DToCType { };
+
+template &lt;&gt; struct D3DToCType&lt;D3DVT_FLOAT&gt; { typedef float type; };
+template &lt;&gt; struct D3DToCType&lt;D3DVT_SHORT&gt; { typedef short type; };
+template &lt;&gt; struct D3DToCType&lt;D3DVT_SHORT_NORM&gt; { typedef short type; };
+template &lt;&gt; struct D3DToCType&lt;D3DVT_UBYTE&gt; { typedef unsigned char type; };
+template &lt;&gt; struct D3DToCType&lt;D3DVT_UBYTE_NORM&gt; { typedef unsigned char type; };
+template &lt;&gt; struct D3DToCType&lt;D3DVT_USHORT_NORM&gt; { typedef unsigned short type; };
+
+// Encode the type/size combinations that D3D permits. For each type/size it expands to a widener that will provide the appropriate final size.
+template &lt;unsigned int type, int size&gt; struct WidenRule { };
+
+template &lt;int size&gt; struct WidenRule&lt;D3DVT_FLOAT, size&gt;          : NoWiden&lt;size&gt; { };
+template &lt;int size&gt; struct WidenRule&lt;D3DVT_SHORT, size&gt;          : WidenToEven&lt;size&gt; { };
+template &lt;int size&gt; struct WidenRule&lt;D3DVT_SHORT_NORM, size&gt;     : WidenToEven&lt;size&gt; { };
+template &lt;int size&gt; struct WidenRule&lt;D3DVT_UBYTE, size&gt;          : WidenToFour&lt;size&gt; { };
+template &lt;int size&gt; struct WidenRule&lt;D3DVT_UBYTE_NORM, size&gt;     : WidenToFour&lt;size&gt; { };
+template &lt;int size&gt; struct WidenRule&lt;D3DVT_USHORT_NORM, size&gt;    : WidenToEven&lt;size&gt; { };
+
+// VertexTypeFlags encodes the D3DCAPS9::DeclType flag and vertex declaration flag for each D3D vertex type &amp; size combination.
+template &lt;unsigned int d3dtype, int size&gt; struct VertexTypeFlags { };
+
+template &lt;unsigned int _capflag, unsigned int _declflag&gt;
+struct VertexTypeFlagsHelper
+{
+    enum { capflag = _capflag };
+    enum { declflag = _declflag };
+};
+
+template &lt;&gt; struct VertexTypeFlags&lt;D3DVT_FLOAT, 1&gt; : VertexTypeFlagsHelper&lt;0, D3DDECLTYPE_FLOAT1&gt; { };
+template &lt;&gt; struct VertexTypeFlags&lt;D3DVT_FLOAT, 2&gt; : VertexTypeFlagsHelper&lt;0, D3DDECLTYPE_FLOAT2&gt; { };
+template &lt;&gt; struct VertexTypeFlags&lt;D3DVT_FLOAT, 3&gt; : VertexTypeFlagsHelper&lt;0, D3DDECLTYPE_FLOAT3&gt; { };
+template &lt;&gt; struct VertexTypeFlags&lt;D3DVT_FLOAT, 4&gt; : VertexTypeFlagsHelper&lt;0, D3DDECLTYPE_FLOAT4&gt; { };
+template &lt;&gt; struct VertexTypeFlags&lt;D3DVT_SHORT, 2&gt; : VertexTypeFlagsHelper&lt;0, D3DDECLTYPE_SHORT2&gt; { };
+template &lt;&gt; struct VertexTypeFlags&lt;D3DVT_SHORT, 4&gt; : VertexTypeFlagsHelper&lt;0, D3DDECLTYPE_SHORT4&gt; { };
+template &lt;&gt; struct VertexTypeFlags&lt;D3DVT_SHORT_NORM, 2&gt; : VertexTypeFlagsHelper&lt;D3DDTCAPS_SHORT2N, D3DDECLTYPE_SHORT2N&gt; { };
+template &lt;&gt; struct VertexTypeFlags&lt;D3DVT_SHORT_NORM, 4&gt; : VertexTypeFlagsHelper&lt;D3DDTCAPS_SHORT4N, D3DDECLTYPE_SHORT4N&gt; { };
+template &lt;&gt; struct VertexTypeFlags&lt;D3DVT_UBYTE, 4&gt; : VertexTypeFlagsHelper&lt;D3DDTCAPS_UBYTE4, D3DDECLTYPE_UBYTE4&gt; { };
+template &lt;&gt; struct VertexTypeFlags&lt;D3DVT_UBYTE_NORM, 4&gt; : VertexTypeFlagsHelper&lt;D3DDTCAPS_UBYTE4N, D3DDECLTYPE_UBYTE4N&gt; { };
+template &lt;&gt; struct VertexTypeFlags&lt;D3DVT_USHORT_NORM, 2&gt; : VertexTypeFlagsHelper&lt;D3DDTCAPS_USHORT2N, D3DDECLTYPE_USHORT2N&gt; { };
+template &lt;&gt; struct VertexTypeFlags&lt;D3DVT_USHORT_NORM, 4&gt; : VertexTypeFlagsHelper&lt;D3DDTCAPS_USHORT4N, D3DDECLTYPE_USHORT4N&gt; { };
+
+
+// VertexTypeMapping maps GL type &amp; normalized flag to preferred and fallback D3D vertex types (as D3DVertexType enums).
+template &lt;GLenum GLtype, bool normalized&gt; struct VertexTypeMapping { };
+
+template &lt;D3DVertexType Preferred, D3DVertexType Fallback = Preferred&gt;
+struct VertexTypeMappingBase
+{
+    enum { preferred = Preferred };
+    enum { fallback = Fallback };
+};
+
+template &lt;&gt; struct VertexTypeMapping&lt;GL_BYTE, false&gt;                        : VertexTypeMappingBase&lt;D3DVT_SHORT&gt; { };                       // Cast
+template &lt;&gt; struct VertexTypeMapping&lt;GL_BYTE, true&gt;                         : VertexTypeMappingBase&lt;D3DVT_FLOAT&gt; { };                       // Normalize
+template &lt;&gt; struct VertexTypeMapping&lt;GL_UNSIGNED_BYTE, false&gt;               : VertexTypeMappingBase&lt;D3DVT_UBYTE, D3DVT_FLOAT&gt; { };          // Identity, Cast
+template &lt;&gt; struct VertexTypeMapping&lt;GL_UNSIGNED_BYTE, true&gt;                : VertexTypeMappingBase&lt;D3DVT_UBYTE_NORM, D3DVT_FLOAT&gt; { };     // Identity, Normalize
+template &lt;&gt; struct VertexTypeMapping&lt;GL_SHORT, false&gt;                       : VertexTypeMappingBase&lt;D3DVT_SHORT&gt; { };                       // Identity
+template &lt;&gt; struct VertexTypeMapping&lt;GL_SHORT, true&gt;                        : VertexTypeMappingBase&lt;D3DVT_SHORT_NORM, D3DVT_FLOAT&gt; { };     // Cast, Normalize
+template &lt;&gt; struct VertexTypeMapping&lt;GL_UNSIGNED_SHORT, false&gt;              : VertexTypeMappingBase&lt;D3DVT_FLOAT&gt; { };                       // Cast
+template &lt;&gt; struct VertexTypeMapping&lt;GL_UNSIGNED_SHORT, true&gt;               : VertexTypeMappingBase&lt;D3DVT_USHORT_NORM, D3DVT_FLOAT&gt; { };    // Cast, Normalize
+template &lt;bool normalized&gt; struct VertexTypeMapping&lt;GL_FIXED, normalized&gt;   : VertexTypeMappingBase&lt;D3DVT_FLOAT&gt; { };                       // FixedToFloat
+template &lt;bool normalized&gt; struct VertexTypeMapping&lt;GL_FLOAT, normalized&gt;   : VertexTypeMappingBase&lt;D3DVT_FLOAT&gt; { };                       // Identity
+
+
+// Given a GL type &amp; norm flag and a D3D type, ConversionRule provides the type conversion rule (Cast, Normalize, Identity, FixedToFloat).
+// The conversion rules themselves are defined in vertexconversion.h.
+
+// Almost all cases are covered by Cast (including those that are actually Identity since Cast&lt;T,T&gt; knows it's an identity mapping).
+template &lt;GLenum fromType, bool normalized, unsigned int toType&gt;
+struct ConversionRule : Cast&lt;typename GLToCType&lt;fromType&gt;::type, typename D3DToCType&lt;toType&gt;::type&gt; { };
+
+// All conversions from normalized types to float use the Normalize operator.
+template &lt;GLenum fromType&gt; struct ConversionRule&lt;fromType, true, D3DVT_FLOAT&gt; : Normalize&lt;typename GLToCType&lt;fromType&gt;::type&gt; { };
+
+// Use a full specialization for this so that it preferentially matches ahead of the generic normalize-to-float rules.
+template &lt;&gt; struct ConversionRule&lt;GL_FIXED, true, D3DVT_FLOAT&gt;  : FixedToFloat&lt;GLint, 16&gt; { };
+template &lt;&gt; struct ConversionRule&lt;GL_FIXED, false, D3DVT_FLOAT&gt; : FixedToFloat&lt;GLint, 16&gt; { };
+
+// A 2-stage construction is used for DefaultVertexValues because float must use SimpleDefaultValues (i.e. 0/1)
+// whether it is normalized or not.
+template &lt;class T, bool normalized&gt; struct DefaultVertexValuesStage2 { };
+
+template &lt;class T&gt; struct DefaultVertexValuesStage2&lt;T, true&gt;  : NormalizedDefaultValues&lt;T&gt; { };
+template &lt;class T&gt; struct DefaultVertexValuesStage2&lt;T, false&gt; : SimpleDefaultValues&lt;T&gt; { };
+
+// Work out the default value rule for a D3D type (expressed as the C type) and
+template &lt;class T, bool normalized&gt; struct DefaultVertexValues : DefaultVertexValuesStage2&lt;T, normalized&gt; { };
+template &lt;bool normalized&gt; struct DefaultVertexValues&lt;float, normalized&gt; : SimpleDefaultValues&lt;float&gt; { };
+
+// Policy rules for use with Converter, to choose whether to use the preferred or fallback conversion.
+// The fallback conversion produces an output that all D3D9 devices must support.
+template &lt;class T&gt; struct UsePreferred { enum { type = T::preferred }; };
+template &lt;class T&gt; struct UseFallback { enum { type = T::fallback }; };
+
+// Converter ties it all together. Given an OpenGL type/norm/size and choice of preferred/fallback conversion,
+// it provides all the members of the appropriate VertexDataConverter, the D3DCAPS9::DeclTypes flag in cap flag
+// and the D3DDECLTYPE member needed for the vertex declaration in declflag.
+template &lt;GLenum fromType, bool normalized, int size, template &lt;class T&gt; class PreferenceRule&gt;
+struct Converter
+    : VertexDataConverter&lt;typename GLToCType&lt;fromType&gt;::type,
+                          WidenRule&lt;PreferenceRule&lt; VertexTypeMapping&lt;fromType, normalized&gt; &gt;::type, size&gt;,
+                          ConversionRule&lt;fromType,
+                                         normalized,
+                                         PreferenceRule&lt; VertexTypeMapping&lt;fromType, normalized&gt; &gt;::type&gt;,
+                          DefaultVertexValues&lt;typename D3DToCType&lt;PreferenceRule&lt; VertexTypeMapping&lt;fromType, normalized&gt; &gt;::type&gt;::type, normalized &gt; &gt;
+{
+private:
+    enum { d3dtype = PreferenceRule&lt; VertexTypeMapping&lt;fromType, normalized&gt; &gt;::type };
+    enum { d3dsize = WidenRule&lt;d3dtype, size&gt;::finalWidth };
+
+public:
+    enum { capflag = VertexTypeFlags&lt;d3dtype, d3dsize&gt;::capflag };
+    enum { declflag = VertexTypeFlags&lt;d3dtype, d3dsize&gt;::declflag };
+};
+
+// Initialize a TranslationInfo
+#define TRANSLATION(type, norm, size, preferred)                                    \
+    {                                                                               \
+        Converter&lt;type, norm, size, preferred&gt;::identity,                           \
+        Converter&lt;type, norm, size, preferred&gt;::finalSize,                          \
+        Converter&lt;type, norm, size, preferred&gt;::convertArray,                       \
+        static_cast&lt;D3DDECLTYPE&gt;(Converter&lt;type, norm, size, preferred&gt;::declflag)  \
+    }
+
+#define TRANSLATION_FOR_TYPE_NORM_SIZE(type, norm, size)    \
+    {                                                       \
+        Converter&lt;type, norm, size, UsePreferred&gt;::capflag, \
+        TRANSLATION(type, norm, size, UsePreferred),        \
+        TRANSLATION(type, norm, size, UseFallback)          \
+    }
+
+#define TRANSLATIONS_FOR_TYPE(type)                                                                                                                                                                         \
+    {                                                                                                                                                                                                       \
+        { TRANSLATION_FOR_TYPE_NORM_SIZE(type, false, 1), TRANSLATION_FOR_TYPE_NORM_SIZE(type, false, 2), TRANSLATION_FOR_TYPE_NORM_SIZE(type, false, 3), TRANSLATION_FOR_TYPE_NORM_SIZE(type, false, 4) }, \
+        { TRANSLATION_FOR_TYPE_NORM_SIZE(type, true, 1), TRANSLATION_FOR_TYPE_NORM_SIZE(type, true, 2), TRANSLATION_FOR_TYPE_NORM_SIZE(type, true, 3), TRANSLATION_FOR_TYPE_NORM_SIZE(type, true, 4) },     \
+    }
+
+#define TRANSLATIONS_FOR_TYPE_NO_NORM(type)                                                                                                                                                                 \
+    {                                                                                                                                                                                                       \
+        { TRANSLATION_FOR_TYPE_NORM_SIZE(type, false, 1), TRANSLATION_FOR_TYPE_NORM_SIZE(type, false, 2), TRANSLATION_FOR_TYPE_NORM_SIZE(type, false, 3), TRANSLATION_FOR_TYPE_NORM_SIZE(type, false, 4) }, \
+        { TRANSLATION_FOR_TYPE_NORM_SIZE(type, false, 1), TRANSLATION_FOR_TYPE_NORM_SIZE(type, false, 2), TRANSLATION_FOR_TYPE_NORM_SIZE(type, false, 3), TRANSLATION_FOR_TYPE_NORM_SIZE(type, false, 4) }, \
+    }
+
+const TranslationDescription mPossibleTranslations[NUM_GL_VERTEX_ATTRIB_TYPES][2][4] = // [GL types as enumerated by typeIndex()][normalized][size-1]
+{
+    TRANSLATIONS_FOR_TYPE(GL_BYTE),
+    TRANSLATIONS_FOR_TYPE(GL_UNSIGNED_BYTE),
+    TRANSLATIONS_FOR_TYPE(GL_SHORT),
+    TRANSLATIONS_FOR_TYPE(GL_UNSIGNED_SHORT),
+    TRANSLATIONS_FOR_TYPE_NO_NORM(GL_FIXED),
+    TRANSLATIONS_FOR_TYPE_NO_NORM(GL_FLOAT)
+};
+
+void InitializeVertexTranslations(const rx::Renderer9 *renderer)
+{
+    DWORD declTypes = renderer-&gt;getCapsDeclTypes();
+
+    for (unsigned int i = 0; i &lt; NUM_GL_VERTEX_ATTRIB_TYPES; i++)
+    {
+        for (unsigned int j = 0; j &lt; 2; j++)
+        {
+            for (unsigned int k = 0; k &lt; 4; k++)
+            {
+                if (mPossibleTranslations[i][j][k].capsFlag == 0 || (declTypes &amp; mPossibleTranslations[i][j][k].capsFlag) != 0)
+                {
+                    mFormatConverters[i][j][k] = mPossibleTranslations[i][j][k].preferredConversion;
+                }
+                else
+                {
+                    mFormatConverters[i][j][k] = mPossibleTranslations[i][j][k].fallbackConversion;
+                }
+            }
+        }
+    }
+}
+
+unsigned int typeIndex(GLenum type)
+{
+    switch (type)
+    {
+      case GL_BYTE: return 0;
+      case GL_UNSIGNED_BYTE: return 1;
+      case GL_SHORT: return 2;
+      case GL_UNSIGNED_SHORT: return 3;
+      case GL_FIXED: return 4;
+      case GL_FLOAT: return 5;
+
+      default: UNREACHABLE(); return 5;
+    }
+}
+
+const FormatConverter &amp;formatConverter(const gl::VertexFormat &amp;vertexFormat)
+{
+    // Pure integer attributes only supported in ES3.0
+    ASSERT(!vertexFormat.mPureInteger);
+    return mFormatConverters[typeIndex(vertexFormat.mType)][vertexFormat.mNormalized][vertexFormat.mComponents - 1];
+}
+
+VertexCopyFunction GetVertexCopyFunction(const gl::VertexFormat &amp;vertexFormat)
+{
+    return formatConverter(vertexFormat).convertArray;
+}
+
+size_t GetVertexElementSize(const gl::VertexFormat &amp;vertexFormat)
+{
+    return formatConverter(vertexFormat).outputElementSize;
+}
+
+VertexConversionType GetVertexConversionType(const gl::VertexFormat &amp;vertexFormat)
+{
+    return (formatConverter(vertexFormat).identity ? VERTEX_CONVERT_NONE : VERTEX_CONVERT_CPU);
+}
+
+D3DDECLTYPE GetNativeVertexFormat(const gl::VertexFormat &amp;vertexFormat)
+{
+    return formatConverter(vertexFormat).d3dDeclType;
+}
+
+}
+
+namespace gl_d3d9
+{
+
+D3DFORMAT GetTextureFormat(GLenum internalFormat, const Renderer9 *renderer)
+{
+    if (!renderer)
+    {
+        UNREACHABLE();
+        return D3DFMT_UNKNOWN;
+    }
+
+    ASSERT(renderer-&gt;getCurrentClientVersion() == 2);
+
+    D3D9FormatInfo d3d9FormatInfo;
+    if (GetD3D9FormatInfo(internalFormat, &amp;d3d9FormatInfo))
+    {
+        return d3d9FormatInfo.mTexFormat(renderer);
+    }
+    else
+    {
+        UNREACHABLE();
+        return D3DFMT_UNKNOWN;
+    }
+}
+
+D3DFORMAT GetRenderFormat(GLenum internalFormat, const Renderer9 *renderer)
+{
+    if (!renderer)
+    {
+        UNREACHABLE();
+        return D3DFMT_UNKNOWN;
+    }
+
+    ASSERT(renderer-&gt;getCurrentClientVersion() == 2);
+
+    D3D9FormatInfo d3d9FormatInfo;
+    if (GetD3D9FormatInfo(internalFormat, &amp;d3d9FormatInfo))
+    {
+        return d3d9FormatInfo.mRenderFormat(renderer);
+    }
+    else
+    {
+        UNREACHABLE();
+        return D3DFMT_UNKNOWN;
+    }
+}
+
+D3DMULTISAMPLE_TYPE GetMultisampleType(GLsizei samples)
+{
+    return (samples &gt; 1) ? static_cast&lt;D3DMULTISAMPLE_TYPE&gt;(samples) : D3DMULTISAMPLE_NONE;
+}
+
+bool RequiresTextureDataInitialization(GLint internalFormat)
+{
+    const InternalFormatInitialzerMap &amp;map = GetInternalFormatInitialzerMap();
+    return map.find(internalFormat) != map.end();
+}
+
+InitializeTextureDataFunction GetTextureDataInitializationFunction(GLint internalFormat)
+{
+    const InternalFormatInitialzerMap &amp;map = GetInternalFormatInitialzerMap();
+    InternalFormatInitialzerMap::const_iterator iter = map.find(internalFormat);
+    if (iter != map.end())
+    {
+        return iter-&gt;second;
+    }
+    else
+    {
+        UNREACHABLE();
+        return NULL;
+    }
+}
+
+}
+
+namespace d3d9_gl
+{
+
+GLenum GetInternalFormat(D3DFORMAT format)
+{
+    static const D3D9FormatInfoMap infoMap = BuildD3D9FormatInfoMap();
+    D3D9FormatInfoMap::const_iterator iter = infoMap.find(format);
+    if (iter != infoMap.end())
+    {
+        return iter-&gt;second.mInternalFormat;
+    }
+    else
+    {
+        UNREACHABLE();
+        return GL_NONE;
+    }
+}
+
+GLsizei GetSamplesCount(D3DMULTISAMPLE_TYPE type)
+{
+    return (type != D3DMULTISAMPLE_NONMASKABLE) ? type : 0;
+}
+
+bool IsFormatChannelEquivalent(D3DFORMAT d3dformat, GLenum format, GLuint clientVersion)
+{
+    GLenum internalFormat = d3d9_gl::GetInternalFormat(d3dformat);
+    GLenum convertedFormat = gl::GetFormat(internalFormat, clientVersion);
+    return convertedFormat == format;
+}
+
+}
+
+}
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d9formatutils9h"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d9/formatutils9.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d9/formatutils9.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d9/formatutils9.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,77 @@
</span><ins>+//
+// Copyright (c) 2013 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+
+// formatutils9.h: Queries for GL image formats and their translations to D3D9
+// formats.
+
+#ifndef LIBGLESV2_RENDERER_FORMATUTILS9_H_
+#define LIBGLESV2_RENDERER_FORMATUTILS9_H_
+
+#include &quot;libGLESv2/formatutils.h&quot;
+
+namespace rx
+{
+
+class Renderer9;
+
+namespace d3d9
+{
+
+typedef std::set&lt;D3DFORMAT&gt; D3DFormatSet;
+
+MipGenerationFunction GetMipGenerationFunction(D3DFORMAT format);
+LoadImageFunction GetImageLoadFunction(GLenum internalFormat, const Renderer9 *renderer);
+
+GLuint GetFormatPixelBytes(D3DFORMAT format);
+GLuint GetBlockWidth(D3DFORMAT format);
+GLuint GetBlockHeight(D3DFORMAT format);
+GLuint GetBlockSize(D3DFORMAT format, GLuint width, GLuint height);
+
+void MakeValidSize(bool isImage, D3DFORMAT format, GLsizei *requestWidth, GLsizei *requestHeight, int *levelOffset);
+
+const D3DFormatSet &amp;GetAllUsedD3DFormats();
+
+ColorReadFunction GetColorReadFunction(D3DFORMAT format);
+ColorCopyFunction GetFastCopyFunction(D3DFORMAT sourceFormat, GLenum destFormat, GLenum destType, GLuint clientVersion);
+
+VertexCopyFunction GetVertexCopyFunction(const gl::VertexFormat &amp;vertexFormat);
+size_t GetVertexElementSize(const gl::VertexFormat &amp;vertexFormat);
+VertexConversionType GetVertexConversionType(const gl::VertexFormat &amp;vertexFormat);
+D3DDECLTYPE GetNativeVertexFormat(const gl::VertexFormat &amp;vertexFormat);
+
+GLenum GetDeclTypeComponentType(D3DDECLTYPE declType);
+int GetDeclTypeComponentCount(D3DDECLTYPE declType);
+bool IsDeclTypeNormalized(D3DDECLTYPE declType);
+
+void InitializeVertexTranslations(const rx::Renderer9 *renderer);
+
+}
+
+namespace gl_d3d9
+{
+
+D3DFORMAT GetTextureFormat(GLenum internalFormat, const Renderer9 *renderer);
+D3DFORMAT GetRenderFormat(GLenum internalFormat, const Renderer9 *renderer);
+
+D3DMULTISAMPLE_TYPE GetMultisampleType(GLsizei samples);
+
+bool RequiresTextureDataInitialization(GLint internalFormat);
+InitializeTextureDataFunction GetTextureDataInitializationFunction(GLint internalFormat);
+
+}
+
+namespace d3d9_gl
+{
+
+GLenum GetInternalFormat(D3DFORMAT format);
+GLsizei GetSamplesCount(D3DMULTISAMPLE_TYPE type);
+bool IsFormatChannelEquivalent(D3DFORMAT d3dformat, GLenum format, GLuint clientVersion);
+
+}
+
+}
+
+#endif // LIBGLESV2_RENDERER_FORMATUTILS9_H_
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererd3d9vertexconversionh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d9/vertexconversion.h (168114 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d9/vertexconversion.h        2014-05-01 19:23:29 UTC (rev 168114)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/d3d9/vertexconversion.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -1,203 +0,0 @@
</span><del>-//
-// Copyright (c) 2002-2010 The ANGLE Project Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-
-// vertexconversion.h: A library of vertex conversion classes that can be used to build
-// the FormatConverter objects used by the buffer conversion system.
-
-#ifndef LIBGLESV2_VERTEXCONVERSION_H_
-#define LIBGLESV2_VERTEXCONVERSION_H_
-
-namespace rx
-{
-
-// Conversion types:
-// static const bool identity: true if this is an identity transform, false otherwise
-// static U convert(T): convert a single element from the input type to the output type
-// typedef ... OutputType: the type produced by this conversion
-
-template &lt;class T&gt;
-struct Identity
-{
-    static const bool identity = true;
-
-    typedef T OutputType;
-
-    static T convert(T x)
-    {
-        return x;
-    }
-};
-
-template &lt;class FromT, class ToT&gt;
-struct Cast
-{
-    static const bool identity = false;
-
-    typedef ToT OutputType;
-
-    static ToT convert(FromT x)
-    {
-        return static_cast&lt;ToT&gt;(x);
-    }
-};
-
-template &lt;class T&gt;
-struct Cast&lt;T, T&gt;
-{
-    static const bool identity = true;
-
-    typedef T OutputType;
-
-    static T convert(T x)
-    {
-        return static_cast&lt;T&gt;(x);
-    }
-};
-
-template &lt;class T&gt;
-struct Normalize
-{
-    static const bool identity = false;
-
-    typedef float OutputType;
-
-    static float convert(T x)
-    {
-        typedef std::numeric_limits&lt;T&gt; NL;
-        float f = static_cast&lt;float&gt;(x);
-
-        if (NL::is_signed)
-        {
-            // const float =&gt; VC2008 computes it at compile time
-            // static const float =&gt; VC2008 computes it the first time we get here, stores it to memory with static guard and all that.
-            const float divisor = 1.0f/(2*static_cast&lt;float&gt;(NL::max())+1);
-            return (2*f+1)*divisor;
-        }
-        else
-        {
-            return f/NL::max();
-        }
-    }
-};
-
-template &lt;class FromType, std::size_t ScaleBits&gt;
-struct FixedToFloat
-{
-    static const bool identity = false;
-
-    typedef float OutputType;
-
-    static float convert(FromType x)
-    {
-        const float divisor = 1.0f / static_cast&lt;float&gt;(static_cast&lt;FromType&gt;(1) &lt;&lt; ScaleBits);
-        return static_cast&lt;float&gt;(x) * divisor;
-    }
-};
-
-// Widen types:
-// static const unsigned int initialWidth: number of components before conversion
-// static const unsigned int finalWidth: number of components after conversion
-
-// Float is supported at any size.
-template &lt;std::size_t N&gt;
-struct NoWiden
-{
-    static const std::size_t initialWidth = N;
-    static const std::size_t finalWidth = N;
-};
-
-// SHORT, norm-SHORT, norm-UNSIGNED_SHORT are supported but only with 2 or 4 components
-template &lt;std::size_t N&gt;
-struct WidenToEven
-{
-    static const std::size_t initialWidth = N;
-    static const std::size_t finalWidth = N+(N&amp;1);
-};
-
-template &lt;std::size_t N&gt;
-struct WidenToFour
-{
-    static const std::size_t initialWidth = N;
-    static const std::size_t finalWidth = 4;
-};
-
-// Most types have 0 and 1 that are just that.
-template &lt;class T&gt;
-struct SimpleDefaultValues
-{
-    static T zero() { return static_cast&lt;T&gt;(0); }
-    static T one() { return static_cast&lt;T&gt;(1); }
-};
-
-// But normalised types only store [0,1] or [-1,1] so 1.0 is represented by the max value.
-template &lt;class T&gt;
-struct NormalizedDefaultValues
-{
-    static T zero() { return static_cast&lt;T&gt;(0); }
-    static T one() { return std::numeric_limits&lt;T&gt;::max(); }
-};
-
-// Converter:
-// static const bool identity: true if this is an identity transform (with no widening)
-// static const std::size_t finalSize: number of bytes per output vertex
-// static void convertArray(const void *in, std::size_t stride, std::size_t n, void *out): convert an array of vertices. Input may be strided, but output will be unstrided.
-
-template &lt;class InT, class WidenRule, class Converter, class DefaultValueRule = SimpleDefaultValues&lt;InT&gt; &gt;
-struct VertexDataConverter
-{
-    typedef typename Converter::OutputType OutputType;
-    typedef InT InputType;
-
-    static const bool identity = (WidenRule::initialWidth == WidenRule::finalWidth) &amp;&amp; Converter::identity;
-    static const std::size_t finalSize = WidenRule::finalWidth * sizeof(OutputType);
-
-    static void convertArray(const InputType *in, std::size_t stride, std::size_t n, OutputType *out)
-    {
-        for (std::size_t i = 0; i &lt; n; i++)
-        {
-            const InputType *ein = pointerAddBytes(in, i * stride);
-
-            copyComponent(out, ein, 0, static_cast&lt;OutputType&gt;(DefaultValueRule::zero()));
-            copyComponent(out, ein, 1, static_cast&lt;OutputType&gt;(DefaultValueRule::zero()));
-            copyComponent(out, ein, 2, static_cast&lt;OutputType&gt;(DefaultValueRule::zero()));
-            copyComponent(out, ein, 3, static_cast&lt;OutputType&gt;(DefaultValueRule::one()));
-
-            out += WidenRule::finalWidth;
-        }
-    }
-
-    static void convertArray(const void *in, std::size_t stride, std::size_t n, void *out)
-    {
-        return convertArray(static_cast&lt;const InputType*&gt;(in), stride, n, static_cast&lt;OutputType*&gt;(out));
-    }
-
-  private:
-    // Advance the given pointer by a number of bytes (not pointed-to elements).
-    template &lt;class T&gt;
-    static T *pointerAddBytes(T *basePtr, std::size_t numBytes)
-    {
-        return reinterpret_cast&lt;T *&gt;(reinterpret_cast&lt;uintptr_t&gt;(basePtr) + numBytes);
-    }
-
-    static void copyComponent(OutputType *out, const InputType *in, std::size_t elementindex, OutputType defaultvalue)
-    {
-        if (WidenRule::finalWidth &gt; elementindex)
-        {
-            if (WidenRule::initialWidth &gt; elementindex)
-            {
-                out[elementindex] = Converter::convert(in[elementindex]);
-            }
-            else
-            {
-                out[elementindex] = defaultvalue;
-            }
-        }
-    }
-};
-
-}
-
-#endif   // LIBGLESV2_VERTEXCONVERSION_H_
</del></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererimageformatsh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/imageformats.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/imageformats.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/imageformats.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,2029 @@
</span><ins>+//
+// Copyright (c) 2013 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+
+// imageformats.h: Defines image format types with functions for mip generation
+// and copying.
+
+#ifndef LIBGLESV2_RENDERER_IMAGEFORMATS_H_
+#define LIBGLESV2_RENDERER_IMAGEFORMATS_H_
+
+#include &quot;libGLESv2/angletypes.h&quot;
+
+namespace rx
+{
+
+// Several structures share functionality for reading, writing or mipmapping but the layout
+// must match the texture format which the structure represents. If collapsing or typedefing
+// structs in this header, make sure the functionality and memory layout is exactly the same.
+
+struct L8
+{
+    unsigned char L;
+
+    static void readColor(gl::ColorF *dst, const L8 *src)
+    {
+        const float lum = gl::normalizedToFloat(src-&gt;L);
+        dst-&gt;red   = lum;
+        dst-&gt;green = lum;
+        dst-&gt;blue  = lum;
+        dst-&gt;alpha = 1.0f;
+    }
+
+    static void writeColor(L8 *dst, const gl::ColorF *src)
+    {
+        dst-&gt;L = gl::floatToNormalized&lt;unsigned char&gt;((src-&gt;red + src-&gt;green + src-&gt;blue) / 3.0f);
+    }
+
+    static void average(L8 *dst, const L8 *src1, const L8 *src2)
+    {
+        dst-&gt;L = gl::average(src1-&gt;L, src2-&gt;L);
+    }
+};
+
+struct R8
+{
+    unsigned char R;
+
+    static void readColor(gl::ColorF *dst, const R8 *src)
+    {
+        dst-&gt;red   = gl::normalizedToFloat(src-&gt;R);
+        dst-&gt;green = 0.0f;
+        dst-&gt;blue  = 0.0f;
+        dst-&gt;alpha = 1.0f;
+    }
+
+    static void readColor(gl::ColorUI *dst, const R8 *src)
+    {
+        dst-&gt;red   = src-&gt;R;
+        dst-&gt;green = 0;
+        dst-&gt;blue  = 0;
+        dst-&gt;alpha = 1;
+    }
+
+    static void writeColor(R8 *dst, const gl::ColorF *src)
+    {
+        dst-&gt;R = gl::floatToNormalized&lt;unsigned char&gt;(src-&gt;red);
+    }
+
+    static void writeColor(R8 *dst, const gl::ColorUI *src)
+    {
+        dst-&gt;R = static_cast&lt;unsigned char&gt;(src-&gt;red);
+    }
+
+    static void average(R8 *dst, const R8 *src1, const R8 *src2)
+    {
+        dst-&gt;R = gl::average(src1-&gt;R, src2-&gt;R);
+    }
+};
+
+struct A8
+{
+    unsigned char A;
+
+    static void readColor(gl::ColorF *dst, const A8 *src)
+    {
+        dst-&gt;red   = 0.0f;
+        dst-&gt;green = 0.0f;
+        dst-&gt;blue  = 0.0f;
+        dst-&gt;alpha = gl::normalizedToFloat(src-&gt;A);
+    }
+
+    static void writeColor(A8 *dst, const gl::ColorF *src)
+    {
+        dst-&gt;A = gl::floatToNormalized&lt;unsigned char&gt;(src-&gt;alpha);
+    }
+
+    static void average(A8 *dst, const A8 *src1, const A8 *src2)
+    {
+        dst-&gt;A = gl::average(src1-&gt;A, src2-&gt;A);
+    }
+};
+
+struct L8A8
+{
+    unsigned char L;
+    unsigned char A;
+
+    static void readColor(gl::ColorF *dst, const L8A8 *src)
+    {
+        const float lum = gl::normalizedToFloat(src-&gt;L);
+        dst-&gt;red   = lum;
+        dst-&gt;green = lum;
+        dst-&gt;blue  = lum;
+        dst-&gt;alpha = gl::normalizedToFloat(src-&gt;A);
+    }
+
+    static void writeColor(L8A8 *dst, const gl::ColorF *src)
+    {
+        dst-&gt;L = gl::floatToNormalized&lt;unsigned char&gt;((src-&gt;red + src-&gt;green + src-&gt;blue) / 3.0f);
+        dst-&gt;A = gl::floatToNormalized&lt;unsigned char&gt;(src-&gt;alpha);
+    }
+
+    static void average(L8A8 *dst, const L8A8 *src1, const L8A8 *src2)
+    {
+        *(unsigned short*)dst = (((*(unsigned short*)src1 ^ *(unsigned short*)src2) &amp; 0xFEFE) &gt;&gt; 1) + (*(unsigned short*)src1 &amp; *(unsigned short*)src2);
+    }
+};
+
+struct A8L8
+{
+    unsigned char A;
+    unsigned char L;
+
+    static void readColor(gl::ColorF *dst, const A8L8 *src)
+    {
+        const float lum = gl::normalizedToFloat(src-&gt;L);
+        dst-&gt;red   = lum;
+        dst-&gt;green = lum;
+        dst-&gt;blue  = lum;
+        dst-&gt;alpha = gl::normalizedToFloat(src-&gt;A);
+    }
+
+    static void writeColor(A8L8 *dst, const gl::ColorF *src)
+    {
+        dst-&gt;L = gl::floatToNormalized&lt;unsigned char&gt;((src-&gt;red + src-&gt;green + src-&gt;blue) / 3.0f);
+        dst-&gt;A = gl::floatToNormalized&lt;unsigned char&gt;(src-&gt;alpha);
+    }
+
+    static void average(A8L8 *dst, const A8L8 *src1, const A8L8 *src2)
+    {
+        *(unsigned short*)dst = (((*(unsigned short*)src1 ^ *(unsigned short*)src2) &amp; 0xFEFE) &gt;&gt; 1) + (*(unsigned short*)src1 &amp; *(unsigned short*)src2);
+    }
+};
+
+struct R8G8
+{
+    unsigned char R;
+    unsigned char G;
+
+    static void readColor(gl::ColorF *dst, const R8G8 *src)
+    {
+        dst-&gt;red   = gl::normalizedToFloat(src-&gt;R);
+        dst-&gt;green = gl::normalizedToFloat(src-&gt;G);
+        dst-&gt;blue  = 0.0f;
+        dst-&gt;alpha = 1.0f;
+    }
+
+    static void readColor(gl::ColorUI *dst, const R8G8 *src)
+    {
+        dst-&gt;red   = src-&gt;R;
+        dst-&gt;green = src-&gt;G;
+        dst-&gt;blue  = 0;
+        dst-&gt;alpha = 1;
+    }
+
+    static void writeColor(R8G8 *dst, const gl::ColorF *src)
+    {
+        dst-&gt;R = gl::floatToNormalized&lt;unsigned char&gt;(src-&gt;red);
+        dst-&gt;G = gl::floatToNormalized&lt;unsigned char&gt;(src-&gt;green);
+    }
+
+    static void writeColor(R8G8 *dst, const gl::ColorUI *src)
+    {
+        dst-&gt;R = static_cast&lt;unsigned char&gt;(src-&gt;red);
+        dst-&gt;G = static_cast&lt;unsigned char&gt;(src-&gt;green);
+    }
+
+    static void average(R8G8 *dst, const R8G8 *src1, const R8G8 *src2)
+    {
+        *(unsigned short*)dst = (((*(unsigned short*)src1 ^ *(unsigned short*)src2) &amp; 0xFEFE) &gt;&gt; 1) + (*(unsigned short*)src1 &amp; *(unsigned short*)src2);
+    }
+};
+
+struct R8G8B8
+{
+    unsigned char R;
+    unsigned char G;
+    unsigned char B;
+
+    static void readColor(gl::ColorF *dst, const R8G8B8 *src)
+    {
+        dst-&gt;red   = gl::normalizedToFloat(src-&gt;R);
+        dst-&gt;green = gl::normalizedToFloat(src-&gt;G);
+        dst-&gt;blue  = gl::normalizedToFloat(src-&gt;B);
+        dst-&gt;alpha = 1.0f;
+    }
+
+    static void readColor(gl::ColorUI *dst, const R8G8B8 *src)
+    {
+        dst-&gt;red   = src-&gt;R;
+        dst-&gt;green = src-&gt;G;
+        dst-&gt;blue  = src-&gt;G;
+        dst-&gt;alpha = 1;
+    }
+
+    static void writeColor(R8G8B8 *dst, const gl::ColorF *src)
+    {
+        dst-&gt;R = gl::floatToNormalized&lt;unsigned char&gt;(src-&gt;red);
+        dst-&gt;G = gl::floatToNormalized&lt;unsigned char&gt;(src-&gt;green);
+        dst-&gt;B = gl::floatToNormalized&lt;unsigned char&gt;(src-&gt;blue);
+    }
+
+    static void writeColor(R8G8B8 *dst, const gl::ColorUI *src)
+    {
+        dst-&gt;R = static_cast&lt;unsigned char&gt;(src-&gt;red);
+        dst-&gt;G = static_cast&lt;unsigned char&gt;(src-&gt;green);
+        dst-&gt;B = static_cast&lt;unsigned char&gt;(src-&gt;blue);
+    }
+
+    static void average(R8G8B8 *dst, const R8G8B8 *src1, const R8G8B8 *src2)
+    {
+        dst-&gt;R = gl::average(src1-&gt;R, src2-&gt;R);
+        dst-&gt;G = gl::average(src1-&gt;G, src2-&gt;G);
+        dst-&gt;B = gl::average(src1-&gt;B, src2-&gt;B);
+    }
+};
+
+struct B8G8R8
+{
+    unsigned char B;
+    unsigned char G;
+    unsigned char R;
+
+    static void readColor(gl::ColorF *dst, const B8G8R8 *src)
+    {
+        dst-&gt;red   = gl::normalizedToFloat(src-&gt;R);
+        dst-&gt;green = gl::normalizedToFloat(src-&gt;G);
+        dst-&gt;blue  = gl::normalizedToFloat(src-&gt;B);
+        dst-&gt;alpha = 1.0f;
+    }
+
+    static void readColor(gl::ColorUI *dst, const B8G8R8 *src)
+    {
+        dst-&gt;red   = src-&gt;R;
+        dst-&gt;green = src-&gt;G;
+        dst-&gt;blue  = src-&gt;G;
+        dst-&gt;alpha = 1;
+    }
+
+    static void writeColor(B8G8R8 *dst, const gl::ColorF *src)
+    {
+        dst-&gt;R = gl::floatToNormalized&lt;unsigned char&gt;(src-&gt;red);
+        dst-&gt;G = gl::floatToNormalized&lt;unsigned char&gt;(src-&gt;green);
+        dst-&gt;B = gl::floatToNormalized&lt;unsigned char&gt;(src-&gt;blue);
+    }
+
+    static void writeColor(B8G8R8 *dst, const gl::ColorUI *src)
+    {
+        dst-&gt;R = static_cast&lt;unsigned char&gt;(src-&gt;red);
+        dst-&gt;G = static_cast&lt;unsigned char&gt;(src-&gt;green);
+        dst-&gt;B = static_cast&lt;unsigned char&gt;(src-&gt;blue);
+    }
+
+    static void average(B8G8R8 *dst, const B8G8R8 *src1, const B8G8R8 *src2)
+    {
+        dst-&gt;R = gl::average(src1-&gt;R, src2-&gt;R);
+        dst-&gt;G = gl::average(src1-&gt;G, src2-&gt;G);
+        dst-&gt;B = gl::average(src1-&gt;B, src2-&gt;B);
+    }
+};
+
+struct R5G6B5
+{
+    unsigned short RGB;
+
+    static void readColor(gl::ColorF *dst, const R5G6B5 *src)
+    {
+        dst-&gt;red   = gl::normalizedToFloat&lt;5&gt;(gl::getShiftedData&lt;5, 11&gt;(src-&gt;RGB));
+        dst-&gt;green = gl::normalizedToFloat&lt;6&gt;(gl::getShiftedData&lt;6,  5&gt;(src-&gt;RGB));
+        dst-&gt;blue  = gl::normalizedToFloat&lt;5&gt;(gl::getShiftedData&lt;5,  0&gt;(src-&gt;RGB));
+        dst-&gt;alpha = 1.0f;
+    }
+
+    static void writeColor(R5G6B5 *dst, const gl::ColorF *src)
+    {
+        dst-&gt;RGB = gl::shiftData&lt;5, 11&gt;(gl::floatToNormalized&lt;5, unsigned short&gt;(src-&gt;red))   |
+                   gl::shiftData&lt;6,  5&gt;(gl::floatToNormalized&lt;6, unsigned short&gt;(src-&gt;green)) |
+                   gl::shiftData&lt;5,  0&gt;(gl::floatToNormalized&lt;5, unsigned short&gt;(src-&gt;blue));
+    }
+
+    static void average(R5G6B5 *dst, const R5G6B5 *src1, const R5G6B5 *src2)
+    {
+        dst-&gt;RGB = gl::shiftData&lt;5, 11&gt;(gl::average(gl::getShiftedData&lt;5, 11&gt;(src1-&gt;RGB), gl::getShiftedData&lt;5, 11&gt;(src2-&gt;RGB))) |
+                   gl::shiftData&lt;6,  5&gt;(gl::average(gl::getShiftedData&lt;6,  5&gt;(src1-&gt;RGB), gl::getShiftedData&lt;6,  5&gt;(src2-&gt;RGB))) |
+                   gl::shiftData&lt;5,  0&gt;(gl::average(gl::getShiftedData&lt;5,  0&gt;(src1-&gt;RGB), gl::getShiftedData&lt;5,  0&gt;(src2-&gt;RGB)));
+    }
+};
+
+struct A8R8G8B8
+{
+    unsigned char A;
+    unsigned char R;
+    unsigned char G;
+    unsigned char B;
+
+    static void readColor(gl::ColorF *dst, const A8R8G8B8 *src)
+    {
+        dst-&gt;red   = gl::normalizedToFloat(src-&gt;R);
+        dst-&gt;green = gl::normalizedToFloat(src-&gt;G);
+        dst-&gt;blue  = gl::normalizedToFloat(src-&gt;B);
+        dst-&gt;alpha = gl::normalizedToFloat(src-&gt;A);
+    }
+
+    static void readColor(gl::ColorUI *dst, const A8R8G8B8 *src)
+    {
+        dst-&gt;red   = src-&gt;R;
+        dst-&gt;green = src-&gt;G;
+        dst-&gt;blue  = src-&gt;B;
+        dst-&gt;alpha = src-&gt;A;
+    }
+
+    static void writeColor(A8R8G8B8 *dst, const gl::ColorF *src)
+    {
+        dst-&gt;R = gl::floatToNormalized&lt;unsigned char&gt;(src-&gt;red);
+        dst-&gt;G = gl::floatToNormalized&lt;unsigned char&gt;(src-&gt;green);
+        dst-&gt;B = gl::floatToNormalized&lt;unsigned char&gt;(src-&gt;blue);
+        dst-&gt;A = gl::floatToNormalized&lt;unsigned char&gt;(src-&gt;alpha);
+    }
+
+    static void writeColor(A8R8G8B8 *dst, const gl::ColorUI *src)
+    {
+        dst-&gt;R = static_cast&lt;unsigned char&gt;(src-&gt;red);
+        dst-&gt;G = static_cast&lt;unsigned char&gt;(src-&gt;green);
+        dst-&gt;B = static_cast&lt;unsigned char&gt;(src-&gt;blue);
+        dst-&gt;A = static_cast&lt;unsigned char&gt;(src-&gt;alpha);
+    }
+
+    static void average(A8R8G8B8 *dst, const A8R8G8B8 *src1, const A8R8G8B8 *src2)
+    {
+        *(unsigned int*)dst = (((*(unsigned int*)src1 ^ *(unsigned int*)src2) &amp; 0xFEFEFEFE) &gt;&gt; 1) + (*(unsigned int*)src1 &amp; *(unsigned int*)src2);
+    }
+};
+
+struct R8G8B8A8
+{
+    unsigned char R;
+    unsigned char G;
+    unsigned char B;
+    unsigned char A;
+
+    static void readColor(gl::ColorF *dst, const R8G8B8A8 *src)
+    {
+        dst-&gt;red   = gl::normalizedToFloat(src-&gt;R);
+        dst-&gt;green = gl::normalizedToFloat(src-&gt;G);
+        dst-&gt;blue  = gl::normalizedToFloat(src-&gt;B);
+        dst-&gt;alpha = gl::normalizedToFloat(src-&gt;A);
+    }
+
+    static void readColor(gl::ColorUI *dst, const R8G8B8A8 *src)
+    {
+        dst-&gt;red   = src-&gt;R;
+        dst-&gt;green = src-&gt;G;
+        dst-&gt;blue  = src-&gt;B;
+        dst-&gt;alpha = src-&gt;A;
+    }
+
+    static void writeColor(R8G8B8A8 *dst, const gl::ColorF *src)
+    {
+        dst-&gt;R = gl::floatToNormalized&lt;unsigned char&gt;(src-&gt;red);
+        dst-&gt;G = gl::floatToNormalized&lt;unsigned char&gt;(src-&gt;green);
+        dst-&gt;B = gl::floatToNormalized&lt;unsigned char&gt;(src-&gt;blue);
+        dst-&gt;A = gl::floatToNormalized&lt;unsigned char&gt;(src-&gt;alpha);
+    }
+
+    static void writeColor(R8G8B8A8 *dst, const gl::ColorUI *src)
+    {
+        dst-&gt;R = static_cast&lt;unsigned char&gt;(src-&gt;red);
+        dst-&gt;G = static_cast&lt;unsigned char&gt;(src-&gt;green);
+        dst-&gt;B = static_cast&lt;unsigned char&gt;(src-&gt;blue);
+        dst-&gt;A = static_cast&lt;unsigned char&gt;(src-&gt;alpha);
+    }
+
+    static void average(R8G8B8A8 *dst, const R8G8B8A8 *src1, const R8G8B8A8 *src2)
+    {
+        *(unsigned int*)dst = (((*(unsigned int*)src1 ^ *(unsigned int*)src2) &amp; 0xFEFEFEFE) &gt;&gt; 1) + (*(unsigned int*)src1 &amp; *(unsigned int*)src2);
+    }
+};
+
+struct B8G8R8A8
+{
+    unsigned char B;
+    unsigned char G;
+    unsigned char R;
+    unsigned char A;
+
+    static void readColor(gl::ColorF *dst, const B8G8R8A8 *src)
+    {
+        dst-&gt;red   = gl::normalizedToFloat(src-&gt;R);
+        dst-&gt;green = gl::normalizedToFloat(src-&gt;G);
+        dst-&gt;blue  = gl::normalizedToFloat(src-&gt;B);
+        dst-&gt;alpha = gl::normalizedToFloat(src-&gt;A);
+    }
+
+    static void readColor(gl::ColorUI *dst, const B8G8R8A8 *src)
+    {
+        dst-&gt;red   = src-&gt;R;
+        dst-&gt;green = src-&gt;G;
+        dst-&gt;blue  = src-&gt;B;
+        dst-&gt;alpha = src-&gt;A;
+    }
+
+    static void writeColor(B8G8R8A8 *dst, const gl::ColorF *src)
+    {
+        dst-&gt;R = gl::floatToNormalized&lt;unsigned char&gt;(src-&gt;red);
+        dst-&gt;G = gl::floatToNormalized&lt;unsigned char&gt;(src-&gt;green);
+        dst-&gt;B = gl::floatToNormalized&lt;unsigned char&gt;(src-&gt;blue);
+        dst-&gt;A = gl::floatToNormalized&lt;unsigned char&gt;(src-&gt;alpha);
+    }
+
+    static void writeColor(B8G8R8A8 *dst, const gl::ColorUI *src)
+    {
+        dst-&gt;R = static_cast&lt;unsigned char&gt;(src-&gt;red);
+        dst-&gt;G = static_cast&lt;unsigned char&gt;(src-&gt;green);
+        dst-&gt;B = static_cast&lt;unsigned char&gt;(src-&gt;blue);
+        dst-&gt;A = static_cast&lt;unsigned char&gt;(src-&gt;alpha);
+    }
+
+    static void average(B8G8R8A8 *dst, const B8G8R8A8 *src1, const B8G8R8A8 *src2)
+    {
+        *(unsigned int*)dst = (((*(unsigned int*)src1 ^ *(unsigned int*)src2) &amp; 0xFEFEFEFE) &gt;&gt; 1) + (*(unsigned int*)src1 &amp; *(unsigned int*)src2);
+    }
+};
+
+struct B8G8R8X8
+{
+    unsigned char B;
+    unsigned char G;
+    unsigned char R;
+    unsigned char X;
+
+    static void readColor(gl::ColorF *dst, const B8G8R8X8 *src)
+    {
+        dst-&gt;red = gl::normalizedToFloat(src-&gt;R);
+        dst-&gt;green = gl::normalizedToFloat(src-&gt;G);
+        dst-&gt;blue = gl::normalizedToFloat(src-&gt;B);
+        dst-&gt;alpha = 1.0f;
+    }
+
+    static void readColor(gl::ColorUI *dst, const B8G8R8X8 *src)
+    {
+        dst-&gt;red = src-&gt;R;
+        dst-&gt;green = src-&gt;G;
+        dst-&gt;blue = src-&gt;B;
+        dst-&gt;alpha = 1;
+    }
+
+    static void writeColor(B8G8R8X8 *dst, const gl::ColorF *src)
+    {
+        dst-&gt;R = gl::floatToNormalized&lt;unsigned char&gt;(src-&gt;red);
+        dst-&gt;G = gl::floatToNormalized&lt;unsigned char&gt;(src-&gt;green);
+        dst-&gt;B = gl::floatToNormalized&lt;unsigned char&gt;(src-&gt;blue);
+        dst-&gt;X = 255;
+    }
+
+    static void writeColor(B8G8R8X8 *dst, const gl::ColorUI *src)
+    {
+        dst-&gt;R = static_cast&lt;unsigned char&gt;(src-&gt;red);
+        dst-&gt;G = static_cast&lt;unsigned char&gt;(src-&gt;green);
+        dst-&gt;B = static_cast&lt;unsigned char&gt;(src-&gt;blue);
+        dst-&gt;X = 255;
+    }
+
+    static void average(B8G8R8X8 *dst, const B8G8R8X8 *src1, const B8G8R8X8 *src2)
+    {
+        *(unsigned int*)dst = (((*(unsigned int*)src1 ^ *(unsigned int*)src2) &amp; 0xFEFEFEFE) &gt;&gt; 1) + (*(unsigned int*)src1 &amp; *(unsigned int*)src2);
+        dst-&gt;X = 255;
+    }
+};
+
+struct B5G5R5A1
+{
+    unsigned short BGRA;
+
+    static void readColor(gl::ColorF *dst, const B5G5R5A1 *src)
+    {
+        dst-&gt;alpha = gl::normalizedToFloat&lt;1&gt;(gl::getShiftedData&lt;1, 15&gt;(src-&gt;BGRA));
+        dst-&gt;red   = gl::normalizedToFloat&lt;5&gt;(gl::getShiftedData&lt;5, 10&gt;(src-&gt;BGRA));
+        dst-&gt;green = gl::normalizedToFloat&lt;5&gt;(gl::getShiftedData&lt;5,  5&gt;(src-&gt;BGRA));
+        dst-&gt;blue  = gl::normalizedToFloat&lt;5&gt;(gl::getShiftedData&lt;5,  0&gt;(src-&gt;BGRA));
+    }
+
+    static void writeColor(B5G5R5A1 *dst, const gl::ColorF *src)
+    {
+        dst-&gt;BGRA = gl::shiftData&lt;1, 15&gt;(gl::floatToNormalized&lt;1, unsigned short&gt;(src-&gt;alpha)) |
+                    gl::shiftData&lt;5, 10&gt;(gl::floatToNormalized&lt;5, unsigned short&gt;(src-&gt;red))   |
+                    gl::shiftData&lt;5,  5&gt;(gl::floatToNormalized&lt;5, unsigned short&gt;(src-&gt;green)) |
+                    gl::shiftData&lt;5,  0&gt;(gl::floatToNormalized&lt;5, unsigned short&gt;(src-&gt;blue));
+    }
+
+    static void average(B5G5R5A1 *dst, const B5G5R5A1 *src1, const B5G5R5A1 *src2)
+    {
+        dst-&gt;BGRA = gl::shiftData&lt;1, 15&gt;(gl::average(gl::getShiftedData&lt;1, 15&gt;(src1-&gt;BGRA), gl::getShiftedData&lt;1, 15&gt;(src2-&gt;BGRA))) |
+                    gl::shiftData&lt;5, 10&gt;(gl::average(gl::getShiftedData&lt;5, 10&gt;(src1-&gt;BGRA), gl::getShiftedData&lt;5, 10&gt;(src2-&gt;BGRA))) |
+                    gl::shiftData&lt;5,  5&gt;(gl::average(gl::getShiftedData&lt;5,  5&gt;(src1-&gt;BGRA), gl::getShiftedData&lt;5,  5&gt;(src2-&gt;BGRA))) |
+                    gl::shiftData&lt;5,  0&gt;(gl::average(gl::getShiftedData&lt;5,  0&gt;(src1-&gt;BGRA), gl::getShiftedData&lt;5,  0&gt;(src2-&gt;BGRA)));
+    }
+};
+
+struct R5G5B5A1
+{
+    unsigned short RGBA;
+
+    static void readColor(gl::ColorF *dst, const R5G5B5A1 *src)
+    {
+        dst-&gt;alpha = gl::normalizedToFloat&lt;1&gt;(gl::getShiftedData&lt;1, 15&gt;(src-&gt;RGBA));
+        dst-&gt;blue  = gl::normalizedToFloat&lt;5&gt;(gl::getShiftedData&lt;5, 10&gt;(src-&gt;RGBA));
+        dst-&gt;green = gl::normalizedToFloat&lt;5&gt;(gl::getShiftedData&lt;5,  5&gt;(src-&gt;RGBA));
+        dst-&gt;red   = gl::normalizedToFloat&lt;5&gt;(gl::getShiftedData&lt;5,  0&gt;(src-&gt;RGBA));
+    }
+
+    static void writeColor(R5G5B5A1 *dst, const gl::ColorF *src)
+    {
+        dst-&gt;RGBA = gl::shiftData&lt;1, 15&gt;(gl::floatToNormalized&lt;1, unsigned short&gt;(src-&gt;alpha)) |
+                    gl::shiftData&lt;5, 10&gt;(gl::floatToNormalized&lt;5, unsigned short&gt;(src-&gt;blue))  |
+                    gl::shiftData&lt;5,  5&gt;(gl::floatToNormalized&lt;5, unsigned short&gt;(src-&gt;green)) |
+                    gl::shiftData&lt;5,  0&gt;(gl::floatToNormalized&lt;5, unsigned short&gt;(src-&gt;red));
+    }
+
+    static void average(R5G5B5A1 *dst, const R5G5B5A1 *src1, const R5G5B5A1 *src2)
+    {
+        dst-&gt;RGBA = gl::shiftData&lt;1, 15&gt;(gl::average(gl::getShiftedData&lt;1, 15&gt;(src1-&gt;RGBA), gl::getShiftedData&lt;1, 15&gt;(src2-&gt;RGBA))) |
+                    gl::shiftData&lt;5, 10&gt;(gl::average(gl::getShiftedData&lt;5, 10&gt;(src1-&gt;RGBA), gl::getShiftedData&lt;5, 10&gt;(src2-&gt;RGBA))) |
+                    gl::shiftData&lt;5,  5&gt;(gl::average(gl::getShiftedData&lt;5,  5&gt;(src1-&gt;RGBA), gl::getShiftedData&lt;5,  5&gt;(src2-&gt;RGBA))) |
+                    gl::shiftData&lt;5,  0&gt;(gl::average(gl::getShiftedData&lt;5,  0&gt;(src1-&gt;RGBA), gl::getShiftedData&lt;5,  0&gt;(src2-&gt;RGBA)));
+    }
+};
+
+struct R4G4B4A4
+{
+    unsigned char R : 4;
+    unsigned char G : 4;
+    unsigned char B : 4;
+    unsigned char A : 4;
+
+    static void readColor(gl::ColorF *dst, const R4G4B4A4 *src)
+    {
+        dst-&gt;red   = gl::normalizedToFloat&lt;4&gt;(src-&gt;R);
+        dst-&gt;green = gl::normalizedToFloat&lt;4&gt;(src-&gt;G);
+        dst-&gt;blue  = gl::normalizedToFloat&lt;4&gt;(src-&gt;B);
+        dst-&gt;alpha = gl::normalizedToFloat&lt;4&gt;(src-&gt;A);
+    }
+
+    static void writeColor(R4G4B4A4 *dst, const gl::ColorF *src)
+    {
+        dst-&gt;R = gl::floatToNormalized&lt;4, unsigned char&gt;(src-&gt;red);
+        dst-&gt;G = gl::floatToNormalized&lt;4, unsigned char&gt;(src-&gt;green);
+        dst-&gt;B = gl::floatToNormalized&lt;4, unsigned char&gt;(src-&gt;blue);
+        dst-&gt;A = gl::floatToNormalized&lt;4, unsigned char&gt;(src-&gt;alpha);
+    }
+
+    static void average(R4G4B4A4 *dst, const R4G4B4A4 *src1, const R4G4B4A4 *src2)
+    {
+        dst-&gt;R = gl::average(src1-&gt;R, src2-&gt;R);
+        dst-&gt;G = gl::average(src1-&gt;G, src2-&gt;G);
+        dst-&gt;B = gl::average(src1-&gt;B, src2-&gt;B);
+        dst-&gt;A = gl::average(src1-&gt;A, src2-&gt;A);
+    }
+};
+
+struct A4R4G4B4
+{
+    unsigned char A : 4;
+    unsigned char R : 4;
+    unsigned char G : 4;
+    unsigned char B : 4;
+
+    static void readColor(gl::ColorF *dst, const A4R4G4B4 *src)
+    {
+        dst-&gt;red   = gl::normalizedToFloat&lt;4&gt;(src-&gt;R);
+        dst-&gt;green = gl::normalizedToFloat&lt;4&gt;(src-&gt;G);
+        dst-&gt;blue  = gl::normalizedToFloat&lt;4&gt;(src-&gt;B);
+        dst-&gt;alpha = gl::normalizedToFloat&lt;4&gt;(src-&gt;A);
+    }
+
+    static void writeColor(A4R4G4B4 *dst, const gl::ColorF *src)
+    {
+        dst-&gt;R = gl::floatToNormalized&lt;4, unsigned char&gt;(src-&gt;red);
+        dst-&gt;G = gl::floatToNormalized&lt;4, unsigned char&gt;(src-&gt;green);
+        dst-&gt;B = gl::floatToNormalized&lt;4, unsigned char&gt;(src-&gt;blue);
+        dst-&gt;A = gl::floatToNormalized&lt;4, unsigned char&gt;(src-&gt;alpha);
+    }
+
+    static void average(A4R4G4B4 *dst, const A4R4G4B4 *src1, const A4R4G4B4 *src2)
+    {
+        dst-&gt;R = gl::average(src1-&gt;R, src2-&gt;R);
+        dst-&gt;G = gl::average(src1-&gt;G, src2-&gt;G);
+        dst-&gt;B = gl::average(src1-&gt;B, src2-&gt;B);
+        dst-&gt;A = gl::average(src1-&gt;A, src2-&gt;A);
+    }
+};
+
+struct B4G4R4A4
+{
+    unsigned char B : 4;
+    unsigned char G : 4;
+    unsigned char R : 4;
+    unsigned char A : 4;
+
+    static void readColor(gl::ColorF *dst, const B4G4R4A4 *src)
+    {
+        dst-&gt;red   = gl::normalizedToFloat&lt;4&gt;(src-&gt;R);
+        dst-&gt;green = gl::normalizedToFloat&lt;4&gt;(src-&gt;G);
+        dst-&gt;blue  = gl::normalizedToFloat&lt;4&gt;(src-&gt;B);
+        dst-&gt;alpha = gl::normalizedToFloat&lt;4&gt;(src-&gt;A);
+    }
+
+    static void writeColor(B4G4R4A4 *dst, const gl::ColorF *src)
+    {
+        dst-&gt;R = gl::floatToNormalized&lt;4, unsigned char&gt;(src-&gt;red);
+        dst-&gt;G = gl::floatToNormalized&lt;4, unsigned char&gt;(src-&gt;green);
+        dst-&gt;B = gl::floatToNormalized&lt;4, unsigned char&gt;(src-&gt;blue);
+        dst-&gt;A = gl::floatToNormalized&lt;4, unsigned char&gt;(src-&gt;alpha);
+    }
+
+    static void average(B4G4R4A4 *dst, const B4G4R4A4 *src1, const B4G4R4A4 *src2)
+    {
+        dst-&gt;R = gl::average(src1-&gt;R, src2-&gt;R);
+        dst-&gt;G = gl::average(src1-&gt;G, src2-&gt;G);
+        dst-&gt;B = gl::average(src1-&gt;B, src2-&gt;B);
+        dst-&gt;A = gl::average(src1-&gt;A, src2-&gt;A);
+    }
+};
+
+struct R16
+{
+    unsigned short R;
+
+    static void readColor(gl::ColorF *dst, const R16 *src)
+    {
+        dst-&gt;red   = gl::normalizedToFloat(src-&gt;R);
+        dst-&gt;green = 0.0f;
+        dst-&gt;blue  = 0.0f;
+        dst-&gt;alpha = 1.0f;
+    }
+
+    static void readColor(gl::ColorUI *dst, const R16 *src)
+    {
+        dst-&gt;red   = src-&gt;R;
+        dst-&gt;green = 0;
+        dst-&gt;blue  = 0;
+        dst-&gt;alpha = 1;
+    }
+
+    static void writeColor(R16 *dst, const gl::ColorF *src)
+    {
+        dst-&gt;R = gl::floatToNormalized&lt;unsigned short&gt;(src-&gt;red);
+    }
+
+    static void writeColor(R16 *dst, const gl::ColorUI *src)
+    {
+        dst-&gt;R = static_cast&lt;unsigned short&gt;(src-&gt;red);
+    }
+
+    static void average(R16 *dst, const R16 *src1, const R16 *src2)
+    {
+        dst-&gt;R = gl::average(src1-&gt;R, src2-&gt;R);
+    }
+};
+
+struct R16G16
+{
+    unsigned short R;
+    unsigned short G;
+
+    static void readColor(gl::ColorF *dst, const R16G16 *src)
+    {
+        dst-&gt;red   = gl::normalizedToFloat(src-&gt;R);
+        dst-&gt;green = gl::normalizedToFloat(src-&gt;G);
+        dst-&gt;blue  = 0.0f;
+        dst-&gt;alpha = 1.0f;
+    }
+
+    static void readColor(gl::ColorUI *dst, const R16G16 *src)
+    {
+        dst-&gt;red = src-&gt;R;
+        dst-&gt;green = src-&gt;G;
+        dst-&gt;blue  = 0;
+        dst-&gt;alpha = 1;
+    }
+
+    static void writeColor(R16G16 *dst, const gl::ColorF *src)
+    {
+        dst-&gt;R = gl::floatToNormalized&lt;unsigned short&gt;(src-&gt;red);
+        dst-&gt;G = gl::floatToNormalized&lt;unsigned short&gt;(src-&gt;green);
+    }
+
+    static void writeColor(R16G16 *dst, const gl::ColorUI *src)
+    {
+        dst-&gt;R = static_cast&lt;unsigned short&gt;(src-&gt;red);
+        dst-&gt;G = static_cast&lt;unsigned short&gt;(src-&gt;green);
+    }
+
+    static void average(R16G16 *dst, const R16G16 *src1, const R16G16 *src2)
+    {
+        dst-&gt;R = gl::average(src1-&gt;R, src2-&gt;R);
+        dst-&gt;G = gl::average(src1-&gt;G, src2-&gt;G);
+    }
+};
+
+struct R16G16B16
+{
+    unsigned short R;
+    unsigned short G;
+    unsigned short B;
+
+    static void readColor(gl::ColorF *dst, const R16G16B16 *src)
+    {
+        dst-&gt;red   = gl::normalizedToFloat(src-&gt;R);
+        dst-&gt;green = gl::normalizedToFloat(src-&gt;G);
+        dst-&gt;blue  = gl::normalizedToFloat(src-&gt;B);
+        dst-&gt;alpha = 1.0f;
+    }
+
+    static void readColor(gl::ColorUI *dst, const R16G16B16 *src)
+    {
+        dst-&gt;red   = src-&gt;R;
+        dst-&gt;green = src-&gt;G;
+        dst-&gt;blue  = src-&gt;B;
+        dst-&gt;alpha = 1;
+    }
+
+    static void writeColor(R16G16B16 *dst, const gl::ColorF *src)
+    {
+        dst-&gt;R = gl::floatToNormalized&lt;unsigned short&gt;(src-&gt;red);
+        dst-&gt;G = gl::floatToNormalized&lt;unsigned short&gt;(src-&gt;green);
+        dst-&gt;B = gl::floatToNormalized&lt;unsigned short&gt;(src-&gt;blue);
+    }
+
+    static void writeColor(R16G16B16 *dst, const gl::ColorUI *src)
+    {
+        dst-&gt;R = static_cast&lt;unsigned short&gt;(src-&gt;red);
+        dst-&gt;G = static_cast&lt;unsigned short&gt;(src-&gt;green);
+        dst-&gt;B = static_cast&lt;unsigned short&gt;(src-&gt;blue);
+    }
+
+    static void average(R16G16B16 *dst, const R16G16B16 *src1, const R16G16B16 *src2)
+    {
+        dst-&gt;R = gl::average(src1-&gt;R, src2-&gt;R);
+        dst-&gt;G = gl::average(src1-&gt;G, src2-&gt;G);
+        dst-&gt;B = gl::average(src1-&gt;B, src2-&gt;B);
+    }
+};
+
+struct R16G16B16A16
+{
+    unsigned short R;
+    unsigned short G;
+    unsigned short B;
+    unsigned short A;
+
+    static void readColor(gl::ColorF *dst, const R16G16B16A16 *src)
+    {
+        dst-&gt;red   = gl::normalizedToFloat(src-&gt;R);
+        dst-&gt;green = gl::normalizedToFloat(src-&gt;G);
+        dst-&gt;blue  = gl::normalizedToFloat(src-&gt;B);
+        dst-&gt;alpha = gl::normalizedToFloat(src-&gt;A);
+    }
+
+    static void readColor(gl::ColorUI *dst, const R16G16B16A16 *src)
+    {
+        dst-&gt;red   = src-&gt;R;
+        dst-&gt;green = src-&gt;G;
+        dst-&gt;blue  = src-&gt;B;
+        dst-&gt;alpha = src-&gt;A;
+    }
+
+    static void writeColor(R16G16B16A16 *dst, const gl::ColorF *src)
+    {
+        dst-&gt;R = gl::floatToNormalized&lt;unsigned short&gt;(src-&gt;red);
+        dst-&gt;G = gl::floatToNormalized&lt;unsigned short&gt;(src-&gt;green);
+        dst-&gt;B = gl::floatToNormalized&lt;unsigned short&gt;(src-&gt;blue);
+        dst-&gt;A = gl::floatToNormalized&lt;unsigned short&gt;(src-&gt;alpha);
+    }
+
+    static void writeColor(R16G16B16A16 *dst, const gl::ColorUI *src)
+    {
+        dst-&gt;R = static_cast&lt;unsigned short&gt;(src-&gt;red);
+        dst-&gt;G = static_cast&lt;unsigned short&gt;(src-&gt;green);
+        dst-&gt;B = static_cast&lt;unsigned short&gt;(src-&gt;blue);
+        dst-&gt;A = static_cast&lt;unsigned short&gt;(src-&gt;alpha);
+    }
+
+    static void average(R16G16B16A16 *dst, const R16G16B16A16 *src1, const R16G16B16A16 *src2)
+    {
+        dst-&gt;R = gl::average(src1-&gt;R, src2-&gt;R);
+        dst-&gt;G = gl::average(src1-&gt;G, src2-&gt;G);
+        dst-&gt;B = gl::average(src1-&gt;B, src2-&gt;B);
+        dst-&gt;A = gl::average(src1-&gt;A, src2-&gt;A);
+    }
+};
+
+struct R32
+{
+    unsigned int R;
+
+    static void readColor(gl::ColorF *dst, const R32 *src)
+    {
+        dst-&gt;red   = gl::normalizedToFloat(src-&gt;R);
+        dst-&gt;green = 0.0f;
+        dst-&gt;blue  = 0.0f;
+        dst-&gt;alpha = 1.0f;
+    }
+
+    static void readColor(gl::ColorUI *dst, const R32 *src)
+    {
+        dst-&gt;red   = src-&gt;R;
+        dst-&gt;green = 0;
+        dst-&gt;blue  = 0;
+        dst-&gt;alpha = 1;
+    }
+
+    static void writeColor(R32 *dst, const gl::ColorF *src)
+    {
+        dst-&gt;R = gl::floatToNormalized&lt;unsigned int&gt;(src-&gt;red);
+    }
+
+    static void writeColor(R32 *dst, const gl::ColorUI *src)
+    {
+        dst-&gt;R = static_cast&lt;unsigned int&gt;(src-&gt;red);
+    }
+
+    static void average(R32 *dst, const R32 *src1, const R32 *src2)
+    {
+        dst-&gt;R = gl::average(src1-&gt;R, src2-&gt;R);
+    }
+};
+
+struct R32G32
+{
+    unsigned int R;
+    unsigned int G;
+
+    static void readColor(gl::ColorF *dst, const R32G32 *src)
+    {
+        dst-&gt;red   = gl::normalizedToFloat(src-&gt;R);
+        dst-&gt;green = gl::normalizedToFloat(src-&gt;G);
+        dst-&gt;blue  = 0.0f;
+        dst-&gt;alpha = 1.0f;
+    }
+
+    static void readColor(gl::ColorUI *dst, const R32G32 *src)
+    {
+        dst-&gt;red   = src-&gt;R;
+        dst-&gt;green = src-&gt;G;
+        dst-&gt;blue  = 0;
+        dst-&gt;alpha = 1;
+    }
+
+    static void writeColor(R32G32 *dst, const gl::ColorF *src)
+    {
+        dst-&gt;R = gl::floatToNormalized&lt;unsigned int&gt;(src-&gt;red);
+        dst-&gt;G = gl::floatToNormalized&lt;unsigned int&gt;(src-&gt;green);
+    }
+
+    static void writeColor(R32G32 *dst, const gl::ColorUI *src)
+    {
+        dst-&gt;R = static_cast&lt;unsigned int&gt;(src-&gt;red);
+        dst-&gt;G = static_cast&lt;unsigned int&gt;(src-&gt;green);
+    }
+
+    static void average(R32G32 *dst, const R32G32 *src1, const R32G32 *src2)
+    {
+        dst-&gt;R = gl::average(src1-&gt;R, src2-&gt;R);
+        dst-&gt;G = gl::average(src1-&gt;G, src2-&gt;G);
+    }
+};
+
+struct R32G32B32
+{
+    unsigned int R;
+    unsigned int G;
+    unsigned int B;
+
+    static void readColor(gl::ColorF *dst, const R32G32B32 *src)
+    {
+        dst-&gt;red   = gl::normalizedToFloat(src-&gt;R);
+        dst-&gt;green = gl::normalizedToFloat(src-&gt;G);
+        dst-&gt;blue  = gl::normalizedToFloat(src-&gt;B);
+        dst-&gt;alpha = 1.0f;
+    }
+
+    static void readColor(gl::ColorUI *dst, const R32G32B32 *src)
+    {
+        dst-&gt;red   = src-&gt;R;
+        dst-&gt;green = src-&gt;G;
+        dst-&gt;blue  = src-&gt;B;
+        dst-&gt;alpha = 1;
+    }
+
+    static void writeColor(R32G32B32 *dst, const gl::ColorF *src)
+    {
+        dst-&gt;R = gl::floatToNormalized&lt;unsigned int&gt;(src-&gt;red);
+        dst-&gt;G = gl::floatToNormalized&lt;unsigned int&gt;(src-&gt;green);
+        dst-&gt;B = gl::floatToNormalized&lt;unsigned int&gt;(src-&gt;blue);
+    }
+
+    static void writeColor(R32G32B32 *dst, const gl::ColorUI *src)
+    {
+        dst-&gt;R = static_cast&lt;unsigned int&gt;(src-&gt;red);
+        dst-&gt;G = static_cast&lt;unsigned int&gt;(src-&gt;green);
+        dst-&gt;B = static_cast&lt;unsigned int&gt;(src-&gt;blue);
+    }
+
+    static void average(R32G32B32 *dst, const R32G32B32 *src1, const R32G32B32 *src2)
+    {
+        dst-&gt;R = gl::average(src1-&gt;R, src2-&gt;R);
+        dst-&gt;G = gl::average(src1-&gt;G, src2-&gt;G);
+        dst-&gt;B = gl::average(src1-&gt;B, src2-&gt;B);
+    }
+};
+
+struct R32G32B32A32
+{
+    unsigned int R;
+    unsigned int G;
+    unsigned int B;
+    unsigned int A;
+
+    static void readColor(gl::ColorF *dst, const R32G32B32A32 *src)
+    {
+        dst-&gt;red   = gl::normalizedToFloat(src-&gt;R);
+        dst-&gt;green = gl::normalizedToFloat(src-&gt;G);
+        dst-&gt;blue  = gl::normalizedToFloat(src-&gt;B);
+        dst-&gt;alpha = gl::normalizedToFloat(src-&gt;A);
+    }
+
+    static void readColor(gl::ColorUI *dst, const R32G32B32A32 *src)
+    {
+        dst-&gt;red   = src-&gt;R;
+        dst-&gt;green = src-&gt;G;
+        dst-&gt;blue  = src-&gt;B;
+        dst-&gt;alpha = src-&gt;A;
+    }
+
+    static void writeColor(R32G32B32A32 *dst, const gl::ColorF *src)
+    {
+        dst-&gt;R = gl::floatToNormalized&lt;unsigned int&gt;(src-&gt;red);
+        dst-&gt;G = gl::floatToNormalized&lt;unsigned int&gt;(src-&gt;green);
+        dst-&gt;B = gl::floatToNormalized&lt;unsigned int&gt;(src-&gt;blue);
+        dst-&gt;A = gl::floatToNormalized&lt;unsigned int&gt;(src-&gt;alpha);
+    }
+
+    static void writeColor(R32G32B32A32 *dst, const gl::ColorUI *src)
+    {
+        dst-&gt;R = static_cast&lt;unsigned int&gt;(src-&gt;red);
+        dst-&gt;G = static_cast&lt;unsigned int&gt;(src-&gt;green);
+        dst-&gt;B = static_cast&lt;unsigned int&gt;(src-&gt;blue);
+        dst-&gt;A = static_cast&lt;unsigned int&gt;(src-&gt;alpha);
+    }
+
+    static void average(R32G32B32A32 *dst, const R32G32B32A32 *src1, const R32G32B32A32 *src2)
+    {
+        dst-&gt;R = gl::average(src1-&gt;R, src2-&gt;R);
+        dst-&gt;G = gl::average(src1-&gt;G, src2-&gt;G);
+        dst-&gt;B = gl::average(src1-&gt;B, src2-&gt;B);
+        dst-&gt;A = gl::average(src1-&gt;A, src2-&gt;A);
+    }
+};
+
+struct R8S
+{
+    char R;
+
+    static void readColor(gl::ColorF *dst, const R8S *src)
+    {
+        dst-&gt;red   = gl::normalizedToFloat(src-&gt;R);
+        dst-&gt;green = 0.0f;
+        dst-&gt;blue  = 0.0f;
+        dst-&gt;alpha = 1.0f;
+    }
+
+    static void readColor(gl::ColorI *dst, const R8S *src)
+    {
+        dst-&gt;red   = src-&gt;R;
+        dst-&gt;green = 0;
+        dst-&gt;blue  = 0;
+        dst-&gt;alpha = 1;
+    }
+
+    static void writeColor(R8S *dst, const gl::ColorF *src)
+    {
+        dst-&gt;R = gl::floatToNormalized&lt;char&gt;(src-&gt;red);
+    }
+
+    static void writeColor(R8S *dst, const gl::ColorI *src)
+    {
+        dst-&gt;R = static_cast&lt;char&gt;(src-&gt;red);
+    }
+
+    static void average(R8S *dst, const R8S *src1, const R8S *src2)
+    {
+        dst-&gt;R = gl::average(src1-&gt;R, src2-&gt;R);
+    }
+};
+
+struct R8G8S
+{
+    char R;
+    char G;
+
+    static void readColor(gl::ColorF *dst, const R8G8S *src)
+    {
+        dst-&gt;red   = gl::normalizedToFloat(src-&gt;R);
+        dst-&gt;green = gl::normalizedToFloat(src-&gt;G);
+        dst-&gt;blue  = 0.0f;
+        dst-&gt;alpha = 1.0f;
+    }
+
+    static void readColor(gl::ColorI *dst, const R8G8S *src)
+    {
+        dst-&gt;red   = src-&gt;R;
+        dst-&gt;green = src-&gt;G;
+        dst-&gt;blue  = 0;
+        dst-&gt;alpha = 1;
+    }
+
+    static void writeColor(R8G8S *dst, const gl::ColorF *src)
+    {
+        dst-&gt;R = gl::floatToNormalized&lt;char&gt;(src-&gt;red);
+        dst-&gt;G = gl::floatToNormalized&lt;char&gt;(src-&gt;green);
+    }
+
+    static void writeColor(R8G8S *dst, const gl::ColorI *src)
+    {
+        dst-&gt;R = static_cast&lt;char&gt;(src-&gt;red);
+        dst-&gt;G = static_cast&lt;char&gt;(src-&gt;green);
+    }
+
+    static void average(R8G8S *dst, const R8G8S *src1, const R8G8S *src2)
+    {
+        dst-&gt;R = gl::average(src1-&gt;R, src2-&gt;R);
+        dst-&gt;G = gl::average(src1-&gt;G, src2-&gt;G);
+    }
+};
+
+struct R8G8B8S
+{
+    char R;
+    char G;
+    char B;
+
+    static void readColor(gl::ColorF *dst, const R8G8B8S *src)
+    {
+        dst-&gt;red   = gl::normalizedToFloat(src-&gt;R);
+        dst-&gt;green = gl::normalizedToFloat(src-&gt;G);
+        dst-&gt;blue  = gl::normalizedToFloat(src-&gt;B);
+        dst-&gt;alpha = 1.0f;
+    }
+
+    static void readColor(gl::ColorI *dst, const R8G8B8S *src)
+    {
+        dst-&gt;red   = src-&gt;R;
+        dst-&gt;green = src-&gt;G;
+        dst-&gt;blue  = src-&gt;B;
+        dst-&gt;alpha = 1;
+    }
+
+    static void writeColor(R8G8B8S *dst, const gl::ColorF *src)
+    {
+        dst-&gt;R = gl::floatToNormalized&lt;char&gt;(src-&gt;red);
+        dst-&gt;G = gl::floatToNormalized&lt;char&gt;(src-&gt;green);
+        dst-&gt;B = gl::floatToNormalized&lt;char&gt;(src-&gt;blue);
+    }
+
+    static void writeColor(R8G8B8S *dst, const gl::ColorI *src)
+    {
+        dst-&gt;R = static_cast&lt;char&gt;(src-&gt;red);
+        dst-&gt;G = static_cast&lt;char&gt;(src-&gt;green);
+        dst-&gt;B = static_cast&lt;char&gt;(src-&gt;blue);
+    }
+
+    static void average(R8G8B8S *dst, const R8G8B8S *src1, const R8G8B8S *src2)
+    {
+        dst-&gt;R = gl::average(src1-&gt;R, src2-&gt;R);
+        dst-&gt;G = gl::average(src1-&gt;G, src2-&gt;G);
+        dst-&gt;B = gl::average(src1-&gt;B, src2-&gt;B);
+    }
+};
+
+struct R8G8B8A8S
+{
+    char R;
+    char G;
+    char B;
+    char A;
+
+    static void readColor(gl::ColorF *dst, const R8G8B8A8S *src)
+    {
+        dst-&gt;red   = gl::normalizedToFloat(src-&gt;R);
+        dst-&gt;green = gl::normalizedToFloat(src-&gt;G);
+        dst-&gt;blue  = gl::normalizedToFloat(src-&gt;B);
+        dst-&gt;alpha = gl::normalizedToFloat(src-&gt;A);
+    }
+
+    static void readColor(gl::ColorI *dst, const R8G8B8A8S *src)
+    {
+        dst-&gt;red   = src-&gt;R;
+        dst-&gt;green = src-&gt;G;
+        dst-&gt;blue  = src-&gt;B;
+        dst-&gt;alpha = src-&gt;A;
+    }
+
+    static void writeColor(R8G8B8A8S *dst, const gl::ColorF *src)
+    {
+        dst-&gt;R = gl::floatToNormalized&lt;char&gt;(src-&gt;red);
+        dst-&gt;G = gl::floatToNormalized&lt;char&gt;(src-&gt;green);
+        dst-&gt;B = gl::floatToNormalized&lt;char&gt;(src-&gt;blue);
+        dst-&gt;A = gl::floatToNormalized&lt;char&gt;(src-&gt;alpha);
+    }
+
+    static void writeColor(R8G8B8A8S *dst, const gl::ColorI *src)
+    {
+        dst-&gt;R = static_cast&lt;char&gt;(src-&gt;red);
+        dst-&gt;G = static_cast&lt;char&gt;(src-&gt;green);
+        dst-&gt;B = static_cast&lt;char&gt;(src-&gt;blue);
+        dst-&gt;A = static_cast&lt;char&gt;(src-&gt;alpha);
+    }
+
+    static void average(R8G8B8A8S *dst, const R8G8B8A8S *src1, const R8G8B8A8S *src2)
+    {
+        dst-&gt;R = gl::average(src1-&gt;R, src2-&gt;R);
+        dst-&gt;G = gl::average(src1-&gt;G, src2-&gt;G);
+        dst-&gt;B = gl::average(src1-&gt;B, src2-&gt;B);
+        dst-&gt;A = gl::average(src1-&gt;A, src2-&gt;A);
+    }
+};
+
+struct R16S
+{
+    short R;
+
+    static void readColor(gl::ColorF *dst, const R16S *src)
+    {
+        dst-&gt;red   = gl::normalizedToFloat(src-&gt;R);
+        dst-&gt;green = 0.0f;
+        dst-&gt;blue  = 0.0f;
+        dst-&gt;alpha = 1.0f;
+    }
+
+    static void readColor(gl::ColorI *dst, const R16S *src)
+    {
+        dst-&gt;red   = src-&gt;R;
+        dst-&gt;green = 0;
+        dst-&gt;blue  = 0;
+        dst-&gt;alpha = 1;
+    }
+
+    static void writeColor(R16S *dst, const gl::ColorF *src)
+    {
+        dst-&gt;R = gl::floatToNormalized&lt;short&gt;(src-&gt;red);
+    }
+
+    static void writeColor(R16S *dst, const gl::ColorI *src)
+    {
+        dst-&gt;R = static_cast&lt;short&gt;(src-&gt;red);
+    }
+
+    static void average(R16S *dst, const R16S *src1, const R16S *src2)
+    {
+        dst-&gt;R = gl::average(src1-&gt;R, src2-&gt;R);
+    }
+};
+
+struct R16G16S
+{
+    short R;
+    short G;
+
+    static void readColor(gl::ColorF *dst, const R16G16S *src)
+    {
+        dst-&gt;red   = gl::normalizedToFloat(src-&gt;R);
+        dst-&gt;green = gl::normalizedToFloat(src-&gt;G);
+        dst-&gt;blue  = 0.0f;
+        dst-&gt;alpha = 1.0f;
+    }
+
+    static void readColor(gl::ColorI *dst, const R16G16S *src)
+    {
+        dst-&gt;red   = src-&gt;R;
+        dst-&gt;green = src-&gt;G;
+        dst-&gt;blue  = 0;
+        dst-&gt;alpha = 1;
+    }
+
+    static void writeColor(R16G16S *dst, const gl::ColorF *src)
+    {
+        dst-&gt;R = gl::floatToNormalized&lt;short&gt;(src-&gt;red);
+        dst-&gt;G = gl::floatToNormalized&lt;short&gt;(src-&gt;green);
+    }
+
+    static void writeColor(R16G16S *dst, const gl::ColorI *src)
+    {
+        dst-&gt;R = static_cast&lt;short&gt;(src-&gt;red);
+        dst-&gt;G = static_cast&lt;short&gt;(src-&gt;green);
+    }
+
+    static void average(R16G16S *dst, const R16G16S *src1, const R16G16S *src2)
+    {
+        dst-&gt;R = gl::average(src1-&gt;R, src2-&gt;R);
+        dst-&gt;G = gl::average(src1-&gt;G, src2-&gt;G);
+    }
+};
+
+struct R16G16B16S
+{
+    short R;
+    short G;
+    short B;
+
+    static void readColor(gl::ColorF *dst, const R16G16B16S *src)
+    {
+        dst-&gt;red   = gl::normalizedToFloat(src-&gt;R);
+        dst-&gt;green = gl::normalizedToFloat(src-&gt;G);
+        dst-&gt;blue  = gl::normalizedToFloat(src-&gt;B);
+        dst-&gt;alpha = 1.0f;
+    }
+
+    static void readColor(gl::ColorI *dst, const R16G16B16S *src)
+    {
+        dst-&gt;red   = src-&gt;R;
+        dst-&gt;green = src-&gt;G;
+        dst-&gt;blue  = src-&gt;B;
+        dst-&gt;alpha = 1;
+    }
+
+    static void writeColor(R16G16B16S *dst, const gl::ColorF *src)
+    {
+        dst-&gt;R = gl::floatToNormalized&lt;short&gt;(src-&gt;red);
+        dst-&gt;G = gl::floatToNormalized&lt;short&gt;(src-&gt;green);
+        dst-&gt;B = gl::floatToNormalized&lt;short&gt;(src-&gt;blue);
+    }
+
+    static void writeColor(R16G16B16S *dst, const gl::ColorI *src)
+    {
+        dst-&gt;R = static_cast&lt;short&gt;(src-&gt;red);
+        dst-&gt;G = static_cast&lt;short&gt;(src-&gt;green);
+        dst-&gt;B = static_cast&lt;short&gt;(src-&gt;blue);
+    }
+
+    static void average(R16G16B16S *dst, const R16G16B16S *src1, const R16G16B16S *src2)
+    {
+        dst-&gt;R = gl::average(src1-&gt;R, src2-&gt;R);
+        dst-&gt;G = gl::average(src1-&gt;G, src2-&gt;G);
+        dst-&gt;B = gl::average(src1-&gt;B, src2-&gt;B);
+    }
+};
+
+struct R16G16B16A16S
+{
+    short R;
+    short G;
+    short B;
+    short A;
+
+    static void readColor(gl::ColorF *dst, const R16G16B16A16S *src)
+    {
+        dst-&gt;red   = gl::normalizedToFloat(src-&gt;R);
+        dst-&gt;green = gl::normalizedToFloat(src-&gt;G);
+        dst-&gt;blue  = gl::normalizedToFloat(src-&gt;B);
+        dst-&gt;alpha = gl::normalizedToFloat(src-&gt;A);
+    }
+
+    static void readColor(gl::ColorI *dst, const R16G16B16A16S *src)
+    {
+        dst-&gt;red   = src-&gt;R;
+        dst-&gt;green = src-&gt;G;
+        dst-&gt;blue  = src-&gt;B;
+        dst-&gt;alpha = src-&gt;A;
+    }
+
+    static void writeColor(R16G16B16A16S *dst, const gl::ColorF *src)
+    {
+        dst-&gt;R = gl::floatToNormalized&lt;short&gt;(src-&gt;red);
+        dst-&gt;G = gl::floatToNormalized&lt;short&gt;(src-&gt;green);
+        dst-&gt;B = gl::floatToNormalized&lt;short&gt;(src-&gt;blue);
+        dst-&gt;A = gl::floatToNormalized&lt;short&gt;(src-&gt;alpha);
+    }
+
+    static void writeColor(R16G16B16A16S *dst, const gl::ColorI *src)
+    {
+        dst-&gt;R = static_cast&lt;short&gt;(src-&gt;red);
+        dst-&gt;G = static_cast&lt;short&gt;(src-&gt;green);
+        dst-&gt;B = static_cast&lt;short&gt;(src-&gt;blue);
+        dst-&gt;A = static_cast&lt;short&gt;(src-&gt;alpha);
+    }
+
+    static void average(R16G16B16A16S *dst, const R16G16B16A16S *src1, const R16G16B16A16S *src2)
+    {
+        dst-&gt;R = gl::average(src1-&gt;R, src2-&gt;R);
+        dst-&gt;G = gl::average(src1-&gt;G, src2-&gt;G);
+        dst-&gt;B = gl::average(src1-&gt;B, src2-&gt;B);
+        dst-&gt;A = gl::average(src1-&gt;A, src2-&gt;A);
+    }
+};
+
+struct R32S
+{
+    int R;
+
+    static void readColor(gl::ColorF *dst, const R32S *src)
+    {
+        dst-&gt;red   = gl::normalizedToFloat(src-&gt;R);
+        dst-&gt;green = 0.0f;
+        dst-&gt;blue  = 0.0f;
+        dst-&gt;alpha = 1.0f;
+    }
+
+    static void readColor(gl::ColorI *dst, const R32S *src)
+    {
+        dst-&gt;red   = src-&gt;R;
+        dst-&gt;green = 0;
+        dst-&gt;blue  = 0;
+        dst-&gt;alpha = 1;
+    }
+
+    static void writeColor(R32S *dst, const gl::ColorF *src)
+    {
+        dst-&gt;R = gl::floatToNormalized&lt;int&gt;(src-&gt;red);
+    }
+
+    static void writeColor(R32S *dst, const gl::ColorI *src)
+    {
+        dst-&gt;R = static_cast&lt;int&gt;(src-&gt;red);
+    }
+
+    static void average(R32S *dst, const R32S *src1, const R32S *src2)
+    {
+        dst-&gt;R = gl::average(src1-&gt;R, src2-&gt;R);
+    }
+};
+
+struct R32G32S
+{
+    int R;
+    int G;
+
+    static void readColor(gl::ColorF *dst, const R32G32S *src)
+    {
+        dst-&gt;red   = gl::normalizedToFloat(src-&gt;R);
+        dst-&gt;green = gl::normalizedToFloat(src-&gt;G);
+        dst-&gt;blue  = 0.0f;
+        dst-&gt;alpha = 1.0f;
+    }
+
+    static void readColor(gl::ColorI *dst, const R32G32S *src)
+    {
+        dst-&gt;red   = src-&gt;R;
+        dst-&gt;green = src-&gt;G;
+        dst-&gt;blue  = 0;
+        dst-&gt;alpha = 1;
+    }
+
+    static void writeColor(R32G32S *dst, const gl::ColorF *src)
+    {
+        dst-&gt;R = gl::floatToNormalized&lt;int&gt;(src-&gt;red);
+        dst-&gt;G = gl::floatToNormalized&lt;int&gt;(src-&gt;green);
+    }
+
+    static void writeColor(R32G32S *dst, const gl::ColorI *src)
+    {
+        dst-&gt;R = static_cast&lt;int&gt;(src-&gt;red);
+        dst-&gt;G = static_cast&lt;int&gt;(src-&gt;green);
+    }
+
+    static void average(R32G32S *dst, const R32G32S *src1, const R32G32S *src2)
+    {
+        dst-&gt;R = gl::average(src1-&gt;R, src2-&gt;R);
+        dst-&gt;G = gl::average(src1-&gt;G, src2-&gt;G);
+    }
+};
+
+struct R32G32B32S
+{
+    int R;
+    int G;
+    int B;
+
+    static void readColor(gl::ColorF *dst, const R32G32B32S *src)
+    {
+        dst-&gt;red   = gl::normalizedToFloat(src-&gt;R);
+        dst-&gt;green = gl::normalizedToFloat(src-&gt;G);
+        dst-&gt;blue  = gl::normalizedToFloat(src-&gt;B);
+        dst-&gt;alpha = 1.0f;
+    }
+
+    static void readColor(gl::ColorI *dst, const R32G32B32S *src)
+    {
+        dst-&gt;red   = src-&gt;R;
+        dst-&gt;green = src-&gt;G;
+        dst-&gt;blue  = src-&gt;B;
+        dst-&gt;alpha = 1;
+    }
+
+    static void writeColor(R32G32B32S *dst, const gl::ColorF *src)
+    {
+        dst-&gt;R = gl::floatToNormalized&lt;int&gt;(src-&gt;red);
+        dst-&gt;G = gl::floatToNormalized&lt;int&gt;(src-&gt;green);
+        dst-&gt;B = gl::floatToNormalized&lt;int&gt;(src-&gt;blue);
+    }
+
+    static void writeColor(R32G32B32S *dst, const gl::ColorI *src)
+    {
+        dst-&gt;R = static_cast&lt;int&gt;(src-&gt;red);
+        dst-&gt;G = static_cast&lt;int&gt;(src-&gt;green);
+        dst-&gt;B = static_cast&lt;int&gt;(src-&gt;blue);
+    }
+
+    static void average(R32G32B32S *dst, const R32G32B32S *src1, const R32G32B32S *src2)
+    {
+        dst-&gt;R = gl::average(src1-&gt;R, src2-&gt;R);
+        dst-&gt;G = gl::average(src1-&gt;G, src2-&gt;G);
+        dst-&gt;B = gl::average(src1-&gt;B, src2-&gt;B);
+    }
+};
+
+struct R32G32B32A32S
+{
+    int R;
+    int G;
+    int B;
+    int A;
+
+    static void readColor(gl::ColorF *dst, const R32G32B32A32S *src)
+    {
+        dst-&gt;red   = gl::normalizedToFloat(src-&gt;R);
+        dst-&gt;green = gl::normalizedToFloat(src-&gt;G);
+        dst-&gt;blue  = gl::normalizedToFloat(src-&gt;B);
+        dst-&gt;alpha = gl::normalizedToFloat(src-&gt;A);
+    }
+
+    static void readColor(gl::ColorI *dst, const R32G32B32A32S *src)
+    {
+        dst-&gt;red   = src-&gt;R;
+        dst-&gt;green = src-&gt;G;
+        dst-&gt;blue  = src-&gt;B;
+        dst-&gt;alpha = src-&gt;A;
+    }
+
+    static void writeColor(R32G32B32A32S *dst, const gl::ColorF *src)
+    {
+        dst-&gt;R = gl::floatToNormalized&lt;int&gt;(src-&gt;red);
+        dst-&gt;G = gl::floatToNormalized&lt;int&gt;(src-&gt;green);
+        dst-&gt;B = gl::floatToNormalized&lt;int&gt;(src-&gt;blue);
+        dst-&gt;A = gl::floatToNormalized&lt;int&gt;(src-&gt;alpha);
+    }
+
+    static void writeColor(R32G32B32A32S *dst, const gl::ColorI *src)
+    {
+        dst-&gt;R = static_cast&lt;int&gt;(src-&gt;red);
+        dst-&gt;G = static_cast&lt;int&gt;(src-&gt;green);
+        dst-&gt;B = static_cast&lt;int&gt;(src-&gt;blue);
+        dst-&gt;A = static_cast&lt;int&gt;(src-&gt;alpha);
+    }
+
+    static void average(R32G32B32A32S *dst, const R32G32B32A32S *src1, const R32G32B32A32S *src2)
+    {
+        dst-&gt;R = gl::average(src1-&gt;R, src2-&gt;R);
+        dst-&gt;G = gl::average(src1-&gt;G, src2-&gt;G);
+        dst-&gt;B = gl::average(src1-&gt;B, src2-&gt;B);
+        dst-&gt;A = gl::average(src1-&gt;A, src2-&gt;A);
+    }
+};
+
+struct A16B16G16R16F
+{
+    unsigned short A;
+    unsigned short R;
+    unsigned short G;
+    unsigned short B;
+
+    static void readColor(gl::ColorF *dst, const A16B16G16R16F *src)
+    {
+        dst-&gt;red   = gl::float16ToFloat32(src-&gt;R);
+        dst-&gt;green = gl::float16ToFloat32(src-&gt;G);
+        dst-&gt;blue  = gl::float16ToFloat32(src-&gt;B);
+        dst-&gt;alpha = gl::float16ToFloat32(src-&gt;A);
+    }
+
+    static void writeColor(A16B16G16R16F *dst, const gl::ColorF *src)
+    {
+        dst-&gt;R = gl::float32ToFloat16(src-&gt;red);
+        dst-&gt;G = gl::float32ToFloat16(src-&gt;green);
+        dst-&gt;B = gl::float32ToFloat16(src-&gt;blue);
+        dst-&gt;A = gl::float32ToFloat16(src-&gt;alpha);
+    }
+
+    static void average(A16B16G16R16F *dst, const A16B16G16R16F *src1, const A16B16G16R16F *src2)
+    {
+        dst-&gt;R = gl::averageHalfFloat(src1-&gt;R, src2-&gt;R);
+        dst-&gt;G = gl::averageHalfFloat(src1-&gt;G, src2-&gt;G);
+        dst-&gt;B = gl::averageHalfFloat(src1-&gt;B, src2-&gt;B);
+        dst-&gt;A = gl::averageHalfFloat(src1-&gt;A, src2-&gt;A);
+    }
+};
+
+struct R16G16B16A16F
+{
+    unsigned short R;
+    unsigned short G;
+    unsigned short B;
+    unsigned short A;
+
+    static void readColor(gl::ColorF *dst, const R16G16B16A16F *src)
+    {
+        dst-&gt;red   = gl::float16ToFloat32(src-&gt;R);
+        dst-&gt;green = gl::float16ToFloat32(src-&gt;G);
+        dst-&gt;blue  = gl::float16ToFloat32(src-&gt;B);
+        dst-&gt;alpha = gl::float16ToFloat32(src-&gt;A);
+    }
+
+    static void writeColor(R16G16B16A16F *dst, const gl::ColorF *src)
+    {
+        dst-&gt;R = gl::float32ToFloat16(src-&gt;red);
+        dst-&gt;G = gl::float32ToFloat16(src-&gt;green);
+        dst-&gt;B = gl::float32ToFloat16(src-&gt;blue);
+        dst-&gt;A = gl::float32ToFloat16(src-&gt;alpha);
+    }
+
+    static void average(R16G16B16A16F *dst, const R16G16B16A16F *src1, const R16G16B16A16F *src2)
+    {
+        dst-&gt;R = gl::averageHalfFloat(src1-&gt;R, src2-&gt;R);
+        dst-&gt;G = gl::averageHalfFloat(src1-&gt;G, src2-&gt;G);
+        dst-&gt;B = gl::averageHalfFloat(src1-&gt;B, src2-&gt;B);
+        dst-&gt;A = gl::averageHalfFloat(src1-&gt;A, src2-&gt;A);
+    }
+};
+
+struct R16F
+{
+    unsigned short R;
+
+    static void readColor(gl::ColorF *dst, const R16F *src)
+    {
+        dst-&gt;red   = gl::float16ToFloat32(src-&gt;R);
+        dst-&gt;green = 0.0f;
+        dst-&gt;blue  = 0.0f;
+        dst-&gt;alpha = 1.0f;
+    }
+
+    static void writeColor(R16F *dst, const gl::ColorF *src)
+    {
+        dst-&gt;R = gl::float32ToFloat16(src-&gt;red);
+    }
+    
+    static void average(R16F *dst, const R16F *src1, const R16F *src2)
+    {
+        dst-&gt;R = gl::averageHalfFloat(src1-&gt;R, src2-&gt;R);
+    }
+};
+
+struct A16F
+{
+    unsigned short A;
+
+    static void readColor(gl::ColorF *dst, const A16F *src)
+    {
+        dst-&gt;red   = 0.0f;
+        dst-&gt;green = 0.0f;
+        dst-&gt;blue  = 0.0f;
+        dst-&gt;alpha = gl::float16ToFloat32(src-&gt;A);
+    }
+
+    static void writeColor(A16F *dst, const gl::ColorF *src)
+    {
+        dst-&gt;A = gl::float32ToFloat16(src-&gt;alpha);
+    }
+
+    static void average(A16F *dst, const A16F *src1, const A16F *src2)
+    {
+        dst-&gt;A = gl::averageHalfFloat(src1-&gt;A, src2-&gt;A);
+    }
+};
+
+struct L16F
+{
+    unsigned short L;
+
+    static void readColor(gl::ColorF *dst, const L16F *src)
+    {
+        float lum = gl::float16ToFloat32(src-&gt;L);
+        dst-&gt;red   = lum;
+        dst-&gt;green = lum;
+        dst-&gt;blue  = lum;
+        dst-&gt;alpha = 1.0f;
+    }
+
+    static void writeColor(L16F *dst, const gl::ColorF *src)
+    {
+        dst-&gt;L = gl::float32ToFloat16((src-&gt;red + src-&gt;green + src-&gt;blue) / 3.0f);
+    }
+
+    static void average(L16F *dst, const L16F *src1, const L16F *src2)
+    {
+        dst-&gt;L = gl::averageHalfFloat(src1-&gt;L, src2-&gt;L);
+    }
+};
+
+struct L16A16F
+{
+    unsigned short L;
+    unsigned short A;
+
+    static void readColor(gl::ColorF *dst, const L16A16F *src)
+    {
+        float lum = gl::float16ToFloat32(src-&gt;L);
+        dst-&gt;red   = lum;
+        dst-&gt;green = lum;
+        dst-&gt;blue  = lum;
+        dst-&gt;alpha = gl::float16ToFloat32(src-&gt;A);
+    }
+
+    static void writeColor(L16A16F *dst, const gl::ColorF *src)
+    {
+        dst-&gt;L = gl::float32ToFloat16((src-&gt;red + src-&gt;green + src-&gt;blue) / 3.0f);
+        dst-&gt;A = gl::float32ToFloat16(src-&gt;alpha);
+    }
+
+    static void average(L16A16F *dst, const L16A16F *src1, const L16A16F *src2)
+    {
+        dst-&gt;L = gl::averageHalfFloat(src1-&gt;L, src2-&gt;L);
+        dst-&gt;A = gl::averageHalfFloat(src1-&gt;A, src2-&gt;A);
+    }
+};
+
+struct R16G16F
+{
+    unsigned short R;
+    unsigned short G;
+
+    static void readColor(gl::ColorF *dst, const R16G16F *src)
+    {
+        dst-&gt;red   = gl::float16ToFloat32(src-&gt;R);
+        dst-&gt;green = gl::float16ToFloat32(src-&gt;G);
+        dst-&gt;blue  = 0.0f;
+        dst-&gt;alpha = 1.0f;
+    }
+
+    static void writeColor(R16G16F *dst, const gl::ColorF *src)
+    {
+        dst-&gt;R = gl::float32ToFloat16(src-&gt;red);
+        dst-&gt;G = gl::float32ToFloat16(src-&gt;green);
+    }
+
+    static void average(R16G16F *dst, const R16G16F *src1, const R16G16F *src2)
+    {
+        dst-&gt;R = gl::averageHalfFloat(src1-&gt;R, src2-&gt;R);
+        dst-&gt;G = gl::averageHalfFloat(src1-&gt;G, src2-&gt;G);
+    }
+};
+
+struct R16G16B16F
+{
+    unsigned short R;
+    unsigned short G;
+    unsigned short B;
+
+    static void readColor(gl::ColorF *dst, const R16G16B16F *src)
+    {
+        dst-&gt;red   = gl::float16ToFloat32(src-&gt;R);
+        dst-&gt;green = gl::float16ToFloat32(src-&gt;G);
+        dst-&gt;blue  = gl::float16ToFloat32(src-&gt;B);
+        dst-&gt;alpha = 1.0f;
+    }
+
+    static void writeColor(R16G16B16F *dst, const gl::ColorF *src)
+    {
+        dst-&gt;R = gl::float32ToFloat16(src-&gt;red);
+        dst-&gt;G = gl::float32ToFloat16(src-&gt;green);
+        dst-&gt;B = gl::float32ToFloat16(src-&gt;blue);
+    }
+
+    static void average(R16G16B16F *dst, const R16G16B16F *src1, const R16G16B16F *src2)
+    {
+        dst-&gt;R = gl::averageHalfFloat(src1-&gt;R, src2-&gt;R);
+        dst-&gt;G = gl::averageHalfFloat(src1-&gt;G, src2-&gt;G);
+        dst-&gt;B = gl::averageHalfFloat(src1-&gt;B, src2-&gt;B);
+    }
+};
+
+struct A32B32G32R32F
+{
+    float A;
+    float R;
+    float G;
+    float B;
+
+    static void readColor(gl::ColorF *dst, const A32B32G32R32F *src)
+    {
+        dst-&gt;red   = src-&gt;R;
+        dst-&gt;green = src-&gt;G;
+        dst-&gt;blue  = src-&gt;B;
+        dst-&gt;alpha = src-&gt;A;
+    }
+
+    static void writeColor(A32B32G32R32F *dst, const gl::ColorF *src)
+    {
+        dst-&gt;R = src-&gt;red;
+        dst-&gt;G = src-&gt;green;
+        dst-&gt;B = src-&gt;blue;
+        dst-&gt;A = src-&gt;alpha;
+    }
+
+    static void average(A32B32G32R32F *dst, const A32B32G32R32F *src1, const A32B32G32R32F *src2)
+    {
+        dst-&gt;R = gl::average(src1-&gt;R, src2-&gt;R);
+        dst-&gt;G = gl::average(src1-&gt;G, src2-&gt;G);
+        dst-&gt;B = gl::average(src1-&gt;B, src2-&gt;B);
+        dst-&gt;A = gl::average(src1-&gt;A, src2-&gt;A);
+    }
+};
+
+struct R32G32B32A32F
+{
+    float R;
+    float G;
+    float B;
+    float A;
+
+    static void readColor(gl::ColorF *dst, const R32G32B32A32F *src)
+    {
+        dst-&gt;red   = src-&gt;R;
+        dst-&gt;green = src-&gt;G;
+        dst-&gt;blue  = src-&gt;B;
+        dst-&gt;alpha = src-&gt;A;
+    }
+
+    static void writeColor(R32G32B32A32F *dst, const gl::ColorF *src)
+    {
+        dst-&gt;R = src-&gt;red;
+        dst-&gt;G = src-&gt;green;
+        dst-&gt;B = src-&gt;blue;
+        dst-&gt;A = src-&gt;alpha;
+    }
+
+    static void average(R32G32B32A32F *dst, const R32G32B32A32F *src1, const R32G32B32A32F *src2)
+    {
+        dst-&gt;R = gl::average(src1-&gt;R, src2-&gt;R);
+        dst-&gt;G = gl::average(src1-&gt;G, src2-&gt;G);
+        dst-&gt;B = gl::average(src1-&gt;B, src2-&gt;B);
+        dst-&gt;A = gl::average(src1-&gt;A, src2-&gt;A);
+    }
+};
+
+struct R32F
+{
+    float R;
+
+    static void readColor(gl::ColorF *dst, const R32F *src)
+    {
+        dst-&gt;red   = src-&gt;R;
+        dst-&gt;green = 0.0f;
+        dst-&gt;blue  = 0.0f;
+        dst-&gt;alpha = 1.0f;
+    }
+
+    static void writeColor(R32F *dst, const gl::ColorF *src)
+    {
+        dst-&gt;R = src-&gt;red;
+    }
+
+    static void average(R32F *dst, const R32F *src1, const R32F *src2)
+    {
+        dst-&gt;R = gl::average(src1-&gt;R, src2-&gt;R);
+    }
+};
+
+struct A32F
+{
+    float A;
+
+    static void readColor(gl::ColorF *dst, const A32F *src)
+    {
+        dst-&gt;red   = 0.0f;
+        dst-&gt;green = 0.0f;
+        dst-&gt;blue  = 0.0f;
+        dst-&gt;alpha = src-&gt;A;
+    }
+
+    static void writeColor(A32F *dst, const gl::ColorF *src)
+    {
+        dst-&gt;A = src-&gt;alpha;
+    }
+
+    static void average(A32F *dst, const A32F *src1, const A32F *src2)
+    {
+        dst-&gt;A = gl::average(src1-&gt;A, src2-&gt;A);
+    }
+};
+
+struct L32F
+{
+    float L;
+
+    static void readColor(gl::ColorF *dst, const L32F *src)
+    {
+        dst-&gt;red   = src-&gt;L;
+        dst-&gt;green = src-&gt;L;
+        dst-&gt;blue  = src-&gt;L;
+        dst-&gt;alpha = 1.0f;
+    }
+
+    static void writeColor(L32F *dst, const gl::ColorF *src)
+    {
+        dst-&gt;L = (src-&gt;red + src-&gt;green + src-&gt;blue) / 3.0f;
+    }
+
+    static void average(L32F *dst, const L32F *src1, const L32F *src2)
+    {
+        dst-&gt;L = gl::average(src1-&gt;L, src2-&gt;L);
+    }
+};
+
+struct L32A32F
+{
+    float L;
+    float A;
+
+    static void readColor(gl::ColorF *dst, const L32A32F *src)
+    {
+        dst-&gt;red   = src-&gt;L;
+        dst-&gt;green = src-&gt;L;
+        dst-&gt;blue  = src-&gt;L;
+        dst-&gt;alpha = src-&gt;A;
+    }
+
+    static void writeColor(L32A32F *dst, const gl::ColorF *src)
+    {
+        dst-&gt;L = (src-&gt;red + src-&gt;green + src-&gt;blue) / 3.0f;
+        dst-&gt;A = src-&gt;alpha;
+    }
+
+    static void average(L32A32F *dst, const L32A32F *src1, const L32A32F *src2)
+    {
+        dst-&gt;L = gl::average(src1-&gt;L, src2-&gt;L);
+        dst-&gt;A = gl::average(src1-&gt;A, src2-&gt;A);
+    }
+};
+
+struct R32G32F
+{
+    float R;
+    float G;
+
+    static void readColor(gl::ColorF *dst, const R32G32F *src)
+    {
+        dst-&gt;red   = src-&gt;R;
+        dst-&gt;green = src-&gt;G;
+        dst-&gt;blue  = 0.0f;
+        dst-&gt;alpha = 1.0f;
+    }
+
+    static void writeColor(R32G32F *dst, const gl::ColorF *src)
+    {
+        dst-&gt;R = src-&gt;red;
+        dst-&gt;G = src-&gt;green;
+    }
+
+    static void average(R32G32F *dst, const R32G32F *src1, const R32G32F *src2)
+    {
+        dst-&gt;R = gl::average(src1-&gt;R, src2-&gt;R);
+        dst-&gt;G = gl::average(src1-&gt;G, src2-&gt;G);
+    }
+};
+
+struct R32G32B32F
+{
+    float R;
+    float G;
+    float B;
+
+    static void readColor(gl::ColorF *dst, const R32G32B32F *src)
+    {
+        dst-&gt;red   = src-&gt;R;
+        dst-&gt;green = src-&gt;G;
+        dst-&gt;blue  = src-&gt;B;
+        dst-&gt;alpha = 1.0f;
+    }
+
+    static void writeColor(R32G32B32F *dst, const gl::ColorF *src)
+    {
+        dst-&gt;R = src-&gt;red;
+        dst-&gt;G = src-&gt;green;
+        dst-&gt;B = src-&gt;blue;
+    }
+
+    static void average(R32G32B32F *dst, const R32G32B32F *src1, const R32G32B32F *src2)
+    {
+        dst-&gt;R = gl::average(src1-&gt;R, src2-&gt;R);
+        dst-&gt;G = gl::average(src1-&gt;G, src2-&gt;G);
+        dst-&gt;B = gl::average(src1-&gt;B, src2-&gt;B);
+    }
+};
+
+struct R10G10B10A2
+{
+    unsigned int R : 10;
+    unsigned int G : 10;
+    unsigned int B : 10;
+    unsigned int A : 2;
+
+    static void readColor(gl::ColorF *dst, const R10G10B10A2 *src)
+    {
+        dst-&gt;red   = gl::normalizedToFloat&lt;10&gt;(src-&gt;R);
+        dst-&gt;green = gl::normalizedToFloat&lt;10&gt;(src-&gt;G);
+        dst-&gt;blue  = gl::normalizedToFloat&lt;10&gt;(src-&gt;B);
+        dst-&gt;alpha = gl::normalizedToFloat&lt; 2&gt;(src-&gt;A);
+    }
+
+    static void readColor(gl::ColorUI *dst, const R10G10B10A2 *src)
+    {
+        dst-&gt;red   = src-&gt;R;
+        dst-&gt;green = src-&gt;G;
+        dst-&gt;blue  = src-&gt;B;
+        dst-&gt;alpha = src-&gt;A;
+    }
+
+    static void writeColor(R10G10B10A2 *dst, const gl::ColorF *src)
+    {
+        dst-&gt;R = gl::floatToNormalized&lt;10, unsigned int&gt;(src-&gt;red);
+        dst-&gt;G = gl::floatToNormalized&lt;10, unsigned int&gt;(src-&gt;green);
+        dst-&gt;B = gl::floatToNormalized&lt;10, unsigned int&gt;(src-&gt;blue);
+        dst-&gt;A = gl::floatToNormalized&lt; 2, unsigned int&gt;(src-&gt;alpha);
+    }
+
+    static void writeColor(R10G10B10A2 *dst, const gl::ColorUI *src)
+    {
+        dst-&gt;R = static_cast&lt;unsigned int&gt;(src-&gt;red);
+        dst-&gt;G = static_cast&lt;unsigned int&gt;(src-&gt;green);
+        dst-&gt;B = static_cast&lt;unsigned int&gt;(src-&gt;blue);
+        dst-&gt;A = static_cast&lt;unsigned int&gt;(src-&gt;alpha);
+    }
+
+    static void average(R10G10B10A2 *dst, const R10G10B10A2 *src1, const R10G10B10A2 *src2)
+    {
+        dst-&gt;R = gl::average(src1-&gt;R, src2-&gt;R);
+        dst-&gt;G = gl::average(src1-&gt;G, src2-&gt;G);
+        dst-&gt;B = gl::average(src1-&gt;B, src2-&gt;B);
+        dst-&gt;A = gl::average(src1-&gt;A, src2-&gt;A);
+    }
+};
+
+struct R9G9B9E5
+{
+    unsigned int R : 9;
+    unsigned int G : 9;
+    unsigned int B : 9;
+    unsigned int E : 5;
+
+    static void readColor(gl::ColorF *dst, const R9G9B9E5 *src)
+    {
+        gl::convert999E5toRGBFloats(gl::bitCast&lt;unsigned int&gt;(*src), &amp;dst-&gt;red, &amp;dst-&gt;green, &amp;dst-&gt;blue);
+        dst-&gt;alpha = 1.0f;
+    }
+
+    static void writeColor(R9G9B9E5 *dst, const gl::ColorF *src)
+    {
+        *reinterpret_cast&lt;unsigned int*&gt;(dst) = gl::convertRGBFloatsTo999E5(src-&gt;red,
+                                                                            src-&gt;green,
+                                                                            src-&gt;blue);
+    }
+
+    static void average(R9G9B9E5 *dst, const R9G9B9E5 *src1, const R9G9B9E5 *src2)
+    {
+        float r1, g1, b1;
+        gl::convert999E5toRGBFloats(*reinterpret_cast&lt;const unsigned int*&gt;(src1), &amp;r1, &amp;g1, &amp;b1);
+
+        float r2, g2, b2;
+        gl::convert999E5toRGBFloats(*reinterpret_cast&lt;const unsigned int*&gt;(src2), &amp;r2, &amp;g2, &amp;b2);
+
+        *reinterpret_cast&lt;unsigned int*&gt;(dst) = gl::convertRGBFloatsTo999E5(gl::average(r1, r2),
+                                                                            gl::average(g1, g2),
+                                                                            gl::average(b1, b2));
+    }
+};
+
+struct R11G11B10F
+{
+    unsigned int R : 11;
+    unsigned int G : 11;
+    unsigned int B : 10;
+
+    static void readColor(gl::ColorF *dst, const R11G11B10F *src)
+    {
+        dst-&gt;red   = gl::float11ToFloat32(src-&gt;R);
+        dst-&gt;green = gl::float11ToFloat32(src-&gt;G);
+        dst-&gt;blue  = gl::float10ToFloat32(src-&gt;B);
+        dst-&gt;alpha = 1.0f;
+    }
+
+    static void writeColor(R11G11B10F *dst, const gl::ColorF *src)
+    {
+        dst-&gt;R = gl::float32ToFloat11(src-&gt;red);
+        dst-&gt;G = gl::float32ToFloat11(src-&gt;green);
+        dst-&gt;B = gl::float32ToFloat10(src-&gt;blue);
+    }
+
+    static void average(R11G11B10F *dst, const R11G11B10F *src1, const R11G11B10F *src2)
+    {
+        dst-&gt;R = gl::averageFloat11(src1-&gt;R, src2-&gt;R);
+        dst-&gt;G = gl::averageFloat11(src1-&gt;G, src2-&gt;G);
+        dst-&gt;B = gl::averageFloat10(src1-&gt;B, src2-&gt;B);
+    }
+};
+
+}
+
+#endif // LIBGLESV2_RENDERER_IMAGEFORMATS_H_
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererloadimagecpp"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/loadimage.cpp (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/loadimage.cpp                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/loadimage.cpp        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,951 @@
</span><ins>+#include &quot;precompiled.h&quot;
+//
+// Copyright (c) 0013 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+
+// loadimage.cpp: Defines image loading functions.
+
+#include &quot;libGLESv2/renderer/loadimage.h&quot;
+
+namespace rx
+{
+
+void loadAlphaDataToBGRA(int width, int height, int depth,
+                         const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                         void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    const unsigned char *source = NULL;
+    unsigned char *dest = NULL;
+
+    for (int z = 0; z &lt; depth; z++)
+    {
+        for (int y = 0; y &lt; height; y++)
+        {
+            source = offsetDataPointer&lt;unsigned char&gt;(input, y, z, inputRowPitch, inputDepthPitch);
+            dest = offsetDataPointer&lt;unsigned char&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+            for (int x = 0; x &lt; width; x++)
+            {
+                dest[4 * x + 0] = 0;
+                dest[4 * x + 1] = 0;
+                dest[4 * x + 2] = 0;
+                dest[4 * x + 3] = source[x];
+            }
+        }
+    }
+}
+
+void loadAlphaDataToNative(int width, int height, int depth,
+                           const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                           void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    const unsigned char *source = NULL;
+    unsigned char *dest = NULL;
+
+    for (int z = 0; z &lt; depth; z++)
+    {
+        for (int y = 0; y &lt; height; y++)
+        {
+            source = offsetDataPointer&lt;unsigned char&gt;(input, y, z, inputRowPitch, inputDepthPitch);
+            dest = offsetDataPointer&lt;unsigned char&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+            memcpy(dest, source, width);
+        }
+    }
+}
+
+void loadAlphaFloatDataToRGBA(int width, int height, int depth,
+                              const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                              void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    const float *source = NULL;
+    float *dest = NULL;
+
+    for (int z = 0; z &lt; depth; z++)
+    {
+        for (int y = 0; y &lt; height; y++)
+        {
+            source = offsetDataPointer&lt;float&gt;(input, y, z, inputRowPitch, inputDepthPitch);
+            dest = offsetDataPointer&lt;float&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+            for (int x = 0; x &lt; width; x++)
+            {
+                dest[4 * x + 0] = 0;
+                dest[4 * x + 1] = 0;
+                dest[4 * x + 2] = 0;
+                dest[4 * x + 3] = source[x];
+            }
+        }
+    }
+}
+
+void loadAlphaHalfFloatDataToRGBA(int width, int height, int depth,
+                                  const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                                  void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    const unsigned short *source = NULL;
+    unsigned short *dest = NULL;
+
+    for (int z = 0; z &lt; depth; z++)
+    {
+        for (int y = 0; y &lt; height; y++)
+        {
+            source = offsetDataPointer&lt;unsigned short&gt;(input, y, z, inputRowPitch, inputDepthPitch);
+            dest = offsetDataPointer&lt;unsigned short&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+            for (int x = 0; x &lt; width; x++)
+            {
+                dest[4 * x + 0] = 0;
+                dest[4 * x + 1] = 0;
+                dest[4 * x + 2] = 0;
+                dest[4 * x + 3] = source[x];
+            }
+        }
+    }
+}
+
+void loadLuminanceDataToNative(int width, int height, int depth,
+                               const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                               void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    const unsigned char *source = NULL;
+    unsigned char *dest = NULL;
+
+    for (int z = 0; z &lt; depth; z++)
+    {
+        for (int y = 0; y &lt; height; y++)
+        {
+            source = offsetDataPointer&lt;unsigned char&gt;(input, y, z, inputRowPitch, inputDepthPitch);
+            dest = offsetDataPointer&lt;unsigned char&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+            memcpy(dest, source, width);
+        }
+    }
+}
+
+void loadLuminanceDataToBGRA(int width, int height, int depth,
+                             const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                             void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    const unsigned char *source = NULL;
+    unsigned char *dest = NULL;
+
+    for (int z = 0; z &lt; depth; z++)
+    {
+        for (int y = 0; y &lt; height; y++)
+        {
+            source = offsetDataPointer&lt;unsigned char&gt;(input, y, z, inputRowPitch, inputDepthPitch);
+            dest = offsetDataPointer&lt;unsigned char&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+            for (int x = 0; x &lt; width; x++)
+            {
+                dest[4 * x + 0] = source[x];
+                dest[4 * x + 1] = source[x];
+                dest[4 * x + 2] = source[x];
+                dest[4 * x + 3] = 0xFF;
+            }
+        }
+    }
+}
+
+void loadLuminanceFloatDataToRGBA(int width, int height, int depth,
+                                  const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                                  void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    const float *source = NULL;
+    float *dest = NULL;
+
+    for (int z = 0; z &lt; depth; z++)
+    {
+        for (int y = 0; y &lt; height; y++)
+        {
+            source = offsetDataPointer&lt;float&gt;(input, y, z, inputRowPitch, inputDepthPitch);
+            dest = offsetDataPointer&lt;float&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+            for (int x = 0; x &lt; width; x++)
+            {
+                dest[4 * x + 0] = source[x];
+                dest[4 * x + 1] = source[x];
+                dest[4 * x + 2] = source[x];
+                dest[4 * x + 3] = 1.0f;
+            }
+        }
+    }
+}
+
+void loadLuminanceFloatDataToRGB(int width, int height, int depth,
+                                 const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                                 void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    const float *source = NULL;
+    float *dest = NULL;
+
+    for (int z = 0; z &lt; depth; z++)
+    {
+        for (int y = 0; y &lt; height; y++)
+        {
+            source = offsetDataPointer&lt;float&gt;(input, y, z, inputRowPitch, inputDepthPitch);
+            dest = offsetDataPointer&lt;float&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+            for (int x = 0; x &lt; width; x++)
+            {
+                dest[3 * x + 0] = source[x];
+                dest[3 * x + 1] = source[x];
+                dest[3 * x + 2] = source[x];
+            }
+        }
+    }
+}
+
+void loadLuminanceHalfFloatDataToRGBA(int width, int height, int depth,
+                                      const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                                      void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    const unsigned short *source = NULL;
+    unsigned short *dest = NULL;
+
+    for (int z = 0; z &lt; depth; z++)
+    {
+        for (int y = 0; y &lt; height; y++)
+        {
+            source = offsetDataPointer&lt;unsigned short&gt;(input, y, z, inputRowPitch, inputDepthPitch);
+            dest = offsetDataPointer&lt;unsigned short&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+            for (int x = 0; x &lt; width; x++)
+            {
+                dest[4 * x + 0] = source[x];
+                dest[4 * x + 1] = source[x];
+                dest[4 * x + 2] = source[x];
+                dest[4 * x + 3] = 0x3C00; // SEEEEEMMMMMMMMMM, S = 0, E = 15, M = 0: 16bit flpt representation of 1
+            }
+        }
+    }
+}
+
+void loadLuminanceAlphaDataToNative(int width, int height, int depth,
+                                    const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                                    void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    const unsigned char *source = NULL;
+    unsigned char *dest = NULL;
+
+    for (int z = 0; z &lt; depth; z++)
+    {
+        for (int y = 0; y &lt; height; y++)
+        {
+            source = offsetDataPointer&lt;unsigned char&gt;(input, y, z, inputRowPitch, inputDepthPitch);
+            dest = offsetDataPointer&lt;unsigned char&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+
+            memcpy(dest, source, width * 2);
+        }
+    }
+}
+
+void loadLuminanceAlphaDataToBGRA(int width, int height, int depth,
+                                  const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                                  void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    const unsigned char *source = NULL;
+    unsigned char *dest = NULL;
+
+    for (int z = 0; z &lt; depth; z++)
+    {
+        for (int y = 0; y &lt; height; y++)
+        {
+            source = offsetDataPointer&lt;unsigned char&gt;(input, y, z, inputRowPitch, inputDepthPitch);
+            dest = offsetDataPointer&lt;unsigned char&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+
+            for (int x = 0; x &lt; width; x++)
+            {
+                dest[4 * x + 0] = source[2*x+0];
+                dest[4 * x + 1] = source[2*x+0];
+                dest[4 * x + 2] = source[2*x+0];
+                dest[4 * x + 3] = source[2*x+1];
+            }
+        }
+    }
+}
+
+void loadLuminanceAlphaFloatDataToRGBA(int width, int height, int depth,
+                                       const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                                       void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    const float *source = NULL;
+    float *dest = NULL;
+
+    for (int z = 0; z &lt; depth; z++)
+    {
+        for (int y = 0; y &lt; height; y++)
+        {
+            source = offsetDataPointer&lt;float&gt;(input, y, z, inputRowPitch, inputDepthPitch);
+            dest = offsetDataPointer&lt;float&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+            for (int x = 0; x &lt; width; x++)
+            {
+                dest[4 * x + 0] = source[2*x+0];
+                dest[4 * x + 1] = source[2*x+0];
+                dest[4 * x + 2] = source[2*x+0];
+                dest[4 * x + 3] = source[2*x+1];
+            }
+        }
+    }
+}
+
+void loadLuminanceAlphaHalfFloatDataToRGBA(int width, int height, int depth,
+                                           const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                                           void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    const unsigned short *source = NULL;
+    unsigned short *dest = NULL;
+
+    for (int z = 0; z &lt; depth; z++)
+    {
+        for (int y = 0; y &lt; height; y++)
+        {
+            source = offsetDataPointer&lt;unsigned short&gt;(input, y, z, inputRowPitch, inputDepthPitch);
+            dest = offsetDataPointer&lt;unsigned short&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+            for (int x = 0; x &lt; width; x++)
+            {
+                dest[4 * x + 0] = source[2*x+0];
+                dest[4 * x + 1] = source[2*x+0];
+                dest[4 * x + 2] = source[2*x+0];
+                dest[4 * x + 3] = source[2*x+1];
+            }
+        }
+    }
+}
+
+void loadRGBUByteDataToBGRX(int width, int height, int depth,
+                            const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                            void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    const unsigned char *source = NULL;
+    unsigned char *dest = NULL;
+
+    for (int z = 0; z &lt; depth; z++)
+    {
+        for (int y = 0; y &lt; height; y++)
+        {
+            source = offsetDataPointer&lt;unsigned char&gt;(input, y, z, inputRowPitch, inputDepthPitch);
+            dest = offsetDataPointer&lt;unsigned char&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+            for (int x = 0; x &lt; width; x++)
+            {
+                dest[4 * x + 0] = source[x * 3 + 2];
+                dest[4 * x + 1] = source[x * 3 + 1];
+                dest[4 * x + 2] = source[x * 3 + 0];
+                dest[4 * x + 3] = 0xFF;
+            }
+        }
+    }
+}
+
+void loadRGUByteDataToBGRX(int width, int height, int depth,
+                           const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                           void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    const unsigned char *source = NULL;
+    unsigned char *dest = NULL;
+
+    for (int z = 0; z &lt; depth; z++)
+    {
+        for (int y = 0; y &lt; height; y++)
+        {
+            source = offsetDataPointer&lt;unsigned char&gt;(input, y, z, inputRowPitch, inputDepthPitch);
+            dest = offsetDataPointer&lt;unsigned char&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+            for (int x = 0; x &lt; width; x++)
+            {
+                dest[4 * x + 0] = 0x00;
+                dest[4 * x + 1] = source[x * 2 + 1];
+                dest[4 * x + 2] = source[x * 2 + 0];
+                dest[4 * x + 3] = 0xFF;
+            }
+        }
+    }
+}
+
+void loadRUByteDataToBGRX(int width, int height, int depth,
+                          const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                          void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    const unsigned char *source = NULL;
+    unsigned char *dest = NULL;
+
+    for (int z = 0; z &lt; depth; z++)
+    {
+        for (int y = 0; y &lt; height; y++)
+        {
+            source = offsetDataPointer&lt;unsigned char&gt;(input, y, z, inputRowPitch, inputDepthPitch);
+            dest = offsetDataPointer&lt;unsigned char&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+            for (int x = 0; x &lt; width; x++)
+            {
+                dest[4 * x + 0] = 0x00;
+                dest[4 * x + 1] = 0x00;
+                dest[4 * x + 2] = source[x];
+                dest[4 * x + 3] = 0xFF;
+            }
+        }
+    }
+}
+
+void loadRGBUByteDataToRGBA(int width, int height, int depth,
+                            const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                            void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    const unsigned char *source = NULL;
+    unsigned char *dest = NULL;
+
+    for (int z = 0; z &lt; depth; z++)
+    {
+        for (int y = 0; y &lt; height; y++)
+        {
+            source = offsetDataPointer&lt;unsigned char&gt;(input, y, z, inputRowPitch, inputDepthPitch);
+            dest = offsetDataPointer&lt;unsigned char&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+            for (int x = 0; x &lt; width; x++)
+            {
+                dest[4 * x + 0] = source[x * 3 + 0];
+                dest[4 * x + 1] = source[x * 3 + 1];
+                dest[4 * x + 2] = source[x * 3 + 2];
+                dest[4 * x + 3] = 0xFF;
+            }
+        }
+    }
+}
+
+void loadRGBSByteDataToRGBA(int width, int height, int depth,
+                            const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                            void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    const char *source = NULL;
+    char *dest = NULL;
+
+    for (int z = 0; z &lt; depth; z++)
+    {
+        for (int y = 0; y &lt; height; y++)
+        {
+            source = offsetDataPointer&lt;char&gt;(input, y, z, inputRowPitch, inputDepthPitch);
+            dest = offsetDataPointer&lt;char&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+            for (int x = 0; x &lt; width; x++)
+            {
+                dest[4 * x + 0] = source[x * 3 + 0];
+                dest[4 * x + 1] = source[x * 3 + 1];
+                dest[4 * x + 2] = source[x * 3 + 2];
+                dest[4 * x + 3] = 0x7F;
+            }
+        }
+    }
+}
+
+void loadRGB565DataToBGRA(int width, int height, int depth,
+                          const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                          void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    const unsigned short *source = NULL;
+    unsigned char *dest = NULL;
+
+    for (int z = 0; z &lt; depth; z++)
+    {
+        for (int y = 0; y &lt; height; y++)
+        {
+            source = offsetDataPointer&lt;unsigned short&gt;(input, y, z, inputRowPitch, inputDepthPitch);
+            dest = offsetDataPointer&lt;unsigned char&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+            for (int x = 0; x &lt; width; x++)
+            {
+                unsigned short rgba = source[x];
+                dest[4 * x + 0] = ((rgba &amp; 0x001F) &lt;&lt; 3) | ((rgba &amp; 0x001F) &gt;&gt; 2);
+                dest[4 * x + 1] = ((rgba &amp; 0x07E0) &gt;&gt; 3) | ((rgba &amp; 0x07E0) &gt;&gt; 9);
+                dest[4 * x + 2] = ((rgba &amp; 0xF800) &gt;&gt; 8) | ((rgba &amp; 0xF800) &gt;&gt; 13);
+                dest[4 * x + 3] = 0xFF;
+            }
+        }
+    }
+}
+
+void loadRGB565DataToRGBA(int width, int height, int depth,
+                          const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                          void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    const unsigned short *source = NULL;
+    unsigned char *dest = NULL;
+
+    for (int z = 0; z &lt; depth; z++)
+    {
+        for (int y = 0; y &lt; height; y++)
+        {
+            source = offsetDataPointer&lt;unsigned short&gt;(input, y, z, inputRowPitch, inputDepthPitch);
+            dest = offsetDataPointer&lt;unsigned char&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+            for (int x = 0; x &lt; width; x++)
+            {
+                unsigned short rgba = source[x];
+                dest[4 * x + 0] = ((rgba &amp; 0xF800) &gt;&gt; 8) | ((rgba &amp; 0xF800) &gt;&gt; 13);
+                dest[4 * x + 1] = ((rgba &amp; 0x07E0) &gt;&gt; 3) | ((rgba &amp; 0x07E0) &gt;&gt; 9);
+                dest[4 * x + 2] = ((rgba &amp; 0x001F) &lt;&lt; 3) | ((rgba &amp; 0x001F) &gt;&gt; 2);
+                dest[4 * x + 3] = 0xFF;
+            }
+        }
+    }
+}
+
+void loadRGBFloatDataToRGBA(int width, int height, int depth,
+                            const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                            void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    const float *source = NULL;
+    float *dest = NULL;
+
+    for (int z = 0; z &lt; depth; z++)
+    {
+        for (int y = 0; y &lt; height; y++)
+        {
+            source = offsetDataPointer&lt;float&gt;(input, y, z, inputRowPitch, inputDepthPitch);
+            dest = offsetDataPointer&lt;float&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+            for (int x = 0; x &lt; width; x++)
+            {
+                dest[4 * x + 0] = source[x * 3 + 0];
+                dest[4 * x + 1] = source[x * 3 + 1];
+                dest[4 * x + 2] = source[x * 3 + 2];
+                dest[4 * x + 3] = 1.0f;
+            }
+        }
+    }
+}
+
+void loadRGBFloatDataToNative(int width, int height, int depth,
+                              const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                              void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    const float *source = NULL;
+    float *dest = NULL;
+
+    for (int z = 0; z &lt; depth; z++)
+    {
+        for (int y = 0; y &lt; height; y++)
+        {
+            source = offsetDataPointer&lt;float&gt;(input, y, z, inputRowPitch, inputDepthPitch);
+            dest = offsetDataPointer&lt;float&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+            memcpy(dest, source, width * 12);
+        }
+    }
+}
+
+void loadRGBHalfFloatDataToRGBA(int width, int height, int depth,
+                                const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                                void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    const unsigned short *source = NULL;
+    unsigned short *dest = NULL;
+
+    for (int z = 0; z &lt; depth; z++)
+    {
+        for (int y = 0; y &lt; height; y++)
+        {
+            source = offsetDataPointer&lt;unsigned short&gt;(input, y, z, inputRowPitch, inputDepthPitch);
+            dest = offsetDataPointer&lt;unsigned short&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+            for (int x = 0; x &lt; width; x++)
+            {
+                dest[4 * x + 0] = source[x * 3 + 0];
+                dest[4 * x + 1] = source[x * 3 + 1];
+                dest[4 * x + 2] = source[x * 3 + 2];
+                dest[4 * x + 3] = 0x3C00; // SEEEEEMMMMMMMMMM, S = 0, E = 15, M = 0: 16bit flpt representation of 1
+            }
+        }
+    }
+}
+
+void loadRGBAUByteDataToBGRA(int width, int height, int depth,
+                             const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                             void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    const unsigned int *source = NULL;
+    unsigned int *dest = NULL;
+
+    for (int z = 0; z &lt; depth; z++)
+    {
+        for (int y = 0; y &lt; height; y++)
+        {
+            source = offsetDataPointer&lt;unsigned int&gt;(input, y, z, inputRowPitch, inputDepthPitch);
+            dest = offsetDataPointer&lt;unsigned int&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+
+            for (int x = 0; x &lt; width; x++)
+            {
+                unsigned int rgba = source[x];
+                dest[x] = (_rotl(rgba, 16) &amp; 0x00ff00ff) | (rgba &amp; 0xff00ff00);
+            }
+        }
+    }
+}
+
+void loadRGBAUByteDataToNative(int width, int height, int depth,
+                               const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                               void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    const unsigned int *source = NULL;
+    unsigned int *dest = NULL;
+
+    for (int z = 0; z &lt; depth; z++)
+    {
+        for (int y = 0; y &lt; height; y++)
+        {
+            source = offsetDataPointer&lt;unsigned int&gt;(input, y, z, inputRowPitch, inputDepthPitch);
+            dest = offsetDataPointer&lt;unsigned int&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+
+            memcpy(dest, source, width * 4);
+        }
+    }
+}
+
+void loadRGBA4444DataToBGRA(int width, int height, int depth,
+                            const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                            void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    const unsigned short *source = NULL;
+    unsigned char *dest = NULL;
+
+    for (int z = 0; z &lt; depth; z++)
+    {
+        for (int y = 0; y &lt; height; y++)
+        {
+            source = offsetDataPointer&lt;unsigned short&gt;(input, y, z, inputRowPitch, inputDepthPitch);
+            dest = offsetDataPointer&lt;unsigned char&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+            for (int x = 0; x &lt; width; x++)
+            {
+                unsigned short rgba = source[x];
+                dest[4 * x + 0] = ((rgba &amp; 0x00F0) &lt;&lt; 0) | ((rgba &amp; 0x00F0) &gt;&gt; 4);
+                dest[4 * x + 1] = ((rgba &amp; 0x0F00) &gt;&gt; 4) | ((rgba &amp; 0x0F00) &gt;&gt; 8);
+                dest[4 * x + 2] = ((rgba &amp; 0xF000) &gt;&gt; 8) | ((rgba &amp; 0xF000) &gt;&gt; 12);
+                dest[4 * x + 3] = ((rgba &amp; 0x000F) &lt;&lt; 4) | ((rgba &amp; 0x000F) &gt;&gt; 0);
+            }
+        }
+    }
+}
+
+void loadRGBA4444DataToRGBA(int width, int height, int depth,
+                            const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                            void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    const unsigned short *source = NULL;
+    unsigned char *dest = NULL;
+
+    for (int z = 0; z &lt; depth; z++)
+    {
+        for (int y = 0; y &lt; height; y++)
+        {
+            source = offsetDataPointer&lt;unsigned short&gt;(input, y, z, inputRowPitch, inputDepthPitch);
+            dest = offsetDataPointer&lt;unsigned char&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+            for (int x = 0; x &lt; width; x++)
+            {
+                unsigned short rgba = source[x];
+                dest[4 * x + 0] = ((rgba &amp; 0xF000) &gt;&gt; 8) | ((rgba &amp; 0xF000) &gt;&gt; 12);
+                dest[4 * x + 1] = ((rgba &amp; 0x0F00) &gt;&gt; 4) | ((rgba &amp; 0x0F00) &gt;&gt; 8);
+                dest[4 * x + 2] = ((rgba &amp; 0x00F0) &lt;&lt; 0) | ((rgba &amp; 0x00F0) &gt;&gt; 4);
+                dest[4 * x + 3] = ((rgba &amp; 0x000F) &lt;&lt; 4) | ((rgba &amp; 0x000F) &gt;&gt; 0);
+            }
+        }
+    }
+}
+
+void loadRGBA5551DataToBGRA(int width, int height, int depth,
+                            const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                            void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    const unsigned short *source = NULL;
+    unsigned char *dest = NULL;
+
+    for (int z = 0; z &lt; depth; z++)
+    {
+        for (int y = 0; y &lt; height; y++)
+        {
+            source = offsetDataPointer&lt;unsigned short&gt;(input, y, z, inputRowPitch, inputDepthPitch);
+            dest = offsetDataPointer&lt;unsigned char&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+            for (int x = 0; x &lt; width; x++)
+            {
+                unsigned short rgba = source[x];
+                dest[4 * x + 0] = ((rgba &amp; 0x003E) &lt;&lt; 2) | ((rgba &amp; 0x003E) &gt;&gt; 3);
+                dest[4 * x + 1] = ((rgba &amp; 0x07C0) &gt;&gt; 3) | ((rgba &amp; 0x07C0) &gt;&gt; 8);
+                dest[4 * x + 2] = ((rgba &amp; 0xF800) &gt;&gt; 8) | ((rgba &amp; 0xF800) &gt;&gt; 13);
+                dest[4 * x + 3] = (rgba &amp; 0x0001) ? 0xFF : 0;
+            }
+        }
+    }
+}
+void loadRGBA5551DataToRGBA(int width, int height, int depth,
+                            const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                            void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    const unsigned short *source = NULL;
+    unsigned char *dest = NULL;
+
+    for (int z = 0; z &lt; depth; z++)
+    {
+        for (int y = 0; y &lt; height; y++)
+        {
+            source = offsetDataPointer&lt;unsigned short&gt;(input, y, z, inputRowPitch, inputDepthPitch);
+            dest = offsetDataPointer&lt;unsigned char&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+            for (int x = 0; x &lt; width; x++)
+            {
+                unsigned short rgba = source[x];
+                dest[4 * x + 0] = ((rgba &amp; 0xF800) &gt;&gt; 8) | ((rgba &amp; 0xF800) &gt;&gt; 13);
+                dest[4 * x + 1] = ((rgba &amp; 0x07C0) &gt;&gt; 3) | ((rgba &amp; 0x07C0) &gt;&gt; 8);
+                dest[4 * x + 2] = ((rgba &amp; 0x003E) &lt;&lt; 2) | ((rgba &amp; 0x003E) &gt;&gt; 3);
+                dest[4 * x + 3] = (rgba &amp; 0x0001) ? 0xFF : 0;
+            }
+        }
+    }
+}
+
+void loadRGBAFloatDataToRGBA(int width, int height, int depth,
+                             const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                             void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    const float *source = NULL;
+    float *dest = NULL;
+
+    for (int z = 0; z &lt; depth; z++)
+    {
+        for (int y = 0; y &lt; height; y++)
+        {
+            source = offsetDataPointer&lt;float&gt;(input, y, z, inputRowPitch, inputDepthPitch);
+            dest = offsetDataPointer&lt;float&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+            memcpy(dest, source, width * 16);
+        }
+    }
+}
+
+void loadRGBAHalfFloatDataToRGBA(int width, int height, int depth,
+                                 const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                                 void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    const unsigned char *source = NULL;
+    unsigned char *dest = NULL;
+
+    for (int z = 0; z &lt; depth; z++)
+    {
+        for (int y = 0; y &lt; height; y++)
+        {
+            source = offsetDataPointer&lt;unsigned char&gt;(input, y, z, inputRowPitch, inputDepthPitch);
+            dest = offsetDataPointer&lt;unsigned char&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+            memcpy(dest, source, width * 8);
+        }
+    }
+}
+
+void loadBGRADataToBGRA(int width, int height, int depth,
+                        const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                        void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    const unsigned char *source = NULL;
+    unsigned char *dest = NULL;
+
+    for (int z = 0; z &lt; depth; z++)
+    {
+        for (int y = 0; y &lt; height; y++)
+        {
+            source = offsetDataPointer&lt;unsigned char&gt;(input, y, z, inputRowPitch, inputDepthPitch);
+            dest = offsetDataPointer&lt;unsigned char&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+            memcpy(dest, source, width*4);
+        }
+    }
+}
+
+void loadRGBA2101010ToNative(int width, int height, int depth,
+                             const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                             void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    const unsigned int *source = NULL;
+    unsigned int *dest = NULL;
+
+    for (int z = 0; z &lt; depth; z++)
+    {
+        for (int y = 0; y &lt; height; y++)
+        {
+            source = offsetDataPointer&lt;unsigned int&gt;(input, y, z, inputRowPitch, inputDepthPitch);
+            dest = offsetDataPointer&lt;unsigned int&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+            memcpy(dest, source, width * sizeof(unsigned int));
+        }
+    }
+}
+
+void loadRGBA2101010ToRGBA(int width, int height, int depth,
+                           const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                           void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    const unsigned int *source = NULL;
+    unsigned char *dest = NULL;
+
+    for (int z = 0; z &lt; depth; z++)
+    {
+        for (int y = 0; y &lt; height; y++)
+        {
+            source = offsetDataPointer&lt;unsigned int&gt;(input, y, z, inputRowPitch, inputDepthPitch);
+            dest = offsetDataPointer&lt;unsigned char&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+
+            for (int x = 0; x &lt; width; x++)
+            {
+                unsigned int rgba = source[x];
+                dest[4 * x + 0] = (rgba &amp; 0x000003FF) &gt;&gt;  2;
+                dest[4 * x + 1] = (rgba &amp; 0x000FFC00) &gt;&gt; 12;
+                dest[4 * x + 2] = (rgba &amp; 0x3FF00000) &gt;&gt; 22;
+                dest[4 * x + 3] = ((rgba &amp; 0xC0000000) &gt;&gt; 30) * 0x55;
+            }
+        }
+    }
+}
+
+void loadRGBHalfFloatDataTo999E5(int width, int height, int depth,
+                                 const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                                 void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    const unsigned short *source = NULL;
+    unsigned int *dest = NULL;
+
+    for (int z = 0; z &lt; depth; z++)
+    {
+        for (int y = 0; y &lt; height; y++)
+        {
+            source = offsetDataPointer&lt;unsigned short&gt;(input, y, z, inputRowPitch, inputDepthPitch);
+            dest = offsetDataPointer&lt;unsigned int&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+
+            for (int x = 0; x &lt; width; x++)
+            {
+                dest[x] = gl::convertRGBFloatsTo999E5(gl::float16ToFloat32(source[x * 3 + 0]),
+                                                      gl::float16ToFloat32(source[x * 3 + 1]),
+                                                      gl::float16ToFloat32(source[x * 3 + 2]));
+            }
+        }
+    }
+}
+
+void loadRGBFloatDataTo999E5(int width, int height, int depth,
+                             const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                             void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    const float *source = NULL;
+    unsigned int *dest = NULL;
+
+    for (int z = 0; z &lt; depth; z++)
+    {
+        for (int y = 0; y &lt; height; y++)
+        {
+            source = offsetDataPointer&lt;float&gt;(input, y, z, inputRowPitch, inputDepthPitch);
+            dest = offsetDataPointer&lt;unsigned int&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+
+            for (int x = 0; x &lt; width; x++)
+            {
+                dest[x] = gl::convertRGBFloatsTo999E5(source[x * 3 + 0], source[x * 3 + 1], source[x * 3 + 2]);
+            }
+        }
+    }
+}
+
+void loadRGBHalfFloatDataTo111110Float(int width, int height, int depth,
+                                       const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                                       void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    const unsigned short *source = NULL;
+    unsigned int *dest = NULL;
+
+    for (int z = 0; z &lt; depth; z++)
+    {
+        for (int y = 0; y &lt; height; y++)
+        {
+            source = offsetDataPointer&lt;unsigned short&gt;(input, y, z, inputRowPitch, inputDepthPitch);
+            dest = offsetDataPointer&lt;unsigned int&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+
+            for (int x = 0; x &lt; width; x++)
+            {
+                dest[x] = (gl::float32ToFloat11(gl::float16ToFloat32(source[x * 3 + 0])) &lt;&lt;  0) |
+                          (gl::float32ToFloat11(gl::float16ToFloat32(source[x * 3 + 1])) &lt;&lt; 11) |
+                          (gl::float32ToFloat10(gl::float16ToFloat32(source[x * 3 + 2])) &lt;&lt; 22);
+            }
+        }
+    }
+}
+
+void loadRGBFloatDataTo111110Float(int width, int height, int depth,
+                                   const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                                   void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    const float *source = NULL;
+    unsigned int *dest = NULL;
+
+    for (int z = 0; z &lt; depth; z++)
+    {
+        for (int y = 0; y &lt; height; y++)
+        {
+            source = offsetDataPointer&lt;float&gt;(input, y, z, inputRowPitch, inputDepthPitch);
+            dest = offsetDataPointer&lt;unsigned int&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+
+            for (int x = 0; x &lt; width; x++)
+            {
+                dest[x] = (gl::float32ToFloat11(source[x * 3 + 0]) &lt;&lt;  0) |
+                          (gl::float32ToFloat11(source[x * 3 + 1]) &lt;&lt; 11) |
+                          (gl::float32ToFloat10(source[x * 3 + 2]) &lt;&lt; 22);
+            }
+        }
+    }
+}
+
+
+void loadG8R24DataToR24G8(int width, int height, int depth,
+                          const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                          void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    const unsigned int *source = NULL;
+    unsigned int *dest = NULL;
+
+    for (int z = 0; z &lt; depth; z++)
+    {
+        for (int y = 0; y &lt; height; y++)
+        {
+            source = offsetDataPointer&lt;const unsigned int&gt;(input, y, z, inputRowPitch, inputDepthPitch);
+            dest = offsetDataPointer&lt;unsigned int&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+
+            for (int x = 0; x &lt; width; x++)
+            {
+                unsigned int d = source[x] &gt;&gt; 8;
+                unsigned int s = source[x] &amp; 0xFF;
+                dest[x] = d | (s &lt;&lt; 24);
+            }
+        }
+    }
+}
+
+void loadFloatRGBDataToHalfFloatRGBA(int width, int height, int depth,
+                                     const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                                     void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    const float *source = NULL;
+    unsigned short *dest = NULL;
+
+    for (int z = 0; z &lt; depth; z++)
+    {
+        for (int y = 0; y &lt; height; y++)
+        {
+            source = offsetDataPointer&lt;float&gt;(input, y, z, inputRowPitch, inputDepthPitch);
+            dest = offsetDataPointer&lt;unsigned short&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+
+            for (int x = 0; x &lt; width; x++)
+            {
+                dest[x * 4 + 0] = gl::float32ToFloat16(source[x * 3 + 0]);
+                dest[x * 4 + 1] = gl::float32ToFloat16(source[x * 3 + 1]);
+                dest[x * 4 + 2] = gl::float32ToFloat16(source[x * 3 + 2]);
+                dest[x * 4 + 3] = gl::Float16One;
+            }
+        }
+    }
+}
+
+void loadUintDataToUshort(int width, int height, int depth,
+                          const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                          void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    const unsigned int *source = NULL;
+    unsigned short *dest = NULL;
+
+    for (int z = 0; z &lt; depth; z++)
+    {
+        for (int y = 0; y &lt; height; y++)
+        {
+            source = offsetDataPointer&lt;unsigned int&gt;(input, y, z, inputRowPitch, inputDepthPitch);
+            dest = offsetDataPointer&lt;unsigned short&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+
+            for (int x = 0; x &lt; width; x++)
+            {
+                dest[x] = source[x] &gt;&gt; 16;
+            }
+        }
+    }
+}
+
+}
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererloadimageh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/loadimage.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/loadimage.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/loadimage.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,343 @@
</span><ins>+//
+// Copyright (c) 2013 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+
+// loadimage.h: Defines image loading functions
+
+#ifndef LIBGLESV2_RENDERER_LOADIMAGE_H_
+#define LIBGLESV2_RENDERER_LOADIMAGE_H_
+
+#include &quot;common/mathutil.h&quot;
+
+namespace rx
+{
+
+template &lt;typename T&gt;
+inline static T *offsetDataPointer(void *data, int y, int z, int rowPitch, int depthPitch)
+{
+    return reinterpret_cast&lt;T*&gt;(reinterpret_cast&lt;unsigned char*&gt;(data) + (y * rowPitch) + (z * depthPitch));
+}
+
+template &lt;typename T&gt;
+inline static const T *offsetDataPointer(const void *data, int y, int z, int rowPitch, int depthPitch)
+{
+    return reinterpret_cast&lt;const T*&gt;(reinterpret_cast&lt;const unsigned char*&gt;(data) + (y * rowPitch) + (z * depthPitch));
+}
+
+void loadAlphaDataToBGRA(int width, int height, int depth,
+                         const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                         void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch);
+
+void loadAlphaDataToNative(int width, int height, int depth,
+                           const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                           void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch);
+
+void loadAlphaDataToBGRASSE2(int width, int height, int depth,
+                             const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                             void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch);
+
+void loadAlphaFloatDataToRGBA(int width, int height, int depth,
+                              const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                              void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch);
+
+void loadAlphaHalfFloatDataToRGBA(int width, int height, int depth,
+                                  const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                                  void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch);
+
+void loadLuminanceDataToNative(int width, int height, int depth,
+                               const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                               void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch);
+
+void loadLuminanceDataToBGRA(int width, int height, int depth,
+                             const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                             void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch);
+
+void loadLuminanceFloatDataToRGBA(int width, int height, int depth,
+                                  const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                                  void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch);
+
+void loadLuminanceFloatDataToRGB(int width, int height, int depth,
+                                 const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                                 void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch);
+
+void loadLuminanceHalfFloatDataToRGBA(int width, int height, int depth,
+                                      const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                                      void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch);
+
+void loadLuminanceAlphaDataToNative(int width, int height, int depth,
+                                    const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                                    void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch);
+
+void loadLuminanceAlphaDataToBGRA(int width, int height, int depth,
+                                  const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                                  void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch);
+
+void loadLuminanceAlphaFloatDataToRGBA(int width, int height, int depth,
+                                       const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                                       void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch);
+
+void loadLuminanceAlphaHalfFloatDataToRGBA(int width, int height, int depth,
+                                           const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                                           void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch);
+
+void loadRGBUByteDataToBGRX(int width, int height, int depth,
+                            const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                            void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch);
+
+void loadRGUByteDataToBGRX(int width, int height, int depth,
+                           const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                           void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch);
+
+void loadRUByteDataToBGRX(int width, int height, int depth,
+                          const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                          void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch);
+
+void loadRGBUByteDataToRGBA(int width, int height, int depth,
+                            const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                            void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch);
+
+void loadRGBSByteDataToRGBA(int width, int height, int depth,
+                            const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                            void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch);
+
+void loadRGB565DataToBGRA(int width, int height, int depth,
+                          const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                          void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch);
+
+void loadRGB565DataToRGBA(int width, int height, int depth,
+                          const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                          void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch);
+
+void loadRGBFloatDataToRGBA(int width, int height, int depth,
+                            const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                            void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch);
+
+void loadRGBFloatDataToNative(int width, int height, int depth,
+                              const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                              void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch);
+
+void loadRGBHalfFloatDataToRGBA(int width, int height, int depth,
+                                const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                                void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch);
+
+void loadRGBAUByteDataToBGRASSE2(int width, int height, int depth,
+                                 const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                                 void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch);
+
+void loadRGBAUByteDataToBGRA(int width, int height, int depth,
+                             const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                             void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch);
+
+void loadRGBAUByteDataToNative(int width, int height, int depth,
+                               const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                               void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch);
+
+void loadRGBA4444DataToBGRA(int width, int height, int depth,
+                            const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                            void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch);
+
+void loadRGBA4444DataToRGBA(int width, int height, int depth,
+                            const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                            void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch);
+
+void loadRGBA5551DataToBGRA(int width, int height, int depth,
+                            const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                            void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch);
+
+void loadRGBA5551DataToRGBA(int width, int height, int depth,
+                            const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                            void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch);
+
+void loadRGBAFloatDataToRGBA(int width, int height, int depth,
+                             const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                             void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch);
+
+void loadRGBAHalfFloatDataToRGBA(int width, int height, int depth,
+                                 const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                                 void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch);
+
+void loadBGRADataToBGRA(int width, int height, int depth,
+                        const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                        void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch);
+
+void loadRGBA2101010ToNative(int width, int height, int depth,
+                             const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                             void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch);
+
+void loadRGBA2101010ToRGBA(int width, int height, int depth,
+                           const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                           void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch);
+
+void loadRGBHalfFloatDataTo999E5(int width, int height, int depth,
+                                 const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                                 void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch);
+
+void loadRGBFloatDataTo999E5(int width, int height, int depth,
+                             const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                             void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch);
+
+void loadRGBHalfFloatDataTo111110Float(int width, int height, int depth,
+                                       const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                                       void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch);
+
+void loadRGBFloatDataTo111110Float(int width, int height, int depth,
+                                   const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                                   void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch);
+
+void loadG8R24DataToR24G8(int width, int height, int depth,
+                        const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                        void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch);
+
+template &lt;typename type, unsigned int componentCount&gt;
+void loadToNative(int width, int height, int depth,
+                  const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                  void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    const unsigned int rowSize = width * sizeof(type) * componentCount;
+    const unsigned int layerSize = rowSize * height;
+    const unsigned int imageSize = layerSize * depth;
+
+    if (layerSize == inputDepthPitch &amp;&amp; layerSize == outputDepthPitch)
+    {
+        ASSERT(rowSize == inputRowPitch &amp;&amp; rowSize == outputRowPitch);
+        memcpy(output, input, imageSize);
+    }
+    else if (rowSize == inputRowPitch &amp;&amp; rowSize == outputRowPitch)
+    {
+        for (int z = 0; z &lt; depth; z++)
+        {
+            const type *source = offsetDataPointer&lt;type&gt;(input, 0, z, inputRowPitch, inputDepthPitch);
+            type *dest = offsetDataPointer&lt;type&gt;(output, 0, z, outputRowPitch, outputDepthPitch);
+
+            memcpy(dest, source, layerSize);
+        }
+    }
+    else
+    {
+        for (int z = 0; z &lt; depth; z++)
+        {
+            for (int y = 0; y &lt; height; y++)
+            {
+                const type *source = offsetDataPointer&lt;type&gt;(input, y, z, inputRowPitch, inputDepthPitch);
+                type *dest = offsetDataPointer&lt;type&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+                memcpy(dest, source, width * sizeof(type) * componentCount);
+            }
+        }
+    }
+}
+
+template &lt;typename type, unsigned int fourthComponentBits&gt;
+void loadToNative3To4(int width, int height, int depth,
+                      const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                      void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    const type *source = NULL;
+    type *dest = NULL;
+
+    const unsigned int fourthBits = fourthComponentBits;
+    const type fourthValue = *reinterpret_cast&lt;const type*&gt;(&amp;fourthBits);
+
+    for (int z = 0; z &lt; depth; z++)
+    {
+        for (int y = 0; y &lt; height; y++)
+        {
+            source = offsetDataPointer&lt;type&gt;(input, y, z, inputRowPitch, inputDepthPitch);
+            dest = offsetDataPointer&lt;type&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+
+            for (int x = 0; x &lt; width; x++)
+            {
+                dest[x * 4 + 0] = source[x * 3 + 0];
+                dest[x * 4 + 1] = source[x * 3 + 1];
+                dest[x * 4 + 2] = source[x * 3 + 2];
+                dest[x * 4 + 3] = fourthValue;
+            }
+        }
+    }
+}
+
+template &lt;unsigned int componentCount&gt;
+void loadFloatDataToHalfFloat(int width, int height, int depth,
+                              const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                              void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    const float *source = NULL;
+    unsigned short *dest = NULL;
+
+    const int elementWidth = componentCount * width;
+
+    for (int z = 0; z &lt; depth; z++)
+    {
+        for (int y = 0; y &lt; height; y++)
+        {
+            source = offsetDataPointer&lt;float&gt;(input, y, z, inputRowPitch, inputDepthPitch);
+            dest = offsetDataPointer&lt;unsigned short&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+
+            for (int x = 0; x &lt; elementWidth; x++)
+            {
+                dest[x] = gl::float32ToFloat16(source[x]);
+            }
+        }
+    }
+}
+
+void loadFloatRGBDataToHalfFloatRGBA(int width, int height, int depth,
+                                     const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                                     void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch);
+
+template &lt;unsigned int blockWidth, unsigned int blockHeight, unsigned int blockSize&gt;
+void loadCompressedBlockDataToNative(int width, int height, int depth,
+                                     const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                                     void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    int columns = (width + (blockWidth - 1)) / blockWidth;
+    int rows = (height + (blockHeight - 1)) / blockHeight;
+
+    for (int z = 0; z &lt; depth; ++z)
+    {
+        for (int y = 0; y &lt; rows; ++y)
+        {
+            void *source = (void*)((char*)input + y * inputRowPitch + z * inputDepthPitch);
+            void *dest = (void*)((char*)output + y * outputRowPitch + z * outputDepthPitch);
+
+            memcpy(dest, source, columns * blockSize);
+        }
+    }
+}
+
+void loadUintDataToUshort(int width, int height, int depth,
+                          const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+                          void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch);
+
+template &lt;typename type, unsigned int firstBits, unsigned int secondBits, unsigned int thirdBits, unsigned int fourthBits&gt;
+void initialize4ComponentData(int width, int height, int depth,
+                              void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+{
+    unsigned int writeBits[4] = { firstBits, secondBits, thirdBits, fourthBits };
+    type writeValues[4] = { *reinterpret_cast&lt;const type*&gt;(&amp;writeBits[0]),
+                            *reinterpret_cast&lt;const type*&gt;(&amp;writeBits[1]),
+                            *reinterpret_cast&lt;const type*&gt;(&amp;writeBits[2]),
+                            *reinterpret_cast&lt;const type*&gt;(&amp;writeBits[3]) };
+
+    for (int z = 0; z &lt; depth; z++)
+    {
+        for (int y = 0; y &lt; height; y++)
+        {
+            type* destRow = offsetDataPointer&lt;type&gt;(output, y, z, outputRowPitch, outputDepthPitch);
+
+            for (int x = 0; x &lt; width; x++)
+            {
+                type* destPixel = destRow + x * 4;
+
+                // This could potentially be optimized by generating an entire row of initialization
+                // data and copying row by row instead of pixel by pixel.
+                memcpy(destPixel, writeValues, sizeof(type) * 4);
+            }
+        }
+    }
+}
+
+}
+
+#endif // LIBGLESV2_RENDERER_LOADIMAGE_H_
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2rendererloadimageSSE2cpp"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/loadimageSSE2.cpp (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/loadimageSSE2.cpp                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/loadimageSSE2.cpp        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,107 @@
</span><ins>+#include &quot;precompiled.h&quot;
+//
+// Copyright (c) 2002-2012 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+
+// loadimage.cpp: Defines image loading functions. It's
+// in a separated file for GCC, which can enable SSE usage only per-file,
+// not for code blocks that use SSE2 explicitly.
+
+#include &quot;libGLESv2/renderer/loadimage.h&quot;
+
+namespace rx
+{
+
+    void loadAlphaDataToBGRASSE2(int width, int height, int depth,
+        const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+        void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+    {
+        const unsigned char *source = NULL;
+        unsigned int *dest = NULL;
+        __m128i zeroWide = _mm_setzero_si128();
+
+        for (int z = 0; z &lt; depth; z++)
+        {
+            for (int y = 0; y &lt; height; y++)
+            {
+                source = static_cast&lt;const unsigned char*&gt;(input) + y * inputRowPitch + z * inputDepthPitch;
+                dest = reinterpret_cast&lt;unsigned int*&gt;(static_cast&lt;unsigned char*&gt;(output) + y * outputRowPitch + z * outputDepthPitch);
+
+                int x;
+                // Make output writes aligned
+                for (x = 0; ((reinterpret_cast&lt;intptr_t&gt;(&amp;dest[x]) &amp; 0xF) != 0 &amp;&amp; x &lt; width); x++)
+                {
+                    dest[x] = static_cast&lt;unsigned int&gt;(source[x]) &lt;&lt; 24;
+                }
+
+                for (; x + 7 &lt; width; x += 8)
+                {
+                    __m128i sourceData = _mm_loadl_epi64(reinterpret_cast&lt;const __m128i*&gt;(&amp;source[x]));
+                    // Interleave each byte to 16bit, make the lower byte to zero
+                    sourceData = _mm_unpacklo_epi8(zeroWide, sourceData);
+                    // Interleave each 16bit to 32bit, make the lower 16bit to zero
+                    __m128i lo = _mm_unpacklo_epi16(zeroWide, sourceData);
+                    __m128i hi = _mm_unpackhi_epi16(zeroWide, sourceData);
+
+                    _mm_store_si128(reinterpret_cast&lt;__m128i*&gt;(&amp;dest[x]), lo);
+                    _mm_store_si128(reinterpret_cast&lt;__m128i*&gt;(&amp;dest[x + 4]), hi);
+                }
+
+                // Handle the remainder
+                for (; x &lt; width; x++)
+                {
+                    dest[x] = static_cast&lt;unsigned int&gt;(source[x]) &lt;&lt; 24;
+                }
+            }
+        }
+    }
+
+    void loadRGBAUByteDataToBGRASSE2(int width, int height, int depth,
+        const void *input, unsigned int inputRowPitch, unsigned int inputDepthPitch,
+        void *output, unsigned int outputRowPitch, unsigned int outputDepthPitch)
+    {
+        const unsigned int *source = NULL;
+        unsigned int *dest = NULL;
+        __m128i brMask = _mm_set1_epi32(0x00ff00ff);
+
+        for (int z = 0; z &lt; depth; z++)
+        {
+            for (int y = 0; y &lt; height; y++)
+            {
+                source = reinterpret_cast&lt;const unsigned int*&gt;(static_cast&lt;const unsigned char*&gt;(input) + y * inputRowPitch + z * inputDepthPitch);
+                dest = reinterpret_cast&lt;unsigned int*&gt;(static_cast&lt;unsigned char*&gt;(output) + y * outputRowPitch + z * outputDepthPitch);
+                int x = 0;
+
+                // Make output writes aligned
+                for (x = 0; ((reinterpret_cast&lt;intptr_t&gt;(&amp;dest[x]) &amp; 15) != 0) &amp;&amp; x &lt; width; x++)
+                {
+                    unsigned int rgba = source[x];
+                    dest[x] = (_rotl(rgba, 16) &amp; 0x00ff00ff) | (rgba &amp; 0xff00ff00);
+                }
+
+                for (; x + 3 &lt; width; x += 4)
+                {
+                    __m128i sourceData = _mm_loadu_si128(reinterpret_cast&lt;const __m128i*&gt;(&amp;source[x]));
+                    // Mask out g and a, which don't change
+                    __m128i gaComponents = _mm_andnot_si128(brMask, sourceData);
+                    // Mask out b and r
+                    __m128i brComponents = _mm_and_si128(sourceData, brMask);
+                    // Swap b and r
+                    __m128i brSwapped = _mm_shufflehi_epi16(_mm_shufflelo_epi16(brComponents, _MM_SHUFFLE(2, 3, 0, 1)), _MM_SHUFFLE(2, 3, 0, 1));
+                    __m128i result = _mm_or_si128(gaComponents, brSwapped);
+                    _mm_store_si128(reinterpret_cast&lt;__m128i*&gt;(&amp;dest[x]), result);
+                }
+
+                // Perform leftover writes
+                for (; x &lt; width; x++)
+                {
+                    unsigned int rgba = source[x];
+                    dest[x] = (_rotl(rgba, 16) &amp; 0x00ff00ff) | (rgba &amp; 0xff00ff00);
+                }
+            }
+        }
+    }
+
+}
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2renderervertexconversionh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/vertexconversion.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/vertexconversion.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/renderer/vertexconversion.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,203 @@
</span><ins>+//
+// Copyright (c) 2002-2010 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+
+// vertexconversion.h: A library of vertex conversion classes that can be used to build
+// the FormatConverter objects used by the buffer conversion system.
+
+#ifndef LIBGLESV2_VERTEXCONVERSION_H_
+#define LIBGLESV2_VERTEXCONVERSION_H_
+
+namespace rx
+{
+
+// Conversion types:
+// static const bool identity: true if this is an identity transform, false otherwise
+// static U convert(T): convert a single element from the input type to the output type
+// typedef ... OutputType: the type produced by this conversion
+
+template &lt;class T&gt;
+struct Identity
+{
+    static const bool identity = true;
+
+    typedef T OutputType;
+
+    static T convert(T x)
+    {
+        return x;
+    }
+};
+
+template &lt;class FromT, class ToT&gt;
+struct Cast
+{
+    static const bool identity = false;
+
+    typedef ToT OutputType;
+
+    static ToT convert(FromT x)
+    {
+        return static_cast&lt;ToT&gt;(x);
+    }
+};
+
+template &lt;class T&gt;
+struct Cast&lt;T, T&gt;
+{
+    static const bool identity = true;
+
+    typedef T OutputType;
+
+    static T convert(T x)
+    {
+        return static_cast&lt;T&gt;(x);
+    }
+};
+
+template &lt;class T&gt;
+struct Normalize
+{
+    static const bool identity = false;
+
+    typedef float OutputType;
+
+    static float convert(T x)
+    {
+        typedef std::numeric_limits&lt;T&gt; NL;
+        float f = static_cast&lt;float&gt;(x);
+
+        if (NL::is_signed)
+        {
+            // const float =&gt; VC2008 computes it at compile time
+            // static const float =&gt; VC2008 computes it the first time we get here, stores it to memory with static guard and all that.
+            const float divisor = 1.0f/(2*static_cast&lt;float&gt;(NL::max())+1);
+            return (2*f+1)*divisor;
+        }
+        else
+        {
+            return f/NL::max();
+        }
+    }
+};
+
+template &lt;class FromType, std::size_t ScaleBits&gt;
+struct FixedToFloat
+{
+    static const bool identity = false;
+
+    typedef float OutputType;
+
+    static float convert(FromType x)
+    {
+        const float divisor = 1.0f / static_cast&lt;float&gt;(static_cast&lt;FromType&gt;(1) &lt;&lt; ScaleBits);
+        return static_cast&lt;float&gt;(x) * divisor;
+    }
+};
+
+// Widen types:
+// static const unsigned int initialWidth: number of components before conversion
+// static const unsigned int finalWidth: number of components after conversion
+
+// Float is supported at any size.
+template &lt;std::size_t N&gt;
+struct NoWiden
+{
+    static const std::size_t initialWidth = N;
+    static const std::size_t finalWidth = N;
+};
+
+// SHORT, norm-SHORT, norm-UNSIGNED_SHORT are supported but only with 2 or 4 components
+template &lt;std::size_t N&gt;
+struct WidenToEven
+{
+    static const std::size_t initialWidth = N;
+    static const std::size_t finalWidth = N+(N&amp;1);
+};
+
+template &lt;std::size_t N&gt;
+struct WidenToFour
+{
+    static const std::size_t initialWidth = N;
+    static const std::size_t finalWidth = 4;
+};
+
+// Most types have 0 and 1 that are just that.
+template &lt;class T&gt;
+struct SimpleDefaultValues
+{
+    static T zero() { return static_cast&lt;T&gt;(0); }
+    static T one() { return static_cast&lt;T&gt;(1); }
+};
+
+// But normalised types only store [0,1] or [-1,1] so 1.0 is represented by the max value.
+template &lt;class T&gt;
+struct NormalizedDefaultValues
+{
+    static T zero() { return static_cast&lt;T&gt;(0); }
+    static T one() { return std::numeric_limits&lt;T&gt;::max(); }
+};
+
+// Converter:
+// static const bool identity: true if this is an identity transform (with no widening)
+// static const std::size_t finalSize: number of bytes per output vertex
+// static void convertArray(const void *in, std::size_t stride, std::size_t n, void *out): convert an array of vertices. Input may be strided, but output will be unstrided.
+
+template &lt;class InT, class WidenRule, class Converter, class DefaultValueRule = SimpleDefaultValues&lt;InT&gt; &gt;
+struct VertexDataConverter
+{
+    typedef typename Converter::OutputType OutputType;
+    typedef InT InputType;
+
+    static const bool identity = (WidenRule::initialWidth == WidenRule::finalWidth) &amp;&amp; Converter::identity;
+    static const std::size_t finalSize = WidenRule::finalWidth * sizeof(OutputType);
+
+    static void convertArray(const InputType *in, std::size_t stride, std::size_t n, OutputType *out)
+    {
+        for (std::size_t i = 0; i &lt; n; i++)
+        {
+            const InputType *ein = pointerAddBytes(in, i * stride);
+
+            copyComponent(out, ein, 0, static_cast&lt;OutputType&gt;(DefaultValueRule::zero()));
+            copyComponent(out, ein, 1, static_cast&lt;OutputType&gt;(DefaultValueRule::zero()));
+            copyComponent(out, ein, 2, static_cast&lt;OutputType&gt;(DefaultValueRule::zero()));
+            copyComponent(out, ein, 3, static_cast&lt;OutputType&gt;(DefaultValueRule::one()));
+
+            out += WidenRule::finalWidth;
+        }
+    }
+
+    static void convertArray(const void *in, std::size_t stride, std::size_t n, void *out)
+    {
+        return convertArray(static_cast&lt;const InputType*&gt;(in), stride, n, static_cast&lt;OutputType*&gt;(out));
+    }
+
+  private:
+    // Advance the given pointer by a number of bytes (not pointed-to elements).
+    template &lt;class T&gt;
+    static T *pointerAddBytes(T *basePtr, std::size_t numBytes)
+    {
+        return reinterpret_cast&lt;T *&gt;(reinterpret_cast&lt;uintptr_t&gt;(basePtr) + numBytes);
+    }
+
+    static void copyComponent(OutputType *out, const InputType *in, std::size_t elementindex, OutputType defaultvalue)
+    {
+        if (WidenRule::finalWidth &gt; elementindex)
+        {
+            if (WidenRule::initialWidth &gt; elementindex)
+            {
+                out[elementindex] = Converter::convert(in[elementindex]);
+            }
+            else
+            {
+                out[elementindex] = defaultvalue;
+            }
+        }
+    }
+};
+
+}
+
+#endif   // LIBGLESV2_VERTEXCONVERSION_H_
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2utilitiescpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/utilities.cpp (168114 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/utilities.cpp        2014-05-01 19:23:29 UTC (rev 168114)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/utilities.cpp        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -1,769 +0,0 @@
</span><del>-#include &quot;precompiled.h&quot;
-//
-// Copyright (c) 2002-2013 The ANGLE Project Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-
-// utilities.cpp: Conversion functions and other utility routines.
-
-#include &quot;libGLESv2/utilities.h&quot;
-#include &quot;libGLESv2/mathutil.h&quot;
-
-namespace gl
-{
-
-int UniformComponentCount(GLenum type)
-{
-    switch (type)
-    {
-      case GL_BOOL:
-      case GL_FLOAT:
-      case GL_INT:
-      case GL_SAMPLER_2D:
-      case GL_SAMPLER_CUBE:
-          return 1;
-      case GL_BOOL_VEC2:
-      case GL_FLOAT_VEC2:
-      case GL_INT_VEC2:
-          return 2;
-      case GL_INT_VEC3:
-      case GL_FLOAT_VEC3:
-      case GL_BOOL_VEC3:
-          return 3;
-      case GL_BOOL_VEC4:
-      case GL_FLOAT_VEC4:
-      case GL_INT_VEC4:
-      case GL_FLOAT_MAT2:
-          return 4;
-      case GL_FLOAT_MAT3:
-          return 9;
-      case GL_FLOAT_MAT4:
-          return 16;
-      default:
-          UNREACHABLE();
-    }
-
-    return 0;
-}
-
-GLenum UniformComponentType(GLenum type)
-{
-    switch(type)
-    {
-      case GL_BOOL:
-      case GL_BOOL_VEC2:
-      case GL_BOOL_VEC3:
-      case GL_BOOL_VEC4:
-          return GL_BOOL;
-      case GL_FLOAT:
-      case GL_FLOAT_VEC2:
-      case GL_FLOAT_VEC3:
-      case GL_FLOAT_VEC4:
-      case GL_FLOAT_MAT2:
-      case GL_FLOAT_MAT3:
-      case GL_FLOAT_MAT4:
-          return GL_FLOAT;
-      case GL_INT:
-      case GL_SAMPLER_2D:
-      case GL_SAMPLER_CUBE:
-      case GL_INT_VEC2:
-      case GL_INT_VEC3:
-      case GL_INT_VEC4:
-          return GL_INT;
-      default:
-          UNREACHABLE();
-    }
-
-    return GL_NONE;
-}
-
-size_t UniformComponentSize(GLenum type)
-{
-    switch(type)
-    {
-      case GL_BOOL:  return sizeof(GLint);
-      case GL_FLOAT: return sizeof(GLfloat);
-      case GL_INT:   return sizeof(GLint);
-      default:       UNREACHABLE();
-    }
-
-    return 0;
-}
-
-size_t UniformInternalSize(GLenum type)
-{
-    // Expanded to 4-element vectors
-    return UniformComponentSize(UniformComponentType(type)) * VariableRowCount(type) * 4;
-}
-
-size_t UniformExternalSize(GLenum type)
-{
-    return UniformComponentSize(UniformComponentType(type)) * UniformComponentCount(type);
-}
-
-int VariableRowCount(GLenum type)
-{
-    switch (type)
-    {
-      case GL_NONE:
-        return 0;
-      case GL_BOOL:
-      case GL_FLOAT:
-      case GL_INT:
-      case GL_BOOL_VEC2:
-      case GL_FLOAT_VEC2:
-      case GL_INT_VEC2:
-      case GL_INT_VEC3:
-      case GL_FLOAT_VEC3:
-      case GL_BOOL_VEC3:
-      case GL_BOOL_VEC4:
-      case GL_FLOAT_VEC4:
-      case GL_INT_VEC4:
-      case GL_SAMPLER_2D:
-      case GL_SAMPLER_CUBE:
-        return 1;
-      case GL_FLOAT_MAT2:
-        return 2;
-      case GL_FLOAT_MAT3:
-        return 3;
-      case GL_FLOAT_MAT4:
-        return 4;
-      default:
-        UNREACHABLE();
-    }
-
-    return 0;
-}
-
-int VariableColumnCount(GLenum type)
-{
-    switch (type)
-    {
-      case GL_NONE:
-        return 0;
-      case GL_BOOL:
-      case GL_FLOAT:
-      case GL_INT:
-      case GL_SAMPLER_2D:
-      case GL_SAMPLER_CUBE:
-        return 1;
-      case GL_BOOL_VEC2:
-      case GL_FLOAT_VEC2:
-      case GL_INT_VEC2:
-      case GL_FLOAT_MAT2:
-        return 2;
-      case GL_INT_VEC3:
-      case GL_FLOAT_VEC3:
-      case GL_BOOL_VEC3:
-      case GL_FLOAT_MAT3:
-        return 3;
-      case GL_BOOL_VEC4:
-      case GL_FLOAT_VEC4:
-      case GL_INT_VEC4:
-      case GL_FLOAT_MAT4:
-        return 4;
-      default:
-        UNREACHABLE();
-    }
-
-    return 0;
-}
-
-int AllocateFirstFreeBits(unsigned int *bits, unsigned int allocationSize, unsigned int bitsSize)
-{
-    ASSERT(allocationSize &lt;= bitsSize);
-
-    unsigned int mask = std::numeric_limits&lt;unsigned int&gt;::max() &gt;&gt; (std::numeric_limits&lt;unsigned int&gt;::digits - allocationSize);
-
-    for (unsigned int i = 0; i &lt; bitsSize - allocationSize + 1; i++)
-    {
-        if ((*bits &amp; mask) == 0)
-        {
-            *bits |= mask;
-            return i;
-        }
-
-        mask &lt;&lt;= 1;
-    }
-
-    return -1;
-}
-
-GLsizei ComputePitch(GLsizei width, GLint internalformat, GLint alignment)
-{
-    ASSERT(alignment &gt; 0 &amp;&amp; isPow2(alignment));
-
-    GLsizei rawPitch = ComputePixelSize(internalformat) * width;
-    return (rawPitch + alignment - 1) &amp; ~(alignment - 1);
-}
-
-GLsizei ComputeCompressedPitch(GLsizei width, GLenum internalformat)
-{
-    return ComputeCompressedSize(width, 1, internalformat);
-}
-
-GLsizei ComputeCompressedSize(GLsizei width, GLsizei height, GLenum internalformat)
-{
-    switch (internalformat)
-    {
-      case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
-      case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
-        return 8 * ((width + 3) / 4) * ((height + 3) / 4);
-      case GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE:
-      case GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE:
-        return 16 * ((width + 3) / 4) * ((height + 3) / 4);
-      default:
-        return 0;
-    }
-}
-
-GLsizei ComputeTypeSize(GLenum type)
-{
-    switch (type)
-    {
-      case GL_BYTE:                            return 1;
-      case GL_UNSIGNED_BYTE:                   return 1;
-      case GL_SHORT:                           return 2;
-      case GL_UNSIGNED_SHORT:                  return 2;
-      case GL_INT:                             return 4;
-      case GL_UNSIGNED_INT:                    return 4;
-      case GL_FLOAT:                           return 4;
-      case GL_HALF_FLOAT_OES:                  return 2;
-      case GL_UNSIGNED_SHORT_5_6_5:            return 2;
-      case GL_UNSIGNED_SHORT_4_4_4_4:          return 2;
-      case GL_UNSIGNED_SHORT_5_5_5_1:          return 2;
-      case GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT:  return 2;
-      case GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT:  return 2;
-      case GL_UNSIGNED_INT_2_10_10_10_REV_EXT: return 4;
-      case GL_UNSIGNED_INT_24_8_OES:           return 4;
-      default: UNREACHABLE();                  return 0;
-    }
-}
-
-bool IsCompressed(GLenum format)
-{
-    if(format == GL_COMPRESSED_RGB_S3TC_DXT1_EXT ||
-       format == GL_COMPRESSED_RGBA_S3TC_DXT1_EXT ||
-       format == GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE ||
-       format == GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE)
-    {
-        return true;
-    }
-    else
-    {
-        return false;
-    }
-}
-
-bool IsDepthTexture(GLenum format)
-{
-    if (format == GL_DEPTH_COMPONENT ||
-        format == GL_DEPTH_STENCIL_OES ||
-        format == GL_DEPTH_COMPONENT16 ||
-        format == GL_DEPTH_COMPONENT32_OES ||
-        format == GL_DEPTH24_STENCIL8_OES)
-    {
-        return true;
-    }
-
-    return false;
-}
-
-bool IsStencilTexture(GLenum format)
-{
-    if (format == GL_DEPTH_STENCIL_OES ||
-        format == GL_DEPTH24_STENCIL8_OES)
-    {
-        return true;
-    }
-
-    return false;
-}
-
-void MakeValidSize(bool isImage, bool isCompressed, GLsizei *requestWidth, GLsizei *requestHeight, int *levelOffset)
-{
-    int upsampleCount = 0;
-
-    if (isCompressed)
-    {
-        // Don't expand the size of full textures that are at least 4x4
-        // already.
-        if (isImage || *requestWidth &lt; 4 || *requestHeight &lt; 4)
-        {
-            while (*requestWidth % 4 != 0 || *requestHeight % 4 != 0)
-            {
-                *requestWidth &lt;&lt;= 1;
-                *requestHeight &lt;&lt;= 1;
-                upsampleCount++;
-            }
-        }
-    }
-    *levelOffset = upsampleCount;
-}
-
-// Returns the size, in bytes, of a single texel in an Image
-int ComputePixelSize(GLint internalformat)
-{
-    switch (internalformat)
-    {
-      case GL_ALPHA8_EXT:                       return sizeof(unsigned char);
-      case GL_LUMINANCE8_EXT:                   return sizeof(unsigned char);
-      case GL_ALPHA32F_EXT:                     return sizeof(float);
-      case GL_LUMINANCE32F_EXT:                 return sizeof(float);
-      case GL_ALPHA16F_EXT:                     return sizeof(unsigned short);
-      case GL_LUMINANCE16F_EXT:                 return sizeof(unsigned short);
-      case GL_LUMINANCE8_ALPHA8_EXT:            return sizeof(unsigned char) * 2;
-      case GL_LUMINANCE_ALPHA32F_EXT:           return sizeof(float) * 2;
-      case GL_LUMINANCE_ALPHA16F_EXT:           return sizeof(unsigned short) * 2;
-      case GL_RGB8_OES:                         return sizeof(unsigned char) * 3;
-      case GL_RGB565:                           return sizeof(unsigned short);
-      case GL_RGB32F_EXT:                       return sizeof(float) * 3;
-      case GL_RGB16F_EXT:                       return sizeof(unsigned short) * 3;
-      case GL_RGBA8_OES:                        return sizeof(unsigned char) * 4;
-      case GL_RGBA4:                            return sizeof(unsigned short);
-      case GL_RGB5_A1:                          return sizeof(unsigned short);
-      case GL_RGBA32F_EXT:                      return sizeof(float) * 4;
-      case GL_RGBA16F_EXT:                      return sizeof(unsigned short) * 4;
-      case GL_BGRA8_EXT:                        return sizeof(unsigned char) * 4;
-      case GL_BGRA4_ANGLEX:                     return sizeof(unsigned short);
-      case GL_BGR5_A1_ANGLEX:                   return sizeof(unsigned short);
-      default: UNREACHABLE();
-    }
-
-    return 0;
-}
-
-bool IsCubemapTextureTarget(GLenum target)
-{
-    return (target &gt;= GL_TEXTURE_CUBE_MAP_POSITIVE_X &amp;&amp; target &lt;= GL_TEXTURE_CUBE_MAP_NEGATIVE_Z);
-}
-
-bool IsInternalTextureTarget(GLenum target)
-{
-    return target == GL_TEXTURE_2D || IsCubemapTextureTarget(target);
-}
-
-GLint ConvertSizedInternalFormat(GLenum format, GLenum type)
-{
-    switch (format)
-    {
-      case GL_ALPHA:
-        switch (type)
-        {
-          case GL_UNSIGNED_BYTE:    return GL_ALPHA8_EXT;
-          case GL_FLOAT:            return GL_ALPHA32F_EXT;
-          case GL_HALF_FLOAT_OES:   return GL_ALPHA16F_EXT;
-          default:                  UNIMPLEMENTED();
-        }
-        break;
-      case GL_LUMINANCE:
-        switch (type)
-        {
-          case GL_UNSIGNED_BYTE:    return GL_LUMINANCE8_EXT;
-          case GL_FLOAT:            return GL_LUMINANCE32F_EXT;
-          case GL_HALF_FLOAT_OES:   return GL_LUMINANCE16F_EXT;
-          default:                  UNIMPLEMENTED();
-        }
-        break;
-      case GL_LUMINANCE_ALPHA:
-        switch (type)
-        {
-          case GL_UNSIGNED_BYTE:    return GL_LUMINANCE8_ALPHA8_EXT;
-          case GL_FLOAT:            return GL_LUMINANCE_ALPHA32F_EXT;
-          case GL_HALF_FLOAT_OES:   return GL_LUMINANCE_ALPHA16F_EXT;
-          default:                  UNIMPLEMENTED();
-        }
-        break;
-      case GL_RGB:
-        switch (type)
-        {
-          case GL_UNSIGNED_BYTE:            return GL_RGB8_OES;
-          case GL_UNSIGNED_SHORT_5_6_5:     return GL_RGB565;
-          case GL_FLOAT:                    return GL_RGB32F_EXT;
-          case GL_HALF_FLOAT_OES:           return GL_RGB16F_EXT;
-          default:                          UNIMPLEMENTED();
-        }
-        break;
-      case GL_RGBA:
-        switch (type)
-        {
-          case GL_UNSIGNED_BYTE:            return GL_RGBA8_OES;
-          case GL_UNSIGNED_SHORT_4_4_4_4:   return GL_RGBA4;
-          case GL_UNSIGNED_SHORT_5_5_5_1:   return GL_RGB5_A1;
-          case GL_FLOAT:                    return GL_RGBA32F_EXT;
-          case GL_HALF_FLOAT_OES:           return GL_RGBA16F_EXT;
-            break;
-          default:                          UNIMPLEMENTED();
-        }
-        break;
-      case GL_BGRA_EXT:
-        switch (type)
-        {
-          case GL_UNSIGNED_BYTE:                    return GL_BGRA8_EXT;
-          case GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT:   return GL_BGRA4_ANGLEX;
-          case GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT:   return GL_BGR5_A1_ANGLEX;
-          default:                                  UNIMPLEMENTED();
-        }
-        break;
-      case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
-      case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
-      case GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE:
-      case GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE:
-        return format;
-      case GL_DEPTH_COMPONENT:
-        switch (type)
-        {
-          case GL_UNSIGNED_SHORT:           return GL_DEPTH_COMPONENT16;
-          case GL_UNSIGNED_INT:             return GL_DEPTH_COMPONENT32_OES;
-          default:                          UNIMPLEMENTED();
-        }
-        break;
-      case GL_DEPTH_STENCIL_OES:
-        switch (type)
-        {
-          case GL_UNSIGNED_INT_24_8_OES:    return GL_DEPTH24_STENCIL8_OES;
-          default:                          UNIMPLEMENTED();
-        }
-        break;
-      default:
-        UNIMPLEMENTED();
-    }
-
-    return GL_NONE;
-}
-
-GLenum ExtractFormat(GLenum internalformat)
-{
-    switch (internalformat)
-    {
-      case GL_RGB565:                          return GL_RGB;
-      case GL_RGBA4:                           return GL_RGBA;
-      case GL_RGB5_A1:                         return GL_RGBA;
-      case GL_RGB8_OES:                        return GL_RGB;
-      case GL_RGBA8_OES:                       return GL_RGBA;
-      case GL_LUMINANCE8_ALPHA8_EXT:           return GL_LUMINANCE_ALPHA;
-      case GL_LUMINANCE8_EXT:                  return GL_LUMINANCE;
-      case GL_ALPHA8_EXT:                      return GL_ALPHA;
-      case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:    return GL_COMPRESSED_RGB_S3TC_DXT1_EXT;
-      case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:   return GL_COMPRESSED_RGBA_S3TC_DXT1_EXT;
-      case GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE: return GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE;
-      case GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE: return GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE;
-      case GL_RGBA32F_EXT:                     return GL_RGBA;
-      case GL_RGB32F_EXT:                      return GL_RGB;
-      case GL_ALPHA32F_EXT:                    return GL_ALPHA;
-      case GL_LUMINANCE32F_EXT:                return GL_LUMINANCE;
-      case GL_LUMINANCE_ALPHA32F_EXT:          return GL_LUMINANCE_ALPHA;
-      case GL_RGBA16F_EXT:                     return GL_RGBA;
-      case GL_RGB16F_EXT:                      return GL_RGB;
-      case GL_ALPHA16F_EXT:                    return GL_ALPHA;
-      case GL_LUMINANCE16F_EXT:                return GL_LUMINANCE;
-      case GL_LUMINANCE_ALPHA16F_EXT:          return GL_LUMINANCE_ALPHA;
-      case GL_BGRA8_EXT:                       return GL_BGRA_EXT;
-      case GL_DEPTH_COMPONENT16:               return GL_DEPTH_COMPONENT;
-      case GL_DEPTH_COMPONENT32_OES:           return GL_DEPTH_COMPONENT;
-      case GL_DEPTH24_STENCIL8_OES:            return GL_DEPTH_STENCIL_OES;
-      default:                                 return GL_NONE;   // Unsupported
-    }
-}
-
-GLenum ExtractType(GLenum internalformat)
-{
-    switch (internalformat)
-    {
-      case GL_RGB565:                          return GL_UNSIGNED_SHORT_5_6_5;
-      case GL_RGBA4:                           return GL_UNSIGNED_SHORT_4_4_4_4;
-      case GL_RGB5_A1:                         return GL_UNSIGNED_SHORT_5_5_5_1;
-      case GL_RGB8_OES:                        return GL_UNSIGNED_BYTE;
-      case GL_RGBA8_OES:                       return GL_UNSIGNED_BYTE;
-      case GL_LUMINANCE8_ALPHA8_EXT:           return GL_UNSIGNED_BYTE;
-      case GL_LUMINANCE8_EXT:                  return GL_UNSIGNED_BYTE;
-      case GL_ALPHA8_EXT:                      return GL_UNSIGNED_BYTE;
-      case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:    return GL_UNSIGNED_BYTE;
-      case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:   return GL_UNSIGNED_BYTE;
-      case GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE: return GL_UNSIGNED_BYTE;
-      case GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE: return GL_UNSIGNED_BYTE;
-      case GL_RGBA32F_EXT:                     return GL_FLOAT;
-      case GL_RGB32F_EXT:                      return GL_FLOAT;
-      case GL_ALPHA32F_EXT:                    return GL_FLOAT;
-      case GL_LUMINANCE32F_EXT:                return GL_FLOAT;
-      case GL_LUMINANCE_ALPHA32F_EXT:          return GL_FLOAT;
-      case GL_RGBA16F_EXT:                     return GL_HALF_FLOAT_OES;
-      case GL_RGB16F_EXT:                      return GL_HALF_FLOAT_OES;
-      case GL_ALPHA16F_EXT:                    return GL_HALF_FLOAT_OES;
-      case GL_LUMINANCE16F_EXT:                return GL_HALF_FLOAT_OES;
-      case GL_LUMINANCE_ALPHA16F_EXT:          return GL_HALF_FLOAT_OES;
-      case GL_BGRA8_EXT:                       return GL_UNSIGNED_BYTE;
-      case GL_DEPTH_COMPONENT16:               return GL_UNSIGNED_SHORT;
-      case GL_DEPTH_COMPONENT32_OES:           return GL_UNSIGNED_INT;
-      case GL_DEPTH24_STENCIL8_OES:            return GL_UNSIGNED_INT_24_8_OES;
-      default:                                 return GL_NONE;   // Unsupported
-    }
-}
-
-bool IsColorRenderable(GLenum internalformat)
-{
-    switch (internalformat)
-    {
-      case GL_RGBA4:
-      case GL_RGB5_A1:
-      case GL_RGB565:
-      case GL_RGB8_OES:
-      case GL_RGBA8_OES:
-        return true;
-      case GL_DEPTH_COMPONENT16:
-      case GL_STENCIL_INDEX8:
-      case GL_DEPTH24_STENCIL8_OES:
-        return false;
-      case GL_BGRA8_EXT:
-          return true;
-      default:
-        UNIMPLEMENTED();
-    }
-
-    return false;
-}
-
-bool IsDepthRenderable(GLenum internalformat)
-{
-    switch (internalformat)
-    {
-      case GL_DEPTH_COMPONENT16:
-      case GL_DEPTH24_STENCIL8_OES:
-        return true;
-      case GL_STENCIL_INDEX8:
-      case GL_RGBA4:
-      case GL_RGB5_A1:
-      case GL_RGB565:
-      case GL_RGB8_OES:
-      case GL_RGBA8_OES:
-        return false;
-      default:
-        UNIMPLEMENTED();
-    }
-
-    return false;
-}
-
-bool IsStencilRenderable(GLenum internalformat)
-{
-    switch (internalformat)
-    {
-      case GL_STENCIL_INDEX8:
-      case GL_DEPTH24_STENCIL8_OES:
-        return true;
-      case GL_RGBA4:
-      case GL_RGB5_A1:
-      case GL_RGB565:
-      case GL_RGB8_OES:
-      case GL_RGBA8_OES:
-      case GL_DEPTH_COMPONENT16:
-        return false;
-      default:
-        UNIMPLEMENTED();
-    }
-
-    return false;
-}
-
-bool IsFloat32Format(GLint internalformat)
-{
-    switch (internalformat)
-    {
-      case GL_RGBA32F_EXT:
-      case GL_RGB32F_EXT:
-      case GL_ALPHA32F_EXT:
-      case GL_LUMINANCE32F_EXT:
-      case GL_LUMINANCE_ALPHA32F_EXT:
-        return true;
-      default:
-        return false;
-    }
-}
-
-bool IsFloat16Format(GLint internalformat)
-{
-    switch (internalformat)
-    {
-      case GL_RGBA16F_EXT:
-      case GL_RGB16F_EXT:
-      case GL_ALPHA16F_EXT:
-      case GL_LUMINANCE16F_EXT:
-      case GL_LUMINANCE_ALPHA16F_EXT:
-        return true;
-      default:
-        return false;
-    }
-}
-
-unsigned int GetAlphaSize(GLenum colorFormat)
-{
-    switch (colorFormat)
-    {
-      case GL_RGBA16F_EXT:
-        return 16;
-      case GL_RGBA32F_EXT:
-        return 32;
-      case GL_RGBA4:
-        return 4;
-      case GL_RGBA8_OES:
-      case GL_BGRA8_EXT:
-        return 8;
-      case GL_RGB5_A1:
-        return 1;
-      case GL_RGB8_OES:
-      case GL_RGB565:
-      case GL_RGB32F_EXT:
-      case GL_RGB16F_EXT:
-        return 0;
-      default:
-        return 0;
-    }
-}
-
-unsigned int GetRedSize(GLenum colorFormat)
-{
-    switch (colorFormat)
-    {
-      case GL_RGBA16F_EXT:
-      case GL_RGB16F_EXT:
-        return 16;
-      case GL_RGBA32F_EXT:
-      case GL_RGB32F_EXT:
-        return 32;
-      case GL_RGBA4:
-        return 4;
-      case GL_RGBA8_OES:
-      case GL_BGRA8_EXT:
-      case GL_RGB8_OES:
-        return 8;
-      case GL_RGB5_A1:
-      case GL_RGB565:
-        return 5;
-      default:
-        return 0;
-    }
-}
-
-unsigned int GetGreenSize(GLenum colorFormat)
-{
-    switch (colorFormat)
-    {
-      case GL_RGBA16F_EXT:
-      case GL_RGB16F_EXT:
-        return 16;
-      case GL_RGBA32F_EXT:
-      case GL_RGB32F_EXT:
-        return 32;
-      case GL_RGBA4:
-        return 4;
-      case GL_RGBA8_OES:
-      case GL_BGRA8_EXT:
-      case GL_RGB8_OES:
-        return 8;
-      case GL_RGB5_A1:
-        return 5;
-      case GL_RGB565:
-        return 6;
-      default:
-        return 0;
-    }
-}
-
-unsigned int GetBlueSize(GLenum colorFormat)
-{
-    switch (colorFormat)
-    {
-      case GL_RGBA16F_EXT:
-      case GL_RGB16F_EXT:
-        return 16;
-      case GL_RGBA32F_EXT:
-      case GL_RGB32F_EXT:
-        return 32;
-      case GL_RGBA4:
-        return 4;
-      case GL_RGBA8_OES:
-      case GL_BGRA8_EXT:
-      case GL_RGB8_OES:
-        return 8;
-      case GL_RGB5_A1:
-      case GL_RGB565:
-        return 5;
-      default:
-        return 0;
-    }
-}
-
-unsigned int GetDepthSize(GLenum depthFormat)
-{
-    switch (depthFormat)
-    {
-      case GL_DEPTH_COMPONENT16:        return 16;
-      case GL_DEPTH_COMPONENT32_OES:    return 32;
-      case GL_DEPTH24_STENCIL8_OES:     return 24;
-      default:                          return 0;
-    }
-}
-
-unsigned int GetStencilSize(GLenum stencilFormat)
-{
-    switch (stencilFormat)
-    {
-      case GL_DEPTH24_STENCIL8_OES:     return 8;
-      default:                          return 0;
-    }
-}
-
-bool IsTriangleMode(GLenum drawMode)
-{
-    switch (drawMode)
-    {
-      case GL_TRIANGLES:
-      case GL_TRIANGLE_FAN:
-      case GL_TRIANGLE_STRIP:
-        return true;
-      case GL_POINTS:
-      case GL_LINES:
-      case GL_LINE_LOOP:
-      case GL_LINE_STRIP:
-        return false;
-      default: UNREACHABLE();
-    }
-
-    return false;
-}
-
-}
-
-std::string getTempPath()
-{
-    char path[MAX_PATH];
-    DWORD pathLen = GetTempPathA(sizeof(path) / sizeof(path[0]), path);
-    if (pathLen == 0)
-    {
-        UNREACHABLE();
-        return std::string();
-    }
-
-    UINT unique = GetTempFileNameA(path, &quot;sh&quot;, 0, path);
-    if (unique == 0)
-    {
-        UNREACHABLE();
-        return std::string();
-    }
-    
-    return path;
-}
-
-void writeFile(const char* path, const void* content, size_t size)
-{
-    FILE* file = fopen(path, &quot;w&quot;);
-    if (!file)
-    {
-        UNREACHABLE();
-        return;
-    }
-
-    fwrite(content, sizeof(char), size, file);
-    fclose(file);
-}
</del></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2utilitiesh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/utilities.h (168114 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/utilities.h        2014-05-01 19:23:29 UTC (rev 168114)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/utilities.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -1,67 +0,0 @@
</span><del>-//
-// Copyright (c) 2002-2013 The ANGLE Project Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-
-// utilities.h: Conversion functions and other utility routines.
-
-#ifndef LIBGLESV2_UTILITIES_H
-#define LIBGLESV2_UTILITIES_H
-
-#define GL_APICALL
-#include &lt;GLES2/gl2.h&gt;
-#include &lt;GLES2/gl2ext.h&gt;
-
-#include &lt;string&gt;
-
-namespace gl
-{
-
-struct Color;
-
-int UniformComponentCount(GLenum type);
-GLenum UniformComponentType(GLenum type);
-size_t UniformInternalSize(GLenum type);
-size_t UniformExternalSize(GLenum type);
-int VariableRowCount(GLenum type);
-int VariableColumnCount(GLenum type);
-
-int AllocateFirstFreeBits(unsigned int *bits, unsigned int allocationSize, unsigned int bitsSize);
-
-void MakeValidSize(bool isImage, bool isCompressed, GLsizei *requestWidth, GLsizei *requestHeight, int *levelOffset);
-int ComputePixelSize(GLint internalformat);
-GLsizei ComputePitch(GLsizei width, GLint internalformat, GLint alignment);
-GLsizei ComputeCompressedPitch(GLsizei width, GLenum format);
-GLsizei ComputeCompressedSize(GLsizei width, GLsizei height, GLenum format);
-GLsizei ComputeTypeSize(GLenum type);
-bool IsCompressed(GLenum format);
-bool IsDepthTexture(GLenum format);
-bool IsStencilTexture(GLenum format);
-bool IsCubemapTextureTarget(GLenum target);
-bool IsInternalTextureTarget(GLenum target);
-GLint ConvertSizedInternalFormat(GLenum format, GLenum type);
-GLenum ExtractFormat(GLenum internalformat);
-GLenum ExtractType(GLenum internalformat);
-
-bool IsColorRenderable(GLenum internalformat);
-bool IsDepthRenderable(GLenum internalformat);
-bool IsStencilRenderable(GLenum internalformat);
-
-bool IsFloat32Format(GLint internalformat);
-bool IsFloat16Format(GLint internalformat);
-
-GLuint GetAlphaSize(GLenum colorFormat);
-GLuint GetRedSize(GLenum colorFormat);
-GLuint GetGreenSize(GLenum colorFormat);
-GLuint GetBlueSize(GLenum colorFormat);
-GLuint GetDepthSize(GLenum depthFormat);
-GLuint GetStencilSize(GLenum stencilFormat);
-bool IsTriangleMode(GLenum drawMode);
-
-}
-
-std::string getTempPath();
-void writeFile(const char* path, const void* data, size_t size);
-
-#endif  // LIBGLESV2_UTILITIES_H
</del></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2validationEScpp"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/validationES.cpp (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/validationES.cpp                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/validationES.cpp        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,875 @@
</span><ins>+#include &quot;precompiled.h&quot;
+//
+// Copyright (c) 2013 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+
+// validationES.h: Validation functions for generic OpenGL ES entry point parameters
+
+#include &quot;libGLESv2/validationES.h&quot;
+#include &quot;libGLESv2/validationES2.h&quot;
+#include &quot;libGLESv2/validationES3.h&quot;
+#include &quot;libGLESv2/Context.h&quot;
+#include &quot;libGLESv2/Texture.h&quot;
+#include &quot;libGLESv2/Framebuffer.h&quot;
+#include &quot;libGLESv2/Renderbuffer.h&quot;
+#include &quot;libGLESv2/formatutils.h&quot;
+#include &quot;libGLESv2/main.h&quot;
+
+#include &quot;common/mathutil.h&quot;
+#include &quot;common/utilities.h&quot;
+
+namespace gl
+{
+
+bool ValidCap(const Context *context, GLenum cap)
+{
+    switch (cap)
+    {
+      case GL_CULL_FACE:
+      case GL_POLYGON_OFFSET_FILL:
+      case GL_SAMPLE_ALPHA_TO_COVERAGE:
+      case GL_SAMPLE_COVERAGE:
+      case GL_SCISSOR_TEST:
+      case GL_STENCIL_TEST:
+      case GL_DEPTH_TEST:
+      case GL_BLEND:
+      case GL_DITHER:
+        return true;
+      case GL_PRIMITIVE_RESTART_FIXED_INDEX:
+      case GL_RASTERIZER_DISCARD:
+        return (context-&gt;getClientVersion() &gt;= 3);
+      default:
+        return false;
+    }
+}
+
+bool ValidTextureTarget(const Context *context, GLenum target)
+{
+    switch (target)
+    {
+      case GL_TEXTURE_2D:
+      case GL_TEXTURE_CUBE_MAP:
+        return true;
+
+      case GL_TEXTURE_3D:
+      case GL_TEXTURE_2D_ARRAY:
+        return (context-&gt;getClientVersion() &gt;= 3);
+
+      default:
+        return false;
+    }
+}
+
+// This function differs from ValidTextureTarget in that the target must be
+// usable as the destination of a 2D operation-- so a cube face is valid, but
+// GL_TEXTURE_CUBE_MAP is not.
+bool ValidTexture2DDestinationTarget(const Context *context, GLenum target)
+{
+    switch (target)
+    {
+      case GL_TEXTURE_2D:
+      case GL_TEXTURE_CUBE_MAP_POSITIVE_X:
+      case GL_TEXTURE_CUBE_MAP_NEGATIVE_X:
+      case GL_TEXTURE_CUBE_MAP_POSITIVE_Y:
+      case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y:
+      case GL_TEXTURE_CUBE_MAP_POSITIVE_Z:
+      case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z:
+        return true;
+      case GL_TEXTURE_2D_ARRAY:
+      case GL_TEXTURE_3D:
+        return (context-&gt;getClientVersion() &gt;= 3);
+      default:
+        return false;
+    }
+}
+
+bool ValidFramebufferTarget(GLenum target)
+{
+    META_ASSERT(GL_DRAW_FRAMEBUFFER_ANGLE == GL_DRAW_FRAMEBUFFER &amp;&amp; GL_READ_FRAMEBUFFER_ANGLE == GL_READ_FRAMEBUFFER);
+
+    switch (target)
+    {
+      case GL_FRAMEBUFFER:      return true;
+      case GL_READ_FRAMEBUFFER: return true;
+      case GL_DRAW_FRAMEBUFFER: return true;
+      default:                  return false;
+    }
+}
+
+bool ValidBufferTarget(const Context *context, GLenum target)
+{
+    switch (target)
+    {
+      case GL_ARRAY_BUFFER:
+      case GL_ELEMENT_ARRAY_BUFFER:
+        return true;
+
+      case GL_PIXEL_PACK_BUFFER:
+      case GL_PIXEL_UNPACK_BUFFER:
+      case GL_COPY_READ_BUFFER:
+      case GL_COPY_WRITE_BUFFER:
+      case GL_TRANSFORM_FEEDBACK_BUFFER:
+      case GL_UNIFORM_BUFFER:
+        return (context-&gt;getClientVersion() &gt;= 3);
+
+      default:
+        return false;
+    }
+}
+
+bool ValidBufferParameter(const Context *context, GLenum pname)
+{
+    switch (pname)
+    {
+      case GL_BUFFER_USAGE:
+      case GL_BUFFER_SIZE:
+        return true;
+
+      // GL_BUFFER_MAP_POINTER is a special case, and may only be
+      // queried with GetBufferPointerv
+      case GL_BUFFER_ACCESS_FLAGS:
+      case GL_BUFFER_MAPPED:
+      case GL_BUFFER_MAP_OFFSET:
+      case GL_BUFFER_MAP_LENGTH:
+        return (context-&gt;getClientVersion() &gt;= 3);
+
+      default:
+        return false;
+    }
+}
+
+bool ValidMipLevel(const Context *context, GLenum target, GLint level)
+{
+    int maxLevel = 0;
+    switch (target)
+    {
+      case GL_TEXTURE_2D:                  maxLevel = context-&gt;getMaximum2DTextureLevel();      break;
+      case GL_TEXTURE_CUBE_MAP:
+      case GL_TEXTURE_CUBE_MAP_POSITIVE_X:
+      case GL_TEXTURE_CUBE_MAP_NEGATIVE_X:
+      case GL_TEXTURE_CUBE_MAP_POSITIVE_Y:
+      case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y:
+      case GL_TEXTURE_CUBE_MAP_POSITIVE_Z:
+      case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z: maxLevel = context-&gt;getMaximumCubeTextureLevel();    break;
+      case GL_TEXTURE_3D:                  maxLevel = context-&gt;getMaximum3DTextureLevel();      break;
+      case GL_TEXTURE_2D_ARRAY:            maxLevel = context-&gt;getMaximum2DArrayTextureLevel(); break;
+      default: UNREACHABLE();
+    }
+
+    return level &lt; maxLevel;
+}
+
+bool ValidImageSize(const gl::Context *context, GLenum target, GLint level, GLsizei width, GLsizei height, GLsizei depth)
+{
+    if (level &lt; 0 || width &lt; 0 || height &lt; 0 || depth &lt; 0)
+    {
+        return false;
+    }
+
+    if (!context-&gt;supportsNonPower2Texture() &amp;&amp; (level != 0 || !gl::isPow2(width) || !gl::isPow2(height) || !gl::isPow2(depth)))
+    {
+        return false;
+    }
+
+    if (!ValidMipLevel(context, target, level))
+    {
+        return false;
+    }
+
+    return true;
+}
+
+bool ValidCompressedImageSize(const gl::Context *context, GLenum internalFormat, GLsizei width, GLsizei height)
+{
+    GLuint clientVersion = context-&gt;getClientVersion();
+    if (!IsFormatCompressed(internalFormat, clientVersion))
+    {
+        return false;
+    }
+
+    GLint blockWidth = GetCompressedBlockWidth(internalFormat, clientVersion);
+    GLint blockHeight = GetCompressedBlockHeight(internalFormat, clientVersion);
+    if (width  &lt; 0 || (width  &gt; blockWidth  &amp;&amp; width  % blockWidth  != 0) ||
+        height &lt; 0 || (height &gt; blockHeight &amp;&amp; height % blockHeight != 0))
+    {
+        return false;
+    }
+
+    return true;
+}
+
+bool ValidQueryType(const Context *context, GLenum queryType)
+{
+    META_ASSERT(GL_ANY_SAMPLES_PASSED == GL_ANY_SAMPLES_PASSED_EXT);
+    META_ASSERT(GL_ANY_SAMPLES_PASSED_CONSERVATIVE == GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT);
+
+    switch (queryType)
+    {
+      case GL_ANY_SAMPLES_PASSED:
+      case GL_ANY_SAMPLES_PASSED_CONSERVATIVE:
+        return true;
+      case GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:
+        return (context-&gt;getClientVersion() &gt;= 3);
+      default:
+        return false;
+    }
+}
+
+bool ValidProgram(const Context *context, GLuint id)
+{
+    // ES3 spec (section 2.11.1) -- &quot;Commands that accept shader or program object names will generate the
+    // error INVALID_VALUE if the provided name is not the name of either a shader or program object and
+    // INVALID_OPERATION if the provided name identifies an object that is not the expected type.&quot;
+
+    if (context-&gt;getProgram(id) != NULL)
+    {
+        return true;
+    }
+    else if (context-&gt;getShader(id) != NULL)
+    {
+        // ID is the wrong type
+        return gl::error(GL_INVALID_OPERATION, false);
+    }
+    else
+    {
+        // No shader/program object has this ID
+        return gl::error(GL_INVALID_VALUE, false);
+    }
+}
+
+bool ValidateRenderbufferStorageParameters(const gl::Context *context, GLenum target, GLsizei samples,
+                                           GLenum internalformat, GLsizei width, GLsizei height,
+                                           bool angleExtension)
+{
+    switch (target)
+    {
+      case GL_RENDERBUFFER:
+        break;
+      default:
+        return gl::error(GL_INVALID_ENUM, false);
+    }
+
+    if (width &lt; 0 || height &lt; 0 || samples &lt; 0)
+    {
+        return gl::error(GL_INVALID_VALUE, false);
+    }
+
+    if (!gl::IsValidInternalFormat(internalformat, context))
+    {
+        return gl::error(GL_INVALID_ENUM, false);
+    }
+
+    // ANGLE_framebuffer_multisample does not explicitly state that the internal format must be
+    // sized but it does state that the format must be in the ES2.0 spec table 4.5 which contains
+    // only sized internal formats. The ES3 spec (section 4.4.2) does, however, state that the
+    // internal format must be sized and not an integer format if samples is greater than zero.
+    if (!gl::IsSizedInternalFormat(internalformat, context-&gt;getClientVersion()))
+    {
+        return gl::error(GL_INVALID_ENUM, false);
+    }
+
+    GLenum componentType = gl::GetComponentType(internalformat, context-&gt;getClientVersion());
+    if ((componentType == GL_UNSIGNED_INT || componentType == GL_INT) &amp;&amp; samples &gt; 0)
+    {
+        return gl::error(GL_INVALID_OPERATION, false);
+    }
+
+    if (!gl::IsColorRenderingSupported(internalformat, context) &amp;&amp;
+        !gl::IsDepthRenderingSupported(internalformat, context) &amp;&amp;
+        !gl::IsStencilRenderingSupported(internalformat, context))
+    {
+        return gl::error(GL_INVALID_ENUM, false);
+    }
+
+    if (std::max(width, height) &gt; context-&gt;getMaximumRenderbufferDimension())
+    {
+        return gl::error(GL_INVALID_VALUE, false);
+    }
+
+    // ANGLE_framebuffer_multisample states that the value of samples must be less than or equal
+    // to MAX_SAMPLES_ANGLE (Context::getMaxSupportedSamples) while the ES3.0 spec (section 4.4.2)
+    // states that samples must be less than or equal to the maximum samples for the specified
+    // internal format.
+    if (angleExtension)
+    {
+        if (samples &gt; context-&gt;getMaxSupportedSamples())
+        {
+            return gl::error(GL_INVALID_VALUE, false);
+        }
+    }
+    else
+    {
+        if (samples &gt; context-&gt;getMaxSupportedFormatSamples(internalformat))
+        {
+            return gl::error(GL_INVALID_VALUE, false);
+        }
+    }
+
+    GLuint handle = context-&gt;getRenderbufferHandle();
+    if (handle == 0)
+    {
+        return gl::error(GL_INVALID_OPERATION, false);
+    }
+
+    return true;
+}
+
+bool ValidateFramebufferRenderbufferParameters(gl::Context *context, GLenum target, GLenum attachment,
+                                               GLenum renderbuffertarget, GLuint renderbuffer)
+{
+    gl::Framebuffer *framebuffer = context-&gt;getTargetFramebuffer(target);
+    GLuint framebufferHandle = context-&gt;getTargetFramebufferHandle(target);
+
+    if (!framebuffer || (framebufferHandle == 0 &amp;&amp; renderbuffer != 0))
+    {
+        return gl::error(GL_INVALID_OPERATION, false);
+    }
+
+    if (attachment &gt;= GL_COLOR_ATTACHMENT0_EXT &amp;&amp; attachment &lt;= GL_COLOR_ATTACHMENT15_EXT)
+    {
+        const unsigned int colorAttachment = (attachment - GL_COLOR_ATTACHMENT0_EXT);
+
+        if (colorAttachment &gt;= context-&gt;getMaximumRenderTargets())
+        {
+            return gl::error(GL_INVALID_VALUE, false);
+        }
+    }
+    else
+    {
+        switch (attachment)
+        {
+          case GL_DEPTH_ATTACHMENT:
+            break;
+          case GL_STENCIL_ATTACHMENT:
+            break;
+          case GL_DEPTH_STENCIL_ATTACHMENT:
+            if (context-&gt;getClientVersion() &lt; 3)
+            {
+                return gl::error(GL_INVALID_ENUM, false);
+            }
+            break;
+          default:
+            return gl::error(GL_INVALID_ENUM, false);
+        }
+    }
+
+    // [OpenGL ES 2.0.25] Section 4.4.3 page 112
+    // [OpenGL ES 3.0.2] Section 4.4.2 page 201
+    // 'renderbuffer' must be either zero or the name of an existing renderbuffer object of
+    // type 'renderbuffertarget', otherwise an INVALID_OPERATION error is generated.
+    if (renderbuffer != 0)
+    {
+        if (!context-&gt;getRenderbuffer(renderbuffer))
+        {
+            return gl::error(GL_INVALID_OPERATION, false);
+        }
+    }
+
+    return true;
+}
+
+static bool IsPartialBlit(gl::Context *context, gl::Renderbuffer *readBuffer, gl::Renderbuffer *writeBuffer,
+                          GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
+                          GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1)
+{
+    if (srcX0 != 0 || srcY0 != 0 || dstX0 != 0 || dstY0 != 0 ||
+        dstX1 != writeBuffer-&gt;getWidth() || dstY1 != writeBuffer-&gt;getHeight() ||
+        srcX1 != readBuffer-&gt;getWidth() || srcY1 != readBuffer-&gt;getHeight())
+    {
+        return true;
+    }
+    else if (context-&gt;isScissorTestEnabled())
+    {
+        int scissorX, scissorY, scissorWidth, scissorHeight;
+        context-&gt;getScissorParams(&amp;scissorX, &amp;scissorY, &amp;scissorWidth, &amp;scissorHeight);
+
+        return scissorX &gt; 0 || scissorY &gt; 0 ||
+               scissorWidth &lt; writeBuffer-&gt;getWidth() ||
+               scissorHeight &lt; writeBuffer-&gt;getHeight();
+    }
+    else
+    {
+        return false;
+    }
+}
+
+bool ValidateBlitFramebufferParameters(gl::Context *context, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
+                                       GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask,
+                                       GLenum filter, bool fromAngleExtension)
+{
+    switch (filter)
+    {
+      case GL_NEAREST:
+        break;
+      case GL_LINEAR:
+        if (fromAngleExtension)
+        {
+            return gl::error(GL_INVALID_ENUM, false);
+        }
+        break;
+      default:
+        return gl::error(GL_INVALID_ENUM, false);
+    }
+
+    if ((mask &amp; ~(GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)) != 0)
+    {
+        return gl::error(GL_INVALID_VALUE, false);
+    }
+
+    if (mask == 0)
+    {
+        // ES3.0 spec, section 4.3.2 specifies that a mask of zero is valid and no
+        // buffers are copied.
+        return false;
+    }
+
+    if (fromAngleExtension &amp;&amp; (srcX1 - srcX0 != dstX1 - dstX0 || srcY1 - srcY0 != dstY1 - dstY0))
+    {
+        ERR(&quot;Scaling and flipping in BlitFramebufferANGLE not supported by this implementation.&quot;);
+        return gl::error(GL_INVALID_OPERATION, false);
+    }
+
+    // ES3.0 spec, section 4.3.2 states that linear filtering is only available for the
+    // color buffer, leaving only nearest being unfiltered from above
+    if ((mask &amp; ~GL_COLOR_BUFFER_BIT) != 0 &amp;&amp; filter != GL_NEAREST)
+    {
+        return gl::error(GL_INVALID_OPERATION, false);
+    }
+
+    if (context-&gt;getReadFramebufferHandle() == context-&gt;getDrawFramebufferHandle())
+    {
+        if (fromAngleExtension)
+        {
+            ERR(&quot;Blits with the same source and destination framebuffer are not supported by this &quot;
+                &quot;implementation.&quot;);
+        }
+        return gl::error(GL_INVALID_OPERATION, false);
+    }
+
+    gl::Framebuffer *readFramebuffer = context-&gt;getReadFramebuffer();
+    gl::Framebuffer *drawFramebuffer = context-&gt;getDrawFramebuffer();
+    if (!readFramebuffer || readFramebuffer-&gt;completeness() != GL_FRAMEBUFFER_COMPLETE ||
+        !drawFramebuffer || drawFramebuffer-&gt;completeness() != GL_FRAMEBUFFER_COMPLETE)
+    {
+        return gl::error(GL_INVALID_FRAMEBUFFER_OPERATION, false);
+    }
+
+    if (drawFramebuffer-&gt;getSamples() != 0)
+    {
+        return gl::error(GL_INVALID_OPERATION, false);
+    }
+
+    bool sameBounds = srcX0 == dstX0 &amp;&amp; srcY0 == dstY0 &amp;&amp; srcX1 == dstX1 &amp;&amp; srcY1 == dstY1;
+
+    GLuint clientVersion = context-&gt;getClientVersion();
+
+    if (mask &amp; GL_COLOR_BUFFER_BIT)
+    {
+        gl::Renderbuffer *readColorBuffer = readFramebuffer-&gt;getReadColorbuffer();
+        gl::Renderbuffer *drawColorBuffer = drawFramebuffer-&gt;getFirstColorbuffer();
+
+        if (readColorBuffer &amp;&amp; drawColorBuffer)
+        {
+            GLenum readInternalFormat = readColorBuffer-&gt;getActualFormat();
+            GLenum readComponentType = gl::GetComponentType(readInternalFormat, clientVersion);
+
+            for (unsigned int i = 0; i &lt; gl::IMPLEMENTATION_MAX_DRAW_BUFFERS; i++)
+            {
+                if (drawFramebuffer-&gt;isEnabledColorAttachment(i))
+                {
+                    GLenum drawInternalFormat = drawFramebuffer-&gt;getColorbuffer(i)-&gt;getActualFormat();
+                    GLenum drawComponentType = gl::GetComponentType(drawInternalFormat, clientVersion);
+
+                    // The GL ES 3.0.2 spec (pg 193) states that:
+                    // 1) If the read buffer is fixed point format, the draw buffer must be as well
+                    // 2) If the read buffer is an unsigned integer format, the draw buffer must be as well
+                    // 3) If the read buffer is a signed integer format, the draw buffer must be as well
+                    if ( (readComponentType == GL_UNSIGNED_NORMALIZED || readComponentType == GL_SIGNED_NORMALIZED) &amp;&amp;
+                        !(drawComponentType == GL_UNSIGNED_NORMALIZED || drawComponentType == GL_SIGNED_NORMALIZED))
+                    {
+                        return gl::error(GL_INVALID_OPERATION, false);
+                    }
+
+                    if (readComponentType == GL_UNSIGNED_INT &amp;&amp; drawComponentType != GL_UNSIGNED_INT)
+                    {
+                        return gl::error(GL_INVALID_OPERATION, false);
+                    }
+
+                    if (readComponentType == GL_INT &amp;&amp; drawComponentType != GL_INT)
+                    {
+                        return gl::error(GL_INVALID_OPERATION, false);
+                    }
+
+                    if (readColorBuffer-&gt;getSamples() &gt; 0 &amp;&amp; (readInternalFormat != drawInternalFormat || !sameBounds))
+                    {
+                        return gl::error(GL_INVALID_OPERATION, false);
+                    }
+                }
+            }
+
+            if ((readComponentType == GL_INT || readComponentType == GL_UNSIGNED_INT) &amp;&amp; filter == GL_LINEAR)
+            {
+                return gl::error(GL_INVALID_OPERATION, false);
+            }
+
+            if (fromAngleExtension)
+            {
+                const GLenum readColorbufferType = readFramebuffer-&gt;getReadColorbufferType();
+                if (readColorbufferType != GL_TEXTURE_2D &amp;&amp; readColorbufferType != GL_RENDERBUFFER)
+                {
+                    return gl::error(GL_INVALID_OPERATION, false);
+                }
+
+                for (unsigned int colorAttachment = 0; colorAttachment &lt; gl::IMPLEMENTATION_MAX_DRAW_BUFFERS; colorAttachment++)
+                {
+                    if (drawFramebuffer-&gt;isEnabledColorAttachment(colorAttachment))
+                    {
+                        if (drawFramebuffer-&gt;getColorbufferType(colorAttachment) != GL_TEXTURE_2D &amp;&amp;
+                            drawFramebuffer-&gt;getColorbufferType(colorAttachment) != GL_RENDERBUFFER)
+                        {
+                            return gl::error(GL_INVALID_OPERATION, false);
+                        }
+
+                        if (drawFramebuffer-&gt;getColorbuffer(colorAttachment)-&gt;getActualFormat() != readColorBuffer-&gt;getActualFormat())
+                        {
+                            return gl::error(GL_INVALID_OPERATION, false);
+                        }
+                    }
+                }
+                if (readFramebuffer-&gt;getSamples() != 0 &amp;&amp; IsPartialBlit(context, readColorBuffer, drawColorBuffer,
+                                                                        srcX0, srcY0, srcX1, srcY1,
+                                                                        dstX0, dstY0, dstX1, dstY1))
+                {
+                    return gl::error(GL_INVALID_OPERATION, false);
+                }
+            }
+        }
+    }
+
+    if (mask &amp; GL_DEPTH_BUFFER_BIT)
+    {
+        gl::Renderbuffer *readDepthBuffer = readFramebuffer-&gt;getDepthbuffer();
+        gl::Renderbuffer *drawDepthBuffer = drawFramebuffer-&gt;getDepthbuffer();
+
+        if (readDepthBuffer &amp;&amp; drawDepthBuffer)
+        {
+            if (readDepthBuffer-&gt;getActualFormat() != drawDepthBuffer-&gt;getActualFormat())
+            {
+                return gl::error(GL_INVALID_OPERATION, false);
+            }
+
+            if (readDepthBuffer-&gt;getSamples() &gt; 0 &amp;&amp; !sameBounds)
+            {
+                return gl::error(GL_INVALID_OPERATION, false);
+            }
+
+            if (fromAngleExtension)
+            {
+                if (IsPartialBlit(context, readDepthBuffer, drawDepthBuffer,
+                                  srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1))
+                {
+                    ERR(&quot;Only whole-buffer depth and stencil blits are supported by this implementation.&quot;);
+                    return gl::error(GL_INVALID_OPERATION, false); // only whole-buffer copies are permitted
+                }
+
+                if (readDepthBuffer-&gt;getSamples() != 0 || drawDepthBuffer-&gt;getSamples() != 0)
+                {
+                    return gl::error(GL_INVALID_OPERATION, false);
+                }
+            }
+        }
+    }
+
+    if (mask &amp; GL_STENCIL_BUFFER_BIT)
+    {
+        gl::Renderbuffer *readStencilBuffer = readFramebuffer-&gt;getStencilbuffer();
+        gl::Renderbuffer *drawStencilBuffer = drawFramebuffer-&gt;getStencilbuffer();
+
+        if (readStencilBuffer &amp;&amp; drawStencilBuffer)
+        {
+            if (readStencilBuffer-&gt;getActualFormat() != drawStencilBuffer-&gt;getActualFormat())
+            {
+                return gl::error(GL_INVALID_OPERATION, false);
+            }
+
+            if (readStencilBuffer-&gt;getSamples() &gt; 0 &amp;&amp; !sameBounds)
+            {
+                return gl::error(GL_INVALID_OPERATION, false);
+            }
+
+            if (fromAngleExtension)
+            {
+                if (IsPartialBlit(context, readStencilBuffer, drawStencilBuffer,
+                                  srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1))
+                {
+                    ERR(&quot;Only whole-buffer depth and stencil blits are supported by this implementation.&quot;);
+                    return gl::error(GL_INVALID_OPERATION, false); // only whole-buffer copies are permitted
+                }
+
+                if (readStencilBuffer-&gt;getSamples() != 0 || drawStencilBuffer-&gt;getSamples() != 0)
+                {
+                    return gl::error(GL_INVALID_OPERATION, false);
+                }
+            }
+        }
+    }
+
+    return true;
+}
+
+bool ValidateGetVertexAttribParameters(GLenum pname, int clientVersion)
+{
+    switch (pname)
+    {
+      case GL_VERTEX_ATTRIB_ARRAY_ENABLED:
+      case GL_VERTEX_ATTRIB_ARRAY_SIZE:
+      case GL_VERTEX_ATTRIB_ARRAY_STRIDE:
+      case GL_VERTEX_ATTRIB_ARRAY_TYPE:
+      case GL_VERTEX_ATTRIB_ARRAY_NORMALIZED:
+      case GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:
+      case GL_CURRENT_VERTEX_ATTRIB:
+        return true;
+
+      case GL_VERTEX_ATTRIB_ARRAY_DIVISOR:
+        // Don't verify ES3 context because GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE uses
+        // the same constant.
+        META_ASSERT(GL_VERTEX_ATTRIB_ARRAY_DIVISOR == GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE);
+        return true;
+
+      case GL_VERTEX_ATTRIB_ARRAY_INTEGER:
+        return ((clientVersion &gt;= 3) ? true : gl::error(GL_INVALID_ENUM, false));
+
+      default:
+        return gl::error(GL_INVALID_ENUM, false);
+    }
+}
+
+bool ValidateTexParamParameters(gl::Context *context, GLenum pname, GLint param)
+{
+    switch (pname)
+    {
+      case GL_TEXTURE_WRAP_R:
+      case GL_TEXTURE_SWIZZLE_R:
+      case GL_TEXTURE_SWIZZLE_G:
+      case GL_TEXTURE_SWIZZLE_B:
+      case GL_TEXTURE_SWIZZLE_A:
+      case GL_TEXTURE_BASE_LEVEL:
+      case GL_TEXTURE_MAX_LEVEL:
+      case GL_TEXTURE_COMPARE_MODE:
+      case GL_TEXTURE_COMPARE_FUNC:
+      case GL_TEXTURE_MIN_LOD:
+      case GL_TEXTURE_MAX_LOD:
+        if (context-&gt;getClientVersion() &lt; 3)
+        {
+            return gl::error(GL_INVALID_ENUM, false);
+        }
+        break;
+
+      default: break;
+    }
+
+    switch (pname)
+    {
+      case GL_TEXTURE_WRAP_S:
+      case GL_TEXTURE_WRAP_T:
+      case GL_TEXTURE_WRAP_R:
+        switch (param)
+        {
+          case GL_REPEAT:
+          case GL_CLAMP_TO_EDGE:
+          case GL_MIRRORED_REPEAT:
+            return true;
+          default:
+            return gl::error(GL_INVALID_ENUM, false);
+        }
+
+      case GL_TEXTURE_MIN_FILTER:
+        switch (param)
+        {
+          case GL_NEAREST:
+          case GL_LINEAR:
+          case GL_NEAREST_MIPMAP_NEAREST:
+          case GL_LINEAR_MIPMAP_NEAREST:
+          case GL_NEAREST_MIPMAP_LINEAR:
+          case GL_LINEAR_MIPMAP_LINEAR:
+            return true;
+          default:
+            return gl::error(GL_INVALID_ENUM, false);
+        }
+        break;
+
+      case GL_TEXTURE_MAG_FILTER:
+        switch (param)
+        {
+          case GL_NEAREST:
+          case GL_LINEAR:
+            return true;
+          default:
+            return gl::error(GL_INVALID_ENUM, false);
+        }
+        break;
+
+      case GL_TEXTURE_USAGE_ANGLE:
+        switch (param)
+        {
+          case GL_NONE:
+          case GL_FRAMEBUFFER_ATTACHMENT_ANGLE:
+            return true;
+          default:
+            return gl::error(GL_INVALID_ENUM, false);
+        }
+        break;
+
+      case GL_TEXTURE_MAX_ANISOTROPY_EXT:
+        if (!context-&gt;supportsTextureFilterAnisotropy())
+        {
+            return gl::error(GL_INVALID_ENUM, false);
+        }
+
+        // we assume the parameter passed to this validation method is truncated, not rounded
+        if (param &lt; 1)
+        {
+            return gl::error(GL_INVALID_VALUE, false);
+        }
+        return true;
+
+      case GL_TEXTURE_MIN_LOD:
+      case GL_TEXTURE_MAX_LOD:
+        // any value is permissible
+        return true;
+
+      case GL_TEXTURE_COMPARE_MODE:
+        // Acceptable mode parameters from GLES 3.0.2 spec, table 3.17
+        switch (param)
+        {
+          case GL_NONE:
+          case GL_COMPARE_REF_TO_TEXTURE:
+            return true;
+          default:
+            return gl::error(GL_INVALID_ENUM, false);
+        }
+        break;
+
+      case GL_TEXTURE_COMPARE_FUNC:
+        // Acceptable function parameters from GLES 3.0.2 spec, table 3.17
+        switch (param)
+        {
+          case GL_LEQUAL:
+          case GL_GEQUAL:
+          case GL_LESS:
+          case GL_GREATER:
+          case GL_EQUAL:
+          case GL_NOTEQUAL:
+          case GL_ALWAYS:
+          case GL_NEVER:
+            return true;
+          default:
+            return gl::error(GL_INVALID_ENUM, false);
+        }
+        break;
+
+      case GL_TEXTURE_SWIZZLE_R:
+      case GL_TEXTURE_SWIZZLE_G:
+      case GL_TEXTURE_SWIZZLE_B:
+      case GL_TEXTURE_SWIZZLE_A:
+        switch (param)
+        {
+          case GL_RED:
+          case GL_GREEN:
+          case GL_BLUE:
+          case GL_ALPHA:
+          case GL_ZERO:
+          case GL_ONE:
+            return true;
+          default:
+            return gl::error(GL_INVALID_ENUM, false);
+        }
+        break;
+
+      case GL_TEXTURE_BASE_LEVEL:
+      case GL_TEXTURE_MAX_LEVEL:
+        if (param &lt; 0)
+        {
+            return gl::error(GL_INVALID_VALUE, false);
+        }
+        return true;
+
+      default:
+        return gl::error(GL_INVALID_ENUM, false);
+    }
+}
+
+bool ValidateSamplerObjectParameter(GLenum pname)
+{
+    switch (pname)
+    {
+      case GL_TEXTURE_MIN_FILTER:
+      case GL_TEXTURE_MAG_FILTER:
+      case GL_TEXTURE_WRAP_S:
+      case GL_TEXTURE_WRAP_T:
+      case GL_TEXTURE_WRAP_R:
+      case GL_TEXTURE_MIN_LOD:
+      case GL_TEXTURE_MAX_LOD:
+      case GL_TEXTURE_COMPARE_MODE:
+      case GL_TEXTURE_COMPARE_FUNC:
+        return true;
+
+      default:
+        return gl::error(GL_INVALID_ENUM, false);
+    }
+}
+
+bool ValidateReadPixelsParameters(gl::Context *context, GLint x, GLint y, GLsizei width, GLsizei height,
+                                  GLenum format, GLenum type, GLsizei *bufSize, GLvoid *pixels)
+{
+    gl::Framebuffer *framebuffer = context-&gt;getReadFramebuffer();
+
+    if (framebuffer-&gt;completeness() != GL_FRAMEBUFFER_COMPLETE)
+    {
+        return gl::error(GL_INVALID_FRAMEBUFFER_OPERATION, false);
+    }
+
+    if (context-&gt;getReadFramebufferHandle() != 0 &amp;&amp; framebuffer-&gt;getSamples() != 0)
+    {
+        return gl::error(GL_INVALID_OPERATION, false);
+    }
+
+    GLenum currentInternalFormat, currentFormat, currentType;
+    int clientVersion = context-&gt;getClientVersion();
+
+    // Failure in getCurrentReadFormatType indicates that no color attachment is currently bound,
+    // and attempting to read back if that's the case is an error. The error will be registered
+    // by getCurrentReadFormat.
+    // Note: we need to explicitly check for framebuffer completeness here, before we call
+    // getCurrentReadFormatType, because it generates a different (wrong) error for incomplete FBOs
+    if (!context-&gt;getCurrentReadFormatType(&amp;currentInternalFormat, &amp;currentFormat, &amp;currentType))
+        return false;
+
+    bool validReadFormat = (clientVersion &lt; 3) ? ValidES2ReadFormatType(context, format, type) :
+                                                 ValidES3ReadFormatType(context, currentInternalFormat, format, type);
+
+    if (!(currentFormat == format &amp;&amp; currentType == type) &amp;&amp; !validReadFormat)
+    {
+        return gl::error(GL_INVALID_OPERATION, false);
+    }
+
+    GLenum sizedInternalFormat = IsSizedInternalFormat(format, clientVersion) ? format :
+                                 GetSizedInternalFormat(format, type, clientVersion);
+
+    GLsizei outputPitch = GetRowPitch(sizedInternalFormat, type, clientVersion, width, context-&gt;getPackAlignment());
+    // sized query sanity check
+    if (bufSize)
+    {
+        int requiredSize = outputPitch * height;
+        if (requiredSize &gt; *bufSize)
+        {
+            return gl::error(GL_INVALID_OPERATION, false);
+        }
+    }
+
+    return true;
+}
+
+}
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2validationESh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/validationES.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/validationES.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/validationES.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,50 @@
</span><ins>+//
+// Copyright (c) 2013 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+
+// validationES.h: Validation functions for generic OpenGL ES entry point parameters
+
+#ifndef LIBGLESV2_VALIDATION_ES_H
+#define LIBGLESV2_VALIDATION_ES_H
+
+namespace gl
+{
+
+class Context;
+
+bool ValidCap(const Context *context, GLenum cap);
+bool ValidTextureTarget(const Context *context, GLenum target);
+bool ValidTexture2DDestinationTarget(const Context *context, GLenum target);
+bool ValidFramebufferTarget(GLenum target);
+bool ValidBufferTarget(const Context *context, GLenum target);
+bool ValidBufferParameter(const Context *context, GLenum pname);
+bool ValidMipLevel(const Context *context, GLenum target, GLint level);
+bool ValidImageSize(const gl::Context *context, GLenum target, GLint level, GLsizei width, GLsizei height, GLsizei depth);
+bool ValidCompressedImageSize(const gl::Context *context, GLenum internalFormat, GLsizei width, GLsizei height);
+bool ValidQueryType(const gl::Context *context, GLenum queryType);
+bool ValidProgram(const gl::Context *context, GLuint id);
+
+bool ValidateRenderbufferStorageParameters(const gl::Context *context, GLenum target, GLsizei samples,
+                                           GLenum internalformat, GLsizei width, GLsizei height,
+                                           bool angleExtension);
+bool ValidateFramebufferRenderbufferParameters(gl::Context *context, GLenum target, GLenum attachment,
+                                               GLenum renderbuffertarget, GLuint renderbuffer);
+
+bool ValidateBlitFramebufferParameters(gl::Context *context, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
+                                       GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask,
+                                       GLenum filter, bool fromAngleExtension);
+
+bool ValidateGetVertexAttribParameters(GLenum pname, int clientVersion);
+
+bool ValidateTexParamParameters(gl::Context *context, GLenum pname, GLint param);
+
+bool ValidateSamplerObjectParameter(GLenum pname);
+
+bool ValidateReadPixelsParameters(gl::Context *context, GLint x, GLint y, GLsizei width, GLsizei height,
+                                  GLenum format, GLenum type, GLsizei *bufSize, GLvoid *pixels);
+
+}
+
+#endif // LIBGLESV2_VALIDATION_ES_H
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2validationES2cpp"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/validationES2.cpp (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/validationES2.cpp                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/validationES2.cpp        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,1092 @@
</span><ins>+#include &quot;precompiled.h&quot;
+//
+// Copyright (c) 2013 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+
+// validationES2.cpp: Validation functions for OpenGL ES 2.0 entry point parameters
+
+#include &quot;libGLESv2/validationES2.h&quot;
+#include &quot;libGLESv2/validationES.h&quot;
+#include &quot;libGLESv2/Context.h&quot;
+#include &quot;libGLESv2/Texture.h&quot;
+#include &quot;libGLESv2/Framebuffer.h&quot;
+#include &quot;libGLESv2/Renderbuffer.h&quot;
+#include &quot;libGLESv2/formatutils.h&quot;
+#include &quot;libGLESv2/main.h&quot;
+
+#include &quot;common/mathutil.h&quot;
+#include &quot;common/utilities.h&quot;
+
+namespace gl
+{
+
+static bool validateSubImageParams2D(bool compressed, GLsizei width, GLsizei height,
+                                     GLint xoffset, GLint yoffset, GLint level, GLenum format, GLenum type,
+                                     gl::Texture2D *texture)
+{
+    if (!texture)
+    {
+        return gl::error(GL_INVALID_OPERATION, false);
+    }
+
+    if (compressed != texture-&gt;isCompressed(level))
+    {
+        return gl::error(GL_INVALID_OPERATION, false);
+    }
+
+    if (format != GL_NONE)
+    {
+        GLenum internalformat = gl::GetSizedInternalFormat(format, type, 2);
+        if (internalformat != texture-&gt;getInternalFormat(level))
+        {
+            return gl::error(GL_INVALID_OPERATION, false);
+        }
+    }
+
+    if (compressed)
+    {
+        if ((width % 4 != 0 &amp;&amp; width != texture-&gt;getWidth(0)) ||
+            (height % 4 != 0 &amp;&amp; height != texture-&gt;getHeight(0)))
+        {
+            return gl::error(GL_INVALID_OPERATION, false);
+        }
+    }
+
+    if (xoffset + width &gt; texture-&gt;getWidth(level) ||
+        yoffset + height &gt; texture-&gt;getHeight(level))
+    {
+        return gl::error(GL_INVALID_VALUE, false);
+    }
+
+    return true;
+}
+
+static bool validateSubImageParamsCube(bool compressed, GLsizei width, GLsizei height,
+                                       GLint xoffset, GLint yoffset, GLenum target, GLint level, GLenum format, GLenum type,
+                                       gl::TextureCubeMap *texture)
+{
+    if (!texture)
+    {
+        return gl::error(GL_INVALID_OPERATION, false);
+    }
+
+    if (compressed != texture-&gt;isCompressed(target, level))
+    {
+        return gl::error(GL_INVALID_OPERATION, false);
+    }
+
+    if (format != GL_NONE)
+    {
+        GLenum internalformat = gl::GetSizedInternalFormat(format, type, 2);
+        if (internalformat != texture-&gt;getInternalFormat(target, level))
+        {
+            return gl::error(GL_INVALID_OPERATION, false);
+        }
+    }
+
+    if (compressed)
+    {
+        if ((width % 4 != 0 &amp;&amp; width != texture-&gt;getWidth(target, 0)) ||
+            (height % 4 != 0 &amp;&amp; height != texture-&gt;getHeight(target, 0)))
+        {
+            return gl::error(GL_INVALID_OPERATION, false);
+        }
+    }
+
+    if (xoffset + width &gt; texture-&gt;getWidth(target, level) ||
+        yoffset + height &gt; texture-&gt;getHeight(target, level))
+    {
+        return gl::error(GL_INVALID_VALUE, false);
+    }
+
+    return true;
+}
+
+bool ValidateES2TexImageParameters(gl::Context *context, GLenum target, GLint level, GLenum internalformat, bool isCompressed, bool isSubImage,
+                                   GLint xoffset, GLint yoffset, GLsizei width, GLsizei height,
+                                   GLint border, GLenum format, GLenum type, const GLvoid *pixels)
+{
+    if (!ValidImageSize(context, target, level, width, height, 1))
+    {
+        return gl::error(GL_INVALID_VALUE, false);
+    }
+
+    if (level &lt; 0 || xoffset &lt; 0 ||
+        std::numeric_limits&lt;GLsizei&gt;::max() - xoffset &lt; width ||
+        std::numeric_limits&lt;GLsizei&gt;::max() - yoffset &lt; height)
+    {
+        return gl::error(GL_INVALID_VALUE, false);
+    }
+
+    if (!isSubImage &amp;&amp; !isCompressed &amp;&amp; internalformat != format)
+    {
+        return gl::error(GL_INVALID_OPERATION, false);
+    }
+
+    gl::Texture *texture = NULL;
+    bool textureCompressed = false;
+    GLenum textureInternalFormat = GL_NONE;
+    GLint textureLevelWidth = 0;
+    GLint textureLevelHeight = 0;
+    switch (target)
+    {
+      case GL_TEXTURE_2D:
+        {
+            if (width &gt; (context-&gt;getMaximum2DTextureDimension() &gt;&gt; level) ||
+                height &gt; (context-&gt;getMaximum2DTextureDimension() &gt;&gt; level))
+            {
+                return gl::error(GL_INVALID_VALUE, false);
+            }
+
+            gl::Texture2D *tex2d = context-&gt;getTexture2D();
+            if (tex2d)
+            {
+                textureCompressed = tex2d-&gt;isCompressed(level);
+                textureInternalFormat = tex2d-&gt;getInternalFormat(level);
+                textureLevelWidth = tex2d-&gt;getWidth(level);
+                textureLevelHeight = tex2d-&gt;getHeight(level);
+                texture = tex2d;
+            }
+
+            if (isSubImage &amp;&amp; !validateSubImageParams2D(isCompressed, width, height, xoffset, yoffset,
+                                                        level, format, type, tex2d))
+            {
+                return false;
+            }
+
+            texture = tex2d;
+        }
+        break;
+
+      case GL_TEXTURE_CUBE_MAP_POSITIVE_X:
+      case GL_TEXTURE_CUBE_MAP_NEGATIVE_X:
+      case GL_TEXTURE_CUBE_MAP_POSITIVE_Y:
+      case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y:
+      case GL_TEXTURE_CUBE_MAP_POSITIVE_Z:
+      case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z:
+        {
+            if (!isSubImage &amp;&amp; width != height)
+            {
+                return gl::error(GL_INVALID_VALUE, false);
+            }
+
+            if (width &gt; (context-&gt;getMaximumCubeTextureDimension() &gt;&gt; level) ||
+                height &gt; (context-&gt;getMaximumCubeTextureDimension() &gt;&gt; level))
+            {
+                return gl::error(GL_INVALID_VALUE, false);
+            }
+
+            gl::TextureCubeMap *texCube = context-&gt;getTextureCubeMap();
+            if (texCube)
+            {
+                textureCompressed = texCube-&gt;isCompressed(target, level);
+                textureInternalFormat = texCube-&gt;getInternalFormat(target, level);
+                textureLevelWidth = texCube-&gt;getWidth(target, level);
+                textureLevelHeight = texCube-&gt;getHeight(target, level);
+                texture = texCube;
+            }
+
+            if (isSubImage &amp;&amp; !validateSubImageParamsCube(isCompressed, width, height, xoffset, yoffset,
+                                                          target, level, format, type, texCube))
+            {
+                return false;
+            }
+        }
+        break;
+
+      default:
+        return gl::error(GL_INVALID_ENUM, false);
+    }
+
+    if (!texture)
+    {
+        return gl::error(GL_INVALID_OPERATION, false);
+    }
+
+    if (!isSubImage &amp;&amp; texture-&gt;isImmutable())
+    {
+        return gl::error(GL_INVALID_OPERATION, false);
+    }
+
+    // Verify zero border
+    if (border != 0)
+    {
+        return gl::error(GL_INVALID_VALUE, false);
+    }
+
+    GLenum actualInternalFormat = isSubImage ? textureInternalFormat : internalformat;
+    if (isCompressed)
+    {
+        if (!ValidCompressedImageSize(context, actualInternalFormat, width, height))
+        {
+            return gl::error(GL_INVALID_OPERATION, false);
+        }
+
+        switch (actualInternalFormat)
+        {
+          case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
+          case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
+            if (!context-&gt;supportsDXT1Textures())
+            {
+                return gl::error(GL_INVALID_ENUM, false);
+            }
+            break;
+          case GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE:
+            if (!context-&gt;supportsDXT3Textures())
+            {
+                return gl::error(GL_INVALID_ENUM, false);
+            }
+            break;
+          case GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE:
+            if (!context-&gt;supportsDXT5Textures())
+            {
+                return gl::error(GL_INVALID_ENUM, false);
+            }
+            break;
+          default:
+            return gl::error(GL_INVALID_ENUM, false);
+        }
+    }
+    else
+    {
+        // validate &lt;type&gt; by itself (used as secondary key below)
+        switch (type)
+        {
+          case GL_UNSIGNED_BYTE:
+          case GL_UNSIGNED_SHORT_5_6_5:
+          case GL_UNSIGNED_SHORT_4_4_4_4:
+          case GL_UNSIGNED_SHORT_5_5_5_1:
+          case GL_UNSIGNED_SHORT:
+          case GL_UNSIGNED_INT:
+          case GL_UNSIGNED_INT_24_8_OES:
+          case GL_HALF_FLOAT_OES:
+          case GL_FLOAT:
+            break;
+          default:
+            return gl::error(GL_INVALID_ENUM, false);
+        }
+
+        // validate &lt;format&gt; + &lt;type&gt; combinations
+        // - invalid &lt;format&gt; -&gt; sets INVALID_ENUM
+        // - invalid &lt;format&gt;+&lt;type&gt; combination -&gt; sets INVALID_OPERATION
+        switch (format)
+        {
+          case GL_ALPHA:
+          case GL_LUMINANCE:
+          case GL_LUMINANCE_ALPHA:
+            switch (type)
+            {
+              case GL_UNSIGNED_BYTE:
+              case GL_FLOAT:
+              case GL_HALF_FLOAT_OES:
+                break;
+            default:
+                return gl::error(GL_INVALID_OPERATION, false);
+            }
+            break;
+          case GL_RED:
+              if (!context-&gt;supportsRGTextures())
+              {
+                  return gl::error(GL_INVALID_ENUM, false);
+              }
+              switch (type)
+              {
+                case GL_UNSIGNED_BYTE:
+                case GL_FLOAT:
+                case GL_HALF_FLOAT_OES:
+                  break;
+                default:
+                  return gl::error(GL_INVALID_OPERATION, false);
+              }
+              break;
+          case GL_RG:
+              if (!context-&gt;supportsRGTextures())
+              {
+                  return gl::error(GL_INVALID_ENUM, false);
+              }
+              switch (type)
+              {
+              case GL_UNSIGNED_BYTE:
+              case GL_FLOAT:
+              case GL_HALF_FLOAT_OES:
+                  break;
+              default:
+                  return gl::error(GL_INVALID_OPERATION, false);
+              }
+              break;
+          case GL_RGB:
+            switch (type)
+            {
+              case GL_UNSIGNED_BYTE:
+              case GL_UNSIGNED_SHORT_5_6_5:
+              case GL_FLOAT:
+              case GL_HALF_FLOAT_OES:
+                break;
+              default:
+                return gl::error(GL_INVALID_OPERATION, false);
+            }
+            break;
+          case GL_RGBA:
+            switch (type)
+            {
+              case GL_UNSIGNED_BYTE:
+              case GL_UNSIGNED_SHORT_4_4_4_4:
+              case GL_UNSIGNED_SHORT_5_5_5_1:
+              case GL_FLOAT:
+              case GL_HALF_FLOAT_OES:
+                break;
+              default:
+                return gl::error(GL_INVALID_OPERATION, false);
+            }
+            break;
+          case GL_BGRA_EXT:
+            switch (type)
+            {
+              case GL_UNSIGNED_BYTE:
+                break;
+              default:
+                return gl::error(GL_INVALID_OPERATION, false);
+            }
+            break;
+          case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:  // error cases for compressed textures are handled below
+          case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
+          case GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE:
+          case GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE:
+            break;
+          case GL_DEPTH_COMPONENT:
+            switch (type)
+            {
+              case GL_UNSIGNED_SHORT:
+              case GL_UNSIGNED_INT:
+                break;
+              default:
+                return gl::error(GL_INVALID_OPERATION, false);
+            }
+            break;
+          case GL_DEPTH_STENCIL_OES:
+            switch (type)
+            {
+              case GL_UNSIGNED_INT_24_8_OES:
+                break;
+              default:
+                return gl::error(GL_INVALID_OPERATION, false);
+            }
+            break;
+          default:
+            return gl::error(GL_INVALID_ENUM, false);
+        }
+
+        switch (format)
+        {
+          case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
+          case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
+            if (context-&gt;supportsDXT1Textures())
+            {
+                return gl::error(GL_INVALID_OPERATION, false);
+            }
+            else
+            {
+                return gl::error(GL_INVALID_ENUM, false);
+            }
+            break;
+          case GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE:
+            if (context-&gt;supportsDXT3Textures())
+            {
+                return gl::error(GL_INVALID_OPERATION, false);
+            }
+            else
+            {
+                return gl::error(GL_INVALID_ENUM, false);
+            }
+            break;
+          case GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE:
+            if (context-&gt;supportsDXT5Textures())
+            {
+                return gl::error(GL_INVALID_OPERATION, false);
+            }
+            else
+            {
+                return gl::error(GL_INVALID_ENUM, false);
+            }
+            break;
+          case GL_DEPTH_COMPONENT:
+          case GL_DEPTH_STENCIL_OES:
+            if (!context-&gt;supportsDepthTextures())
+            {
+                return gl::error(GL_INVALID_VALUE, false);
+            }
+            if (target != GL_TEXTURE_2D)
+            {
+                return gl::error(GL_INVALID_OPERATION, false);
+            }
+            // OES_depth_texture supports loading depth data and multiple levels,
+            // but ANGLE_depth_texture does not
+            if (pixels != NULL || level != 0)
+            {
+                return gl::error(GL_INVALID_OPERATION, false);
+            }
+            break;
+          default:
+            break;
+        }
+
+        if (type == GL_FLOAT)
+        {
+            if (!context-&gt;supportsFloat32Textures())
+            {
+                return gl::error(GL_INVALID_ENUM, false);
+            }
+        }
+        else if (type == GL_HALF_FLOAT_OES)
+        {
+            if (!context-&gt;supportsFloat16Textures())
+            {
+                return gl::error(GL_INVALID_ENUM, false);
+            }
+        }
+    }
+
+    return true;
+}
+
+
+
+bool ValidateES2CopyTexImageParameters(gl::Context* context, GLenum target, GLint level, GLenum internalformat, bool isSubImage,
+                                       GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height,
+                                       GLint border)
+{
+    if (!ValidTexture2DDestinationTarget(context, target))
+    {
+        return gl::error(GL_INVALID_ENUM, false);
+    }
+
+    if (!gl::IsInternalTextureTarget(target, context-&gt;getClientVersion()))
+    {
+        return gl::error(GL_INVALID_ENUM, false);
+    }
+
+    if (level &lt; 0 || xoffset &lt; 0 || yoffset &lt; 0 || width &lt; 0 || height &lt; 0)
+    {
+        return gl::error(GL_INVALID_VALUE, false);
+    }
+
+    if (std::numeric_limits&lt;GLsizei&gt;::max() - xoffset &lt; width || std::numeric_limits&lt;GLsizei&gt;::max() - yoffset &lt; height)
+    {
+        return gl::error(GL_INVALID_VALUE, false);
+    }
+
+    // Verify zero border
+    if (border != 0)
+    {
+        return gl::error(GL_INVALID_VALUE, false);
+    }
+
+    // Validate dimensions based on Context limits and validate the texture
+    if (!ValidMipLevel(context, target, level))
+    {
+        return gl::error(GL_INVALID_VALUE, false);
+    }
+
+    gl::Framebuffer *framebuffer = context-&gt;getReadFramebuffer();
+
+    if (framebuffer-&gt;completeness() != GL_FRAMEBUFFER_COMPLETE)
+    {
+        return gl::error(GL_INVALID_FRAMEBUFFER_OPERATION, false);
+    }
+
+    if (context-&gt;getReadFramebufferHandle() != 0 &amp;&amp; framebuffer-&gt;getSamples() != 0)
+    {
+        return gl::error(GL_INVALID_OPERATION, false);
+    }
+
+    GLenum colorbufferFormat = framebuffer-&gt;getReadColorbuffer()-&gt;getInternalFormat();
+    gl::Texture *texture = NULL;
+    GLenum textureFormat = GL_RGBA;
+
+    switch (target)
+    {
+      case GL_TEXTURE_2D:
+        {
+            if (width &gt; (context-&gt;getMaximum2DTextureDimension() &gt;&gt; level) ||
+                height &gt; (context-&gt;getMaximum2DTextureDimension() &gt;&gt; level))
+            {
+                return gl::error(GL_INVALID_VALUE, false);
+            }
+
+            gl::Texture2D *tex2d = context-&gt;getTexture2D();
+            if (tex2d)
+            {
+                if (isSubImage &amp;&amp; !validateSubImageParams2D(false, width, height, xoffset, yoffset, level, GL_NONE, GL_NONE, tex2d))
+                {
+                    return false; // error already registered by validateSubImageParams
+                }
+                texture = tex2d;
+                textureFormat = gl::GetFormat(tex2d-&gt;getInternalFormat(level), context-&gt;getClientVersion());
+            }
+        }
+        break;
+
+      case GL_TEXTURE_CUBE_MAP_POSITIVE_X:
+      case GL_TEXTURE_CUBE_MAP_NEGATIVE_X:
+      case GL_TEXTURE_CUBE_MAP_POSITIVE_Y:
+      case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y:
+      case GL_TEXTURE_CUBE_MAP_POSITIVE_Z:
+      case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z:
+        {
+            if (!isSubImage &amp;&amp; width != height)
+            {
+                return gl::error(GL_INVALID_VALUE, false);
+            }
+
+            if (width &gt; (context-&gt;getMaximumCubeTextureDimension() &gt;&gt; level) ||
+                height &gt; (context-&gt;getMaximumCubeTextureDimension() &gt;&gt; level))
+            {
+                return gl::error(GL_INVALID_VALUE, false);
+            }
+
+            gl::TextureCubeMap *texcube = context-&gt;getTextureCubeMap();
+            if (texcube)
+            {
+                if (isSubImage &amp;&amp; !validateSubImageParamsCube(false, width, height, xoffset, yoffset, target, level, GL_NONE, GL_NONE, texcube))
+                {
+                    return false; // error already registered by validateSubImageParams
+                }
+                texture = texcube;
+                textureFormat = gl::GetFormat(texcube-&gt;getInternalFormat(target, level), context-&gt;getClientVersion());
+            }
+        }
+        break;
+
+      default:
+        return gl::error(GL_INVALID_ENUM, false);
+    }
+
+    if (!texture)
+    {
+        return gl::error(GL_INVALID_OPERATION, false);
+    }
+
+    if (texture-&gt;isImmutable() &amp;&amp; !isSubImage)
+    {
+        return gl::error(GL_INVALID_OPERATION, false);
+    }
+
+
+    // [OpenGL ES 2.0.24] table 3.9
+    if (isSubImage)
+    {
+        switch (textureFormat)
+        {
+          case GL_ALPHA:
+            if (colorbufferFormat != GL_ALPHA8_EXT &amp;&amp;
+                colorbufferFormat != GL_RGBA4 &amp;&amp;
+                colorbufferFormat != GL_RGB5_A1 &amp;&amp;
+                colorbufferFormat != GL_RGBA8_OES)
+            {
+                return gl::error(GL_INVALID_OPERATION, false);
+            }
+            break;
+          case GL_LUMINANCE:
+              if (colorbufferFormat != GL_R8_EXT &amp;&amp;
+                  colorbufferFormat != GL_RG8_EXT &amp;&amp;
+                  colorbufferFormat != GL_RGB565 &amp;&amp;
+                  colorbufferFormat != GL_RGB8_OES &amp;&amp;
+                  colorbufferFormat != GL_RGBA4 &amp;&amp;
+                  colorbufferFormat != GL_RGB5_A1 &amp;&amp;
+                  colorbufferFormat != GL_RGBA8_OES)
+              {
+                  return gl::error(GL_INVALID_OPERATION, false);
+              }
+              break;
+          case GL_RED_EXT:
+              if (colorbufferFormat != GL_R8_EXT &amp;&amp;
+                  colorbufferFormat != GL_RG8_EXT &amp;&amp;
+                  colorbufferFormat != GL_RGB565 &amp;&amp;
+                  colorbufferFormat != GL_RGB8_OES &amp;&amp;
+                  colorbufferFormat != GL_RGBA4 &amp;&amp;
+                  colorbufferFormat != GL_RGB5_A1 &amp;&amp;
+                  colorbufferFormat != GL_RGBA8_OES)
+              {
+                  return gl::error(GL_INVALID_OPERATION, false);
+              }
+              break;
+          case GL_RG_EXT:
+              if (colorbufferFormat != GL_RG8_EXT &amp;&amp;
+                  colorbufferFormat != GL_RGB565 &amp;&amp;
+                  colorbufferFormat != GL_RGB8_OES &amp;&amp;
+                  colorbufferFormat != GL_RGBA4 &amp;&amp;
+                  colorbufferFormat != GL_RGB5_A1 &amp;&amp;
+                  colorbufferFormat != GL_RGBA8_OES)
+              {
+                  return gl::error(GL_INVALID_OPERATION, false);
+              }
+              break;
+          case GL_RGB:
+            if (colorbufferFormat != GL_RGB565 &amp;&amp;
+                colorbufferFormat != GL_RGB8_OES &amp;&amp;
+                colorbufferFormat != GL_RGBA4 &amp;&amp;
+                colorbufferFormat != GL_RGB5_A1 &amp;&amp;
+                colorbufferFormat != GL_RGBA8_OES)
+            {
+                return gl::error(GL_INVALID_OPERATION, false);
+            }
+            break;
+          case GL_LUMINANCE_ALPHA:
+          case GL_RGBA:
+            if (colorbufferFormat != GL_RGBA4 &amp;&amp;
+                colorbufferFormat != GL_RGB5_A1 &amp;&amp;
+                colorbufferFormat != GL_RGBA8_OES)
+            {
+                return gl::error(GL_INVALID_OPERATION, false);
+            }
+            break;
+          case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
+          case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
+          case GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE:
+          case GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE:
+            return gl::error(GL_INVALID_OPERATION, false);
+          case GL_DEPTH_COMPONENT:
+          case GL_DEPTH_STENCIL_OES:
+            return gl::error(GL_INVALID_OPERATION, false);
+          default:
+            return gl::error(GL_INVALID_OPERATION, false);
+        }
+    }
+    else
+    {
+        switch (internalformat)
+        {
+          case GL_ALPHA:
+            if (colorbufferFormat != GL_ALPHA8_EXT &amp;&amp;
+                colorbufferFormat != GL_RGBA4 &amp;&amp;
+                colorbufferFormat != GL_RGB5_A1 &amp;&amp;
+                colorbufferFormat != GL_BGRA8_EXT &amp;&amp;
+                colorbufferFormat != GL_RGBA8_OES)
+            {
+                return gl::error(GL_INVALID_OPERATION, false);
+            }
+            break;
+          case GL_LUMINANCE:
+              if (colorbufferFormat != GL_R8_EXT &amp;&amp;
+                  colorbufferFormat != GL_RG8_EXT &amp;&amp;
+                  colorbufferFormat != GL_RGB565 &amp;&amp;
+                  colorbufferFormat != GL_RGB8_OES &amp;&amp;
+                  colorbufferFormat != GL_RGBA4 &amp;&amp;
+                  colorbufferFormat != GL_RGB5_A1 &amp;&amp;
+                  colorbufferFormat != GL_BGRA8_EXT &amp;&amp;
+                  colorbufferFormat != GL_RGBA8_OES)
+              {
+                  return gl::error(GL_INVALID_OPERATION, false);
+              }
+              break;
+          case GL_RED_EXT:
+              if (colorbufferFormat != GL_R8_EXT &amp;&amp;
+                  colorbufferFormat != GL_RG8_EXT &amp;&amp;
+                  colorbufferFormat != GL_RGB565 &amp;&amp;
+                  colorbufferFormat != GL_RGB8_OES &amp;&amp;
+                  colorbufferFormat != GL_RGBA4 &amp;&amp;
+                  colorbufferFormat != GL_RGB5_A1 &amp;&amp;
+                  colorbufferFormat != GL_BGRA8_EXT &amp;&amp;
+                  colorbufferFormat != GL_RGBA8_OES)
+              {
+                  return gl::error(GL_INVALID_OPERATION, false);
+              }
+              break;
+          case GL_RG_EXT:
+              if (colorbufferFormat != GL_RG8_EXT &amp;&amp;
+                  colorbufferFormat != GL_RGB565 &amp;&amp;
+                  colorbufferFormat != GL_RGB8_OES &amp;&amp;
+                  colorbufferFormat != GL_RGBA4 &amp;&amp;
+                  colorbufferFormat != GL_RGB5_A1 &amp;&amp;
+                  colorbufferFormat != GL_BGRA8_EXT &amp;&amp;
+                  colorbufferFormat != GL_RGBA8_OES)
+              {
+                  return gl::error(GL_INVALID_OPERATION, false);
+              }
+              break;
+          case GL_RGB:
+            if (colorbufferFormat != GL_RGB565 &amp;&amp;
+                colorbufferFormat != GL_RGB8_OES &amp;&amp;
+                colorbufferFormat != GL_RGBA4 &amp;&amp;
+                colorbufferFormat != GL_RGB5_A1 &amp;&amp;
+                colorbufferFormat != GL_BGRA8_EXT &amp;&amp;
+                colorbufferFormat != GL_RGBA8_OES)
+            {
+                return gl::error(GL_INVALID_OPERATION, false);
+            }
+            break;
+          case GL_LUMINANCE_ALPHA:
+          case GL_RGBA:
+            if (colorbufferFormat != GL_RGBA4 &amp;&amp;
+                colorbufferFormat != GL_RGB5_A1 &amp;&amp;
+                colorbufferFormat != GL_BGRA8_EXT &amp;&amp;
+                colorbufferFormat != GL_RGBA8_OES)
+            {
+                return gl::error(GL_INVALID_OPERATION, false);
+            }
+            break;
+          case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
+          case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
+            if (context-&gt;supportsDXT1Textures())
+            {
+                return gl::error(GL_INVALID_OPERATION, false);
+            }
+            else
+            {
+                return gl::error(GL_INVALID_ENUM, false);
+            }
+            break;
+          case GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE:
+            if (context-&gt;supportsDXT3Textures())
+            {
+                return gl::error(GL_INVALID_OPERATION, false);
+            }
+            else
+            {
+                return gl::error(GL_INVALID_ENUM, false);
+            }
+            break;
+          case GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE:
+            if (context-&gt;supportsDXT5Textures())
+            {
+                return gl::error(GL_INVALID_OPERATION, false);
+            }
+            else
+            {
+                return gl::error(GL_INVALID_ENUM, false);
+            }
+            break;
+          case GL_DEPTH_COMPONENT:
+          case GL_DEPTH_COMPONENT16:
+          case GL_DEPTH_COMPONENT32_OES:
+          case GL_DEPTH_STENCIL_OES:
+          case GL_DEPTH24_STENCIL8_OES:
+            if (context-&gt;supportsDepthTextures())
+            {
+                return gl::error(GL_INVALID_OPERATION, false);
+            }
+            else
+            {
+                return gl::error(GL_INVALID_ENUM, false);
+            }
+          default:
+            return gl::error(GL_INVALID_ENUM, false);
+        }
+    }
+
+    // If width or height is zero, it is a no-op.  Return false without setting an error.
+    return (width &gt; 0 &amp;&amp; height &gt; 0);
+}
+
+bool ValidateES2TexStorageParameters(gl::Context *context, GLenum target, GLsizei levels, GLenum internalformat,
+                                     GLsizei width, GLsizei height)
+{
+    if (target != GL_TEXTURE_2D &amp;&amp; target != GL_TEXTURE_CUBE_MAP)
+    {
+        return gl::error(GL_INVALID_ENUM, false);
+    }
+
+    if (width &lt; 1 || height &lt; 1 || levels &lt; 1)
+    {
+        return gl::error(GL_INVALID_VALUE, false);
+    }
+
+    if (target == GL_TEXTURE_CUBE_MAP &amp;&amp; width != height)
+    {
+        return gl::error(GL_INVALID_VALUE, false);
+    }
+
+    if (levels != 1 &amp;&amp; levels != gl::log2(std::max(width, height)) + 1)
+    {
+        return gl::error(GL_INVALID_OPERATION, false);
+    }
+
+    GLenum format = gl::GetFormat(internalformat, context-&gt;getClientVersion());
+    GLenum type = gl::GetType(internalformat, context-&gt;getClientVersion());
+
+    if (format == GL_NONE || type == GL_NONE)
+    {
+        return gl::error(GL_INVALID_ENUM, false);
+    }
+
+    switch (target)
+    {
+      case GL_TEXTURE_2D:
+        if (width &gt; context-&gt;getMaximum2DTextureDimension() ||
+            height &gt; context-&gt;getMaximum2DTextureDimension())
+        {
+            return gl::error(GL_INVALID_VALUE, false);
+        }
+        break;
+      case GL_TEXTURE_CUBE_MAP:
+        if (width &gt; context-&gt;getMaximumCubeTextureDimension() ||
+            height &gt; context-&gt;getMaximumCubeTextureDimension())
+        {
+            return gl::error(GL_INVALID_VALUE, false);
+        }
+        break;
+      default:
+        return gl::error(GL_INVALID_ENUM, false);
+    }
+
+    if (levels != 1 &amp;&amp; !context-&gt;supportsNonPower2Texture())
+    {
+        if (!gl::isPow2(width) || !gl::isPow2(height))
+        {
+            return gl::error(GL_INVALID_OPERATION, false);
+        }
+    }
+
+    switch (internalformat)
+    {
+      case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
+      case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
+        if (!context-&gt;supportsDXT1Textures())
+        {
+            return gl::error(GL_INVALID_ENUM, false);
+        }
+        break;
+      case GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE:
+        if (!context-&gt;supportsDXT3Textures())
+        {
+            return gl::error(GL_INVALID_ENUM, false);
+        }
+        break;
+      case GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE:
+        if (!context-&gt;supportsDXT5Textures())
+        {
+            return gl::error(GL_INVALID_ENUM, false);
+        }
+        break;
+      case GL_RGBA32F_EXT:
+      case GL_RGB32F_EXT:
+      case GL_ALPHA32F_EXT:
+      case GL_LUMINANCE32F_EXT:
+      case GL_LUMINANCE_ALPHA32F_EXT:
+        if (!context-&gt;supportsFloat32Textures())
+        {
+            return gl::error(GL_INVALID_ENUM, false);
+        }
+        break;
+      case GL_RGBA16F_EXT:
+      case GL_RGB16F_EXT:
+      case GL_ALPHA16F_EXT:
+      case GL_LUMINANCE16F_EXT:
+      case GL_LUMINANCE_ALPHA16F_EXT:
+        if (!context-&gt;supportsFloat16Textures())
+        {
+            return gl::error(GL_INVALID_ENUM, false);
+        }
+        break;
+      case GL_R8_EXT:
+      case GL_RG8_EXT:
+      case GL_R16F_EXT:
+      case GL_RG16F_EXT:
+      case GL_R32F_EXT:
+      case GL_RG32F_EXT:
+        if (!context-&gt;supportsRGTextures())
+        {
+            return gl::error(GL_INVALID_ENUM, false);
+        }
+        break;
+      case GL_DEPTH_COMPONENT16:
+      case GL_DEPTH_COMPONENT32_OES:
+      case GL_DEPTH24_STENCIL8_OES:
+        if (!context-&gt;supportsDepthTextures())
+        {
+            return gl::error(GL_INVALID_ENUM, false);
+        }
+        if (target != GL_TEXTURE_2D)
+        {
+            return gl::error(GL_INVALID_OPERATION, false);
+        }
+        // ANGLE_depth_texture only supports 1-level textures
+        if (levels != 1)
+        {
+            return gl::error(GL_INVALID_OPERATION, false);
+        }
+        break;
+      default:
+        break;
+    }
+
+    gl::Texture *texture = NULL;
+    switch(target)
+    {
+      case GL_TEXTURE_2D:
+        texture = context-&gt;getTexture2D();
+        break;
+      case GL_TEXTURE_CUBE_MAP:
+        texture = context-&gt;getTextureCubeMap();
+        break;
+      default:
+        UNREACHABLE();
+    }
+
+    if (!texture || texture-&gt;id() == 0)
+    {
+        return gl::error(GL_INVALID_OPERATION, false);
+    }
+
+    if (texture-&gt;isImmutable())
+    {
+        return gl::error(GL_INVALID_OPERATION, false);
+    }
+
+    return true;
+}
+
+bool ValidateES2FramebufferTextureParameters(gl::Context *context, GLenum target, GLenum attachment,
+                                             GLenum textarget, GLuint texture, GLint level)
+{
+    META_ASSERT(GL_DRAW_FRAMEBUFFER == GL_DRAW_FRAMEBUFFER_ANGLE &amp;&amp; GL_READ_FRAMEBUFFER == GL_READ_FRAMEBUFFER_ANGLE);
+
+    if (target != GL_FRAMEBUFFER &amp;&amp; target != GL_DRAW_FRAMEBUFFER &amp;&amp; target != GL_READ_FRAMEBUFFER)
+    {
+        return gl::error(GL_INVALID_ENUM, false);
+    }
+
+    if (attachment &gt;= GL_COLOR_ATTACHMENT0 &amp;&amp; attachment &lt;= GL_COLOR_ATTACHMENT15)
+    {
+        const unsigned int colorAttachment = (attachment - GL_COLOR_ATTACHMENT0);
+        if (colorAttachment &gt;= context-&gt;getMaximumRenderTargets())
+        {
+            return gl::error(GL_INVALID_VALUE, false);
+        }
+    }
+    else
+    {
+        switch (attachment)
+        {
+          case GL_DEPTH_ATTACHMENT:
+          case GL_STENCIL_ATTACHMENT:
+            break;
+          default:
+            return gl::error(GL_INVALID_ENUM, false);
+        }
+    }
+
+    if (texture != 0)
+    {
+        gl::Texture *tex = context-&gt;getTexture(texture);
+
+        if (tex == NULL)
+        {
+            return gl::error(GL_INVALID_OPERATION, false);
+        }
+
+        switch (textarget)
+        {
+          case GL_TEXTURE_2D:
+            {
+                if (tex-&gt;getTarget() != GL_TEXTURE_2D)
+                {
+                    return gl::error(GL_INVALID_OPERATION, false);
+                }
+                gl::Texture2D *tex2d = static_cast&lt;gl::Texture2D *&gt;(tex);
+                if (tex2d-&gt;isCompressed(level))
+                {
+                    return gl::error(GL_INVALID_OPERATION, false);
+                }
+                break;
+            }
+
+          case GL_TEXTURE_CUBE_MAP_POSITIVE_X:
+          case GL_TEXTURE_CUBE_MAP_NEGATIVE_X:
+          case GL_TEXTURE_CUBE_MAP_POSITIVE_Y:
+          case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y:
+          case GL_TEXTURE_CUBE_MAP_POSITIVE_Z:
+          case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z:
+            {
+                if (tex-&gt;getTarget() != GL_TEXTURE_CUBE_MAP)
+                {
+                    return gl::error(GL_INVALID_OPERATION, false);
+                }
+                gl::TextureCubeMap *texcube = static_cast&lt;gl::TextureCubeMap *&gt;(tex);
+                if (texcube-&gt;isCompressed(textarget, level))
+                {
+                    return gl::error(GL_INVALID_OPERATION, false);
+                }
+                break;
+            }
+
+          default:
+            return gl::error(GL_INVALID_ENUM, false);
+        }
+
+        if (level != 0)
+        {
+            return gl::error(GL_INVALID_VALUE, false);
+        }
+    }
+
+    gl::Framebuffer *framebuffer = NULL;
+    GLuint framebufferHandle = 0;
+    if (target == GL_READ_FRAMEBUFFER)
+    {
+        framebuffer = context-&gt;getReadFramebuffer();
+        framebufferHandle = context-&gt;getReadFramebufferHandle();
+    }
+    else
+    {
+        framebuffer = context-&gt;getDrawFramebuffer();
+        framebufferHandle = context-&gt;getDrawFramebufferHandle();
+    }
+
+    if (framebufferHandle == 0 || !framebuffer)
+    {
+        return gl::error(GL_INVALID_OPERATION, false);
+    }
+
+    return true;
+}
+
+// check for combinations of format and type that are valid for ReadPixels
+bool ValidES2ReadFormatType(gl::Context *context, GLenum format, GLenum type)
+{
+    switch (format)
+    {
+      case GL_RGBA:
+        switch (type)
+        {
+          case GL_UNSIGNED_BYTE:
+            break;
+          default:
+            return false;
+        }
+        break;
+      case GL_BGRA_EXT:
+        switch (type)
+        {
+          case GL_UNSIGNED_BYTE:
+          case GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT:
+          case GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT:
+            break;
+          default:
+            return false;
+        }
+        break;
+      case GL_RG_EXT:
+      case GL_RED_EXT:
+        if (!context-&gt;supportsRGTextures())
+        {
+            return false;
+        }
+        switch (type)
+        {
+          case GL_UNSIGNED_BYTE:
+            break;
+          default:
+            return false;
+        }
+        break;
+
+      default:
+        return false;
+    }
+    return true;
+}
+
+}
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2validationES2h"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/validationES2.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/validationES2.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/validationES2.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,35 @@
</span><ins>+//
+// Copyright (c) 2013 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+
+// validationES2.h: Validation functions for OpenGL ES 2.0 entry point parameters
+
+#ifndef LIBGLESV2_VALIDATION_ES2_H
+#define LIBGLESV2_VALIDATION_ES2_H
+
+namespace gl
+{
+
+class Context;
+
+bool ValidateES2TexImageParameters(gl::Context *context, GLenum target, GLint level, GLenum internalformat, bool isCompressed, bool isSubImage,
+                                   GLint xoffset, GLint yoffset, GLsizei width, GLsizei height,
+                                   GLint border, GLenum format, GLenum type, const GLvoid *pixels);
+
+bool ValidateES2CopyTexImageParameters(gl::Context* context, GLenum target, GLint level, GLenum internalformat, bool isSubImage,
+                                       GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height,
+                                       GLint border);
+
+bool ValidateES2TexStorageParameters(gl::Context *context, GLenum target, GLsizei levels, GLenum internalformat,
+                                     GLsizei width, GLsizei height);
+
+bool ValidateES2FramebufferTextureParameters(gl::Context *context, GLenum target, GLenum attachment,
+                                             GLenum textarget, GLuint texture, GLint level);
+
+bool ValidES2ReadFormatType(gl::Context *context, GLenum format, GLenum type);
+
+}
+
+#endif // LIBGLESV2_VALIDATION_ES2_H
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2validationES3cpp"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/validationES3.cpp (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/validationES3.cpp                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/validationES3.cpp        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,868 @@
</span><ins>+#include &quot;precompiled.h&quot;
+//
+// Copyright (c) 2013 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+
+// validationES3.cpp: Validation functions for OpenGL ES 3.0 entry point parameters
+
+#include &quot;libGLESv2/validationES3.h&quot;
+#include &quot;libGLESv2/validationES.h&quot;
+#include &quot;libGLESv2/Context.h&quot;
+#include &quot;libGLESv2/Texture.h&quot;
+#include &quot;libGLESv2/Framebuffer.h&quot;
+#include &quot;libGLESv2/Renderbuffer.h&quot;
+#include &quot;libGLESv2/formatutils.h&quot;
+#include &quot;libGLESv2/main.h&quot;
+
+#include &quot;common/mathutil.h&quot;
+
+namespace gl
+{
+
+bool ValidateES3TexImageParameters(gl::Context *context, GLenum target, GLint level, GLenum internalformat, bool isCompressed, bool isSubImage,
+                                   GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth,
+                                   GLint border, GLenum format, GLenum type, const GLvoid *pixels)
+{
+    // Validate image size
+    if (!ValidImageSize(context, target, level, width, height, depth))
+    {
+        return gl::error(GL_INVALID_VALUE, false);
+    }
+
+    // Verify zero border
+    if (border != 0)
+    {
+        return gl::error(GL_INVALID_VALUE, false);
+    }
+
+    gl::Texture *texture = NULL;
+    bool textureCompressed = false;
+    GLenum textureInternalFormat = GL_NONE;
+    GLint textureLevelWidth = 0;
+    GLint textureLevelHeight = 0;
+    GLint textureLevelDepth = 0;
+    switch (target)
+    {
+      case GL_TEXTURE_2D:
+        {
+            if (width &gt; (context-&gt;getMaximum2DTextureDimension() &gt;&gt; level) ||
+                height &gt; (context-&gt;getMaximum2DTextureDimension() &gt;&gt; level))
+            {
+                return gl::error(GL_INVALID_VALUE, false);
+            }
+
+            gl::Texture2D *texture2d = context-&gt;getTexture2D();
+            if (texture2d)
+            {
+                textureCompressed = texture2d-&gt;isCompressed(level);
+                textureInternalFormat = texture2d-&gt;getInternalFormat(level);
+                textureLevelWidth = texture2d-&gt;getWidth(level);
+                textureLevelHeight = texture2d-&gt;getHeight(level);
+                textureLevelDepth = 1;
+                texture = texture2d;
+            }
+        }
+        break;
+
+      case GL_TEXTURE_CUBE_MAP_POSITIVE_X:
+      case GL_TEXTURE_CUBE_MAP_NEGATIVE_X:
+      case GL_TEXTURE_CUBE_MAP_POSITIVE_Y:
+      case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y:
+      case GL_TEXTURE_CUBE_MAP_POSITIVE_Z:
+      case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z:
+        {
+            if (!isSubImage &amp;&amp; width != height)
+            {
+                return gl::error(GL_INVALID_VALUE, false);
+            }
+
+            if (width &gt; (context-&gt;getMaximumCubeTextureDimension() &gt;&gt; level))
+            {
+                return gl::error(GL_INVALID_VALUE, false);
+            }
+
+            gl::TextureCubeMap *textureCube = context-&gt;getTextureCubeMap();
+            if (textureCube)
+            {
+                textureCompressed = textureCube-&gt;isCompressed(target, level);
+                textureInternalFormat = textureCube-&gt;getInternalFormat(target, level);
+                textureLevelWidth = textureCube-&gt;getWidth(target, level);
+                textureLevelHeight = textureCube-&gt;getHeight(target, level);
+                textureLevelDepth = 1;
+                texture = textureCube;
+            }
+        }
+        break;
+
+      case GL_TEXTURE_3D:
+        {
+            if (width &gt; (context-&gt;getMaximum3DTextureDimension() &gt;&gt; level) ||
+                height &gt; (context-&gt;getMaximum3DTextureDimension() &gt;&gt; level) ||
+                depth &gt; (context-&gt;getMaximum3DTextureDimension() &gt;&gt; level))
+            {
+                return gl::error(GL_INVALID_VALUE, false);
+            }
+
+            gl::Texture3D *texture3d = context-&gt;getTexture3D();
+            if (texture3d)
+            {
+                textureCompressed = texture3d-&gt;isCompressed(level);
+                textureInternalFormat = texture3d-&gt;getInternalFormat(level);
+                textureLevelWidth = texture3d-&gt;getWidth(level);
+                textureLevelHeight = texture3d-&gt;getHeight(level);
+                textureLevelDepth = texture3d-&gt;getDepth(level);
+                texture = texture3d;
+            }
+        }
+        break;
+
+        case GL_TEXTURE_2D_ARRAY:
+          {
+              if (width &gt; (context-&gt;getMaximum2DTextureDimension() &gt;&gt; level) ||
+                  height &gt; (context-&gt;getMaximum2DTextureDimension() &gt;&gt; level) ||
+                  depth &gt; (context-&gt;getMaximum2DArrayTextureLayers() &gt;&gt; level))
+              {
+                  return gl::error(GL_INVALID_VALUE, false);
+              }
+
+              gl::Texture2DArray *texture2darray = context-&gt;getTexture2DArray();
+              if (texture2darray)
+              {
+                  textureCompressed = texture2darray-&gt;isCompressed(level);
+                  textureInternalFormat = texture2darray-&gt;getInternalFormat(level);
+                  textureLevelWidth = texture2darray-&gt;getWidth(level);
+                  textureLevelHeight = texture2darray-&gt;getHeight(level);
+                  textureLevelDepth = texture2darray-&gt;getLayers(level);
+                  texture = texture2darray;
+              }
+          }
+          break;
+
+      default:
+        return gl::error(GL_INVALID_ENUM, false);
+    }
+
+    if (!texture)
+    {
+        return gl::error(GL_INVALID_OPERATION, false);
+    }
+
+    if (texture-&gt;isImmutable() &amp;&amp; !isSubImage)
+    {
+        return gl::error(GL_INVALID_OPERATION, false);
+    }
+
+    // Validate texture formats
+    GLenum actualInternalFormat = isSubImage ? textureInternalFormat : internalformat;
+    if (isCompressed)
+    {
+        if (!ValidCompressedImageSize(context, actualInternalFormat, width, height))
+        {
+            return gl::error(GL_INVALID_OPERATION, false);
+        }
+
+        if (!gl::IsFormatCompressed(actualInternalFormat, context-&gt;getClientVersion()))
+        {
+            return gl::error(GL_INVALID_ENUM, false);
+        }
+
+        if (target == GL_TEXTURE_3D)
+        {
+            return gl::error(GL_INVALID_OPERATION, false);
+        }
+    }
+    else
+    {
+        if (!gl::IsValidInternalFormat(actualInternalFormat, context) ||
+            !gl::IsValidFormat(format, context-&gt;getClientVersion()) ||
+            !gl::IsValidType(type, context-&gt;getClientVersion()))
+        {
+            return gl::error(GL_INVALID_ENUM, false);
+        }
+
+        if (!gl::IsValidFormatCombination(actualInternalFormat, format, type, context-&gt;getClientVersion()))
+        {
+            return gl::error(GL_INVALID_OPERATION, false);
+        }
+
+        if (target == GL_TEXTURE_3D &amp;&amp; (format == GL_DEPTH_COMPONENT || format == GL_DEPTH_STENCIL))
+        {
+            return gl::error(GL_INVALID_OPERATION, false);
+        }
+    }
+
+    // Validate sub image parameters
+    if (isSubImage)
+    {
+        if (isCompressed != textureCompressed)
+        {
+            return gl::error(GL_INVALID_OPERATION, false);
+        }
+
+        if (isCompressed)
+        {
+            if ((width % 4 != 0 &amp;&amp; width != textureLevelWidth) ||
+                (height % 4 != 0 &amp;&amp; height != textureLevelHeight))
+            {
+                return gl::error(GL_INVALID_OPERATION, false);
+            }
+        }
+
+        if (width == 0 || height == 0 || depth == 0)
+        {
+            return false;
+        }
+
+        if (xoffset &lt; 0 || yoffset &lt; 0 || zoffset &lt; 0)
+        {
+            return gl::error(GL_INVALID_VALUE, false);
+        }
+
+        if (std::numeric_limits&lt;GLsizei&gt;::max() - xoffset &lt; width ||
+            std::numeric_limits&lt;GLsizei&gt;::max() - yoffset &lt; height ||
+            std::numeric_limits&lt;GLsizei&gt;::max() - zoffset &lt; depth)
+        {
+            return gl::error(GL_INVALID_VALUE, false);
+        }
+
+        if (xoffset + width &gt; textureLevelWidth ||
+            yoffset + height &gt; textureLevelHeight ||
+            zoffset + depth &gt; textureLevelDepth)
+        {
+            return gl::error(GL_INVALID_VALUE, false);
+        }
+    }
+
+    // Check for pixel unpack buffer related API errors
+    gl::Buffer *pixelUnpackBuffer = context-&gt;getPixelUnpackBuffer();
+    if (pixelUnpackBuffer != NULL)
+    {
+        // ...the data would be unpacked from the buffer object such that the memory reads required
+        // would exceed the data store size.
+        size_t widthSize = static_cast&lt;size_t&gt;(width);
+        size_t heightSize = static_cast&lt;size_t&gt;(height);
+        size_t depthSize = static_cast&lt;size_t&gt;(depth);
+        size_t pixelBytes = static_cast&lt;size_t&gt;(gl::GetPixelBytes(actualInternalFormat, context-&gt;getClientVersion()));
+
+        if (!rx::IsUnsignedMultiplicationSafe(widthSize, heightSize) ||
+            !rx::IsUnsignedMultiplicationSafe(widthSize * heightSize, depthSize) ||
+            !rx::IsUnsignedMultiplicationSafe(widthSize * heightSize * depthSize, pixelBytes))
+        {
+            // Overflow past the end of the buffer
+            return gl::error(GL_INVALID_OPERATION, false);
+        }
+
+        size_t copyBytes = widthSize * heightSize * depthSize * pixelBytes;
+        size_t offset = reinterpret_cast&lt;size_t&gt;(pixels);
+
+        if (!rx::IsUnsignedAdditionSafe(offset, copyBytes) || ((offset + copyBytes) &gt; static_cast&lt;size_t&gt;(pixelUnpackBuffer-&gt;size())))
+        {
+            // Overflow past the end of the buffer
+            return gl::error(GL_INVALID_OPERATION, false);
+        }
+
+        // ...data is not evenly divisible into the number of bytes needed to store in memory a datum
+        // indicated by type.
+        size_t dataBytesPerPixel = static_cast&lt;size_t&gt;(gl::GetTypeBytes(type));
+
+        if ((offset % dataBytesPerPixel) != 0)
+        {
+            return gl::error(GL_INVALID_OPERATION, false);
+        }
+
+        // ...the buffer object's data store is currently mapped.
+        if (pixelUnpackBuffer-&gt;mapped())
+        {
+            return gl::error(GL_INVALID_OPERATION, false);
+        }
+    }
+
+    return true;
+}
+
+bool ValidateES3CopyTexImageParameters(gl::Context *context, GLenum target, GLint level, GLenum internalformat,
+                                       bool isSubImage, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y,
+                                       GLsizei width, GLsizei height, GLint border)
+{
+    if (!ValidTexture2DDestinationTarget(context, target))
+    {
+        return gl::error(GL_INVALID_ENUM, false);
+    }
+
+    if (level &lt; 0 || xoffset &lt; 0 || yoffset &lt; 0 || zoffset &lt; 0 || width &lt; 0 || height &lt; 0)
+    {
+        return gl::error(GL_INVALID_VALUE, false);
+    }
+
+    if (std::numeric_limits&lt;GLsizei&gt;::max() - xoffset &lt; width || std::numeric_limits&lt;GLsizei&gt;::max() - yoffset &lt; height)
+    {
+        return gl::error(GL_INVALID_VALUE, false);
+    }
+
+    if (border != 0)
+    {
+        return gl::error(GL_INVALID_VALUE, false);
+    }
+
+    if (!ValidMipLevel(context, target, level))
+    {
+        return gl::error(GL_INVALID_VALUE, false);
+    }
+
+    gl::Framebuffer *framebuffer = context-&gt;getReadFramebuffer();
+
+    if (framebuffer-&gt;completeness() != GL_FRAMEBUFFER_COMPLETE)
+    {
+        return gl::error(GL_INVALID_FRAMEBUFFER_OPERATION, false);
+    }
+
+    if (context-&gt;getReadFramebufferHandle() != 0 &amp;&amp; framebuffer-&gt;getSamples() != 0)
+    {
+        return gl::error(GL_INVALID_OPERATION, false);
+    }
+
+    gl::Renderbuffer *source = framebuffer-&gt;getReadColorbuffer();
+    GLenum colorbufferInternalFormat = source-&gt;getInternalFormat();
+    gl::Texture *texture = NULL;
+    GLenum textureInternalFormat = GL_NONE;
+    bool textureCompressed = false;
+    bool textureIsDepth = false;
+    GLint textureLevelWidth = 0;
+    GLint textureLevelHeight = 0;
+    GLint textureLevelDepth = 0;
+    switch (target)
+    {
+      case GL_TEXTURE_2D:
+        {
+            gl::Texture2D *texture2d = context-&gt;getTexture2D();
+            if (texture2d)
+            {
+                textureInternalFormat = texture2d-&gt;getInternalFormat(level);
+                textureCompressed = texture2d-&gt;isCompressed(level);
+                textureIsDepth = texture2d-&gt;isDepth(level);
+                textureLevelWidth = texture2d-&gt;getWidth(level);
+                textureLevelHeight = texture2d-&gt;getHeight(level);
+                textureLevelDepth = 1;
+                texture = texture2d;
+            }
+        }
+        break;
+
+      case GL_TEXTURE_CUBE_MAP_POSITIVE_X:
+      case GL_TEXTURE_CUBE_MAP_NEGATIVE_X:
+      case GL_TEXTURE_CUBE_MAP_POSITIVE_Y:
+      case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y:
+      case GL_TEXTURE_CUBE_MAP_POSITIVE_Z:
+      case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z:
+        {
+            gl::TextureCubeMap *textureCube = context-&gt;getTextureCubeMap();
+            if (textureCube)
+            {
+                textureInternalFormat = textureCube-&gt;getInternalFormat(target, level);
+                textureCompressed = textureCube-&gt;isCompressed(target, level);
+                textureIsDepth = false;
+                textureLevelWidth = textureCube-&gt;getWidth(target, level);
+                textureLevelHeight = textureCube-&gt;getHeight(target, level);
+                textureLevelDepth = 1;
+                texture = textureCube;
+            }
+        }
+        break;
+
+      case GL_TEXTURE_2D_ARRAY:
+        {
+            gl::Texture2DArray *texture2dArray = context-&gt;getTexture2DArray();
+            if (texture2dArray)
+            {
+                textureInternalFormat = texture2dArray-&gt;getInternalFormat(level);
+                textureCompressed = texture2dArray-&gt;isCompressed(level);
+                textureIsDepth = texture2dArray-&gt;isDepth(level);
+                textureLevelWidth = texture2dArray-&gt;getWidth(level);
+                textureLevelHeight = texture2dArray-&gt;getHeight(level);
+                textureLevelDepth = texture2dArray-&gt;getLayers(level);
+                texture = texture2dArray;
+            }
+        }
+        break;
+
+      case GL_TEXTURE_3D:
+        {
+            gl::Texture3D *texture3d = context-&gt;getTexture3D();
+            if (texture3d)
+            {
+                textureInternalFormat = texture3d-&gt;getInternalFormat(level);
+                textureCompressed = texture3d-&gt;isCompressed(level);
+                textureIsDepth = texture3d-&gt;isDepth(level);
+                textureLevelWidth = texture3d-&gt;getWidth(level);
+                textureLevelHeight = texture3d-&gt;getHeight(level);
+                textureLevelDepth = texture3d-&gt;getDepth(level);
+                texture = texture3d;
+            }
+        }
+        break;
+
+      default:
+        return gl::error(GL_INVALID_ENUM, false);
+    }
+
+    if (!texture)
+    {
+        return gl::error(GL_INVALID_OPERATION, false);
+    }
+
+    if (texture-&gt;isImmutable() &amp;&amp; !isSubImage)
+    {
+        return gl::error(GL_INVALID_OPERATION, false);
+    }
+
+    if (textureIsDepth)
+    {
+        return gl::error(GL_INVALID_OPERATION, false);
+    }
+
+    if (textureCompressed)
+    {
+        if ((width % 4 != 0 &amp;&amp; width != textureLevelWidth) ||
+            (height % 4 != 0 &amp;&amp; height != textureLevelHeight))
+        {
+            return gl::error(GL_INVALID_OPERATION, false);
+        }
+    }
+
+    if (isSubImage)
+    {
+        if (xoffset + width &gt; textureLevelWidth ||
+            yoffset + height &gt; textureLevelHeight ||
+            zoffset &gt;= textureLevelDepth)
+        {
+            return gl::error(GL_INVALID_VALUE, false);
+        }
+
+        if (!gl::IsValidCopyTexImageCombination(textureInternalFormat, colorbufferInternalFormat, context-&gt;getReadFramebufferHandle(),
+                                                context-&gt;getClientVersion()))
+        {
+            return gl::error(GL_INVALID_OPERATION, false);
+        }
+    }
+    else
+    {
+        if (!gl::IsValidCopyTexImageCombination(internalformat, colorbufferInternalFormat, context-&gt;getReadFramebufferHandle(),
+                                                context-&gt;getClientVersion()))
+        {
+            return gl::error(GL_INVALID_OPERATION, false);
+        }
+    }
+
+
+
+    // If width or height is zero, it is a no-op.  Return false without setting an error.
+    return (width &gt; 0 &amp;&amp; height &gt; 0);
+}
+
+bool ValidateES3TexStorageParameters(gl::Context *context, GLenum target, GLsizei levels, GLenum internalformat,
+                                     GLsizei width, GLsizei height, GLsizei depth)
+{
+    if (width &lt; 1 || height &lt; 1 || depth &lt; 1 || levels &lt; 1)
+    {
+        return gl::error(GL_INVALID_VALUE, false);
+    }
+
+    if (levels &gt; gl::log2(std::max(std::max(width, height), depth)) + 1)
+    {
+        return gl::error(GL_INVALID_OPERATION, false);
+    }
+
+    gl::Texture *texture = NULL;
+    switch (target)
+    {
+      case GL_TEXTURE_2D:
+        {
+            texture = context-&gt;getTexture2D();
+
+            if (width &gt; (context-&gt;getMaximum2DTextureDimension()) ||
+                height &gt; (context-&gt;getMaximum2DTextureDimension()))
+            {
+                return gl::error(GL_INVALID_VALUE, false);
+            }
+        }
+        break;
+
+      case GL_TEXTURE_CUBE_MAP:
+        {
+            texture = context-&gt;getTextureCubeMap();
+
+            if (width != height)
+            {
+                return gl::error(GL_INVALID_VALUE, false);
+            }
+
+            if (width &gt; (context-&gt;getMaximumCubeTextureDimension()))
+            {
+                return gl::error(GL_INVALID_VALUE, false);
+            }
+        }
+        break;
+
+      case GL_TEXTURE_3D:
+        {
+            texture = context-&gt;getTexture3D();
+
+            if (width &gt; (context-&gt;getMaximum3DTextureDimension()) ||
+                height &gt; (context-&gt;getMaximum3DTextureDimension()) ||
+                depth &gt; (context-&gt;getMaximum3DTextureDimension()))
+            {
+                return gl::error(GL_INVALID_VALUE, false);
+            }
+        }
+        break;
+
+      case GL_TEXTURE_2D_ARRAY:
+        {
+            texture = context-&gt;getTexture2DArray();
+
+            if (width &gt; (context-&gt;getMaximum2DTextureDimension()) ||
+                height &gt; (context-&gt;getMaximum2DTextureDimension()) ||
+                depth &gt; (context-&gt;getMaximum2DArrayTextureLayers()))
+            {
+                return gl::error(GL_INVALID_VALUE, false);
+            }
+        }
+        break;
+
+      default:
+        return gl::error(GL_INVALID_ENUM, false);
+    }
+
+    if (!texture || texture-&gt;id() == 0)
+    {
+        return gl::error(GL_INVALID_OPERATION, false);
+    }
+
+    if (texture-&gt;isImmutable())
+    {
+        return gl::error(GL_INVALID_OPERATION, false);
+    }
+
+    if (!gl::IsValidInternalFormat(internalformat, context))
+    {
+        return gl::error(GL_INVALID_ENUM, false);
+    }
+
+    if (!gl::IsSizedInternalFormat(internalformat, context-&gt;getClientVersion()))
+    {
+        return gl::error(GL_INVALID_ENUM, false);
+    }
+
+    return true;
+}
+
+bool ValidateES3FramebufferTextureParameters(gl::Context *context, GLenum target, GLenum attachment,
+                                             GLenum textarget, GLuint texture, GLint level, GLint layer,
+                                             bool layerCall)
+{
+    if (target != GL_FRAMEBUFFER &amp;&amp; target != GL_DRAW_FRAMEBUFFER &amp;&amp; target != GL_READ_FRAMEBUFFER)
+    {
+        return gl::error(GL_INVALID_ENUM, false);
+    }
+
+    if (attachment &gt;= GL_COLOR_ATTACHMENT0 &amp;&amp; attachment &lt;= GL_COLOR_ATTACHMENT15)
+    {
+        const unsigned int colorAttachment = (attachment - GL_COLOR_ATTACHMENT0);
+        if (colorAttachment &gt;= context-&gt;getMaximumRenderTargets())
+        {
+            return gl::error(GL_INVALID_VALUE, false);
+        }
+    }
+    else
+    {
+        switch (attachment)
+        {
+          case GL_DEPTH_ATTACHMENT:
+          case GL_STENCIL_ATTACHMENT:
+          case GL_DEPTH_STENCIL_ATTACHMENT:
+            break;
+          default:
+            return gl::error(GL_INVALID_ENUM, false);
+        }
+    }
+
+    if (texture != 0)
+    {
+        gl::Texture *tex = context-&gt;getTexture(texture);
+
+        if (tex == NULL)
+        {
+            return gl::error(GL_INVALID_OPERATION, false);
+        }
+
+        if (level &lt; 0)
+        {
+            return gl::error(GL_INVALID_VALUE, false);
+        }
+
+        if (layer &lt; 0)
+        {
+            return gl::error(GL_INVALID_VALUE, false);
+        }
+
+        if (!layerCall)
+        {
+            switch (textarget)
+            {
+              case GL_TEXTURE_2D:
+                {
+                    if (level &gt; gl::log2(context-&gt;getMaximum2DTextureDimension()))
+                    {
+                        return gl::error(GL_INVALID_VALUE, false);
+                    }
+                    if (tex-&gt;getTarget() != GL_TEXTURE_2D)
+                    {
+                        return gl::error(GL_INVALID_OPERATION, false);
+                    }
+                    gl::Texture2D *tex2d = static_cast&lt;gl::Texture2D *&gt;(tex);
+                    if (tex2d-&gt;isCompressed(level))
+                    {
+                        return gl::error(GL_INVALID_OPERATION, false);
+                    }
+                    break;
+                }
+
+              case GL_TEXTURE_CUBE_MAP_POSITIVE_X:
+              case GL_TEXTURE_CUBE_MAP_NEGATIVE_X:
+              case GL_TEXTURE_CUBE_MAP_POSITIVE_Y:
+              case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y:
+              case GL_TEXTURE_CUBE_MAP_POSITIVE_Z:
+              case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z:
+                {
+                    if (level &gt; gl::log2(context-&gt;getMaximumCubeTextureDimension()))
+                    {
+                        return gl::error(GL_INVALID_VALUE, false);
+                    }
+                    if (tex-&gt;getTarget() != GL_TEXTURE_CUBE_MAP)
+                    {
+                        return gl::error(GL_INVALID_OPERATION, false);
+                    }
+                    gl::TextureCubeMap *texcube = static_cast&lt;gl::TextureCubeMap *&gt;(tex);
+                    if (texcube-&gt;isCompressed(textarget, level))
+                    {
+                        return gl::error(GL_INVALID_OPERATION, false);
+                    }
+                    break;
+                }
+
+              default:
+                return gl::error(GL_INVALID_ENUM, false);
+            }
+        }
+        else
+        {
+            switch (tex-&gt;getTarget())
+            {
+              case GL_TEXTURE_2D_ARRAY:
+                {
+                    if (level &gt; gl::log2(context-&gt;getMaximum2DTextureDimension()))
+                    {
+                        return gl::error(GL_INVALID_VALUE, false);
+                    }
+
+                    if (layer &gt;= context-&gt;getMaximum2DArrayTextureLayers())
+                    {
+                        return gl::error(GL_INVALID_VALUE, false);
+                    }
+
+                    gl::Texture2DArray *texArray = static_cast&lt;gl::Texture2DArray *&gt;(tex);
+                    if (texArray-&gt;isCompressed(level))
+                    {
+                        return gl::error(GL_INVALID_OPERATION, false);
+                    }
+
+                    break;
+                }
+
+              case GL_TEXTURE_3D:
+                {
+                    if (level &gt; gl::log2(context-&gt;getMaximum3DTextureDimension()))
+                    {
+                        return gl::error(GL_INVALID_VALUE, false);
+                    }
+
+                    if (layer &gt;= context-&gt;getMaximum3DTextureDimension())
+                    {
+                        return gl::error(GL_INVALID_VALUE, false);
+                    }
+
+                    gl::Texture3D *tex3d = static_cast&lt;gl::Texture3D *&gt;(tex);
+                    if (tex3d-&gt;isCompressed(level))
+                    {
+                        return gl::error(GL_INVALID_OPERATION, false);
+                    }
+
+                    break;
+                }
+
+              default:
+                return gl::error(GL_INVALID_OPERATION, false);
+            }
+        }
+    }
+
+    gl::Framebuffer *framebuffer = NULL;
+    GLuint framebufferHandle = 0;
+    if (target == GL_READ_FRAMEBUFFER)
+    {
+        framebuffer = context-&gt;getReadFramebuffer();
+        framebufferHandle = context-&gt;getReadFramebufferHandle();
+    }
+    else
+    {
+        framebuffer = context-&gt;getDrawFramebuffer();
+        framebufferHandle = context-&gt;getDrawFramebufferHandle();
+    }
+
+    if (framebufferHandle == 0 || !framebuffer)
+    {
+        return gl::error(GL_INVALID_OPERATION, false);
+    }
+
+    return true;
+}
+
+bool ValidES3ReadFormatType(gl::Context *context, GLenum internalFormat, GLenum format, GLenum type)
+{
+    switch (format)
+    {
+      case GL_RGBA:
+        switch (type)
+        {
+          case GL_UNSIGNED_BYTE:
+            break;
+          case GL_UNSIGNED_INT_2_10_10_10_REV:
+            if (internalFormat != GL_RGB10_A2)
+            {
+                return false;
+            }
+            break;
+          case GL_FLOAT:
+            if (gl::GetComponentType(internalFormat, 3) != GL_FLOAT)
+            {
+                return false;
+            }
+            break;
+          default:
+            return false;
+        }
+        break;
+      case GL_RGBA_INTEGER:
+        switch (type)
+        {
+          case GL_INT:
+            if (gl::GetComponentType(internalFormat, 3) != GL_INT)
+            {
+                return false;
+            }
+            break;
+          case GL_UNSIGNED_INT:
+            if (gl::GetComponentType(internalFormat, 3) != GL_UNSIGNED_INT)
+            {
+                return false;
+            }
+            break;
+          default:
+            return false;
+        }
+        break;
+      case GL_BGRA_EXT:
+        switch (type)
+        {
+          case GL_UNSIGNED_BYTE:
+          case GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT:
+          case GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT:
+            break;
+          default:
+            return false;
+        }
+        break;
+      case GL_RG_EXT:
+      case GL_RED_EXT:
+        if (!context-&gt;supportsRGTextures())
+        {
+            return false;
+        }
+        switch (type)
+        {
+        case GL_UNSIGNED_BYTE:
+            break;
+        default:
+            return false;
+        }
+        break;
+      default:
+        return false;
+    }
+    return true;
+}
+
+bool ValidateInvalidateFramebufferParameters(gl::Context *context, GLenum target, GLsizei numAttachments,
+                                             const GLenum* attachments)
+{
+    bool defaultFramebuffer = false;
+
+    switch (target)
+    {
+      case GL_DRAW_FRAMEBUFFER:
+      case GL_FRAMEBUFFER:
+        defaultFramebuffer = context-&gt;getDrawFramebufferHandle() == 0;
+        break;
+      case GL_READ_FRAMEBUFFER:
+        defaultFramebuffer = context-&gt;getReadFramebufferHandle() == 0;
+        break;
+      default:
+        return gl::error(GL_INVALID_ENUM, false);
+    }
+
+    for (int i = 0; i &lt; numAttachments; ++i)
+    {
+        if (attachments[i] &gt;= GL_COLOR_ATTACHMENT0 &amp;&amp; attachments[i] &lt;= GL_COLOR_ATTACHMENT15)
+        {
+            if (defaultFramebuffer)
+            {
+                return gl::error(GL_INVALID_ENUM, false);
+            }
+
+            if (attachments[i] &gt;= GL_COLOR_ATTACHMENT0 + context-&gt;getMaximumRenderTargets())
+            {
+                return gl::error(GL_INVALID_OPERATION, false);
+            }
+        }
+        else
+        {
+            switch (attachments[i])
+            {
+              case GL_DEPTH_ATTACHMENT:
+              case GL_STENCIL_ATTACHMENT:
+              case GL_DEPTH_STENCIL_ATTACHMENT:
+                if (defaultFramebuffer)
+                {
+                    return gl::error(GL_INVALID_ENUM, false);
+                }
+                break;
+              case GL_COLOR:
+              case GL_DEPTH:
+              case GL_STENCIL:
+                if (!defaultFramebuffer)
+                {
+                    return gl::error(GL_INVALID_ENUM, false);
+                }
+                break;
+              default:
+                return gl::error(GL_INVALID_ENUM, false);
+            }
+        }
+    }
+
+    return true;
+}
+
+}
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEsrclibGLESv2validationES3h"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/ANGLE/src/libGLESv2/validationES3.h (0 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/src/libGLESv2/validationES3.h                                (rev 0)
+++ trunk/Source/ThirdParty/ANGLE/src/libGLESv2/validationES3.h        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -0,0 +1,39 @@
</span><ins>+//
+// Copyright (c) 2013 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+
+// validationES3.h: Validation functions for OpenGL ES 3.0 entry point parameters
+
+#ifndef LIBGLESV2_VALIDATION_ES3_H
+#define LIBGLESV2_VALIDATION_ES3_H
+
+namespace gl
+{
+
+class Context;
+
+bool ValidateES3TexImageParameters(gl::Context *context, GLenum target, GLint level, GLenum internalformat, bool isCompressed, bool isSubImage,
+                                   GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth,
+                                   GLint border, GLenum format, GLenum type, const GLvoid *pixels);
+
+bool ValidateES3CopyTexImageParameters(gl::Context *context, GLenum target, GLint level, GLenum internalformat,
+                                       bool isSubImage, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y,
+                                       GLsizei width, GLsizei height, GLint border);
+
+bool ValidateES3TexStorageParameters(gl::Context *context, GLenum target, GLsizei levels, GLenum internalformat,
+                                     GLsizei width, GLsizei height, GLsizei depth);
+
+bool ValidateES3FramebufferTextureParameters(gl::Context *context, GLenum target, GLenum attachment,
+                                             GLenum textarget, GLuint texture, GLint level, GLint layer,
+                                             bool layerCall);
+
+bool ValidES3ReadFormatType(gl::Context *context, GLenum internalFormat, GLenum format, GLenum type);
+
+bool ValidateInvalidateFramebufferParameters(gl::Context *context, GLenum target, GLsizei numAttachments,
+                                             const GLenum* attachments);
+
+}
+
+#endif // LIBGLESV2_VALIDATION_ES3_H
</ins></span></pre></div>
<a id="trunkSourceWebCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/CMakeLists.txt (168114 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/CMakeLists.txt        2014-05-01 19:23:29 UTC (rev 168114)
+++ trunk/Source/WebCore/CMakeLists.txt        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -3062,7 +3062,6 @@
</span><span class="cx">         ${THIRDPARTY_DIR}/ANGLE/src/compiler/translator/TranslatorHLSL.cpp
</span><span class="cx">         ${THIRDPARTY_DIR}/ANGLE/src/compiler/translator/UnfoldShortCircuit.cpp
</span><span class="cx">         ${THIRDPARTY_DIR}/ANGLE/src/compiler/translator/UnfoldShortCircuitAST.cpp
</span><del>-        ${THIRDPARTY_DIR}/ANGLE/src/compiler/translator/Uniform.cpp
</del><span class="cx">         ${THIRDPARTY_DIR}/ANGLE/src/compiler/translator/ValidateOutputs.cpp
</span><span class="cx">         ${THIRDPARTY_DIR}/ANGLE/src/compiler/translator/ValidateLimitations.cpp
</span><span class="cx">         ${THIRDPARTY_DIR}/ANGLE/src/compiler/translator/VariableInfo.cpp
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (168114 => 168115)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-05-01 19:23:29 UTC (rev 168114)
+++ trunk/Source/WebCore/ChangeLog        2014-05-01 19:24:46 UTC (rev 168115)
</span><span class="lines">@@ -1,3 +1,13 @@
</span><ins>+2014-05-01  Alex Christensen  &lt;achristensen@webkit.org&gt;
+
+        Finish updating ANGLE.
+        https://bugs.webkit.org/show_bug.cgi?id=132434
+
+        Reviewed by Dean Jackson.
+
+        * CMakeLists.txt:
+        Removed Uniform.cpp which is no longer in ANGLE.
+
</ins><span class="cx"> 2014-05-01  David Hyatt  &lt;hyatt@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         REGRESSION (new multi-column): WebKit2.ResizeReversePaginatedWebView fails on debug bots
</span></span></pre>
</div>
</div>

</body>
</html>