간략한 이중버퍼인데 여기다 비트맵 띄우는거 가능한가요?
#include "Buffer.h"
void Buffer::CreateBuffer()
{
nBufferIndex = 0;
CONSOLE_CURSOR_INFO cci;
COORD size = { 80, 25 };
SMALL_RECT rect;
rect.Left = 0;
rect.Right = 80 - 1;
rect.Top = 0;
rect.Bottom = 25 - 1;
hBuffer[0] = CreateConsoleScreenBuffer(GENERIC_READ | GENERIC_WRITE, 0, NULL, CONSOLE_TEXTMODE_BUFFER, NULL);
SetConsoleScreenBufferSize(hBuffer[0], size);
SetConsoleWindowInfo(hBuffer[0], TRUE, &rect);
hBuffer[1] = CreateConsoleScreenBuffer(GENERIC_READ | GENERIC_WRITE, 0, NULL, CONSOLE_TEXTMODE_BUFFER, NULL);
SetConsoleScreenBufferSize(hBuffer[1], size);
SetConsoleWindowInfo(hBuffer[1], TRUE, &rect);
cci.dwSize = 1;
cci.bVisible = FALSE;
SetConsoleCursorInfo(hBuffer[0], &cci);
SetConsoleCursorInfo(hBuffer[1], &cci);
}
void Buffer::BufferWrite(int x, int y, const char* string)
{
DWORD dw;
COORD CursorPosition = { x, y };
SetConsoleCursorPosition(hBuffer[nBufferIndex], CursorPosition);
WriteFile(hBuffer[nBufferIndex], string, strlen(string), &dw, NULL);
}
void Buffer::Flipping()
{
Sleep(33);
SetConsoleActiveScreenBuffer(hBuffer[nBufferIndex]);
nBufferIndex = !nBufferIndex;
}
void Buffer::BufferClear()
{
COORD Coor = { 0, 0 };
DWORD dw;
FillConsoleOutputCharacter(hBuffer[nBufferIndex], ' ', 80 * 25, Coor, &dw);
}
void Buffer::Release()
{
CloseHandle(hBuffer[0]);
CloseHandle(hBuffer[1]);
}
된다면 참고할만한 자료같은것도 알려주실수 있나요?
w3m