Прежде всего, мне нужно использовать DirectX 9 для совместимости,
Я начал рисовать текст с
RECT pos { 2, 2, 100, 100 };
if(!gfont)
D3DXCreateFont( iDev, 20, NULL, NULL, NULL, NULL, DEFAULT_CHARSET, NULL, ANTIALIASED_QUALITY, NULL, "Segoe UI Light", &gfont );
else
{
gfont->DrawText( NULL, "Sample", -1, &pos, NULL, D3DCOLOR_ARGB( 255, 0, 255, 255 ) );
}
и все в порядке, я получаю:
![enter image description here](https://i.stack.imgur.com/l9e5Q.png)
, поэтому, если мы добавим SetScissorRect
RECT protectedRect { 2, 2, 50, 50 };
iDev->SetRenderState( D3DRS_SCISSORTESTENABLE, TRUE );
iDev->SetScissorRect( &protectedRect );
, я получу:
![enter image description here](https://i.stack.imgur.com/fuLUP.png)
что это правильный результат, теперь, если я делаю с поверхностями, поверхность загружается с D3DXLoadSurfaceFromFile()
и выделяется с CreateOffscreenPlainSurface()
из файла jpg ...
iDev->GetBackBuffer(NULL, NULL, D3DBACKBUFFER_TYPE_MONO, &backBuffsfc);
iDev->UpdateSurface(sfc, NULL, backBuffsfc, NULL);
RECT protectedRect { 2, 2, 50, 50 };
iDev->SetRenderState( D3DRS_SCISSORTESTENABLE, TRUE );
iDev->SetScissorRect( &protectedRect );
поверхность продолжает появляться полностью как
![enter image description here](https://i.stack.imgur.com/axHkC.png)
вопрос, почему не обрезается как текст?