144 lines
2.6 KiB
C++
144 lines
2.6 KiB
C++
/*
|
|
* RenderModel.cpp
|
|
*
|
|
* Created on: Jan 23, 2012
|
|
* Author: Simon
|
|
*/
|
|
|
|
#include "RenderModel.h"
|
|
|
|
RenderModel::RenderModel():
|
|
renderer(NULL)
|
|
{
|
|
|
|
}
|
|
|
|
void RenderModel::AddObserver(RenderView * observer)
|
|
{
|
|
observers.push_back(observer);
|
|
observer->NotifyRendererChanged(this);
|
|
observer->NotifyRenderChanged(this);
|
|
observer->NotifyDisplayChanged(this);
|
|
observer->NotifyColourChanged(this);
|
|
}
|
|
|
|
void RenderModel::SetRenderMode(unsigned int renderMode)
|
|
{
|
|
if(renderer)
|
|
renderer->AddRenderMode(renderMode);
|
|
notifyRenderChanged();
|
|
}
|
|
|
|
void RenderModel::UnsetRenderMode(unsigned int renderMode)
|
|
{
|
|
if(renderer)
|
|
renderer->RemoveRenderMode(renderMode);
|
|
notifyRenderChanged();
|
|
}
|
|
|
|
unsigned int RenderModel::GetRenderMode()
|
|
{
|
|
if(renderer)
|
|
return renderer->render_mode;
|
|
else
|
|
return 0;
|
|
}
|
|
|
|
void RenderModel::SetDisplayMode(unsigned int displayMode)
|
|
{
|
|
if(renderer)
|
|
renderer->AddDisplayMode(displayMode);
|
|
notifyDisplayChanged();
|
|
}
|
|
|
|
void RenderModel::UnsetDisplayMode(unsigned int displayMode)
|
|
{
|
|
if(renderer)
|
|
renderer->RemoveDisplayMode(displayMode);
|
|
notifyDisplayChanged();
|
|
}
|
|
|
|
unsigned int RenderModel::GetDisplayMode()
|
|
{
|
|
if(renderer)
|
|
return renderer->display_mode;
|
|
else
|
|
return 0;
|
|
}
|
|
|
|
void RenderModel::SetColourMode(unsigned int colourMode)
|
|
{
|
|
if(renderer)
|
|
renderer->SetColourMode(colourMode);
|
|
notifyColourChanged();
|
|
}
|
|
|
|
unsigned int RenderModel::GetColourMode()
|
|
{
|
|
if(renderer)
|
|
return renderer->colour_mode;
|
|
else
|
|
return 0;
|
|
}
|
|
|
|
void RenderModel::LoadRenderPreset(int presetNum)
|
|
{
|
|
RenderPreset preset = renderer->renderModePresets[presetNum];
|
|
renderer->SetRenderMode(preset.RenderModes);
|
|
renderer->SetDisplayMode(preset.DisplayModes);
|
|
renderer->SetColourMode(preset.ColourMode);
|
|
notifyRenderChanged();
|
|
notifyDisplayChanged();
|
|
notifyColourChanged();
|
|
}
|
|
|
|
void RenderModel::SetRenderer(Renderer * ren)
|
|
{
|
|
renderer = ren;
|
|
notifyRendererChanged();
|
|
notifyRenderChanged();
|
|
notifyDisplayChanged();
|
|
notifyColourChanged();
|
|
}
|
|
|
|
Renderer * RenderModel::GetRenderer()
|
|
{
|
|
return renderer;
|
|
}
|
|
|
|
void RenderModel::notifyRendererChanged()
|
|
{
|
|
for(int i = 0; i < observers.size(); i++)
|
|
{
|
|
observers[i]->NotifyRendererChanged(this);
|
|
}
|
|
}
|
|
|
|
void RenderModel::notifyRenderChanged()
|
|
{
|
|
for(int i = 0; i < observers.size(); i++)
|
|
{
|
|
observers[i]->NotifyRenderChanged(this);
|
|
}
|
|
}
|
|
|
|
void RenderModel::notifyDisplayChanged()
|
|
{
|
|
for(int i = 0; i < observers.size(); i++)
|
|
{
|
|
observers[i]->NotifyDisplayChanged(this);
|
|
}
|
|
}
|
|
|
|
void RenderModel::notifyColourChanged()
|
|
{
|
|
for(int i = 0; i < observers.size(); i++)
|
|
{
|
|
observers[i]->NotifyColourChanged(this);
|
|
}
|
|
}
|
|
|
|
RenderModel::~RenderModel() {
|
|
// TODO Auto-generated destructor stub
|
|
}
|