📄 graphics.cpp.bak
字号:
#include "graphics.h"
#include "mydefs.h"
#include <stdlib.h>
short line_clr;
void DrawHorLine(int video, int x1, int x2, int y)
{
int i;
int offset = y*1600 + min(x1, x2)*2;
int dx = abs(x2-x1);
for(i=0; i<=dx; i++)
{
*((short*)(video + i*2 + offset)) = line_clr;
}
}
void DrawVerLine(int video, int x, int y1, int y2)
{
int i;
int offset = min(y1, y2)*1600 + x*2;
int dy = abs(y2-y1);
for(i=0; i<=dy; i++)
{
*((short*)(video + i*1600 + offset)) = line_clr;
}
}
void DrawRect(int video, int x1, int x2, int y1, int y2)
{
DrawHorLine(video, x1, x2, y1);
DrawHorLine(video, x1, x2, y2);
DrawVerLine(video, x1, y1, y2);
DrawVerLine(video, x2, y1, y2);
}
short SetLineColor(short color)
{
short clr = line_clr;
line_clr = color;
return clr;
}
void DrawFieldHorLine(int addr, int x1, int x2, int y)
{
int i;
int offset = y*768 + min(x1, x2)*2;
int dx = abs(x2-x1);
for(i=0; i<=dx; i++)
{
*((short*)(addr + i*2 + offset)) = line_clr;
}
}
void DrawFieldVerLine(int addr, int x, int y1, int y2)
{
int i;
int offset = min(y1, y2)*768 + x*2;
int dy = abs(y2-y1);
for(i=0; i<=dy; i++)
{
*((short*)(addr + i*768 + offset)) = line_clr;
}
}
void DrawFieldRect(int addr, int x1, int x2, int y1, int y2)
{
DrawFieldHorLine(addr, x1, x2, y1);
DrawFieldHorLine(addr, x1, x2, y2);
DrawFieldVerLine(addr, x1, y1, y2);
DrawFieldVerLine(addr, x2, y1, y2);
}
void SetBWPixel(int video, int x, int y, unsigned char value)
{
unsigned short data;
unsigned char temp;
data = 0;
temp = value >> 3;
data = data | temp;
data = data << 6;
temp = value >> 2;
data = data | temp;
data = data << 5;
temp = value >> 3;
data = data | temp;
*((short*)(video + y*1600 + x*2)) = data;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -