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;
}
⚠️ **GitHub.com Fallback** ⚠️