| Index: core/cross/command_buffer/render_surface_cb.h
|
| ===================================================================
|
| --- core/cross/command_buffer/render_surface_cb.h (revision 26267)
|
| +++ core/cross/command_buffer/render_surface_cb.h (working copy)
|
| @@ -33,16 +33,39 @@
|
| #ifndef O3D_CORE_CROSS_COMMAND_BUFFER_RENDER_SURFACE_CB_H_
|
| #define O3D_CORE_CROSS_COMMAND_BUFFER_RENDER_SURFACE_CB_H_
|
|
|
| +// This file contains the definition of the CB versions of
|
| +// render surface sub-classes.
|
| +
|
| #include "core/cross/render_surface.h"
|
| #include "core/cross/command_buffer/renderer_cb.h"
|
| #include "command_buffer/common/cross/resource.h"
|
|
|
| namespace o3d {
|
|
|
| +// The RenderSurfaceCB class represents a render surface in the core library
|
| +// of the client for command buffers. This class is responsible for sending
|
| +// calls across the command buffer to create an actual render surface resource
|
| +// on the server.
|
| class RenderSurfaceCB : public RenderSurface {
|
| public:
|
| typedef SmartPointer<RenderSurfaceCB> Ref;
|
|
|
| + // The render surface maintains a reference to its texture and renderer but
|
| + // does not own them. The owner of the render surface is responsible for
|
| + // properly deleting any textures.
|
| + // Parameters:
|
| + // service_locator - for central lookup. Not owned by RenderSurfaceCB.
|
| + // width - width of the bitmap for this render surface. It must match the
|
| + // the width of the texture at 'mip_level'
|
| + // height - height of the bitmap for this render surface. It must match the
|
| + // the height of the texture at 'mip_level'
|
| + // mip_level - mip level of 'texture' for this render surface.
|
| + // side - which side of a cube texture the render surface represents. The
|
| + // 'side' parameter will not be used for a texture2d render surface.
|
| + // texture - the texture this render surface maps to. Not owned by
|
| + // RenderSurfaceCB.
|
| + // renderer - the renderer to render to render surface. Not owned by
|
| + // RenderSurfaceCB.
|
| RenderSurfaceCB(ServiceLocator *service_locator,
|
| int width,
|
| int height,
|
| @@ -50,41 +73,65 @@
|
| int side,
|
| Texture *texture,
|
| RendererCB *renderer);
|
| - virtual ~RenderSurfaceCB();
|
| -
|
| + virtual ~RenderSurfaceCB();
|
| +
|
| + // The CB specific implementation of GetBitmap.
|
| + // Returns:
|
| + // a reference to the underlying bitmap of the render surface.
|
| virtual Bitmap::Ref PlatformSpecificGetBitmap() const {
|
| // TODO(rlp): Add this functionality.
|
| DCHECK(false);
|
| return Bitmap::Ref();
|
| }
|
|
|
| + // Destroys any data structures associated with the render surface and
|
| + // resets any allocated IDs. This function should never be called during
|
| + // rendering.
|
| virtual void Destroy();
|
|
|
| - // Gets the render surface resource ID.
|
| + // Returns the render surface resource ID.
|
| command_buffer::ResourceID resource_id() const { return resource_id_; }
|
| +
|
| private:
|
| command_buffer::ResourceID resource_id_;
|
| - RendererCB* renderer_;
|
| + RendererCB *renderer_;
|
| DISALLOW_COPY_AND_ASSIGN(RenderSurfaceCB);
|
| };
|
|
|
| +// The RenderDepthStencilSurfaceCB class represents a depth stencil surface in
|
| +// the core library of the client for command buffers. This class is
|
| +// responsible for sending calls across the command buffer to create an actual
|
| +// depth stencil surface resource on the server.
|
| class RenderDepthStencilSurfaceCB : public RenderDepthStencilSurface {
|
| public:
|
| typedef SmartPointer<RenderDepthStencilSurfaceCB> Ref;
|
|
|
| + // The depth stencil surface maintains a reference to its renderer which is
|
| + // also what typically creates it (though not always). The depth stencil
|
| + // does not maintain ownership of the renderer.
|
| + // Parameters:
|
| + // service_locator - for central lookup.
|
| + // width - width of the bitmap for this render surface.
|
| + // height - height of the bitmap for this render surface.
|
| + // renderer - the renderer to render to render surface. Not owned by
|
| + // RenderDepthStencilSurfaceCB.
|
| RenderDepthStencilSurfaceCB(ServiceLocator *service_locator,
|
| int width,
|
| int height,
|
| RendererCB *renderer);
|
| virtual ~RenderDepthStencilSurfaceCB() {}
|
|
|
| + // Destroys any data structures associated with the render surface and
|
| + // resets any allocated IDs. This function should never be called during
|
| + // rendering.
|
| virtual void Destroy();
|
|
|
| - // Gets the render depth stencil surface resource ID.
|
| + // Returns the render depth stencil surface resource ID.
|
| command_buffer::ResourceID resource_id() const { return resource_id_; }
|
| +
|
| private:
|
| command_buffer::ResourceID resource_id_;
|
| - RendererCB* renderer_;
|
| + RendererCB *renderer_;
|
| DISALLOW_COPY_AND_ASSIGN(RenderDepthStencilSurfaceCB);
|
| };
|
|
|
|
|