간략한 이중버퍼인데 여기다 비트맵 띄우는거 가능한가요?



#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]);

}