summaryrefslogtreecommitdiff
path: root/src/interface
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2012-04-21 21:46:37 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-04-21 21:46:37 (GMT)
commit96506610b276be1b4bc1cbc462d991237750fc62 (patch)
treec05e6d55d2a0aa2ad178cfa30f00041a104d6fed /src/interface
parent75a9460c835f4ebea501a89d23e0c5f46da985cc (diff)
downloadpowder-96506610b276be1b4bc1cbc462d991237750fc62.zip
powder-96506610b276be1b4bc1cbc462d991237750fc62.tar.gz
Clean out graphics, add openGL graphics in seperate file, change brush to use unsigned char rather than boolean for bitmap/outline
Diffstat (limited to 'src/interface')
-rw-r--r--src/interface/Engine.cpp5
-rw-r--r--src/interface/Slider.cpp12
-rw-r--r--src/interface/Slider.h1
-rw-r--r--src/interface/Spinner.cpp2
4 files changed, 17 insertions, 3 deletions
diff --git a/src/interface/Engine.cpp b/src/interface/Engine.cpp
index 751cbcb..aea89e7 100644
--- a/src/interface/Engine.cpp
+++ b/src/interface/Engine.cpp
@@ -74,7 +74,10 @@ void Engine::ShowWindow(Window * window)
prevBuffers.push(lastBuffer);
}
lastBuffer = (pixel*)malloc((width_ * height_) * PIXELSIZE);
+
+#ifndef OGLR
memcpy(lastBuffer, g->vid, (width_ * height_) * PIXELSIZE);
+#endif
windows.push(state_);
}
@@ -167,7 +170,9 @@ void Engine::Draw()
if(lastBuffer && !(state_->Position.X == 0 && state_->Position.Y == 0 && state_->Size.X == width_ && state_->Size.Y == height_))
{
g->Clear();
+#ifndef OGLR
memcpy(g->vid, lastBuffer, (width_ * height_) * PIXELSIZE);
+#endif
}
else
{
diff --git a/src/interface/Slider.cpp b/src/interface/Slider.cpp
index 06d6f87..3430ca1 100644
--- a/src/interface/Slider.cpp
+++ b/src/interface/Slider.cpp
@@ -16,7 +16,9 @@ Slider::Slider(Point position, Point size, int steps):
sliderSteps(steps),
sliderPosition(0),
isMouseDown(false),
- bgGradient(NULL)
+ bgGradient(NULL),
+ col1(0, 0, 0, 0),
+ col2(0, 0, 0, 0)
{
// TODO Auto-generated constructor stub
@@ -79,6 +81,8 @@ void Slider::SetColour(Colour col1, Colour col2)
{
if(bgGradient)
free(bgGradient);
+ this->col1 = col1;
+ this->col2 = col2;
bgGradient = (unsigned char*)Graphics::GenerateGradient(
(pixel[2]){PIXRGB(col1.Red, col1.Green, col1.Blue), PIXRGB(col2.Red, col2.Green, col2.Blue)},
(float[2]){0.0f, 1.0f}, 2, Size.X-6);
@@ -100,9 +104,13 @@ void Slider::Draw(const Point& screenPos)
if(bgGradient)
{
+#ifndef OGLR
for (int j = 3; j < Size.Y-6; j++)
for (int i = 3; i < Size.X-6; i++)
- g->drawpixel(screenPos.X+i+2, screenPos.Y+j+2, bgGradient[(i-3)*3], bgGradient[(i-3)*3+1], bgGradient[(i-3)*3+2], 255);
+ g->blendpixel(screenPos.X+i+2, screenPos.Y+j+2, bgGradient[(i-3)*3], bgGradient[(i-3)*3+1], bgGradient[(i-3)*3+2], 255);
+#else
+ g->gradientrect(screenPos.X+3, screenPos.Y+3, Size.X-6, Size.Y-6, col1.Red, col1.Green, col1.Blue, col1.Alpha, col2.Red, col2.Green, col2.Blue, col2.Alpha);
+#endif
}
g->drawrect(screenPos.X+3, screenPos.Y+3, Size.X-6, Size.Y-6, 255, 255, 255, 255);
diff --git a/src/interface/Slider.h b/src/interface/Slider.h
index 4992f80..21792bc 100644
--- a/src/interface/Slider.h
+++ b/src/interface/Slider.h
@@ -26,6 +26,7 @@ class Slider: public ui::Component {
bool isMouseDown;
unsigned char * bgGradient;
SliderAction * actionCallback;
+ Colour col1, col2;
void updatePosition(int position);
public:
Slider(Point position, Point size, int steps);
diff --git a/src/interface/Spinner.cpp b/src/interface/Spinner.cpp
index 1ecad8d..b988674 100644
--- a/src/interface/Spinner.cpp
+++ b/src/interface/Spinner.cpp
@@ -27,7 +27,7 @@ void Spinner::Draw(const Point& screenPos)
int baseY = screenPos.Y+(Size.Y/2);
for(float t = 0.0f; t < 1.0f; t+=0.05f)
{
- g->drawblob(baseX+(sin(cValue+t)*(Size.X/2)), baseY+(cos(cValue+t)*(Size.X/2)), t*255, t*255, t*255);
+ //g->drawblob(baseX+(sin(cValue+t)*(Size.X/2)), baseY+(cos(cValue+t)*(Size.X/2)), t*255, t*255, t*255);
}
}
Spinner::~Spinner()