PixelLightAPI  .
Public Types | Public Member Functions | Protected Member Functions
PLRenderer::Resource Class Reference

Renderer resource base class. More...

#include <Resource.h>

Inheritance diagram for PLRenderer::Resource:
Inheritance graph
[legend]

List of all members.

Public Types

enum  EType {
  TypeIndexBuffer = 0, TypeVertexBuffer = 1, TypeUniformBuffer = 2, TypeTextureBuffer1D = 3,
  TypeTextureBuffer2D = 4, TypeTextureBuffer2DArray = 5, TypeTextureBufferRectangle = 6, TypeTextureBuffer3D = 7,
  TypeTextureBufferCube = 8, TypeOcclusionQuery = 9, TypeVertexShader = 10, TypeGeometryShader = 11,
  TypeFragmentShader = 12, TypeProgram = 13, TypeFont = 14
}
 Resource types. More...

Public Member Functions

virtual PLRENDERER_API ~Resource ()
 Destructor.
RendererGetRenderer () const
 Returns the owner renderer.
EType GetType () const
 Returns the resource type.
PLCore::uint32 GetNumOfHandlers () const
 Returns the number of resource handlers.
bool IsHandler (ResourceHandler &cHandler) const
 Returns whether a resource handler is using this resource.
PLRENDERER_API bool AddHandler (ResourceHandler &cHandler)
 Adds a resource handler.
PLRENDERER_API bool RemoveHandler (ResourceHandler &cHandler)
 Removes a resource handler.
PLRENDERER_API void ClearHandlers ()
 Clears the list of handlers.

Protected Member Functions

PLRENDERER_API Resource (Renderer &cRenderer, EType nType)
 Constructor.
virtual PLRENDERER_API void BackupDeviceData (PLCore::uint8 **ppBackup)
 Backups the resource device data.
virtual PLRENDERER_API void RestoreDeviceData (PLCore::uint8 **ppBackup)
 Restores the resource device data.

Detailed Description

Renderer resource base class.


Member Enumeration Documentation

Resource types.

Enumerator:
TypeIndexBuffer 

Index buffer (IBO)

TypeVertexBuffer 

Vertex buffer (VBO)

TypeUniformBuffer 

Uniform buffer (UBO)

TypeTextureBuffer1D 

1D texture buffer

TypeTextureBuffer2D 

2D texture buffer

TypeTextureBuffer2DArray 

2D array texture buffer (kind of 3D texture, but without filtering between the depth layers)

TypeTextureBufferRectangle 

Rectangle texture buffer

TypeTextureBuffer3D 

3D texture buffer

TypeTextureBufferCube 

Cube texture buffer

TypeOcclusionQuery 

Occlusion query

TypeVertexShader 

Vertex shader

TypeGeometryShader 

Geometry shader

TypeFragmentShader 

Fragment shader

TypeProgram 

Program

TypeFont 

Font

Reimplemented in PLRenderer::VertexBuffer, and PLRenderer::IndexBuffer.


Constructor & Destructor Documentation

virtual PLRENDERER_API PLRenderer::Resource::~Resource ( ) [virtual]

Destructor.

PLRENDERER_API PLRenderer::Resource::Resource ( Renderer cRenderer,
EType  nType 
) [protected]

Constructor.

Parameters:
[in]cRendererOwner renderer
[in]nTypeResource type

Member Function Documentation

Returns the owner renderer.

Returns:
The owner renderer

Returns the resource type.

Returns:
Resource type
PLCore::uint32 PLRenderer::Resource::GetNumOfHandlers ( ) const [inline]

Returns the number of resource handlers.

Returns:
The number of resource handlers
bool PLRenderer::Resource::IsHandler ( ResourceHandler cHandler) const [inline]

Returns whether a resource handler is using this resource.

Parameters:
[in]cHandlerResource handler to check
Returns:
'true' if the given resource handler is using this resource, else 'false'
Note:
  • The handlers will be informed if the resource was lost
  • The handlers itself are not deleted etc. they are only 'added' to a list
PLRENDERER_API bool PLRenderer::Resource::AddHandler ( ResourceHandler cHandler)

Adds a resource handler.

Parameters:
[in]cHandlerResource handler which should be added
Returns:
'true' if all went fine, else 'false'
See also:
PLRENDERER_API bool PLRenderer::Resource::RemoveHandler ( ResourceHandler cHandler)

Removes a resource handler.

Parameters:
[in]cHandlerResource handler to remove
Returns:
'true' if all went fine, else 'false'
See also:
PLRENDERER_API void PLRenderer::Resource::ClearHandlers ( )

Clears the list of handlers.

See also:
virtual PLRENDERER_API void PLRenderer::Resource::BackupDeviceData ( PLCore::uint8 **  ppBackup) [protected, virtual]

Backups the resource device data.

Parameters:
[in,out]ppBackupPointer to a pointer for the data backup (MUST be ALWAYS VALID or a null pointer!)
Note:
  • Used for instance if the display mode is changed to backup/restore all resource device data
  • Normally only used inside Renderer::BackupDeviceObjects()/Renderer::RestoreDeviceObjects()
virtual PLRENDERER_API void PLRenderer::Resource::RestoreDeviceData ( PLCore::uint8 **  ppBackup) [protected, virtual]

Restores the resource device data.

Parameters:
[in,out]ppBackupPointer to a pointer for the data backup (MUST be ALWAYS VALID or a null pointer!)
See also:

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


PixelLight PixelLight 0.9.11-R1
Copyright (C) 2002-2012 by The PixelLight Team
Last modified Thu Feb 23 2012 14:09:39
The content of this PixelLight document is published under the
Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported