GL - Buttons is now using one texture per button type. Fixed button state when spamming the button.
This commit is contained in:
parent
d4b7fbf1b4
commit
8e07475434
|
@ -42,26 +42,17 @@ namespace DanBias
|
||||||
virtual ~EventButtonGUI()
|
virtual ~EventButtonGUI()
|
||||||
{
|
{
|
||||||
Oyster::Graphics::API::DeleteTexture(texture);
|
Oyster::Graphics::API::DeleteTexture(texture);
|
||||||
Oyster::Graphics::API::DeleteTexture(texture2);
|
|
||||||
Oyster::Graphics::API::DeleteTexture(texture3);
|
|
||||||
texture = NULL;
|
texture = NULL;
|
||||||
texture2 = NULL;
|
|
||||||
texture3 = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CreateTexture(std::wstring textureName)
|
void CreateTexture(std::wstring textureName)
|
||||||
{
|
{
|
||||||
std::wstring file = L".png";
|
|
||||||
|
|
||||||
//Create texture
|
//Create texture
|
||||||
texture = Oyster::Graphics::API::CreateTexture(textureName + std::wstring(L"none") + file);
|
texture = Oyster::Graphics::API::CreateTexture(textureName);
|
||||||
texture2 = Oyster::Graphics::API::CreateTexture(textureName + std::wstring(L"highlight") + file);
|
|
||||||
texture3 = Oyster::Graphics::API::CreateTexture(textureName + std::wstring(L"down") + file);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void Render()
|
virtual void Render()
|
||||||
{
|
{
|
||||||
|
|
||||||
if(EventButton<Owner>::Enabled())
|
if(EventButton<Owner>::Enabled())
|
||||||
{
|
{
|
||||||
//Render att xPos and yPos
|
//Render att xPos and yPos
|
||||||
|
@ -69,15 +60,15 @@ namespace DanBias
|
||||||
|
|
||||||
if(EventButton<Owner>::GetState() == ButtonState_None)
|
if(EventButton<Owner>::GetState() == ButtonState_None)
|
||||||
{
|
{
|
||||||
Oyster::Graphics::API::RenderGuiElement(texture, Oyster::Math::Float2(xPos, yPos), Oyster::Math::Float2(width, height));
|
Oyster::Graphics::API::RenderGuiElement(texture, Oyster::Math::Float2(xPos, yPos), Oyster::Math::Float2(width, height), Oyster::Math::Float3(1, 1, 1));
|
||||||
}
|
}
|
||||||
else if(EventButton<Owner>::GetState() == ButtonState_Hover)
|
else if(EventButton<Owner>::GetState() == ButtonState_Hover)
|
||||||
{
|
{
|
||||||
Oyster::Graphics::API::RenderGuiElement(texture2, Oyster::Math::Float2(xPos, yPos), Oyster::Math::Float2(width, height));
|
Oyster::Graphics::API::RenderGuiElement(texture, Oyster::Math::Float2(xPos, yPos), Oyster::Math::Float2(width, height), Oyster::Math::Float3(0, 1, 0));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Oyster::Graphics::API::RenderGuiElement(texture3, Oyster::Math::Float2(xPos, yPos), Oyster::Math::Float2(width, height));
|
Oyster::Graphics::API::RenderGuiElement(texture, Oyster::Math::Float2(xPos, yPos), Oyster::Math::Float2(width, height), Oyster::Math::Float3(1, 0, 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -87,8 +78,6 @@ namespace DanBias
|
||||||
float xPos, yPos;
|
float xPos, yPos;
|
||||||
float width, height;
|
float width, height;
|
||||||
Oyster::Graphics::API::Texture texture;
|
Oyster::Graphics::API::Texture texture;
|
||||||
Oyster::Graphics::API::Texture texture2;
|
|
||||||
Oyster::Graphics::API::Texture texture3;
|
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -110,21 +110,21 @@ bool LoginState::Init(Oyster::Network::NetworkClient* nwClient)
|
||||||
//Create menu buttons
|
//Create menu buttons
|
||||||
privData->collection = new EventButtonCollection;
|
privData->collection = new EventButtonCollection;
|
||||||
EventHandler::Instance().AddCollection(privData->collection);
|
EventHandler::Instance().AddCollection(privData->collection);
|
||||||
privData->collection->AddButton(new ButtonEllipse<LoginState*>(L"circle_", &LoginState::ButtonCallback, this, (void*)Create, 0.2f, 0.2f, 0.1f, 0.2f));
|
privData->collection->AddButton(new ButtonEllipse<LoginState*>(L"circle.png", &LoginState::ButtonCallback, this, (void*)Create, 0.2f, 0.2f, 0.1f, 0.2f));
|
||||||
privData->collection->AddButton(new ButtonEllipse<LoginState*>(L"circle_", &LoginState::ButtonCallback, this, (void*)Create, 0.2f, 0.3f, 0.1f, 0.2f));
|
privData->collection->AddButton(new ButtonEllipse<LoginState*>(L"circle.png", &LoginState::ButtonCallback, this, (void*)Create, 0.2f, 0.3f, 0.1f, 0.2f));
|
||||||
privData->collection->AddButton(new ButtonEllipse<LoginState*>(L"circle_", &LoginState::ButtonCallback, this, (void*)Create, 0.2f, 0.4f, 0.1f, 0.2f));
|
privData->collection->AddButton(new ButtonEllipse<LoginState*>(L"circle.png", &LoginState::ButtonCallback, this, (void*)Create, 0.2f, 0.4f, 0.1f, 0.2f));
|
||||||
privData->collection->AddButton(new ButtonEllipse<LoginState*>(L"circle_", &LoginState::ButtonCallback, this, (void*)Create, 0.2f, 0.5f, 0.1f, 0.2f));
|
privData->collection->AddButton(new ButtonEllipse<LoginState*>(L"circle.png", &LoginState::ButtonCallback, this, (void*)Create, 0.2f, 0.5f, 0.1f, 0.2f));
|
||||||
|
|
||||||
privData->collection->AddButton(new ButtonRectangle<LoginState*>(L"button_", &LoginState::ButtonCallback, this, (void*)Create, 0.15f, 0.05f, 0.1f, 0.1f));
|
privData->collection->AddButton(new ButtonRectangle<LoginState*>(L"button.png", &LoginState::ButtonCallback, this, (void*)Create, 0.15f, 0.05f, 0.1f, 0.1f));
|
||||||
privData->collection->AddButton(new ButtonRectangle<LoginState*>(L"button_", &LoginState::ButtonCallback, this, (void*)Create, 0.25f, 0.05f, 0.1f, 0.1f));
|
privData->collection->AddButton(new ButtonRectangle<LoginState*>(L"button.png", &LoginState::ButtonCallback, this, (void*)Create, 0.25f, 0.05f, 0.1f, 0.1f));
|
||||||
privData->collection->AddButton(new ButtonRectangle<LoginState*>(L"button_", &LoginState::ButtonCallback, this, (void*)Create, 0.35f, 0.05f, 0.1f, 0.1f));
|
privData->collection->AddButton(new ButtonRectangle<LoginState*>(L"button.png", &LoginState::ButtonCallback, this, (void*)Create, 0.35f, 0.05f, 0.1f, 0.1f));
|
||||||
privData->collection->AddButton(new ButtonRectangle<LoginState*>(L"button_", &LoginState::ButtonCallback, this, (void*)Create, 0.45f, 0.05f, 0.1f, 0.1f));
|
privData->collection->AddButton(new ButtonRectangle<LoginState*>(L"button.png", &LoginState::ButtonCallback, this, (void*)Create, 0.45f, 0.05f, 0.1f, 0.1f));
|
||||||
|
|
||||||
privData->collection->AddButton(new ButtonRectangle<LoginState*>(L"button_", &LoginState::ButtonCallback, this, (void*)Create, 0.5f, 0.5f, 0.3f, 0.3f));
|
privData->collection->AddButton(new ButtonRectangle<LoginState*>(L"button.png", &LoginState::ButtonCallback, this, (void*)Create, 0.5f, 0.5f, 0.3f, 0.3f));
|
||||||
|
|
||||||
//Incr/decr buttons
|
//Incr/decr buttons
|
||||||
privData->collection->AddButton(new ButtonRectangle<LoginState*>(L"button_", &LoginState::ButtonCallback, this, (void*)Incr, 0.85f, 0.2f, 0.1f, 0.1f));
|
privData->collection->AddButton(new ButtonRectangle<LoginState*>(L"button.png", &LoginState::ButtonCallback, this, (void*)Incr, 0.85f, 0.2f, 0.1f, 0.1f));
|
||||||
privData->collection->AddButton(new ButtonRectangle<LoginState*>(L"button_", &LoginState::ButtonCallback, this, (void*)Decr, 0.55f, 0.2f, 0.1f, 0.1f));
|
privData->collection->AddButton(new ButtonRectangle<LoginState*>(L"button.png", &LoginState::ButtonCallback, this, (void*)Decr, 0.55f, 0.2f, 0.1f, 0.1f));
|
||||||
|
|
||||||
privData->testNumber = 0;
|
privData->testNumber = 0;
|
||||||
|
|
||||||
|
@ -217,7 +217,6 @@ GameClientState::ClientState LoginState::Update(float deltaTime, InputClass* Key
|
||||||
}
|
}
|
||||||
bool LoginState::Render(float dt)
|
bool LoginState::Render(float dt)
|
||||||
{
|
{
|
||||||
|
|
||||||
Oyster::Graphics::API::SetView(privData->view);
|
Oyster::Graphics::API::SetView(privData->view);
|
||||||
Oyster::Graphics::API::SetProjection( privData->proj);
|
Oyster::Graphics::API::SetProjection( privData->proj);
|
||||||
|
|
||||||
|
@ -241,7 +240,7 @@ bool LoginState::Render(float dt)
|
||||||
_itow_s(privData->testNumber, temp, 10);
|
_itow_s(privData->testNumber, temp, 10);
|
||||||
number = temp;
|
number = temp;
|
||||||
Oyster::Graphics::API::StartTextRender();
|
Oyster::Graphics::API::StartTextRender();
|
||||||
Oyster::Graphics::API::RenderText(number, Oyster::Math::Float2(0.7, 0.2), Oyster::Math::Float2(0.1, 0.1));
|
Oyster::Graphics::API::RenderText(number, Oyster::Math::Float2(0.7, 0.2), Oyster::Math::Float2(0.1, 0.1), Oyster::Math::Float3(1, 0, 0));
|
||||||
|
|
||||||
Oyster::Graphics::API::EndFrame();
|
Oyster::Graphics::API::EndFrame();
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -155,16 +155,17 @@ namespace Oyster
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ButtonState_Hover:
|
case ButtonState_Hover:
|
||||||
case ButtonState_Released:
|
|
||||||
if(outside == false)
|
if(outside == false)
|
||||||
{
|
{
|
||||||
clicked = true;
|
clicked = true;
|
||||||
currentState = ButtonState_Pressed;
|
currentState = ButtonState_Pressed;
|
||||||
}
|
}
|
||||||
else
|
break;
|
||||||
|
case ButtonState_Released:
|
||||||
currentState = ButtonState_Hover;
|
currentState = ButtonState_Hover;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
case ButtonState_Pressed:
|
case ButtonState_Pressed:
|
||||||
case ButtonState_Down:
|
case ButtonState_Down:
|
||||||
currentState = ButtonState_Down;
|
currentState = ButtonState_Down;
|
||||||
|
|
Loading…
Reference in New Issue