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

Side by Side Diff: cc/output/gl_renderer.h

Issue 2622243003: The great shader refactor: Clean up GLRenderer (Closed)
Patch Set: Rebase Created 3 years, 11 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
« no previous file with comments | « no previous file | cc/output/gl_renderer.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2010 The Chromium Authors. All rights reserved. 1 // Copyright 2010 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_GL_RENDERER_H_ 5 #ifndef CC_OUTPUT_GL_RENDERER_H_
6 #define CC_OUTPUT_GL_RENDERER_H_ 6 #define CC_OUTPUT_GL_RENDERER_H_
7 7
8 #include <deque> 8 #include <deque>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after
283 // Resources that the GPU process has finished swapping. The key is the 283 // Resources that the GPU process has finished swapping. The key is the
284 // texture id of the resource. 284 // texture id of the resource.
285 std::map<unsigned, OverlayResourceLock> swapped_and_acked_overlay_resources_; 285 std::map<unsigned, OverlayResourceLock> swapped_and_acked_overlay_resources_;
286 286
287 unsigned offscreen_framebuffer_id_; 287 unsigned offscreen_framebuffer_id_;
288 288
289 std::unique_ptr<StaticGeometryBinding> shared_geometry_; 289 std::unique_ptr<StaticGeometryBinding> shared_geometry_;
290 std::unique_ptr<DynamicGeometryBinding> clipped_geometry_; 290 std::unique_ptr<DynamicGeometryBinding> clipped_geometry_;
291 gfx::QuadF shared_geometry_quad_; 291 gfx::QuadF shared_geometry_quad_;
292 292
293 // This block of bindings defines all of the programs used by the compositor
294 // itself. Add any new programs here to GLRendererShaderTest.
295
296 // Tiled layer shaders.
297 typedef Program TileProgram;
298 typedef Program TileProgramAA;
299 typedef Program TileProgramSwizzleAA;
300 typedef Program TileProgramOpaque;
301 typedef Program TileProgramSwizzle;
302 typedef Program TileProgramSwizzleOpaque;
303
304 // Texture shaders.
305 typedef Program TextureProgram;
306 typedef Program NonPremultipliedTextureProgram;
307 typedef Program TextureBackgroundProgram;
308 typedef Program NonPremultipliedTextureBackgroundProgram;
309
310 // Render surface shaders.
311 typedef Program RenderPassProgram;
312 typedef Program RenderPassMaskProgram;
313 typedef Program RenderPassProgramAA;
314 typedef Program RenderPassMaskProgramAA;
315 typedef Program RenderPassColorMatrixProgram;
316 typedef Program RenderPassMaskColorMatrixProgramAA;
317 typedef Program RenderPassColorMatrixProgramAA;
318 typedef Program RenderPassMaskColorMatrixProgram;
319
320 // Video shaders.
321 typedef Program VideoStreamTextureProgram;
322 typedef ProgramBinding<VertexShaderBase, FragmentShaderYUVVideo>
323 VideoYUVProgram;
324
325 // Special purpose / effects shaders.
326 typedef Program DebugBorderProgram;
327 typedef Program SolidColorProgram;
328 typedef Program SolidColorProgramAA;
329
330 // If the requested program has not yet been initialized, this will initialize 293 // If the requested program has not yet been initialized, this will initialize
331 // the program before returning it. 294 // the program before returning it.
332 const Program* GetProgram(const ProgramKey& key); 295 const Program* GetProgram(const ProgramKey& key);
333 296
334 // This will return nullptr if the requested program has not yet been 297 // This will return nullptr if the requested program has not yet been
335 // initialized. 298 // initialized.
336 const Program* GetProgramIfInitialized(const ProgramKey& key) const; 299 const Program* GetProgramIfInitialized(const ProgramKey& key) const;
337 300
338 std::unordered_map<ProgramKey, std::unique_ptr<Program>, ProgramKeyHash> 301 std::unordered_map<ProgramKey, std::unique_ptr<Program>, ProgramKeyHash>
339 program_cache_; 302 program_cache_;
340 303
341 const TileProgram* GetTileProgram( 304 typedef ProgramBinding<VertexShaderBase, FragmentShaderYUVVideo>
342 TexCoordPrecision precision, SamplerType sampler); 305 VideoYUVProgram;
343 const TileProgramOpaque* GetTileProgramOpaque(
344 TexCoordPrecision precision, SamplerType sampler);
345 const TileProgramAA* GetTileProgramAA(
346 TexCoordPrecision precision, SamplerType sampler);
347 const TileProgramSwizzle* GetTileProgramSwizzle(
348 TexCoordPrecision precision, SamplerType sampler);
349 const TileProgramSwizzleOpaque* GetTileProgramSwizzleOpaque(
350 TexCoordPrecision precision, SamplerType sampler);
351 const TileProgramSwizzleAA* GetTileProgramSwizzleAA(
352 TexCoordPrecision precision, SamplerType sampler);
353
354 const RenderPassProgram* GetRenderPassProgram(TexCoordPrecision precision,
355 BlendMode blend_mode);
356 const RenderPassProgramAA* GetRenderPassProgramAA(TexCoordPrecision precision,
357 BlendMode blend_mode);
358 const RenderPassMaskProgram* GetRenderPassMaskProgram(
359 TexCoordPrecision precision,
360 SamplerType sampler,
361 BlendMode blend_mode,
362 bool mask_for_background);
363 const RenderPassMaskProgramAA* GetRenderPassMaskProgramAA(
364 TexCoordPrecision precision,
365 SamplerType sampler,
366 BlendMode blend_mode,
367 bool mask_for_background);
368 const RenderPassColorMatrixProgram* GetRenderPassColorMatrixProgram(
369 TexCoordPrecision precision,
370 BlendMode blend_mode);
371 const RenderPassColorMatrixProgramAA* GetRenderPassColorMatrixProgramAA(
372 TexCoordPrecision precision,
373 BlendMode blend_mode);
374 const RenderPassMaskColorMatrixProgram* GetRenderPassMaskColorMatrixProgram(
375 TexCoordPrecision precision,
376 SamplerType sampler,
377 BlendMode blend_mode,
378 bool mask_for_background);
379 const RenderPassMaskColorMatrixProgramAA*
380 GetRenderPassMaskColorMatrixProgramAA(TexCoordPrecision precision,
381 SamplerType sampler,
382 BlendMode blend_mode,
383 bool mask_for_background);
384
385 const TextureProgram* GetTextureProgram(TexCoordPrecision precision,
386 SamplerType sampler);
387 const NonPremultipliedTextureProgram* GetNonPremultipliedTextureProgram(
388 TexCoordPrecision precision,
389 SamplerType sampler);
390 const TextureBackgroundProgram* GetTextureBackgroundProgram(
391 TexCoordPrecision precision,
392 SamplerType sampler);
393 const NonPremultipliedTextureBackgroundProgram*
394 GetNonPremultipliedTextureBackgroundProgram(TexCoordPrecision precision,
395 SamplerType sampler);
396
397 const VideoYUVProgram* GetVideoYUVProgram(TexCoordPrecision precision, 306 const VideoYUVProgram* GetVideoYUVProgram(TexCoordPrecision precision,
398 SamplerType sampler, 307 SamplerType sampler,
399 bool use_alpha_texture, 308 bool use_alpha_texture,
400 bool use_nv12, 309 bool use_nv12,
401 bool use_color_lut); 310 bool use_color_lut);
402 const VideoStreamTextureProgram* GetVideoStreamTextureProgram(
403 TexCoordPrecision precision);
404
405 const DebugBorderProgram* GetDebugBorderProgram();
406 const SolidColorProgram* GetSolidColorProgram();
407 const SolidColorProgramAA* GetSolidColorProgramAA();
408
409 VideoYUVProgram video_yuv_program_[LAST_TEX_COORD_PRECISION + 1] 311 VideoYUVProgram video_yuv_program_[LAST_TEX_COORD_PRECISION + 1]
410 [LAST_SAMPLER_TYPE + 1][2][2][2]; 312 [LAST_SAMPLER_TYPE + 1][2][2][2];
411 313
412 gpu::gles2::GLES2Interface* gl_; 314 gpu::gles2::GLES2Interface* gl_;
413 gpu::ContextSupport* context_support_; 315 gpu::ContextSupport* context_support_;
414 std::unique_ptr<ContextCacheController::ScopedVisibility> context_visibility_; 316 std::unique_ptr<ContextCacheController::ScopedVisibility> context_visibility_;
415 317
416 TextureMailboxDeleter* texture_mailbox_deleter_; 318 TextureMailboxDeleter* texture_mailbox_deleter_;
417 319
418 gfx::Rect swap_buffer_rect_; 320 gfx::Rect swap_buffer_rect_;
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
459 bool force_drawing_frame_framebuffer_unflipped_ = false; 361 bool force_drawing_frame_framebuffer_unflipped_ = false;
460 362
461 BoundGeometry bound_geometry_; 363 BoundGeometry bound_geometry_;
462 ColorLUTCache color_lut_cache_; 364 ColorLUTCache color_lut_cache_;
463 DISALLOW_COPY_AND_ASSIGN(GLRenderer); 365 DISALLOW_COPY_AND_ASSIGN(GLRenderer);
464 }; 366 };
465 367
466 } // namespace cc 368 } // namespace cc
467 369
468 #endif // CC_OUTPUT_GL_RENDERER_H_ 370 #endif // CC_OUTPUT_GL_RENDERER_H_
OLDNEW
« no previous file with comments | « no previous file | cc/output/gl_renderer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698