⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bitmap_mask.cpp

📁 实时监控
💻 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;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -