/* WindowsRender.cpp - Render implementation for Windows apps.
* Copyright (C) 2014 Paulo Pinto
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/

#include "pch.h"
#include "WindowsRender.h"


WindowsRender::WindowsRender(ImageSourceImplementation::ImageSourceImpl^ dxRender) : dxRender(dxRender)
{
	dxRender->BeginDraw();
}


WindowsRender::~WindowsRender()
{
	dxRender->EndDraw();
}


void WindowsRender::fill_rect(int x, int y, int w, int h, int r, int g, int b)
{
	Windows::Foundation::Rect rect(static_cast<float>(x), static_cast<float>(y), static_cast<float>(w), static_cast<float>(h));
	Windows::UI::Color color;
	color.R = r;
	color.G = g;
	color.B = b;

	dxRender->FillSolidRect(color, rect);
}

void WindowsRender::draw_line(int x0, int y0, int x1, int y1)
{
	Windows::UI::Color color;
	color.R = 0;
	color.G = 0;
	color.B = 0;

	dxRender->DrawLine(color, static_cast<float>(x0), static_cast<float>(y0), static_cast<float>(x1), static_cast<float>(y1));
}

int WindowsRender::width()
{
	return dxRender->Width();
}

int WindowsRender::height()
{
	return dxRender->Height();
}
