OLD | NEW |
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 #ifndef CC_OUTPUT_SHADER_H_ | 5 #ifndef CC_OUTPUT_SHADER_H_ |
6 #define CC_OUTPUT_SHADER_H_ | 6 #define CC_OUTPUT_SHADER_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 | 9 |
| 10 #include "base/logging.h" |
10 #include "base/macros.h" | 11 #include "base/macros.h" |
11 #include "cc/base/cc_export.h" | 12 #include "cc/base/cc_export.h" |
12 | 13 |
13 namespace gfx { | 14 namespace gfx { |
14 class Point; | 15 class Point; |
15 class Size; | 16 class Size; |
16 } | 17 } |
17 | 18 |
18 namespace gpu { | 19 namespace gpu { |
19 namespace gles2 { | 20 namespace gles2 { |
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
228 bool has_vertex_opacity_ = false; | 229 bool has_vertex_opacity_ = false; |
229 int vertex_opacity_location_ = -1; | 230 int vertex_opacity_location_ = -1; |
230 | 231 |
231 AAMode aa_mode_ = NO_AA; | 232 AAMode aa_mode_ = NO_AA; |
232 int viewport_location_ = -1; | 233 int viewport_location_ = -1; |
233 int edge_location_ = -1; | 234 int edge_location_ = -1; |
234 }; | 235 }; |
235 | 236 |
236 class VertexShaderPosTex : public VertexShaderBase { | 237 class VertexShaderPosTex : public VertexShaderBase { |
237 public: | 238 public: |
238 void SetSubclassProperties() { | 239 void CheckSubclassProperties() { |
239 tex_coord_source_ = TEX_COORD_SOURCE_ATTRIBUTE; | 240 DCHECK_EQ(tex_coord_source_, TEX_COORD_SOURCE_ATTRIBUTE); |
240 has_matrix_ = true; | 241 DCHECK_EQ(has_matrix_, true); |
| 242 |
| 243 DCHECK_EQ(use_uniform_arrays_, false); |
| 244 DCHECK_EQ(position_source_, POSITION_SOURCE_ATTRIBUTE); |
| 245 DCHECK_EQ(tex_coord_transform_, TEX_COORD_TRANSFORM_NONE); |
| 246 DCHECK_EQ(is_ya_uv_, false); |
| 247 DCHECK_EQ(has_dummy_variables_, false); |
| 248 DCHECK_EQ(has_vertex_opacity_, false); |
| 249 DCHECK_EQ(aa_mode_, NO_AA); |
241 } | 250 } |
242 }; | 251 }; |
243 | 252 |
244 class VertexShaderPosTexYUVStretchOffset : public VertexShaderBase { | 253 class VertexShaderPosTexYUVStretchOffset : public VertexShaderBase { |
245 public: | 254 public: |
246 void SetSubclassProperties() { | 255 void CheckSubclassProperties() { |
247 tex_coord_source_ = TEX_COORD_SOURCE_ATTRIBUTE; | 256 DCHECK_EQ(tex_coord_source_, TEX_COORD_SOURCE_ATTRIBUTE); |
248 has_matrix_ = true; | 257 DCHECK_EQ(has_matrix_, true); |
249 is_ya_uv_ = true; | 258 DCHECK_EQ(is_ya_uv_, true); |
| 259 |
| 260 DCHECK_EQ(use_uniform_arrays_, false); |
| 261 DCHECK_EQ(position_source_, POSITION_SOURCE_ATTRIBUTE); |
| 262 DCHECK_EQ(tex_coord_transform_, TEX_COORD_TRANSFORM_NONE); |
| 263 DCHECK_EQ(has_dummy_variables_, false); |
| 264 DCHECK_EQ(has_vertex_opacity_, false); |
| 265 DCHECK_EQ(aa_mode_, NO_AA); |
250 } | 266 } |
251 }; | 267 }; |
252 | 268 |
253 class VertexShaderPos : public VertexShaderBase { | 269 class VertexShaderPos : public VertexShaderBase { |
254 public: | 270 public: |
255 void SetSubclassProperties() { has_matrix_ = true; } | 271 void CheckSubclassProperties() { |
| 272 DCHECK_EQ(has_matrix_, true); |
| 273 |
| 274 DCHECK_EQ(position_source_, POSITION_SOURCE_ATTRIBUTE); |
| 275 DCHECK_EQ(tex_coord_source_, TEX_COORD_SOURCE_NONE); |
| 276 DCHECK_EQ(tex_coord_transform_, TEX_COORD_TRANSFORM_NONE); |
| 277 DCHECK_EQ(is_ya_uv_, false); |
| 278 DCHECK_EQ(has_dummy_variables_, false); |
| 279 DCHECK_EQ(has_vertex_opacity_, false); |
| 280 DCHECK_EQ(aa_mode_, NO_AA); |
| 281 DCHECK_EQ(use_uniform_arrays_, false); |
| 282 } |
256 }; | 283 }; |
257 | 284 |
258 class VertexShaderPosTexTransform : public VertexShaderBase { | 285 class VertexShaderPosTexTransform : public VertexShaderBase { |
259 public: | 286 public: |
260 void SetSubclassProperties() { | 287 void CheckSubclassProperties() { |
261 tex_coord_source_ = TEX_COORD_SOURCE_ATTRIBUTE; | 288 DCHECK_EQ(tex_coord_source_, TEX_COORD_SOURCE_ATTRIBUTE); |
262 tex_coord_transform_ = TEX_COORD_TRANSFORM_VEC4; | 289 DCHECK_EQ(tex_coord_transform_, TEX_COORD_TRANSFORM_VEC4); |
263 has_matrix_ = true; | 290 DCHECK_EQ(has_matrix_, true); |
264 has_vertex_opacity_ = true; | 291 DCHECK_EQ(has_vertex_opacity_, true); |
265 use_uniform_arrays_ = true; | 292 DCHECK_EQ(use_uniform_arrays_, true); |
| 293 |
| 294 DCHECK_EQ(position_source_, POSITION_SOURCE_ATTRIBUTE); |
| 295 DCHECK_EQ(is_ya_uv_, false); |
| 296 DCHECK_EQ(has_dummy_variables_, false); |
| 297 DCHECK_EQ(aa_mode_, NO_AA); |
266 } | 298 } |
267 }; | 299 }; |
268 | 300 |
269 class VertexShaderQuad : public VertexShaderBase { | 301 class VertexShaderQuad : public VertexShaderBase { |
270 public: | 302 public: |
271 void SetSubclassProperties() { | 303 void CheckSubclassProperties() { |
272 position_source_ = POSITION_SOURCE_ATTRIBUTE_INDEXED_UNIFORM; | 304 DCHECK_EQ(position_source_, POSITION_SOURCE_ATTRIBUTE_INDEXED_UNIFORM); |
273 has_matrix_ = true; | 305 DCHECK_EQ(has_matrix_, true); |
274 #if defined(OS_ANDROID) | 306 #if defined(OS_ANDROID) |
275 has_dummy_variables_ = true; | 307 DCHECK_EQ(has_dummy_variables_, true); |
276 #endif | 308 #endif |
| 309 |
| 310 DCHECK_EQ(use_uniform_arrays_, false); |
| 311 DCHECK_EQ(tex_coord_source_, TEX_COORD_SOURCE_NONE); |
| 312 DCHECK_EQ(tex_coord_transform_, TEX_COORD_TRANSFORM_NONE); |
| 313 DCHECK_EQ(is_ya_uv_, false); |
| 314 DCHECK_EQ(has_vertex_opacity_, false); |
| 315 DCHECK_EQ(aa_mode_, NO_AA); |
277 } | 316 } |
278 }; | 317 }; |
279 | 318 |
280 class VertexShaderQuadAA : public VertexShaderBase { | 319 class VertexShaderQuadAA : public VertexShaderBase { |
281 public: | 320 public: |
282 void SetSubclassProperties() { | 321 void CheckSubclassProperties() { |
283 position_source_ = POSITION_SOURCE_ATTRIBUTE_INDEXED_UNIFORM; | 322 DCHECK_EQ(position_source_, POSITION_SOURCE_ATTRIBUTE_INDEXED_UNIFORM); |
284 has_matrix_ = true; | 323 DCHECK_EQ(has_matrix_, true); |
285 aa_mode_ = USE_AA; | 324 DCHECK_EQ(aa_mode_, USE_AA); |
| 325 |
| 326 DCHECK_EQ(use_uniform_arrays_, false); |
| 327 DCHECK_EQ(tex_coord_source_, TEX_COORD_SOURCE_NONE); |
| 328 DCHECK_EQ(tex_coord_transform_, TEX_COORD_TRANSFORM_NONE); |
| 329 DCHECK_EQ(is_ya_uv_, false); |
| 330 DCHECK_EQ(has_dummy_variables_, false); |
| 331 DCHECK_EQ(has_vertex_opacity_, false); |
286 } | 332 } |
287 }; | 333 }; |
288 | 334 |
289 class VertexShaderQuadTexTransformAA : public VertexShaderBase { | 335 class VertexShaderQuadTexTransformAA : public VertexShaderBase { |
290 public: | 336 public: |
291 void SetSubclassProperties() { | 337 void CheckSubclassProperties() { |
292 position_source_ = POSITION_SOURCE_ATTRIBUTE_INDEXED_UNIFORM; | 338 DCHECK_EQ(position_source_, POSITION_SOURCE_ATTRIBUTE_INDEXED_UNIFORM); |
293 tex_coord_source_ = TEX_COORD_SOURCE_POSITION; | 339 DCHECK_EQ(tex_coord_source_, TEX_COORD_SOURCE_POSITION); |
294 tex_coord_transform_ = TEX_COORD_TRANSFORM_TRANSLATED_VEC4; | 340 DCHECK_EQ(tex_coord_transform_, TEX_COORD_TRANSFORM_TRANSLATED_VEC4); |
295 has_matrix_ = true; | 341 DCHECK_EQ(has_matrix_, true); |
296 aa_mode_ = USE_AA; | 342 DCHECK_EQ(aa_mode_, USE_AA); |
| 343 |
| 344 DCHECK_EQ(use_uniform_arrays_, false); |
| 345 DCHECK_EQ(is_ya_uv_, false); |
| 346 DCHECK_EQ(has_dummy_variables_, false); |
| 347 DCHECK_EQ(has_vertex_opacity_, false); |
297 } | 348 } |
298 }; | 349 }; |
299 | 350 |
300 class VertexShaderTile : public VertexShaderBase { | 351 class VertexShaderTile : public VertexShaderBase { |
301 public: | 352 public: |
302 void SetSubclassProperties() { | 353 void CheckSubclassProperties() { |
303 position_source_ = POSITION_SOURCE_ATTRIBUTE_INDEXED_UNIFORM; | 354 DCHECK_EQ(position_source_, POSITION_SOURCE_ATTRIBUTE_INDEXED_UNIFORM); |
304 tex_coord_source_ = TEX_COORD_SOURCE_ATTRIBUTE; | 355 DCHECK_EQ(tex_coord_source_, TEX_COORD_SOURCE_ATTRIBUTE); |
305 tex_coord_transform_ = TEX_COORD_TRANSFORM_VEC4; | 356 DCHECK_EQ(tex_coord_transform_, TEX_COORD_TRANSFORM_VEC4); |
306 has_matrix_ = true; | 357 DCHECK_EQ(has_matrix_, true); |
| 358 |
| 359 DCHECK_EQ(use_uniform_arrays_, false); |
| 360 DCHECK_EQ(is_ya_uv_, false); |
| 361 DCHECK_EQ(has_dummy_variables_, false); |
| 362 DCHECK_EQ(has_vertex_opacity_, false); |
| 363 DCHECK_EQ(aa_mode_, NO_AA); |
307 } | 364 } |
308 }; | 365 }; |
309 | 366 |
310 class VertexShaderTileAA : public VertexShaderBase { | 367 class VertexShaderTileAA : public VertexShaderBase { |
311 public: | 368 public: |
312 void SetSubclassProperties() { | 369 void CheckSubclassProperties() { |
313 position_source_ = POSITION_SOURCE_ATTRIBUTE_INDEXED_UNIFORM; | 370 DCHECK_EQ(position_source_, POSITION_SOURCE_ATTRIBUTE_INDEXED_UNIFORM); |
314 tex_coord_source_ = TEX_COORD_SOURCE_POSITION; | 371 DCHECK_EQ(tex_coord_source_, TEX_COORD_SOURCE_POSITION); |
315 tex_coord_transform_ = TEX_COORD_TRANSFORM_VEC4; | 372 DCHECK_EQ(tex_coord_transform_, TEX_COORD_TRANSFORM_VEC4); |
316 has_matrix_ = true; | 373 DCHECK_EQ(has_matrix_, true); |
317 aa_mode_ = USE_AA; | 374 DCHECK_EQ(aa_mode_, USE_AA); |
| 375 |
| 376 DCHECK_EQ(use_uniform_arrays_, false); |
| 377 DCHECK_EQ(is_ya_uv_, false); |
| 378 DCHECK_EQ(has_dummy_variables_, false); |
| 379 DCHECK_EQ(has_vertex_opacity_, false); |
318 } | 380 } |
319 }; | 381 }; |
320 | 382 |
321 class VertexShaderVideoTransform : public VertexShaderBase { | 383 class VertexShaderVideoTransform : public VertexShaderBase { |
322 public: | 384 public: |
323 void SetSubclassProperties() { | 385 void CheckSubclassProperties() { |
324 tex_coord_source_ = TEX_COORD_SOURCE_ATTRIBUTE; | 386 DCHECK_EQ(tex_coord_source_, TEX_COORD_SOURCE_ATTRIBUTE); |
325 tex_coord_transform_ = TEX_COORD_TRANSFORM_MATRIX; | 387 DCHECK_EQ(tex_coord_transform_, TEX_COORD_TRANSFORM_MATRIX); |
326 has_matrix_ = true; | 388 DCHECK_EQ(has_matrix_, true); |
| 389 |
| 390 DCHECK_EQ(use_uniform_arrays_, false); |
| 391 DCHECK_EQ(position_source_, POSITION_SOURCE_ATTRIBUTE); |
| 392 DCHECK_EQ(is_ya_uv_, false); |
| 393 DCHECK_EQ(has_dummy_variables_, false); |
| 394 DCHECK_EQ(has_vertex_opacity_, false); |
| 395 DCHECK_EQ(aa_mode_, NO_AA); |
327 } | 396 } |
328 }; | 397 }; |
329 | 398 |
330 class FragmentShaderBase { | 399 class FragmentShaderBase { |
331 public: | 400 public: |
332 virtual void Init(gpu::gles2::GLES2Interface* context, | 401 virtual void Init(gpu::gles2::GLES2Interface* context, |
333 unsigned program, | 402 unsigned program, |
334 int* base_uniform_index); | 403 int* base_uniform_index); |
335 std::string GetShaderString() const; | 404 std::string GetShaderString() const; |
336 void FillLocations(ShaderLocations* locations) const; | 405 void FillLocations(ShaderLocations* locations) const; |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
404 | 473 |
405 std::string GetHelperFunctions() const; | 474 std::string GetHelperFunctions() const; |
406 std::string GetBlendFunction() const; | 475 std::string GetBlendFunction() const; |
407 std::string GetBlendFunctionBodyForRGB() const; | 476 std::string GetBlendFunctionBodyForRGB() const; |
408 | 477 |
409 DISALLOW_COPY_AND_ASSIGN(FragmentShaderBase); | 478 DISALLOW_COPY_AND_ASSIGN(FragmentShaderBase); |
410 }; | 479 }; |
411 | 480 |
412 class FragmentShaderRGBATexVaryingAlpha : public FragmentShaderBase { | 481 class FragmentShaderRGBATexVaryingAlpha : public FragmentShaderBase { |
413 public: | 482 public: |
414 void SetSubclassProperties() { | 483 void CheckSubclassProperties() { |
415 has_varying_alpha_ = true; | 484 DCHECK_EQ(has_varying_alpha_, true); |
416 frag_color_mode_ = FRAG_COLOR_MODE_DEFAULT; | 485 DCHECK_EQ(frag_color_mode_, FRAG_COLOR_MODE_DEFAULT); |
| 486 |
| 487 DCHECK_EQ(aa_mode_, NO_AA); |
| 488 DCHECK_EQ(swizzle_mode_, NO_SWIZZLE); |
| 489 DCHECK_EQ(premultiply_alpha_mode_, PREMULTIPLIED_ALPHA); |
| 490 DCHECK_EQ(input_color_type_, INPUT_COLOR_SOURCE_RGBA_TEXTURE); |
| 491 DCHECK_EQ(has_rgba_fragment_tex_transform_, false); |
| 492 DCHECK_EQ(ignore_sampler_type_, false); |
| 493 DCHECK_EQ(mask_mode_, NO_MASK); |
| 494 DCHECK_EQ(has_color_matrix_, false); |
| 495 DCHECK_EQ(has_uniform_alpha_, false); |
| 496 DCHECK_EQ(has_background_color_, false); |
417 } | 497 } |
418 }; | 498 }; |
419 | 499 |
420 class FragmentShaderRGBATexPremultiplyAlpha : public FragmentShaderBase { | 500 class FragmentShaderRGBATexPremultiplyAlpha : public FragmentShaderBase { |
421 public: | 501 public: |
422 void SetSubclassProperties() { | 502 void CheckSubclassProperties() { |
423 has_varying_alpha_ = true; | 503 DCHECK_EQ(has_varying_alpha_, true); |
424 premultiply_alpha_mode_ = NON_PREMULTIPLIED_ALPHA; | 504 DCHECK_EQ(premultiply_alpha_mode_, NON_PREMULTIPLIED_ALPHA); |
425 frag_color_mode_ = FRAG_COLOR_MODE_DEFAULT; | 505 DCHECK_EQ(frag_color_mode_, FRAG_COLOR_MODE_DEFAULT); |
| 506 |
| 507 DCHECK_EQ(aa_mode_, NO_AA); |
| 508 DCHECK_EQ(swizzle_mode_, NO_SWIZZLE); |
| 509 DCHECK_EQ(input_color_type_, INPUT_COLOR_SOURCE_RGBA_TEXTURE); |
| 510 DCHECK_EQ(has_rgba_fragment_tex_transform_, false); |
| 511 DCHECK_EQ(ignore_sampler_type_, false); |
| 512 DCHECK_EQ(mask_mode_, NO_MASK); |
| 513 DCHECK_EQ(has_color_matrix_, false); |
| 514 DCHECK_EQ(has_uniform_alpha_, false); |
| 515 DCHECK_EQ(has_background_color_, false); |
426 } | 516 } |
427 }; | 517 }; |
428 | 518 |
429 class FragmentShaderTexBackgroundVaryingAlpha : public FragmentShaderBase { | 519 class FragmentShaderTexBackgroundVaryingAlpha : public FragmentShaderBase { |
430 public: | 520 public: |
431 void SetSubclassProperties() { | 521 void CheckSubclassProperties() { |
432 has_background_color_ = true; | 522 DCHECK_EQ(has_background_color_, true); |
433 has_varying_alpha_ = true; | 523 DCHECK_EQ(has_varying_alpha_, true); |
434 frag_color_mode_ = FRAG_COLOR_MODE_DEFAULT; | 524 DCHECK_EQ(frag_color_mode_, FRAG_COLOR_MODE_DEFAULT); |
| 525 |
| 526 DCHECK_EQ(aa_mode_, NO_AA); |
| 527 DCHECK_EQ(swizzle_mode_, NO_SWIZZLE); |
| 528 DCHECK_EQ(premultiply_alpha_mode_, PREMULTIPLIED_ALPHA); |
| 529 DCHECK_EQ(input_color_type_, INPUT_COLOR_SOURCE_RGBA_TEXTURE); |
| 530 DCHECK_EQ(has_rgba_fragment_tex_transform_, false); |
| 531 DCHECK_EQ(ignore_sampler_type_, false); |
| 532 DCHECK_EQ(mask_mode_, NO_MASK); |
| 533 DCHECK_EQ(has_color_matrix_, false); |
| 534 DCHECK_EQ(has_uniform_alpha_, false); |
435 } | 535 } |
436 }; | 536 }; |
437 | 537 |
438 class FragmentShaderTexBackgroundPremultiplyAlpha : public FragmentShaderBase { | 538 class FragmentShaderTexBackgroundPremultiplyAlpha : public FragmentShaderBase { |
439 public: | 539 public: |
440 void SetSubclassProperties() { | 540 void CheckSubclassProperties() { |
441 has_background_color_ = true; | 541 DCHECK_EQ(has_background_color_, true); |
442 has_varying_alpha_ = true; | 542 DCHECK_EQ(has_varying_alpha_, true); |
443 premultiply_alpha_mode_ = NON_PREMULTIPLIED_ALPHA; | 543 DCHECK_EQ(premultiply_alpha_mode_, NON_PREMULTIPLIED_ALPHA); |
444 frag_color_mode_ = FRAG_COLOR_MODE_DEFAULT; | 544 DCHECK_EQ(frag_color_mode_, FRAG_COLOR_MODE_DEFAULT); |
| 545 |
| 546 DCHECK_EQ(aa_mode_, NO_AA); |
| 547 DCHECK_EQ(swizzle_mode_, NO_SWIZZLE); |
| 548 DCHECK_EQ(input_color_type_, INPUT_COLOR_SOURCE_RGBA_TEXTURE); |
| 549 DCHECK_EQ(has_rgba_fragment_tex_transform_, false); |
| 550 DCHECK_EQ(ignore_sampler_type_, false); |
| 551 DCHECK_EQ(mask_mode_, NO_MASK); |
| 552 DCHECK_EQ(has_color_matrix_, false); |
| 553 DCHECK_EQ(has_uniform_alpha_, false); |
445 } | 554 } |
446 }; | 555 }; |
447 | 556 |
448 class FragmentShaderRGBATexAlpha : public FragmentShaderBase { | 557 class FragmentShaderRGBATexAlpha : public FragmentShaderBase { |
449 public: | 558 public: |
450 void SetSubclassProperties() { | 559 void CheckSubclassProperties() { |
451 has_uniform_alpha_ = true; | 560 DCHECK_EQ(has_uniform_alpha_, true); |
452 frag_color_mode_ = FRAG_COLOR_MODE_APPLY_BLEND_MODE; | 561 DCHECK_EQ(frag_color_mode_, FRAG_COLOR_MODE_APPLY_BLEND_MODE); |
| 562 |
| 563 DCHECK_EQ(aa_mode_, NO_AA); |
| 564 DCHECK_EQ(has_varying_alpha_, false); |
| 565 DCHECK_EQ(swizzle_mode_, NO_SWIZZLE); |
| 566 DCHECK_EQ(premultiply_alpha_mode_, PREMULTIPLIED_ALPHA); |
| 567 DCHECK_EQ(input_color_type_, INPUT_COLOR_SOURCE_RGBA_TEXTURE); |
| 568 DCHECK_EQ(has_rgba_fragment_tex_transform_, false); |
| 569 DCHECK_EQ(ignore_sampler_type_, false); |
| 570 DCHECK_EQ(mask_mode_, NO_MASK); |
| 571 DCHECK_EQ(has_color_matrix_, false); |
| 572 DCHECK_EQ(has_background_color_, false); |
453 } | 573 } |
454 }; | 574 }; |
455 | 575 |
456 class FragmentShaderRGBATexColorMatrixAlpha : public FragmentShaderBase { | 576 class FragmentShaderRGBATexColorMatrixAlpha : public FragmentShaderBase { |
457 public: | 577 public: |
458 void SetSubclassProperties() { | 578 void CheckSubclassProperties() { |
459 has_uniform_alpha_ = true; | 579 DCHECK_EQ(has_uniform_alpha_, true); |
460 has_color_matrix_ = true; | 580 DCHECK_EQ(has_color_matrix_, true); |
461 frag_color_mode_ = FRAG_COLOR_MODE_APPLY_BLEND_MODE; | 581 DCHECK_EQ(frag_color_mode_, FRAG_COLOR_MODE_APPLY_BLEND_MODE); |
| 582 |
| 583 DCHECK_EQ(aa_mode_, NO_AA); |
| 584 DCHECK_EQ(has_varying_alpha_, false); |
| 585 DCHECK_EQ(swizzle_mode_, NO_SWIZZLE); |
| 586 DCHECK_EQ(premultiply_alpha_mode_, PREMULTIPLIED_ALPHA); |
| 587 DCHECK_EQ(input_color_type_, INPUT_COLOR_SOURCE_RGBA_TEXTURE); |
| 588 DCHECK_EQ(has_rgba_fragment_tex_transform_, false); |
| 589 DCHECK_EQ(ignore_sampler_type_, false); |
| 590 DCHECK_EQ(mask_mode_, NO_MASK); |
| 591 DCHECK_EQ(has_background_color_, false); |
462 } | 592 } |
463 }; | 593 }; |
464 | 594 |
465 class FragmentShaderRGBATexOpaque : public FragmentShaderBase { | 595 class FragmentShaderRGBATexOpaque : public FragmentShaderBase { |
466 public: | 596 public: |
467 void SetSubclassProperties() { frag_color_mode_ = FRAG_COLOR_MODE_OPAQUE; } | 597 void CheckSubclassProperties() { |
| 598 DCHECK_EQ(frag_color_mode_, FRAG_COLOR_MODE_OPAQUE); |
| 599 |
| 600 DCHECK_EQ(aa_mode_, NO_AA); |
| 601 DCHECK_EQ(has_varying_alpha_, false); |
| 602 DCHECK_EQ(swizzle_mode_, NO_SWIZZLE); |
| 603 DCHECK_EQ(premultiply_alpha_mode_, PREMULTIPLIED_ALPHA); |
| 604 DCHECK_EQ(input_color_type_, INPUT_COLOR_SOURCE_RGBA_TEXTURE); |
| 605 DCHECK_EQ(has_rgba_fragment_tex_transform_, false); |
| 606 DCHECK_EQ(ignore_sampler_type_, false); |
| 607 DCHECK_EQ(mask_mode_, NO_MASK); |
| 608 DCHECK_EQ(has_color_matrix_, false); |
| 609 DCHECK_EQ(has_uniform_alpha_, false); |
| 610 DCHECK_EQ(has_background_color_, false); |
| 611 } |
468 }; | 612 }; |
469 | 613 |
470 class FragmentShaderRGBATex : public FragmentShaderBase { | 614 class FragmentShaderRGBATex : public FragmentShaderBase { |
471 public: | 615 public: |
472 void SetSubclassProperties() { frag_color_mode_ = FRAG_COLOR_MODE_DEFAULT; } | 616 void CheckSubclassProperties() { |
| 617 DCHECK_EQ(frag_color_mode_, FRAG_COLOR_MODE_DEFAULT); |
| 618 DCHECK_EQ(sampler_type_, SAMPLER_TYPE_EXTERNAL_OES); |
| 619 |
| 620 DCHECK_EQ(aa_mode_, NO_AA); |
| 621 DCHECK_EQ(has_varying_alpha_, false); |
| 622 DCHECK_EQ(swizzle_mode_, NO_SWIZZLE); |
| 623 DCHECK_EQ(premultiply_alpha_mode_, PREMULTIPLIED_ALPHA); |
| 624 DCHECK_EQ(input_color_type_, INPUT_COLOR_SOURCE_RGBA_TEXTURE); |
| 625 DCHECK_EQ(has_rgba_fragment_tex_transform_, false); |
| 626 DCHECK_EQ(ignore_sampler_type_, false); |
| 627 DCHECK_EQ(mask_mode_, NO_MASK); |
| 628 DCHECK_EQ(has_color_matrix_, false); |
| 629 DCHECK_EQ(has_uniform_alpha_, false); |
| 630 DCHECK_EQ(has_background_color_, false); |
| 631 } |
473 }; | 632 }; |
474 | 633 |
475 // Swizzles the red and blue component of sampled texel with alpha. | 634 // Swizzles the red and blue component of sampled texel with alpha. |
476 class FragmentShaderRGBATexSwizzleAlpha : public FragmentShaderBase { | 635 class FragmentShaderRGBATexSwizzleAlpha : public FragmentShaderBase { |
477 public: | 636 public: |
478 void SetSubclassProperties() { | 637 void CheckSubclassProperties() { |
479 has_uniform_alpha_ = true; | 638 DCHECK_EQ(has_uniform_alpha_, true); |
480 swizzle_mode_ = DO_SWIZZLE; | 639 DCHECK_EQ(swizzle_mode_, DO_SWIZZLE); |
481 frag_color_mode_ = FRAG_COLOR_MODE_DEFAULT; | 640 DCHECK_EQ(frag_color_mode_, FRAG_COLOR_MODE_DEFAULT); |
| 641 |
| 642 DCHECK_EQ(aa_mode_, NO_AA); |
| 643 DCHECK_EQ(has_varying_alpha_, false); |
| 644 DCHECK_EQ(premultiply_alpha_mode_, PREMULTIPLIED_ALPHA); |
| 645 DCHECK_EQ(input_color_type_, INPUT_COLOR_SOURCE_RGBA_TEXTURE); |
| 646 DCHECK_EQ(has_rgba_fragment_tex_transform_, false); |
| 647 DCHECK_EQ(ignore_sampler_type_, false); |
| 648 DCHECK_EQ(mask_mode_, NO_MASK); |
| 649 DCHECK_EQ(has_color_matrix_, false); |
| 650 DCHECK_EQ(has_background_color_, false); |
482 } | 651 } |
483 }; | 652 }; |
484 | 653 |
485 // Swizzles the red and blue component of sampled texel without alpha. | 654 // Swizzles the red and blue component of sampled texel without alpha. |
486 class FragmentShaderRGBATexSwizzleOpaque : public FragmentShaderBase { | 655 class FragmentShaderRGBATexSwizzleOpaque : public FragmentShaderBase { |
487 public: | 656 public: |
488 void SetSubclassProperties() { | 657 void CheckSubclassProperties() { |
489 swizzle_mode_ = DO_SWIZZLE; | 658 DCHECK_EQ(swizzle_mode_, DO_SWIZZLE); |
490 frag_color_mode_ = FRAG_COLOR_MODE_OPAQUE; | 659 DCHECK_EQ(frag_color_mode_, FRAG_COLOR_MODE_OPAQUE); |
| 660 |
| 661 DCHECK_EQ(aa_mode_, NO_AA); |
| 662 DCHECK_EQ(has_varying_alpha_, false); |
| 663 DCHECK_EQ(premultiply_alpha_mode_, PREMULTIPLIED_ALPHA); |
| 664 DCHECK_EQ(input_color_type_, INPUT_COLOR_SOURCE_RGBA_TEXTURE); |
| 665 DCHECK_EQ(has_rgba_fragment_tex_transform_, false); |
| 666 DCHECK_EQ(ignore_sampler_type_, false); |
| 667 DCHECK_EQ(mask_mode_, NO_MASK); |
| 668 DCHECK_EQ(has_color_matrix_, false); |
| 669 DCHECK_EQ(has_uniform_alpha_, false); |
| 670 DCHECK_EQ(has_background_color_, false); |
491 } | 671 } |
492 }; | 672 }; |
493 | 673 |
494 class FragmentShaderRGBATexAlphaAA : public FragmentShaderBase { | 674 class FragmentShaderRGBATexAlphaAA : public FragmentShaderBase { |
495 public: | 675 public: |
496 void SetSubclassProperties() { | 676 void CheckSubclassProperties() { |
497 aa_mode_ = USE_AA; | 677 DCHECK_EQ(aa_mode_, USE_AA); |
498 has_uniform_alpha_ = true; | 678 DCHECK_EQ(has_uniform_alpha_, true); |
499 frag_color_mode_ = FRAG_COLOR_MODE_APPLY_BLEND_MODE; | 679 DCHECK_EQ(frag_color_mode_, FRAG_COLOR_MODE_APPLY_BLEND_MODE); |
| 680 |
| 681 DCHECK_EQ(has_varying_alpha_, false); |
| 682 DCHECK_EQ(swizzle_mode_, NO_SWIZZLE); |
| 683 DCHECK_EQ(premultiply_alpha_mode_, PREMULTIPLIED_ALPHA); |
| 684 DCHECK_EQ(input_color_type_, INPUT_COLOR_SOURCE_RGBA_TEXTURE); |
| 685 DCHECK_EQ(has_rgba_fragment_tex_transform_, false); |
| 686 DCHECK_EQ(ignore_sampler_type_, false); |
| 687 DCHECK_EQ(mask_mode_, NO_MASK); |
| 688 DCHECK_EQ(has_color_matrix_, false); |
| 689 DCHECK_EQ(has_background_color_, false); |
500 } | 690 } |
501 }; | 691 }; |
502 | 692 |
503 class FragmentShaderRGBATexClampAlphaAA : public FragmentShaderBase { | 693 class FragmentShaderRGBATexClampAlphaAA : public FragmentShaderBase { |
504 public: | 694 public: |
505 void SetSubclassProperties() { | 695 void CheckSubclassProperties() { |
506 aa_mode_ = USE_AA; | 696 DCHECK_EQ(aa_mode_, USE_AA); |
507 has_uniform_alpha_ = true; | 697 DCHECK_EQ(has_uniform_alpha_, true); |
508 has_rgba_fragment_tex_transform_ = true; | 698 DCHECK_EQ(has_rgba_fragment_tex_transform_, true); |
509 frag_color_mode_ = FRAG_COLOR_MODE_DEFAULT; | 699 DCHECK_EQ(frag_color_mode_, FRAG_COLOR_MODE_DEFAULT); |
| 700 |
| 701 DCHECK_EQ(has_varying_alpha_, false); |
| 702 DCHECK_EQ(swizzle_mode_, NO_SWIZZLE); |
| 703 DCHECK_EQ(premultiply_alpha_mode_, PREMULTIPLIED_ALPHA); |
| 704 DCHECK_EQ(input_color_type_, INPUT_COLOR_SOURCE_RGBA_TEXTURE); |
| 705 DCHECK_EQ(ignore_sampler_type_, false); |
| 706 DCHECK_EQ(mask_mode_, NO_MASK); |
| 707 DCHECK_EQ(has_color_matrix_, false); |
| 708 DCHECK_EQ(has_background_color_, false); |
510 } | 709 } |
511 }; | 710 }; |
512 | 711 |
513 // Swizzles the red and blue component of sampled texel. | 712 // Swizzles the red and blue component of sampled texel. |
514 class FragmentShaderRGBATexClampSwizzleAlphaAA : public FragmentShaderBase { | 713 class FragmentShaderRGBATexClampSwizzleAlphaAA : public FragmentShaderBase { |
515 public: | 714 public: |
516 void SetSubclassProperties() { | 715 void CheckSubclassProperties() { |
517 aa_mode_ = USE_AA; | 716 DCHECK_EQ(aa_mode_, USE_AA); |
518 has_uniform_alpha_ = true; | 717 DCHECK_EQ(has_uniform_alpha_, true); |
519 has_rgba_fragment_tex_transform_ = true; | 718 DCHECK_EQ(has_rgba_fragment_tex_transform_, true); |
520 swizzle_mode_ = DO_SWIZZLE; | 719 DCHECK_EQ(swizzle_mode_, DO_SWIZZLE); |
521 frag_color_mode_ = FRAG_COLOR_MODE_DEFAULT; | 720 DCHECK_EQ(frag_color_mode_, FRAG_COLOR_MODE_DEFAULT); |
| 721 |
| 722 DCHECK_EQ(has_varying_alpha_, false); |
| 723 DCHECK_EQ(premultiply_alpha_mode_, PREMULTIPLIED_ALPHA); |
| 724 DCHECK_EQ(input_color_type_, INPUT_COLOR_SOURCE_RGBA_TEXTURE); |
| 725 DCHECK_EQ(ignore_sampler_type_, false); |
| 726 DCHECK_EQ(mask_mode_, NO_MASK); |
| 727 DCHECK_EQ(has_color_matrix_, false); |
| 728 DCHECK_EQ(has_background_color_, false); |
522 } | 729 } |
523 }; | 730 }; |
524 | 731 |
525 class FragmentShaderRGBATexAlphaMask : public FragmentShaderBase { | 732 class FragmentShaderRGBATexAlphaMask : public FragmentShaderBase { |
526 public: | 733 public: |
527 void SetSubclassProperties() { | 734 void CheckSubclassProperties() { |
528 has_uniform_alpha_ = true; | 735 DCHECK_EQ(has_uniform_alpha_, true); |
529 mask_mode_ = HAS_MASK; | 736 DCHECK_EQ(mask_mode_, HAS_MASK); |
530 frag_color_mode_ = FRAG_COLOR_MODE_APPLY_BLEND_MODE; | 737 DCHECK_EQ(frag_color_mode_, FRAG_COLOR_MODE_APPLY_BLEND_MODE); |
531 ignore_sampler_type_ = true; | 738 DCHECK_EQ(ignore_sampler_type_, true); |
| 739 |
| 740 DCHECK_EQ(aa_mode_, NO_AA); |
| 741 DCHECK_EQ(has_varying_alpha_, false); |
| 742 DCHECK_EQ(swizzle_mode_, NO_SWIZZLE); |
| 743 DCHECK_EQ(premultiply_alpha_mode_, PREMULTIPLIED_ALPHA); |
| 744 DCHECK_EQ(input_color_type_, INPUT_COLOR_SOURCE_RGBA_TEXTURE); |
| 745 DCHECK_EQ(has_rgba_fragment_tex_transform_, false); |
| 746 DCHECK_EQ(has_color_matrix_, false); |
| 747 DCHECK_EQ(has_background_color_, false); |
532 } | 748 } |
533 }; | 749 }; |
534 | 750 |
535 class FragmentShaderRGBATexAlphaMaskAA : public FragmentShaderBase { | 751 class FragmentShaderRGBATexAlphaMaskAA : public FragmentShaderBase { |
536 public: | 752 public: |
537 void SetSubclassProperties() { | 753 void CheckSubclassProperties() { |
538 aa_mode_ = USE_AA; | 754 DCHECK_EQ(aa_mode_, USE_AA); |
539 has_uniform_alpha_ = true; | 755 DCHECK_EQ(has_uniform_alpha_, true); |
540 mask_mode_ = HAS_MASK; | 756 DCHECK_EQ(mask_mode_, HAS_MASK); |
541 frag_color_mode_ = FRAG_COLOR_MODE_APPLY_BLEND_MODE; | 757 DCHECK_EQ(frag_color_mode_, FRAG_COLOR_MODE_APPLY_BLEND_MODE); |
542 ignore_sampler_type_ = true; | 758 DCHECK_EQ(ignore_sampler_type_, true); |
| 759 |
| 760 DCHECK_EQ(has_varying_alpha_, false); |
| 761 DCHECK_EQ(swizzle_mode_, NO_SWIZZLE); |
| 762 DCHECK_EQ(premultiply_alpha_mode_, PREMULTIPLIED_ALPHA); |
| 763 DCHECK_EQ(input_color_type_, INPUT_COLOR_SOURCE_RGBA_TEXTURE); |
| 764 DCHECK_EQ(has_rgba_fragment_tex_transform_, false); |
| 765 DCHECK_EQ(has_color_matrix_, false); |
| 766 DCHECK_EQ(has_background_color_, false); |
543 } | 767 } |
544 }; | 768 }; |
545 | 769 |
546 class FragmentShaderRGBATexAlphaMaskColorMatrixAA : public FragmentShaderBase { | 770 class FragmentShaderRGBATexAlphaMaskColorMatrixAA : public FragmentShaderBase { |
547 public: | 771 public: |
548 void SetSubclassProperties() { | 772 void CheckSubclassProperties() { |
549 aa_mode_ = USE_AA; | 773 DCHECK_EQ(aa_mode_, USE_AA); |
550 has_uniform_alpha_ = true; | 774 DCHECK_EQ(has_uniform_alpha_, true); |
551 mask_mode_ = HAS_MASK; | 775 DCHECK_EQ(mask_mode_, HAS_MASK); |
552 has_color_matrix_ = true; | 776 DCHECK_EQ(has_color_matrix_, true); |
553 frag_color_mode_ = FRAG_COLOR_MODE_APPLY_BLEND_MODE; | 777 DCHECK_EQ(frag_color_mode_, FRAG_COLOR_MODE_APPLY_BLEND_MODE); |
554 ignore_sampler_type_ = true; | 778 DCHECK_EQ(ignore_sampler_type_, true); |
| 779 |
| 780 DCHECK_EQ(has_varying_alpha_, false); |
| 781 DCHECK_EQ(swizzle_mode_, NO_SWIZZLE); |
| 782 DCHECK_EQ(premultiply_alpha_mode_, PREMULTIPLIED_ALPHA); |
| 783 DCHECK_EQ(input_color_type_, INPUT_COLOR_SOURCE_RGBA_TEXTURE); |
| 784 DCHECK_EQ(has_rgba_fragment_tex_transform_, false); |
| 785 DCHECK_EQ(has_background_color_, false); |
555 } | 786 } |
556 }; | 787 }; |
557 | 788 |
558 class FragmentShaderRGBATexAlphaColorMatrixAA : public FragmentShaderBase { | 789 class FragmentShaderRGBATexAlphaColorMatrixAA : public FragmentShaderBase { |
559 public: | 790 public: |
560 void SetSubclassProperties() { | 791 void CheckSubclassProperties() { |
561 aa_mode_ = USE_AA; | 792 DCHECK_EQ(aa_mode_, USE_AA); |
562 has_uniform_alpha_ = true; | 793 DCHECK_EQ(has_uniform_alpha_, true); |
563 has_color_matrix_ = true; | 794 DCHECK_EQ(has_color_matrix_, true); |
564 frag_color_mode_ = FRAG_COLOR_MODE_APPLY_BLEND_MODE; | 795 DCHECK_EQ(frag_color_mode_, FRAG_COLOR_MODE_APPLY_BLEND_MODE); |
| 796 |
| 797 DCHECK_EQ(has_varying_alpha_, false); |
| 798 DCHECK_EQ(swizzle_mode_, NO_SWIZZLE); |
| 799 DCHECK_EQ(premultiply_alpha_mode_, PREMULTIPLIED_ALPHA); |
| 800 DCHECK_EQ(input_color_type_, INPUT_COLOR_SOURCE_RGBA_TEXTURE); |
| 801 DCHECK_EQ(has_rgba_fragment_tex_transform_, false); |
| 802 DCHECK_EQ(ignore_sampler_type_, false); |
| 803 DCHECK_EQ(mask_mode_, NO_MASK); |
| 804 DCHECK_EQ(has_background_color_, false); |
565 } | 805 } |
566 }; | 806 }; |
567 | 807 |
568 class FragmentShaderRGBATexAlphaMaskColorMatrix : public FragmentShaderBase { | 808 class FragmentShaderRGBATexAlphaMaskColorMatrix : public FragmentShaderBase { |
569 public: | 809 public: |
570 void SetSubclassProperties() { | 810 void CheckSubclassProperties() { |
571 has_uniform_alpha_ = true; | 811 DCHECK_EQ(has_uniform_alpha_, true); |
572 mask_mode_ = HAS_MASK; | 812 DCHECK_EQ(mask_mode_, HAS_MASK); |
573 has_color_matrix_ = true; | 813 DCHECK_EQ(has_color_matrix_, true); |
574 frag_color_mode_ = FRAG_COLOR_MODE_APPLY_BLEND_MODE; | 814 DCHECK_EQ(frag_color_mode_, FRAG_COLOR_MODE_APPLY_BLEND_MODE); |
575 ignore_sampler_type_ = true; | 815 DCHECK_EQ(ignore_sampler_type_, true); |
576 } | 816 |
577 }; | 817 DCHECK_EQ(aa_mode_, NO_AA); |
578 | 818 DCHECK_EQ(has_varying_alpha_, false); |
| 819 DCHECK_EQ(swizzle_mode_, NO_SWIZZLE); |
| 820 DCHECK_EQ(premultiply_alpha_mode_, PREMULTIPLIED_ALPHA); |
| 821 DCHECK_EQ(input_color_type_, INPUT_COLOR_SOURCE_RGBA_TEXTURE); |
| 822 DCHECK_EQ(has_rgba_fragment_tex_transform_, false); |
| 823 DCHECK_EQ(has_background_color_, false); |
| 824 } |
| 825 }; |
| 826 |
579 class FragmentShaderYUVVideo : public FragmentShaderBase { | 827 class FragmentShaderYUVVideo : public FragmentShaderBase { |
580 public: | 828 public: |
581 FragmentShaderYUVVideo(); | 829 FragmentShaderYUVVideo(); |
582 | 830 |
583 void SetSubclassProperties() {} | 831 void CheckSubclassProperties() {} |
584 | 832 |
585 void Init(gpu::gles2::GLES2Interface* context, | 833 void Init(gpu::gles2::GLES2Interface* context, |
586 unsigned program, | 834 unsigned program, |
587 int* base_uniform_index) override; | 835 int* base_uniform_index) override; |
588 int y_texture_location() const { return y_texture_location_; } | 836 int y_texture_location() const { return y_texture_location_; } |
589 int u_texture_location() const { return u_texture_location_; } | 837 int u_texture_location() const { return u_texture_location_; } |
590 int v_texture_location() const { return v_texture_location_; } | 838 int v_texture_location() const { return v_texture_location_; } |
591 int uv_texture_location() const { return uv_texture_location_; } | 839 int uv_texture_location() const { return uv_texture_location_; } |
592 int a_texture_location() const { return a_texture_location_; } | 840 int a_texture_location() const { return a_texture_location_; } |
593 int lut_texture_location() const { return lut_texture_location_; } | 841 int lut_texture_location() const { return lut_texture_location_; } |
(...skipping 27 matching lines...) Expand all Loading... |
621 int yuv_matrix_location_ = -1; | 869 int yuv_matrix_location_ = -1; |
622 int yuv_adj_location_ = -1; | 870 int yuv_adj_location_ = -1; |
623 int ya_clamp_rect_location_ = -1; | 871 int ya_clamp_rect_location_ = -1; |
624 int uv_clamp_rect_location_ = -1; | 872 int uv_clamp_rect_location_ = -1; |
625 int resource_multiplier_location_ = -1; | 873 int resource_multiplier_location_ = -1; |
626 int resource_offset_location_ = -1; | 874 int resource_offset_location_ = -1; |
627 }; | 875 }; |
628 | 876 |
629 class FragmentShaderColor : public FragmentShaderBase { | 877 class FragmentShaderColor : public FragmentShaderBase { |
630 public: | 878 public: |
631 void SetSubclassProperties() { | 879 void CheckSubclassProperties() { |
632 input_color_type_ = INPUT_COLOR_SOURCE_UNIFORM; | 880 DCHECK_EQ(input_color_type_, INPUT_COLOR_SOURCE_UNIFORM); |
633 frag_color_mode_ = FRAG_COLOR_MODE_DEFAULT; | 881 DCHECK_EQ(frag_color_mode_, FRAG_COLOR_MODE_DEFAULT); |
| 882 |
| 883 DCHECK_EQ(aa_mode_, NO_AA); |
| 884 DCHECK_EQ(has_varying_alpha_, false); |
| 885 DCHECK_EQ(swizzle_mode_, NO_SWIZZLE); |
| 886 DCHECK_EQ(premultiply_alpha_mode_, PREMULTIPLIED_ALPHA); |
| 887 DCHECK_EQ(has_rgba_fragment_tex_transform_, false); |
| 888 DCHECK_EQ(ignore_sampler_type_, false); |
| 889 DCHECK_EQ(mask_mode_, NO_MASK); |
| 890 DCHECK_EQ(has_color_matrix_, false); |
| 891 DCHECK_EQ(has_uniform_alpha_, false); |
| 892 DCHECK_EQ(has_background_color_, false); |
634 } | 893 } |
635 }; | 894 }; |
636 | 895 |
637 class FragmentShaderColorAA : public FragmentShaderBase { | 896 class FragmentShaderColorAA : public FragmentShaderBase { |
638 public: | 897 public: |
639 void SetSubclassProperties() { | 898 void CheckSubclassProperties() { |
640 input_color_type_ = INPUT_COLOR_SOURCE_UNIFORM; | 899 DCHECK_EQ(input_color_type_, INPUT_COLOR_SOURCE_UNIFORM); |
641 aa_mode_ = USE_AA; | 900 DCHECK_EQ(aa_mode_, USE_AA); |
642 frag_color_mode_ = FRAG_COLOR_MODE_DEFAULT; | 901 DCHECK_EQ(frag_color_mode_, FRAG_COLOR_MODE_DEFAULT); |
| 902 |
| 903 DCHECK_EQ(has_varying_alpha_, false); |
| 904 DCHECK_EQ(swizzle_mode_, NO_SWIZZLE); |
| 905 DCHECK_EQ(premultiply_alpha_mode_, PREMULTIPLIED_ALPHA); |
| 906 DCHECK_EQ(has_rgba_fragment_tex_transform_, false); |
| 907 DCHECK_EQ(ignore_sampler_type_, false); |
| 908 DCHECK_EQ(mask_mode_, NO_MASK); |
| 909 DCHECK_EQ(has_color_matrix_, false); |
| 910 DCHECK_EQ(has_uniform_alpha_, false); |
| 911 DCHECK_EQ(has_background_color_, false); |
643 } | 912 } |
644 }; | 913 }; |
645 | 914 |
646 } // namespace cc | 915 } // namespace cc |
647 | 916 |
648 #endif // CC_OUTPUT_SHADER_H_ | 917 #endif // CC_OUTPUT_SHADER_H_ |
OLD | NEW |