Urho3D
Public Member Functions | Private Attributes | Friends | List of all members
Dviglo::RenderSurface Class Reference

Color or depth-stencil surface that can be rendered into. More...

#include </home/runner/work/Dviglo/Dviglo/DvigloRepository/Source/Urho3D/Graphics/RenderSurface.h>

Inheritance diagram for Dviglo::RenderSurface:
Dviglo::RefCounted

Public Member Functions

 RenderSurface (Texture *parentTexture)
 Construct with parent texture.
 
 ~RenderSurface () override
 Destruct.
 
void SetNumViewports (unsigned num)
 
void SetViewport (unsigned index, Viewport *viewport)
 
void SetUpdateMode (RenderSurfaceUpdateMode mode)
 
void SetLinkedRenderTarget (RenderSurface *renderTarget)
 
void SetLinkedDepthStencil (RenderSurface *depthStencil)
 
void QueueUpdate ()
 Queue manual update of the viewport(s).
 
void Release ()
 Release surface.
 
void OnDeviceLost ()
 Mark the GPU resource destroyed on graphics context destruction. Only used on OpenGL.
 
bool CreateRenderBuffer (unsigned width, unsigned height, unsigned format, int multiSample)
 Create renderbuffer that cannot be sampled as a texture. Only used on OpenGL.
 
int GetWidth () const
 
int GetHeight () const
 
TextureUsage GetUsage () const
 
int GetMultiSample () const
 Return multisampling level.
 
bool GetAutoResolve () const
 Return multisampling autoresolve mode.
 
unsigned GetNumViewports () const
 
ViewportGetViewport (unsigned index) const
 
RenderSurfaceUpdateMode GetUpdateMode () const
 
RenderSurfaceGetLinkedRenderTarget () const
 
RenderSurfaceGetLinkedDepthStencil () const
 
bool IsUpdateQueued () const
 Return whether manual update queued. Called internally.
 
void ResetUpdateQueued ()
 Reset update queued flag. Called internally.
 
TextureGetParentTexture () const
 
void * GetSurface () const
 Return Direct3D9 surface.
 
void * GetRenderTargetView () const
 Return Direct3D11 rendertarget or depth-stencil view. Not valid on OpenGL.
 
void * GetReadOnlyView () const
 Return Direct3D11 read-only depth-stencil view. May be null if not applicable. Not valid on OpenGL.
 
unsigned GetTarget () const
 Return surface's OpenGL target.
 
unsigned GetRenderBuffer () const
 Return OpenGL renderbuffer if created.
 
bool IsResolveDirty () const
 
void SetResolveDirty (bool enable)
 Set or clear the need resolve flag. Called internally by Graphics.
 
- Public Member Functions inherited from Dviglo::RefCounted
 RefCounted ()
 Construct. Allocate the reference count structure and set an initial self weak reference.
 
virtual ~RefCounted ()
 Destruct. Mark as expired and also delete the reference count structure if no outside weak references exist.
 
 RefCounted (const RefCounted &rhs)=delete
 Prevent copy construction.
 
RefCountedoperator= (const RefCounted &rhs)=delete
 Prevent assignment.
 
void AddRef ()
 
void ReleaseRef ()
 
int Refs () const
 
int WeakRefs () const
 
RefCountRefCountPtr ()
 Return pointer to the reference count structure.
 

Private Attributes

TextureparentTexture_
 Parent texture.
 
union {
   void *   surface_
 
   void *   renderTargetView_
 
   unsigned   renderBuffer_
 
}; 
 
union {
   void *   readOnlyView_
 
   unsigned   target_
 
}; 
 
Vector< SharedPtr< Viewport > > viewports_
 Viewports.
 
WeakPtr< RenderSurfacelinkedRenderTarget_
 Linked color buffer.
 
WeakPtr< RenderSurfacelinkedDepthStencil_
 Linked depth buffer.
 
RenderSurfaceUpdateMode updateMode_ {SURFACE_UPDATEVISIBLE}
 Update mode for viewports.
 
bool updateQueued_ {}
 Update queued flag.
 
bool resolveDirty_ {}
 Multisampled resolve dirty flag.
 

Friends

class Texture2D
 
class Texture2DArray
 
class TextureCube
 

Detailed Description

Color or depth-stencil surface that can be rendered into.

Member Function Documentation

◆ GetHeight()

int Dviglo::RenderSurface::GetHeight ( ) const

Return height.

◆ GetLinkedDepthStencil()

RenderSurface* Dviglo::RenderSurface::GetLinkedDepthStencil ( ) const
inline

Return linked depth-stencil surface.

◆ GetLinkedRenderTarget()

RenderSurface* Dviglo::RenderSurface::GetLinkedRenderTarget ( ) const
inline

Return linked color rendertarget.

◆ GetNumViewports()

unsigned Dviglo::RenderSurface::GetNumViewports ( ) const
inline

Return number of viewports.

◆ GetParentTexture()

Texture* Dviglo::RenderSurface::GetParentTexture ( ) const
inline

Return parent texture.

◆ GetUpdateMode()

RenderSurfaceUpdateMode Dviglo::RenderSurface::GetUpdateMode ( ) const
inline

Return viewport update mode.

◆ GetUsage()

TextureUsage Dviglo::RenderSurface::GetUsage ( ) const

Return usage.

◆ GetViewport()

Viewport * Dviglo::RenderSurface::GetViewport ( unsigned  index) const

Return viewport by index.

◆ GetWidth()

int Dviglo::RenderSurface::GetWidth ( ) const

Return width.

◆ IsResolveDirty()

bool Dviglo::RenderSurface::IsResolveDirty ( ) const
inline

Return whether multisampled rendertarget needs resolve.

◆ SetLinkedDepthStencil()

void Dviglo::RenderSurface::SetLinkedDepthStencil ( RenderSurface depthStencil)

Set linked depth-stencil surface.

◆ SetLinkedRenderTarget()

void Dviglo::RenderSurface::SetLinkedRenderTarget ( RenderSurface renderTarget)

Set linked color rendertarget.

◆ SetNumViewports()

void Dviglo::RenderSurface::SetNumViewports ( unsigned  num)

Set number of viewports.

◆ SetUpdateMode()

void Dviglo::RenderSurface::SetUpdateMode ( RenderSurfaceUpdateMode  mode)

Set viewport update mode. Default is to update when visible.

◆ SetViewport()

void Dviglo::RenderSurface::SetViewport ( unsigned  index,
Viewport viewport 
)

Set viewport.

Member Data Documentation

◆ readOnlyView_

void* Dviglo::RenderSurface::readOnlyView_

Direct3D11 read-only depth-stencil view. Present only on depth-stencil surfaces.

◆ renderBuffer_

unsigned Dviglo::RenderSurface::renderBuffer_

OpenGL renderbuffer name.

◆ renderTargetView_

void* Dviglo::RenderSurface::renderTargetView_

Direct3D11 rendertarget or depth-stencil view.

◆ surface_

void* Dviglo::RenderSurface::surface_

Direct3D9 surface.

◆ target_

unsigned Dviglo::RenderSurface::target_

OpenGL target.


The documentation for this class was generated from the following files: