Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(417)

Side by Side Diff: cc/ShaderChromium.cpp

Issue 11048044: cc: Switch to Chromium DCHECKs and LOGs (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 8 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "config.h" 5 #include "config.h"
6 6
7 #if USE(ACCELERATED_COMPOSITING) 7 #if USE(ACCELERATED_COMPOSITING)
8 8
9 #include "ShaderChromium.h" 9 #include "ShaderChromium.h"
10 10
11 #include "base/logging.h"
11 #include <public/WebGraphicsContext3D.h> 12 #include <public/WebGraphicsContext3D.h>
12 #include <wtf/StdLibExtras.h> 13 #include <wtf/StdLibExtras.h>
13 14
14 #define SHADER0(Src) #Src 15 #define SHADER0(Src) #Src
15 #define SHADER(Src) SHADER0(Src) 16 #define SHADER(Src) SHADER0(Src)
16 17
17 using WebKit::WebGraphicsContext3D; 18 using WebKit::WebGraphicsContext3D;
18 19
19 namespace cc { 20 namespace cc {
20 21
21 namespace { 22 namespace {
22 23
23 static void getProgramUniformLocations(WebGraphicsContext3D* context, unsigned p rogram, const char** shaderUniforms, size_t count, size_t maxLocations, int* loc ations, bool usingBindUniform, int* baseUniformIndex) 24 static void getProgramUniformLocations(WebGraphicsContext3D* context, unsigned p rogram, const char** shaderUniforms, size_t count, size_t maxLocations, int* loc ations, bool usingBindUniform, int* baseUniformIndex)
24 { 25 {
25 for (size_t uniformIndex = 0; uniformIndex < count; uniformIndex ++) { 26 for (size_t uniformIndex = 0; uniformIndex < count; uniformIndex ++) {
26 ASSERT(uniformIndex < maxLocations); 27 DCHECK(uniformIndex < maxLocations);
27 28
28 if (usingBindUniform) { 29 if (usingBindUniform) {
29 locations[uniformIndex] = (*baseUniformIndex)++; 30 locations[uniformIndex] = (*baseUniformIndex)++;
30 context->bindUniformLocationCHROMIUM(program, locations[uniformIndex ], shaderUniforms[uniformIndex]); 31 context->bindUniformLocationCHROMIUM(program, locations[uniformIndex ], shaderUniforms[uniformIndex]);
31 } else 32 } else
32 locations[uniformIndex] = context->getUniformLocation(program, shade rUniforms[uniformIndex]); 33 locations[uniformIndex] = context->getUniformLocation(program, shade rUniforms[uniformIndex]);
33 } 34 }
34 } 35 }
35 36
36 } 37 }
37 38
38 VertexShaderPosTex::VertexShaderPosTex() 39 VertexShaderPosTex::VertexShaderPosTex()
39 : m_matrixLocation(-1) 40 : m_matrixLocation(-1)
40 { 41 {
41 } 42 }
42 43
43 void VertexShaderPosTex::init(WebGraphicsContext3D* context, unsigned program, b ool usingBindUniform, int* baseUniformIndex) 44 void VertexShaderPosTex::init(WebGraphicsContext3D* context, unsigned program, b ool usingBindUniform, int* baseUniformIndex)
44 { 45 {
45 static const char* shaderUniforms[] = { 46 static const char* shaderUniforms[] = {
46 "matrix", 47 "matrix",
47 }; 48 };
48 int locations[1]; 49 int locations[1];
49 50
50 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGT H(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, bas eUniformIndex); 51 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGT H(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, bas eUniformIndex);
51 52
52 m_matrixLocation = locations[0]; 53 m_matrixLocation = locations[0];
53 ASSERT(m_matrixLocation != -1); 54 DCHECK(m_matrixLocation != -1);
54 } 55 }
55 56
56 std::string VertexShaderPosTex::getShaderString() const 57 std::string VertexShaderPosTex::getShaderString() const
57 { 58 {
58 return SHADER( 59 return SHADER(
59 attribute vec4 a_position; 60 attribute vec4 a_position;
60 attribute vec2 a_texCoord; 61 attribute vec2 a_texCoord;
61 uniform mat4 matrix; 62 uniform mat4 matrix;
62 varying vec2 v_texCoord; 63 varying vec2 v_texCoord;
63 void main() 64 void main()
(...skipping 18 matching lines...) Expand all
82 "y_widthScaleFactor", 83 "y_widthScaleFactor",
83 "uv_widthScaleFactor", 84 "uv_widthScaleFactor",
84 }; 85 };
85 int locations[3]; 86 int locations[3];
86 87
87 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGT H(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, bas eUniformIndex); 88 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGT H(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, bas eUniformIndex);
88 89
89 m_matrixLocation = locations[0]; 90 m_matrixLocation = locations[0];
90 m_yWidthScaleFactorLocation = locations[1]; 91 m_yWidthScaleFactorLocation = locations[1];
91 m_uvWidthScaleFactorLocation = locations[2]; 92 m_uvWidthScaleFactorLocation = locations[2];
92 ASSERT(m_matrixLocation != -1 && m_yWidthScaleFactorLocation != -1 && m_uvWi dthScaleFactorLocation != -1); 93 DCHECK(m_matrixLocation != -1 && m_yWidthScaleFactorLocation != -1 && m_uvWi dthScaleFactorLocation != -1);
93 } 94 }
94 95
95 std::string VertexShaderPosTexYUVStretch::getShaderString() const 96 std::string VertexShaderPosTexYUVStretch::getShaderString() const
96 { 97 {
97 return SHADER( 98 return SHADER(
98 precision mediump float; 99 precision mediump float;
99 attribute vec4 a_position; 100 attribute vec4 a_position;
100 attribute vec2 a_texCoord; 101 attribute vec2 a_texCoord;
101 uniform mat4 matrix; 102 uniform mat4 matrix;
102 varying vec2 y_texCoord; 103 varying vec2 y_texCoord;
(...skipping 17 matching lines...) Expand all
120 void VertexShaderPos::init(WebGraphicsContext3D* context, unsigned program, bool usingBindUniform, int* baseUniformIndex) 121 void VertexShaderPos::init(WebGraphicsContext3D* context, unsigned program, bool usingBindUniform, int* baseUniformIndex)
121 { 122 {
122 static const char* shaderUniforms[] = { 123 static const char* shaderUniforms[] = {
123 "matrix", 124 "matrix",
124 }; 125 };
125 int locations[1]; 126 int locations[1];
126 127
127 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGT H(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, bas eUniformIndex); 128 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGT H(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, bas eUniformIndex);
128 129
129 m_matrixLocation = locations[0]; 130 m_matrixLocation = locations[0];
130 ASSERT(m_matrixLocation != -1); 131 DCHECK(m_matrixLocation != -1);
131 } 132 }
132 133
133 std::string VertexShaderPos::getShaderString() const 134 std::string VertexShaderPos::getShaderString() const
134 { 135 {
135 return SHADER( 136 return SHADER(
136 attribute vec4 a_position; 137 attribute vec4 a_position;
137 uniform mat4 matrix; 138 uniform mat4 matrix;
138 void main() 139 void main()
139 { 140 {
140 gl_Position = matrix * a_position; 141 gl_Position = matrix * a_position;
(...skipping 12 matching lines...) Expand all
153 static const char* shaderUniforms[] = { 154 static const char* shaderUniforms[] = {
154 "matrix", 155 "matrix",
155 "texTransform", 156 "texTransform",
156 }; 157 };
157 int locations[2]; 158 int locations[2];
158 159
159 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGT H(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, bas eUniformIndex); 160 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGT H(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, bas eUniformIndex);
160 161
161 m_matrixLocation = locations[0]; 162 m_matrixLocation = locations[0];
162 m_texTransformLocation = locations[1]; 163 m_texTransformLocation = locations[1];
163 ASSERT(m_matrixLocation != -1 && m_texTransformLocation != -1); 164 DCHECK(m_matrixLocation != -1 && m_texTransformLocation != -1);
164 } 165 }
165 166
166 std::string VertexShaderPosTexTransform::getShaderString() const 167 std::string VertexShaderPosTexTransform::getShaderString() const
167 { 168 {
168 return SHADER( 169 return SHADER(
169 attribute vec4 a_position; 170 attribute vec4 a_position;
170 attribute vec2 a_texCoord; 171 attribute vec2 a_texCoord;
171 uniform mat4 matrix; 172 uniform mat4 matrix;
172 uniform vec4 texTransform; 173 uniform vec4 texTransform;
173 varying vec2 v_texCoord; 174 varying vec2 v_texCoord;
(...skipping 29 matching lines...) Expand all
203 static const char* shaderUniforms[] = { 204 static const char* shaderUniforms[] = {
204 "matrix", 205 "matrix",
205 "point", 206 "point",
206 }; 207 };
207 int locations[2]; 208 int locations[2];
208 209
209 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGT H(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, bas eUniformIndex); 210 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGT H(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, bas eUniformIndex);
210 211
211 m_matrixLocation = locations[0]; 212 m_matrixLocation = locations[0];
212 m_pointLocation = locations[1]; 213 m_pointLocation = locations[1];
213 ASSERT(m_matrixLocation != -1 && m_pointLocation != -1); 214 DCHECK(m_matrixLocation != -1 && m_pointLocation != -1);
214 } 215 }
215 216
216 std::string VertexShaderQuad::getShaderString() const 217 std::string VertexShaderQuad::getShaderString() const
217 { 218 {
218 return SHADER( 219 return SHADER(
219 attribute vec4 a_position; 220 attribute vec4 a_position;
220 attribute vec2 a_texCoord; 221 attribute vec2 a_texCoord;
221 uniform mat4 matrix; 222 uniform mat4 matrix;
222 uniform vec2 point[4]; 223 uniform vec2 point[4];
223 varying vec2 v_texCoord; 224 varying vec2 v_texCoord;
(...skipping 25 matching lines...) Expand all
249 "point", 250 "point",
250 "vertexTexTransform", 251 "vertexTexTransform",
251 }; 252 };
252 int locations[3]; 253 int locations[3];
253 254
254 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGT H(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, bas eUniformIndex); 255 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGT H(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, bas eUniformIndex);
255 256
256 m_matrixLocation = locations[0]; 257 m_matrixLocation = locations[0];
257 m_pointLocation = locations[1]; 258 m_pointLocation = locations[1];
258 m_vertexTexTransformLocation = locations[2]; 259 m_vertexTexTransformLocation = locations[2];
259 ASSERT(m_matrixLocation != -1 && m_pointLocation != -1 && m_vertexTexTransfo rmLocation != -1); 260 DCHECK(m_matrixLocation != -1 && m_pointLocation != -1 && m_vertexTexTransfo rmLocation != -1);
260 } 261 }
261 262
262 std::string VertexShaderTile::getShaderString() const 263 std::string VertexShaderTile::getShaderString() const
263 { 264 {
264 return SHADER( 265 return SHADER(
265 attribute vec4 a_position; 266 attribute vec4 a_position;
266 attribute vec2 a_texCoord; 267 attribute vec2 a_texCoord;
267 uniform mat4 matrix; 268 uniform mat4 matrix;
268 uniform vec2 point[4]; 269 uniform vec2 point[4];
269 uniform vec4 vertexTexTransform; 270 uniform vec4 vertexTexTransform;
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
330 static const char* shaderUniforms[] = { 331 static const char* shaderUniforms[] = {
331 "s_texture", 332 "s_texture",
332 "alpha", 333 "alpha",
333 }; 334 };
334 int locations[2]; 335 int locations[2];
335 336
336 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGT H(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, bas eUniformIndex); 337 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGT H(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, bas eUniformIndex);
337 338
338 m_samplerLocation = locations[0]; 339 m_samplerLocation = locations[0];
339 m_alphaLocation = locations[1]; 340 m_alphaLocation = locations[1];
340 ASSERT(m_samplerLocation != -1 && m_alphaLocation != -1); 341 DCHECK(m_samplerLocation != -1 && m_alphaLocation != -1);
341 } 342 }
342 343
343 FragmentTexOpaqueBinding::FragmentTexOpaqueBinding() 344 FragmentTexOpaqueBinding::FragmentTexOpaqueBinding()
344 : m_samplerLocation(-1) 345 : m_samplerLocation(-1)
345 { 346 {
346 } 347 }
347 348
348 void FragmentTexOpaqueBinding::init(WebGraphicsContext3D* context, unsigned prog ram, bool usingBindUniform, int* baseUniformIndex) 349 void FragmentTexOpaqueBinding::init(WebGraphicsContext3D* context, unsigned prog ram, bool usingBindUniform, int* baseUniformIndex)
349 { 350 {
350 static const char* shaderUniforms[] = { 351 static const char* shaderUniforms[] = {
351 "s_texture", 352 "s_texture",
352 }; 353 };
353 int locations[1]; 354 int locations[1];
354 355
355 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGT H(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, bas eUniformIndex); 356 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGT H(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, bas eUniformIndex);
356 357
357 m_samplerLocation = locations[0]; 358 m_samplerLocation = locations[0];
358 ASSERT(m_samplerLocation != -1); 359 DCHECK(m_samplerLocation != -1);
359 } 360 }
360 361
361 std::string FragmentShaderRGBATexFlipAlpha::getShaderString() const 362 std::string FragmentShaderRGBATexFlipAlpha::getShaderString() const
362 { 363 {
363 return SHADER( 364 return SHADER(
364 precision mediump float; 365 precision mediump float;
365 varying vec2 v_texCoord; 366 varying vec2 v_texCoord;
366 uniform sampler2D s_texture; 367 uniform sampler2D s_texture;
367 uniform float alpha; 368 uniform float alpha;
368 void main() 369 void main()
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
516 "alpha", 517 "alpha",
517 "edge", 518 "edge",
518 }; 519 };
519 int locations[3]; 520 int locations[3];
520 521
521 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGT H(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, bas eUniformIndex); 522 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGT H(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, bas eUniformIndex);
522 523
523 m_samplerLocation = locations[0]; 524 m_samplerLocation = locations[0];
524 m_alphaLocation = locations[1]; 525 m_alphaLocation = locations[1];
525 m_edgeLocation = locations[2]; 526 m_edgeLocation = locations[2];
526 ASSERT(m_samplerLocation != -1 && m_alphaLocation != -1 && m_edgeLocation != -1); 527 DCHECK(m_samplerLocation != -1 && m_alphaLocation != -1 && m_edgeLocation != -1);
527 } 528 }
528 529
529 std::string FragmentShaderRGBATexAlphaAA::getShaderString() const 530 std::string FragmentShaderRGBATexAlphaAA::getShaderString() const
530 { 531 {
531 return SHADER( 532 return SHADER(
532 precision mediump float; 533 precision mediump float;
533 varying vec2 v_texCoord; 534 varying vec2 v_texCoord;
534 uniform sampler2D s_texture; 535 uniform sampler2D s_texture;
535 uniform float alpha; 536 uniform float alpha;
536 uniform vec3 edge[8]; 537 uniform vec3 edge[8];
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
568 "edge", 569 "edge",
569 }; 570 };
570 int locations[4]; 571 int locations[4];
571 572
572 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGT H(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, bas eUniformIndex); 573 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGT H(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, bas eUniformIndex);
573 574
574 m_samplerLocation = locations[0]; 575 m_samplerLocation = locations[0];
575 m_alphaLocation = locations[1]; 576 m_alphaLocation = locations[1];
576 m_fragmentTexTransformLocation = locations[2]; 577 m_fragmentTexTransformLocation = locations[2];
577 m_edgeLocation = locations[3]; 578 m_edgeLocation = locations[3];
578 ASSERT(m_samplerLocation != -1 && m_alphaLocation != -1 && m_fragmentTexTran sformLocation != -1 && m_edgeLocation != -1); 579 DCHECK(m_samplerLocation != -1 && m_alphaLocation != -1 && m_fragmentTexTran sformLocation != -1 && m_edgeLocation != -1);
579 } 580 }
580 581
581 std::string FragmentShaderRGBATexClampAlphaAA::getShaderString() const 582 std::string FragmentShaderRGBATexClampAlphaAA::getShaderString() const
582 { 583 {
583 return SHADER( 584 return SHADER(
584 precision mediump float; 585 precision mediump float;
585 varying vec2 v_texCoord; 586 varying vec2 v_texCoord;
586 uniform sampler2D s_texture; 587 uniform sampler2D s_texture;
587 uniform float alpha; 588 uniform float alpha;
588 uniform vec4 fragmentTexTransform; 589 uniform vec4 fragmentTexTransform;
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
651 }; 652 };
652 int locations[5]; 653 int locations[5];
653 654
654 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGT H(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, bas eUniformIndex); 655 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGT H(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, bas eUniformIndex);
655 656
656 m_samplerLocation = locations[0]; 657 m_samplerLocation = locations[0];
657 m_maskSamplerLocation = locations[1]; 658 m_maskSamplerLocation = locations[1];
658 m_alphaLocation = locations[2]; 659 m_alphaLocation = locations[2];
659 m_maskTexCoordScaleLocation = locations[3]; 660 m_maskTexCoordScaleLocation = locations[3];
660 m_maskTexCoordOffsetLocation = locations[4]; 661 m_maskTexCoordOffsetLocation = locations[4];
661 ASSERT(m_samplerLocation != -1 && m_maskSamplerLocation != -1 && m_alphaLoca tion != -1); 662 DCHECK(m_samplerLocation != -1 && m_maskSamplerLocation != -1 && m_alphaLoca tion != -1);
662 } 663 }
663 664
664 std::string FragmentShaderRGBATexAlphaMask::getShaderString() const 665 std::string FragmentShaderRGBATexAlphaMask::getShaderString() const
665 { 666 {
666 return SHADER( 667 return SHADER(
667 precision mediump float; 668 precision mediump float;
668 varying vec2 v_texCoord; 669 varying vec2 v_texCoord;
669 uniform sampler2D s_texture; 670 uniform sampler2D s_texture;
670 uniform sampler2D s_mask; 671 uniform sampler2D s_mask;
671 uniform vec2 maskTexCoordScale; 672 uniform vec2 maskTexCoordScale;
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
703 int locations[6]; 704 int locations[6];
704 705
705 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGT H(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, bas eUniformIndex); 706 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGT H(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, bas eUniformIndex);
706 707
707 m_samplerLocation = locations[0]; 708 m_samplerLocation = locations[0];
708 m_maskSamplerLocation = locations[1]; 709 m_maskSamplerLocation = locations[1];
709 m_alphaLocation = locations[2]; 710 m_alphaLocation = locations[2];
710 m_edgeLocation = locations[3]; 711 m_edgeLocation = locations[3];
711 m_maskTexCoordScaleLocation = locations[4]; 712 m_maskTexCoordScaleLocation = locations[4];
712 m_maskTexCoordOffsetLocation = locations[5]; 713 m_maskTexCoordOffsetLocation = locations[5];
713 ASSERT(m_samplerLocation != -1 && m_maskSamplerLocation != -1 && m_alphaLoca tion != -1 && m_edgeLocation != -1); 714 DCHECK(m_samplerLocation != -1 && m_maskSamplerLocation != -1 && m_alphaLoca tion != -1 && m_edgeLocation != -1);
714 } 715 }
715 716
716 std::string FragmentShaderRGBATexAlphaMaskAA::getShaderString() const 717 std::string FragmentShaderRGBATexAlphaMaskAA::getShaderString() const
717 { 718 {
718 return SHADER( 719 return SHADER(
719 precision mediump float; 720 precision mediump float;
720 varying vec2 v_texCoord; 721 varying vec2 v_texCoord;
721 uniform sampler2D s_texture; 722 uniform sampler2D s_texture;
722 uniform sampler2D s_mask; 723 uniform sampler2D s_mask;
723 uniform vec2 maskTexCoordScale; 724 uniform vec2 maskTexCoordScale;
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
767 768
768 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGT H(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, bas eUniformIndex); 769 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGT H(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, bas eUniformIndex);
769 770
770 m_yTextureLocation = locations[0]; 771 m_yTextureLocation = locations[0];
771 m_uTextureLocation = locations[1]; 772 m_uTextureLocation = locations[1];
772 m_vTextureLocation = locations[2]; 773 m_vTextureLocation = locations[2];
773 m_alphaLocation = locations[3]; 774 m_alphaLocation = locations[3];
774 m_ccMatrixLocation = locations[4]; 775 m_ccMatrixLocation = locations[4];
775 m_yuvAdjLocation = locations[5]; 776 m_yuvAdjLocation = locations[5];
776 777
777 ASSERT(m_yTextureLocation != -1 && m_uTextureLocation != -1 && m_vTextureLoc ation != -1 778 DCHECK(m_yTextureLocation != -1 && m_uTextureLocation != -1 && m_vTextureLoc ation != -1
778 && m_alphaLocation != -1 && m_ccMatrixLocation != -1 && m_yuvAdjLocat ion != -1); 779 && m_alphaLocation != -1 && m_ccMatrixLocation != -1 && m_yuvAdjLocat ion != -1);
779 } 780 }
780 781
781 std::string FragmentShaderYUVVideo::getShaderString() const 782 std::string FragmentShaderYUVVideo::getShaderString() const
782 { 783 {
783 return SHADER( 784 return SHADER(
784 precision mediump float; 785 precision mediump float;
785 precision mediump int; 786 precision mediump int;
786 varying vec2 y_texCoord; 787 varying vec2 y_texCoord;
787 varying vec2 uv_texCoord; 788 varying vec2 uv_texCoord;
(...skipping 23 matching lines...) Expand all
811 void FragmentShaderColor::init(WebGraphicsContext3D* context, unsigned program, bool usingBindUniform, int* baseUniformIndex) 812 void FragmentShaderColor::init(WebGraphicsContext3D* context, unsigned program, bool usingBindUniform, int* baseUniformIndex)
812 { 813 {
813 static const char* shaderUniforms[] = { 814 static const char* shaderUniforms[] = {
814 "color", 815 "color",
815 }; 816 };
816 int locations[1]; 817 int locations[1];
817 818
818 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGT H(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, bas eUniformIndex); 819 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGT H(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, bas eUniformIndex);
819 820
820 m_colorLocation = locations[0]; 821 m_colorLocation = locations[0];
821 ASSERT(m_colorLocation != -1); 822 DCHECK(m_colorLocation != -1);
822 } 823 }
823 824
824 std::string FragmentShaderColor::getShaderString() const 825 std::string FragmentShaderColor::getShaderString() const
825 { 826 {
826 return SHADER( 827 return SHADER(
827 precision mediump float; 828 precision mediump float;
828 uniform vec4 color; 829 uniform vec4 color;
829 void main() 830 void main()
830 { 831 {
831 gl_FragColor = color; 832 gl_FragColor = color;
(...skipping 17 matching lines...) Expand all
849 "color", 850 "color",
850 }; 851 };
851 int locations[4]; 852 int locations[4];
852 853
853 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGT H(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, bas eUniformIndex); 854 getProgramUniformLocations(context, program, shaderUniforms, WTF_ARRAY_LENGT H(shaderUniforms), WTF_ARRAY_LENGTH(locations), locations, usingBindUniform, bas eUniformIndex);
854 855
855 m_alphaLocation = locations[0]; 856 m_alphaLocation = locations[0];
856 m_texTransformLocation = locations[1]; 857 m_texTransformLocation = locations[1];
857 m_frequencyLocation = locations[2]; 858 m_frequencyLocation = locations[2];
858 m_colorLocation = locations[3]; 859 m_colorLocation = locations[3];
859 ASSERT(m_alphaLocation != -1 && m_texTransformLocation != -1 && m_frequencyL ocation != -1 && m_colorLocation != -1); 860 DCHECK(m_alphaLocation != -1 && m_texTransformLocation != -1 && m_frequencyL ocation != -1 && m_colorLocation != -1);
860 } 861 }
861 862
862 std::string FragmentShaderCheckerboard::getShaderString() const 863 std::string FragmentShaderCheckerboard::getShaderString() const
863 { 864 {
864 // Shader based on Example 13-17 of "OpenGL ES 2.0 Programming Guide" 865 // Shader based on Example 13-17 of "OpenGL ES 2.0 Programming Guide"
865 // by Munshi, Ginsburg, Shreiner. 866 // by Munshi, Ginsburg, Shreiner.
866 return SHADER( 867 return SHADER(
867 precision mediump float; 868 precision mediump float;
868 precision mediump int; 869 precision mediump int;
869 varying vec2 v_texCoord; 870 varying vec2 v_texCoord;
870 uniform float alpha; 871 uniform float alpha;
871 uniform float frequency; 872 uniform float frequency;
872 uniform vec4 texTransform; 873 uniform vec4 texTransform;
873 uniform vec4 color; 874 uniform vec4 color;
874 void main() 875 void main()
875 { 876 {
876 vec4 color1 = vec4(1.0, 1.0, 1.0, 1.0); 877 vec4 color1 = vec4(1.0, 1.0, 1.0, 1.0);
877 vec4 color2 = color; 878 vec4 color2 = color;
878 vec2 texCoord = clamp(v_texCoord, 0.0, 1.0) * texTransform.zw + texT ransform.xy; 879 vec2 texCoord = clamp(v_texCoord, 0.0, 1.0) * texTransform.zw + texT ransform.xy;
879 vec2 coord = mod(floor(texCoord * frequency * 2.0), 2.0); 880 vec2 coord = mod(floor(texCoord * frequency * 2.0), 2.0);
880 float picker = abs(coord.x - coord.y); 881 float picker = abs(coord.x - coord.y);
881 gl_FragColor = mix(color1, color2, picker) * alpha; 882 gl_FragColor = mix(color1, color2, picker) * alpha;
882 } 883 }
883 ); 884 );
884 } 885 }
885 886
886 } // namespace cc 887 } // namespace cc
887 888
888 #endif // USE(ACCELERATED_COMPOSITING) 889 #endif // USE(ACCELERATED_COMPOSITING)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698