Я хочу иметь возможность рисовать весь мой текст, линии, треугольники и другие элементы на экране, а затем очищать экран и рисовать что-то новое, НО этот метод заставляет экран мерцать, и все рисунки не появляются одновременно.
Моя идея - нарисовать какой-нибудь буфер, а затем вывести этот буфер на экран, очистить буфер и повторить.Таким образом, экран не будет мерцать, и все будет отображаться одновременно.
Я использую windows.h, Visual Studio.
#include <Windows.h>
#include <iostream>
using namespace std;
struct vec2d
{
int x, y;
};
void Line(HDC dc, vec2d a, vec2d b)
{
MoveToEx(dc, a.x, a.y, NULL);
LineTo(dc, b.x, b.y);
}
vec2d GetMousePos(HWND console)
{
vec2d out;
POINT p;
GetCursorPos(&p);
out.x = p.x; out.y = p.y;
return out;
}
int main()
{
HWND console = GetConsoleWindow();
HDC dc = GetDC(console);
SelectObject(dc, CreatePen(PS_SOLID, 1, RGB(255, 255, 255)));
while (1)
{
//BitBlt(dc, 0, 0, 1000, 1000, 0, 0, 0, BLACKNESS); Flickering is much much bigger, because its faster
system("cls");
Line(dc, { 0, 0 }, GetMousePos(console));
}
}
Заранее спасибо, Марк.