// ScreenDIB.cpp: файл реализации
//

#include "stdafx.h"
//#include "Defines.h"
#include "16KPageScr.h"

// C16KPageScr


IMPLEMENT_DYNAMIC(C16KPageScr, CScreen)

C16KPageScr::C16KPageScr(BYTE *buffer, size_t size)
	: m_pBuffer(buffer)
	, m_nBufSize(size)
{
}


BEGIN_MESSAGE_MAP(C16KPageScr, CScreen)
END_MESSAGE_MAP()


// обработчики сообщений C16KPageScr
BOOL C16KPageScr::PreCreateWindow(CREATESTRUCT &cs)
{
	m_cx = cs.cx;
	m_cy = cs.cy;
	return CScreen::PreCreateWindow(cs);
}

void C16KPageScr::SetColorMode(BOOL bColorMode)
{
	if (m_bColorMode != bColorMode)
	{
		m_bColorMode = bColorMode;
		ReDrawScreen();
	}
}

void C16KPageScr::SetAdaptMode(BOOL bFlag)
{
	if (m_bAdapt != bFlag)
	{
		m_bAdapt = bFlag;
		InitColorTables();
		ReDrawScreen();
	}
}

void C16KPageScr::SetPalette(int palette)
{
	palette &= 0xf;

	if (m_nPaletteNum != palette)
	{
		m_nPaletteNum = palette;
		ReDrawScreen();
	}
}

void C16KPageScr::ReDrawScreen()
{
	PrepareScreenRGB32(m_pBuffer);
	DrawScreen();
}



