| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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 // This file contains the GLES2Decoder class. | 5 // This file contains the GLES2Decoder class. |
| 6 | 6 |
| 7 #ifndef GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_H_ | 7 #ifndef GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_H_ |
| 8 #define GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_H_ | 8 #define GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_H_ |
| 9 | 9 |
| 10 #include <vector> | 10 #include <vector> |
| 11 | 11 |
| 12 #include "base/callback.h" | 12 #include "base/callback.h" |
| 13 #include "base/callback_old.h" | 13 #include "base/callback_old.h" |
| 14 #include "build/build_config.h" | 14 #include "build/build_config.h" |
| 15 #include "gpu/command_buffer/common/constants.h" | |
| 16 #include "gpu/command_buffer/service/common_decoder.h" | 15 #include "gpu/command_buffer/service/common_decoder.h" |
| 17 #include "ui/gfx/size.h" | 16 #include "ui/gfx/size.h" |
| 18 | 17 |
| 19 namespace gfx { | 18 namespace gfx { |
| 20 class GLContext; | 19 class GLContext; |
| 21 class GLSurface; | 20 class GLSurface; |
| 22 } | 21 } |
| 23 | 22 |
| 24 namespace gpu { | 23 namespace gpu { |
| 25 | 24 |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 71 virtual bool Initialize(const scoped_refptr<gfx::GLSurface>& surface, | 70 virtual bool Initialize(const scoped_refptr<gfx::GLSurface>& surface, |
| 72 const scoped_refptr<gfx::GLContext>& context, | 71 const scoped_refptr<gfx::GLContext>& context, |
| 73 const gfx::Size& size, | 72 const gfx::Size& size, |
| 74 const DisallowedExtensions& disallowed_extensions, | 73 const DisallowedExtensions& disallowed_extensions, |
| 75 const char* allowed_extensions, | 74 const char* allowed_extensions, |
| 76 const std::vector<int32>& attribs) = 0; | 75 const std::vector<int32>& attribs) = 0; |
| 77 | 76 |
| 78 // Destroys the graphics context. | 77 // Destroys the graphics context. |
| 79 virtual void Destroy() = 0; | 78 virtual void Destroy() = 0; |
| 80 | 79 |
| 81 // Map a resource from an external context into this context. The source | |
| 82 // context need not be in the same share group from the client's point of | |
| 83 // view, allowing safe sharing between an "untrusted" context, like Pepper | |
| 84 // and a compositor context. | |
| 85 // | |
| 86 // Currently only texture resources are supported. TODO(apatrick): generalize | |
| 87 // this as appropriate. | |
| 88 // | |
| 89 // To unmap a previously mapped external resource, delete it in the | |
| 90 // destination context group. This will not delete the underlying texture | |
| 91 // object, just disassociate it with the id in the destination context group. | |
| 92 // | |
| 93 // The lifetime of the external resource is managed by the context group it | |
| 94 // was originally created in. When the last context in that group is destroyed | |
| 95 // the resource becomes invalid in all other context groups it is mapped into. | |
| 96 virtual bool MapExternalResource(resource_type::ResourceType resource_type, | |
| 97 uint32 resource_source_id, | |
| 98 GLES2Decoder* source_decoder, | |
| 99 uint32 resource_dest_id) = 0; | |
| 100 | |
| 101 virtual bool SetParent(GLES2Decoder* parent_decoder, | 80 virtual bool SetParent(GLES2Decoder* parent_decoder, |
| 102 uint32 parent_texture_id) = 0; | 81 uint32 parent_texture_id) = 0; |
| 103 | 82 |
| 104 // Resize an offscreen frame buffer. | 83 // Resize an offscreen frame buffer. |
| 105 virtual void ResizeOffscreenFrameBuffer(const gfx::Size& size) = 0; | 84 virtual void ResizeOffscreenFrameBuffer(const gfx::Size& size) = 0; |
| 106 | 85 |
| 107 // Force the offscreen frame buffer's size to be updated. This | 86 // Force the offscreen frame buffer's size to be updated. This |
| 108 // usually occurs lazily, during SwapBuffers, but on some platforms | 87 // usually occurs lazily, during SwapBuffers, but on some platforms |
| 109 // (Mac OS X in particular) it must be done immediately. | 88 // (Mac OS X in particular) it must be done immediately. |
| 110 virtual bool UpdateOffscreenFrameBufferSize() = 0; | 89 virtual bool UpdateOffscreenFrameBufferSize() = 0; |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 145 private: | 124 private: |
| 146 bool debug_; | 125 bool debug_; |
| 147 | 126 |
| 148 DISALLOW_COPY_AND_ASSIGN(GLES2Decoder); | 127 DISALLOW_COPY_AND_ASSIGN(GLES2Decoder); |
| 149 }; | 128 }; |
| 150 | 129 |
| 151 } // namespace gles2 | 130 } // namespace gles2 |
| 152 } // namespace gpu | 131 } // namespace gpu |
| 153 | 132 |
| 154 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_H_ | 133 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_H_ |
| OLD | NEW |