Занимает ли MemoryDC память или память на видеокарте?

Я использую следующий код для создания совместимого контроллера домена:

m_pDC=new CDC();
VERIFY(m_pDC->CreateCompatibleDC(sampleDC);
CBitmap bitmap; 
if (bitmap.CreateCompatibleBitmap(sampleDC, rect.Width(), rect.Height()))
{
   m_pOldBitmap = m_pDC->SelectObject(&bitmap);
}

Мой вопрос: занимает ли CDC CBitmap память? Если он использует память, почему он получает плохой результат, когда rect.width и rect.height велики. (памяти хватает). Кто-то сказал, что он использует память на видеокарте. Это правда. Я не очень уверен в этом.


person user25749    schedule 03.08.2009    source источник


Ответы (1)


Память в CreateCompatibleBitmap выделяется из общесистемного пула, который обычно ограничен. примерно до 200 мегабайт в 32-разрядных версиях Windows.

Начиная с WinNT4.0 API CreateBitmap() размещает растровое изображение в выгружаемой памяти режима ядра. В WinNT4 нельзя было создавать растровые изображения размером более 48 МБ.

Каков был ваш предел?

person Kirill V. Lyadvinsky    schedule 03.08.2009