Add project files.
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
#include "cTexture.hpp"
|
||||
|
||||
/*** Custom Header Files ***/
|
||||
#include "../../VideoEngine/cRenderer.hpp"
|
||||
#include "../../FXEngine/cGFX.hpp"
|
||||
#include "GUIUtility.hpp"
|
||||
|
||||
using GUIHelpers::cTexture;
|
||||
|
||||
cTexture::cTexture()
|
||||
{}
|
||||
|
||||
cTexture::~cTexture()
|
||||
{}
|
||||
|
||||
///Functions
|
||||
|
||||
//private
|
||||
SDL_Texture* cTexture::GenerateTexture( const SDL_Rect& dimensions, TextTypeEngine::cText* text /*= nullptr*/ )
|
||||
{
|
||||
SDL_Rect t = text->getWH();
|
||||
SDL_Rect centerText = { 0, 0, 0, 0 };
|
||||
SDL_Rect centerButton = { 0, 0, 0, 0 };
|
||||
SDL_Rect dim = dimensions;
|
||||
|
||||
///Find the min padding around the text.
|
||||
// if (dim.w < (t.w + GUIHelpers::default::text::PADDING.x + GUIHelpers::default::text::PADDING.w) )
|
||||
// dim.w += (t.w + GUIHelpers::default::text::PADDING.x + GUIHelpers::default::text::PADDING.w);
|
||||
//
|
||||
// if (dim.h < (t.h + GUIHelpers::default::text::PADDING.y + GUIHelpers::default::text::PADDING.z) )
|
||||
// dim.h += (t.h + GUIHelpers::default::text::PADDING.y + GUIHelpers::default::text::PADDING.z);
|
||||
|
||||
///Find the center of the button
|
||||
centerButton.x = dim.w / 2;
|
||||
centerButton.y = dim.h / 2;
|
||||
|
||||
///Find the center of the text
|
||||
centerText.x = t.w / 2;
|
||||
centerText.y = t.h / 2;
|
||||
|
||||
if (centerText.x < centerButton.x)
|
||||
t.x = centerButton.x - centerText.x;
|
||||
|
||||
if (centerText.y < centerButton.y)
|
||||
t.y = centerButton.y - centerText.y;
|
||||
|
||||
SDL_Texture* temptext = VideoEngine::cRenderer::Inst().NewTexture(dim.w, dim.h, SDL_TEXTUREACCESS_TARGET );
|
||||
|
||||
GUIHelpers::RGBA colour = { 100, 100, 100, 255 };
|
||||
|
||||
FXEngine::cGFX::Inst().RoundedRectangle(dim, 0, colour, temptext);
|
||||
|
||||
|
||||
VideoEngine::cRenderer::Inst().RenderToTexture(text->getImage(), nullptr, temptext, &t);
|
||||
|
||||
|
||||
//cRenderer::Inst().Render(temptext, nullptr, nullptr);
|
||||
|
||||
//cRenderer::Inst().RenderToTexture(temptext, nullptr, text->getImage(), nullptr);
|
||||
|
||||
/*SDL_Surface* tempsurface = SDL_CreateRGBSurface(cVideo::Inst().getVideoSettings(), dimensions.w, dimensions.h, cVideo::Inst().getColour(),
|
||||
0, 0, 0, 0);
|
||||
|
||||
SDL_FillRect(tempsurface, nullptr, SDL_MapRGB(tempsurface->format, 0, 255, 0));
|
||||
|
||||
/*if (roundedBoxRGBA(tempsurface, dimensions.x, dimensions.y, dimensions.w, dimensions.h, 10, 255, 255, 0, 255) != 0)
|
||||
cerr << "Unable to generate GUI Texture." << endl << SDL_GetError() << endl;*/
|
||||
|
||||
|
||||
/*if (text != nullptr) {
|
||||
SDL_Rect srcrect, dstrect = dimensions;
|
||||
cVideo::Inst().Render(text->getImage(), &srcrect, temptext, &dstrect);
|
||||
}
|
||||
|
||||
this->setImage(temptext);
|
||||
this->setTransparent();*/
|
||||
|
||||
setImage(temptext);
|
||||
|
||||
return temptext;
|
||||
}
|
||||
Reference in New Issue
Block a user