| 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 |