/*!****************************************************************************
@file PVRTBackground.h
@copyright Copyright (c) Imagination Technologies Limited.
@brief Function to draw a background texture.
******************************************************************************/
#ifndef __PVRTBACKGROUND_H__
#define __PVRTBACKGROUND_H__
#include "PVRTGlobal.h"
#include "PVRTContext.h"
#include "PVRTString.h"
#include "PVRTError.h"
/****************************************************************************
** Structures
****************************************************************************/
/*!***************************************************************************
@struct SPVRTBackgroundAPI
@brief A struct for storing API specific variables
*****************************************************************************/
struct SPVRTBackgroundAPI;
/*!***************************************************************************
@class CPVRTBackground
@brief A class for drawing a fullscreen textured background
*****************************************************************************/
class CPVRTBackground
{
public:
/*!***************************************************************************
@brief Initialise some values.
*****************************************************************************/
CPVRTBackground(void);
/*!***************************************************************************
@brief Calls Destroy()
*****************************************************************************/
~CPVRTBackground(void);
/*!***************************************************************************
@brief Destroys the background and releases API specific resources
*****************************************************************************/
void Destroy();
/*!***************************************************************************
@brief Initialises the background
@param[in] pContext A pointer to a PVRTContext
@param[in] bRotate true to rotate texture 90 degrees.
@param[in] pszError An option string for returning errors
@return PVR_SUCCESS on success
*****************************************************************************/
EPVRTError Init(const SPVRTContext * const pContext, const bool bRotate, CPVRTString *pszError = 0);
#if defined(BUILD_OGL) || defined(BUILD_OGLES) || defined(BUILD_OGLES2) || defined(BUILD_OGLES3)
/*!***************************************************************************
@brief Draws a texture on a quad covering the whole screen.
@param[in] ui32Texture Texture to use
@return PVR_SUCCESS on success
*****************************************************************************/
EPVRTError Draw(const GLuint ui32Texture);
#elif defined(BUILD_DX11)
/*!***************************************************************************
@brief Draws a texture on a quad covering the whole screen.
@param[in] pTexture Texture to use
@return PVR_SUCCESS on success
*****************************************************************************/
EPVRTError Draw(ID3D11ShaderResourceView *pTexture);
#endif
protected:
bool m_bInit;
SPVRTBackgroundAPI *m_pAPI;
};
#endif /* __PVRTBACKGROUND_H__ */
/*****************************************************************************
End of file (PVRTBackground.h)
*****************************************************************************/