Hat MemoryDC belegten Speicher oder die Speicher auf Grafikkarte?
Frage
Ich bin mit dem folgenden Code ein kompatibles DC zu erstellen:
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);
}
Meine Frage ist nicht CDC CBitmap Speicher belegt? Wenn es Speicher verwenden, warum bekommt es schlechtes Ergebnis, wenn rect.width und rect.height groß ist. (Es gibt genügend Speicher). Jemand sagte, es Speicher auf Grafikkarte verwendet wird. Ist es wahr. Ich bin nicht ganz sicher über sie.
Lösung
Speicher in CreateCompatibleBitmap
aus einem systemweiten Pool zugeordnet, ist typischerweise auf etwa 200 Megabytes auf 32-Bit-Versionen von Windows beschränkt .
Da WinNT4.0 Create () API teilt die Bitmap im Kernel-Modus-Speicher ausgelagert . In WinNT4 war es unmöglich, Bitmaps zu erstellen mehr als 48 MB.
Was war Ihre Grenze?
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow