?? bitmap_mask.cpp
字號:
#include "stdafx.h"
#include "bitmap_mask.h"
//////////////////////////////////////////////////////////////////////////
// bitmap mask
DWORD pow2(int p)
{
DWORD y = 1;
y <<= p;
return y;
}
bitmap_mask::bitmap_mask(): bitmap(NULL), h(0)
{
}
bitmap_mask::~bitmap_mask()
{
free();
}
void bitmap_mask::free()
{
delete[] bitmap;
bitmap = NULL;
}
void bitmap_mask::alloc(int height)
{
h = height;
free();
bitmap = new byte [h];
memset(bitmap, 0, h);
bitmap[0] = 0;
}
void bitmap_mask::set(int x, int y)
{
if(x >7)
{
y = y+ x/8;
x = x%8;
}
bitmap[y] |= pow2(x);
}
void bitmap_mask::clear(int x, int y)
{
if(x >7)
{
y = y+ x/8;
x = x%8;
}
bitmap[y] &= ~pow2(x);
}
bool bitmap_mask::is_set(int x, int y)
{
if(x >7)
{
y = y+ x/8;
x = x%8;
}
return (bitmap[y] & pow2(x) ) != 0;
}
void bitmap_mask::toggle(int x, int y)
{
if( is_set(x,y) )
clear(x,y);
else
set(x,y);
}
void bitmap_mask::remove_all()
{
memset(bitmap, 0, h);
}
void bitmap_mask::select_all()
{
memset(bitmap, 0xff, h);
}
bitmap_mask::operator byte*()
{
return bitmap;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -