Texture - BratokHR/RenderClass-DX9 GitHub Wiki
Текстура в классе служит как полотно для рисования.
int cRender.CreateTexture( UINT width, UINT height );
- width
- Ширина текстуры.
- height
- Высота текстуры.
Индекс текстуры в векторе класса.
bool сRender.RenderTextureBegin( UINT num_texture );
...
void cRender.RenderTextureEnd();
- num_texture
- Индекс текстуры.
В случае успешного перевода рендера в текстуру, возвращается true, иначе false.
Вывод текстуры на экран происходит с помощью накладыванию текстуры на вершинный буфер.
void cRender.SetTexture( UINT stage, UINT num_texture );
- stage
- Номер регистра (s#). Как правило, для шейдера
- num_texture
- Индекс текстуры.
После каждого кадра отрисовки, нужно чистить текстуру.
void cRender.ClearTextures();
cRender render;
int renderTexture;
HRESULT APIENTRY hEndScene( LPDIRECT3DDEVICE9 pDevice )
{
render.CheckObjects( pDevice );
// Переводим рендер в текстуру
if ( render.RenderTextureBegin( renderTexture ) )
{
// рисуем в ней
// Сбрасываем рендер
render.RenderTextureEnd();
}
HRESULT hRet = pEndScene( pDevice );
// Очистка текстуры
render.ClearTextures();
return hRet;
}
void initRender()
{
// Создание текстуры размерами 1920x1080
renderTexture = render.CreateTexture( 1920, 1080 );
}
void main()
{
render.InitFunction = initRender;
}