MemoryDC занимает память или память на видеокарте?
Вопрос
Я использую следующий код для создания совместимого DC:
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 велики. (Памяти хватает) Кто-то сказал, что он использует память на видеокарте. Это правда. Я не очень уверен в этом.
Решение
Память в CreateCompatibleBitmap
выделяется из общесистемного пула, который обычно ограничивается примерно 200 мегабайтами в 32-разрядных версиях Windows.
Начиная с WinNT4.0 API CreateBitmap () выделяет растровое изображение в выгружаемой памяти режима ядра , В WinNT4 невозможно было создавать растровые изображения размером более 48 МБ.
Каков был ваш лимит?
Не связан с StackOverflow