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/basictypes.h" | 10 #include "base/basictypes.h" |
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
271 int edge_location() const { return -1; } | 271 int edge_location() const { return -1; } |
272 int fragment_tex_transform_location() const { return -1; } | 272 int fragment_tex_transform_location() const { return -1; } |
273 int sampler_location() const { return sampler_location_; } | 273 int sampler_location() const { return sampler_location_; } |
274 | 274 |
275 private: | 275 private: |
276 int sampler_location_; | 276 int sampler_location_; |
277 | 277 |
278 DISALLOW_COPY_AND_ASSIGN(FragmentTexOpaqueBinding); | 278 DISALLOW_COPY_AND_ASSIGN(FragmentTexOpaqueBinding); |
279 }; | 279 }; |
280 | 280 |
281 class FragmentShaderRGBATexVaryingAlpha : public FragmentTexOpaqueBinding { | 281 class FragmentTexBackgroundBinding { |
| 282 public: |
| 283 FragmentTexBackgroundBinding(); |
| 284 |
| 285 void Init(WebKit::WebGraphicsContext3D* context, |
| 286 unsigned program, |
| 287 bool using_bind_uniform, |
| 288 int* base_uniform_index); |
| 289 int background_color_location() const { return background_color_location_; } |
| 290 int sampler_location() const { return sampler_location_; } |
| 291 |
| 292 private: |
| 293 int background_color_location_; |
| 294 int sampler_location_; |
| 295 |
| 296 DISALLOW_COPY_AND_ASSIGN(FragmentTexBackgroundBinding); |
| 297 }; |
| 298 |
| 299 class FragmentShaderTexture : public FragmentTexBackgroundBinding { |
282 public: | 300 public: |
283 std::string GetShaderString(TexCoordPrecision precision) const; | 301 std::string GetShaderString(TexCoordPrecision precision) const; |
284 }; | 302 }; |
285 | 303 |
286 class FragmentShaderRGBATexPremultiplyAlpha : public FragmentTexOpaqueBinding { | 304 class FragmentShaderNonPremulTexture : public FragmentTexBackgroundBinding { |
287 public: | 305 public: |
288 std::string GetShaderString(TexCoordPrecision precision) const; | 306 std::string GetShaderString(TexCoordPrecision precision) const; |
289 }; | 307 }; |
290 | 308 |
291 class FragmentShaderRGBATexAlpha : public FragmentTexAlphaBinding { | 309 class FragmentShaderRGBATexAlpha : public FragmentTexAlphaBinding { |
292 public: | 310 public: |
293 std::string GetShaderString(TexCoordPrecision precision) const; | 311 std::string GetShaderString(TexCoordPrecision precision) const; |
294 }; | 312 }; |
295 | 313 |
296 class FragmentShaderRGBATexColorMatrixAlpha | 314 class FragmentShaderRGBATexColorMatrixAlpha |
297 : public FragmentTexColorMatrixAlphaBinding { | 315 : public FragmentTexColorMatrixAlphaBinding { |
298 public: | 316 public: |
299 std::string GetShaderString(TexCoordPrecision precision) const; | 317 std::string GetShaderString(TexCoordPrecision precision) const; |
300 }; | 318 }; |
301 | 319 |
302 class FragmentShaderRGBATexRectVaryingAlpha : public FragmentTexAlphaBinding { | 320 class FragmentShaderRGBATexRectVaryingAlpha : public FragmentTexAlphaBinding { |
303 public: | 321 public: |
| 322 int background_color_location() const { return -1; } |
304 std::string GetShaderString(TexCoordPrecision precision) const; | 323 std::string GetShaderString(TexCoordPrecision precision) const; |
305 }; | 324 }; |
306 | 325 |
307 class FragmentShaderRGBATexOpaque : public FragmentTexOpaqueBinding { | 326 class FragmentShaderRGBATexOpaque : public FragmentTexOpaqueBinding { |
308 public: | 327 public: |
309 std::string GetShaderString(TexCoordPrecision precision) const; | 328 std::string GetShaderString(TexCoordPrecision precision) const; |
310 }; | 329 }; |
311 | 330 |
312 class FragmentShaderRGBATex : public FragmentTexOpaqueBinding { | 331 class FragmentShaderRGBATex : public FragmentTexOpaqueBinding { |
313 public: | 332 public: |
(...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
662 int tex_transform_location_; | 681 int tex_transform_location_; |
663 int frequency_location_; | 682 int frequency_location_; |
664 int color_location_; | 683 int color_location_; |
665 | 684 |
666 DISALLOW_COPY_AND_ASSIGN(FragmentShaderCheckerboard); | 685 DISALLOW_COPY_AND_ASSIGN(FragmentShaderCheckerboard); |
667 }; | 686 }; |
668 | 687 |
669 } // namespace cc | 688 } // namespace cc |
670 | 689 |
671 #endif // CC_OUTPUT_SHADER_H_ | 690 #endif // CC_OUTPUT_SHADER_H_ |
OLD | NEW |