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

Side by Side Diff: third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.h

Issue 2399733002: DrawingBuffer cleanup: Part 1 of many (Closed)
Patch Set: Fix size update Created 4 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
« no previous file with comments | « no previous file | third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2010, Google Inc. All rights reserved. 2 * Copyright (c) 2010, Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after
316 GLenum creationInternalColorFormat = 0; 316 GLenum creationInternalColorFormat = 0;
317 GLenum colorFormat = 0; 317 GLenum colorFormat = 0;
318 }; 318 };
319 319
320 // If we used CHROMIUM_image as the backing storage for our buffers, 320 // If we used CHROMIUM_image as the backing storage for our buffers,
321 // we need to know the mapping from texture id to image. 321 // we need to know the mapping from texture id to image.
322 struct TextureInfo { 322 struct TextureInfo {
323 DISALLOW_NEW(); 323 DISALLOW_NEW();
324 GLuint textureId = 0; 324 GLuint textureId = 0;
325 GLuint imageId = 0; 325 GLuint imageId = 0;
326 bool immutable = false;
327 TextureParameters parameters; 326 TextureParameters parameters;
328 }; 327 };
329 328
330 struct MailboxInfo : public RefCounted<MailboxInfo> { 329 struct MailboxInfo : public RefCounted<MailboxInfo> {
331 MailboxInfo() = default; 330 MailboxInfo() = default;
332 gpu::Mailbox mailbox; 331 gpu::Mailbox mailbox;
333 TextureInfo textureInfo; 332 TextureInfo textureInfo;
334 IntSize size; 333 IntSize size;
335 334
336 private: 335 private:
(...skipping 19 matching lines...) Expand all
356 TextureParameters chromiumImageTextureParameters(); 355 TextureParameters chromiumImageTextureParameters();
357 356
358 // The texture parameters to use for a default texture. 357 // The texture parameters to use for a default texture.
359 TextureParameters defaultTextureParameters(); 358 TextureParameters defaultTextureParameters();
360 359
361 // Creates and binds a texture with the given parameters. Returns 0 on 360 // Creates and binds a texture with the given parameters. Returns 0 on
362 // failure, or the newly created texture id on success. The caller takes 361 // failure, or the newly created texture id on success. The caller takes
363 // ownership of the newly created texture. 362 // ownership of the newly created texture.
364 GLuint createColorTexture(const TextureParameters&); 363 GLuint createColorTexture(const TextureParameters&);
365 364
366 // Create the depth/stencil and multisample buffers, if needed.
367 bool resizeMultisampleFramebuffer(const IntSize&);
368 void resizeDepthStencil(const IntSize&);
369
370 // Attempts to allocator storage for, or resize all buffers. Returns whether 365 // Attempts to allocator storage for, or resize all buffers. Returns whether
371 // the operation was successful. 366 // the operation was successful.
372 bool resizeDefaultFramebuffer(const IntSize&); 367 bool resizeDefaultFramebuffer(const IntSize&);
373 368
374 void clearPlatformLayer(); 369 void clearPlatformLayer();
375 370
376 PassRefPtr<MailboxInfo> takeRecycledMailbox(); 371 PassRefPtr<MailboxInfo> takeRecycledMailbox();
377 PassRefPtr<MailboxInfo> createNewMailbox(const TextureInfo&); 372 PassRefPtr<MailboxInfo> createNewMailbox(const TextureInfo&);
378 void deleteMailbox(const gpu::Mailbox&, const gpu::SyncToken&); 373 void deleteMailbox(const gpu::Mailbox&, const gpu::SyncToken&);
379 void freeRecycledMailboxes(); 374 void freeRecycledMailboxes();
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
417 void clearChromiumImageAlpha(const TextureInfo&); 412 void clearChromiumImageAlpha(const TextureInfo&);
418 413
419 // Tries to create a CHROMIUM_image backed texture if 414 // Tries to create a CHROMIUM_image backed texture if
420 // RuntimeEnabledFeatures::webGLImageChromiumEnabled() is true. On failure, 415 // RuntimeEnabledFeatures::webGLImageChromiumEnabled() is true. On failure,
421 // or if the flag is false, creates a default texture. 416 // or if the flag is false, creates a default texture.
422 TextureInfo createTextureAndAllocateMemory(const IntSize&); 417 TextureInfo createTextureAndAllocateMemory(const IntSize&);
423 418
424 // Creates and allocates space for a default texture. 419 // Creates and allocates space for a default texture.
425 TextureInfo createDefaultTextureAndAllocateMemory(const IntSize&); 420 TextureInfo createDefaultTextureAndAllocateMemory(const IntSize&);
426 421
427 void resizeTextureMemory(TextureInfo*, const IntSize&);
428
429 // Attaches |m_colorBuffer| to |m_fbo|, which is always the source for read 422 // Attaches |m_colorBuffer| to |m_fbo|, which is always the source for read
430 // operations. 423 // operations.
431 void attachColorBufferToReadFramebuffer(); 424 void attachColorBufferToReadFramebuffer();
432 425
433 // Whether the WebGL client desires an explicit resolve. This is 426 // Whether the WebGL client desires an explicit resolve. This is
434 // implemented by forwarding all draw operations to a multisample 427 // implemented by forwarding all draw operations to a multisample
435 // renderbuffer, which is resolved before any read operations or swaps. 428 // renderbuffer, which is resolved before any read operations or swaps.
436 bool wantExplicitResolve(); 429 bool wantExplicitResolve();
437 430
438 // Whether the WebGL client wants a depth or stencil buffer. 431 // Whether the WebGL client wants a depth or stencil buffer.
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
555 // RuntimeEnabledFeatures::webGLImageChromiumEnabled() call with 548 // RuntimeEnabledFeatures::webGLImageChromiumEnabled() call with
556 // shouldUseChromiumImage() calls, and set m_chromiumImageUsage to 549 // shouldUseChromiumImage() calls, and set m_chromiumImageUsage to
557 // DisallowChromiumImage in the case of OffscreenCanvas. 550 // DisallowChromiumImage in the case of OffscreenCanvas.
558 ChromiumImageUsage m_chromiumImageUsage; 551 ChromiumImageUsage m_chromiumImageUsage;
559 bool shouldUseChromiumImage(); 552 bool shouldUseChromiumImage();
560 }; 553 };
561 554
562 } // namespace blink 555 } // namespace blink
563 556
564 #endif // DrawingBuffer_h 557 #endif // DrawingBuffer_h
OLDNEW
« no previous file with comments | « no previous file | third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698