| OLD | NEW |
| 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 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 205 | 205 |
| 206 gpu::gles2::GLES2Interface* contextGL(); | 206 gpu::gles2::GLES2Interface* contextGL(); |
| 207 WebGraphicsContext3DProvider* contextProvider(); | 207 WebGraphicsContext3DProvider* contextProvider(); |
| 208 | 208 |
| 209 // cc::TextureLayerClient implementation. | 209 // cc::TextureLayerClient implementation. |
| 210 bool PrepareTextureMailbox( | 210 bool PrepareTextureMailbox( |
| 211 cc::TextureMailbox* outMailbox, | 211 cc::TextureMailbox* outMailbox, |
| 212 std::unique_ptr<cc::SingleReleaseCallback>* outReleaseCallback, | 212 std::unique_ptr<cc::SingleReleaseCallback>* outReleaseCallback, |
| 213 bool useSharedMemory) override; | 213 bool useSharedMemory) override; |
| 214 | 214 |
| 215 // Callbacks for mailboxes given to the compositor from PrepareTextureMailbo
x. | |
| 216 void gpuMailboxReleased(const gpu::Mailbox&, const gpu::SyncToken&, bool los
tResource); | |
| 217 void softwareMailboxReleased(std::unique_ptr<cc::SharedBitmap>, const IntSiz
e&, const gpu::SyncToken&, bool lostResource); | |
| 218 | |
| 219 // Returns a StaticBitmapImage backed by a texture containing the/ current c
ontents of | 215 // Returns a StaticBitmapImage backed by a texture containing the/ current c
ontents of |
| 220 // the front buffer. This is done without any pixel copies. The texture in t
he ImageBitmap | 216 // the front buffer. This is done without any pixel copies. The texture in t
he ImageBitmap |
| 221 // is from the active ContextProvider on the DrawingBuffer. | 217 // is from the active ContextProvider on the DrawingBuffer. |
| 222 PassRefPtr<StaticBitmapImage> transferToStaticBitmapImage(); | 218 PassRefPtr<StaticBitmapImage> transferToStaticBitmapImage(); |
| 223 | 219 |
| 224 // Destroys the TEXTURE_2D binding for the owned context | 220 // Destroys the TEXTURE_2D binding for the owned context |
| 225 bool copyToPlatformTexture(gpu::gles2::GLES2Interface*, GLuint texture, GLen
um internalFormat, | 221 bool copyToPlatformTexture(gpu::gles2::GLES2Interface*, GLuint texture, GLen
um internalFormat, |
| 226 GLenum destType, GLint level, bool premultiplyAlpha, bool flipY, SourceD
rawingBuffer); | 222 GLenum destType, GLint level, bool premultiplyAlpha, bool flipY, SourceD
rawingBuffer); |
| 227 | 223 |
| 228 void setPackAlignment(GLint param); | 224 void setPackAlignment(GLint param); |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 282 struct MailboxInfo : public RefCounted<MailboxInfo> { | 278 struct MailboxInfo : public RefCounted<MailboxInfo> { |
| 283 MailboxInfo() = default; | 279 MailboxInfo() = default; |
| 284 gpu::Mailbox mailbox; | 280 gpu::Mailbox mailbox; |
| 285 TextureInfo textureInfo; | 281 TextureInfo textureInfo; |
| 286 IntSize size; | 282 IntSize size; |
| 287 | 283 |
| 288 private: | 284 private: |
| 289 WTF_MAKE_NONCOPYABLE(MailboxInfo); | 285 WTF_MAKE_NONCOPYABLE(MailboxInfo); |
| 290 }; | 286 }; |
| 291 | 287 |
| 288 bool prepareTextureMailboxInternal( |
| 289 cc::TextureMailbox* outMailbox, |
| 290 std::unique_ptr<cc::SingleReleaseCallback>* outReleaseCallback, |
| 291 bool forceGpuResult); |
| 292 |
| 293 // Callbacks for mailboxes given to the compositor from PrepareTextureMailbo
x. |
| 294 void gpuMailboxReleased(const gpu::Mailbox&, const gpu::SyncToken&, bool los
tResource); |
| 295 void softwareMailboxReleased(std::unique_ptr<cc::SharedBitmap>, const IntSiz
e&, const gpu::SyncToken&, bool lostResource); |
| 296 |
| 292 // The texture parameters to use for a texture that will be backed by a | 297 // The texture parameters to use for a texture that will be backed by a |
| 293 // CHROMIUM_image. | 298 // CHROMIUM_image. |
| 294 TextureParameters chromiumImageTextureParameters(); | 299 TextureParameters chromiumImageTextureParameters(); |
| 295 | 300 |
| 296 // The texture parameters to use for a default texture. | 301 // The texture parameters to use for a default texture. |
| 297 TextureParameters defaultTextureParameters(); | 302 TextureParameters defaultTextureParameters(); |
| 298 | 303 |
| 299 // Creates and binds a texture with the given parameters. Returns 0 on | 304 // Creates and binds a texture with the given parameters. Returns 0 on |
| 300 // failure, or the newly created texture id on success. The caller takes | 305 // failure, or the newly created texture id on success. The caller takes |
| 301 // ownership of the newly created texture. | 306 // ownership of the newly created texture. |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 381 GLboolean m_colorMask[4]; | 386 GLboolean m_colorMask[4]; |
| 382 | 387 |
| 383 std::unique_ptr<WebGraphicsContext3DProvider> m_contextProvider; | 388 std::unique_ptr<WebGraphicsContext3DProvider> m_contextProvider; |
| 384 // Lifetime is tied to the m_contextProvider. | 389 // Lifetime is tied to the m_contextProvider. |
| 385 gpu::gles2::GLES2Interface* m_gl; | 390 gpu::gles2::GLES2Interface* m_gl; |
| 386 std::unique_ptr<Extensions3DUtil> m_extensionsUtil; | 391 std::unique_ptr<Extensions3DUtil> m_extensionsUtil; |
| 387 IntSize m_size = { -1, -1 }; | 392 IntSize m_size = { -1, -1 }; |
| 388 const bool m_discardFramebufferSupported; | 393 const bool m_discardFramebufferSupported; |
| 389 const bool m_wantAlphaChannel; | 394 const bool m_wantAlphaChannel; |
| 390 const bool m_premultipliedAlpha; | 395 const bool m_premultipliedAlpha; |
| 396 const bool m_softwareRendering; |
| 391 bool m_hasImplicitStencilBuffer = false; | 397 bool m_hasImplicitStencilBuffer = false; |
| 392 bool m_storageTextureSupported = false; | 398 bool m_storageTextureSupported = false; |
| 393 struct FrontBufferInfo { | 399 struct FrontBufferInfo { |
| 394 gpu::Mailbox mailbox; | 400 gpu::Mailbox mailbox; |
| 395 gpu::SyncToken produceSyncToken; | 401 gpu::SyncToken produceSyncToken; |
| 396 TextureInfo texInfo; | 402 TextureInfo texInfo; |
| 397 }; | 403 }; |
| 398 FrontBufferInfo m_frontColorBuffer; | 404 FrontBufferInfo m_frontColorBuffer; |
| 399 | 405 |
| 400 std::unique_ptr<WTF::Closure> m_newMailboxCallback; | 406 std::unique_ptr<WTF::Closure> m_newMailboxCallback; |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 478 // used to resize the Canvas. | 484 // used to resize the Canvas. |
| 479 SkBitmap m_resizingBitmap; | 485 SkBitmap m_resizingBitmap; |
| 480 | 486 |
| 481 // Used to flip a bitmap vertically. | 487 // Used to flip a bitmap vertically. |
| 482 Vector<uint8_t> m_scanline; | 488 Vector<uint8_t> m_scanline; |
| 483 }; | 489 }; |
| 484 | 490 |
| 485 } // namespace blink | 491 } // namespace blink |
| 486 | 492 |
| 487 #endif // DrawingBuffer_h | 493 #endif // DrawingBuffer_h |
| OLD | NEW |