aboutsummaryrefslogtreecommitdiff
path: root/guilib/GUIRenderingControl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'guilib/GUIRenderingControl.cpp')
-rw-r--r--guilib/GUIRenderingControl.cpp113
1 files changed, 0 insertions, 113 deletions
diff --git a/guilib/GUIRenderingControl.cpp b/guilib/GUIRenderingControl.cpp
deleted file mode 100644
index b5cacef5d8..0000000000
--- a/guilib/GUIRenderingControl.cpp
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Copyright (C) 2005-2010 Team XBMC
- * http://www.xbmc.org
- *
- * This Program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This Program 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with XBMC; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- */
-
-#include "GUIRenderingControl.h"
-#include "GUIUserMessages.h"
-#include "addons/Visualisation.h"
-#include "utils/SingleLock.h"
-
-using namespace std;
-using namespace ADDON;
-
-#define LABEL_ROW1 10
-#define LABEL_ROW2 11
-#define LABEL_ROW3 12
-
-CGUIRenderingControl::CGUIRenderingControl(int parentID, int controlID, float posX, float posY, float width, float height)
- : CGUIControl(parentID, controlID, posX, posY, width, height)
-{
- ControlType = GUICONTROL_RENDERADDON;
-}
-
-CGUIRenderingControl::CGUIRenderingControl(const CGUIRenderingControl &from)
-: CGUIControl(from)
-{
- ControlType = GUICONTROL_RENDERADDON;
-}
-
-void CGUIRenderingControl::LoadAddon(const AddonPtr &addon)
-{
- if (!addon)
- return;
-
- CSingleLock lock(m_rendering);
- g_graphicsContext.CaptureStateBlock();
- float x = g_graphicsContext.ScaleFinalXCoord(GetXPosition(), GetYPosition());
- float y = g_graphicsContext.ScaleFinalYCoord(GetXPosition(), GetYPosition());
- float w = g_graphicsContext.ScaleFinalXCoord(GetXPosition() + GetWidth(), GetYPosition() + GetHeight()) - x;
- float h = g_graphicsContext.ScaleFinalYCoord(GetXPosition() + GetWidth(), GetYPosition() + GetHeight()) - y;
- if (x < 0) x = 0;
- if (y < 0) y = 0;
- if (x + w > g_graphicsContext.GetWidth()) w = g_graphicsContext.GetWidth() - x;
- if (y + h > g_graphicsContext.GetHeight()) h = g_graphicsContext.GetHeight() - y;
-
- VizPtr viz = boost::dynamic_pointer_cast<CVisualisation>(addon);
- if (viz && viz->Create((int)(x+0.5f), (int)(y+0.5f), (int)(w+0.5f), (int)(h+0.5f)))
- {
- m_addon = viz;
- }
-
- g_graphicsContext.ApplyStateBlock();
- VerifyGLState();
-}
-
-void CGUIRenderingControl::UpdateVisibility(const CGUIListItem *item)
-{
- // if made invisible, start timer, only free addonptr after
- // some period, configurable by window class
- CGUIControl::UpdateVisibility(item);
- if (!IsVisible() && m_addon)
- FreeResources();
-}
-
-void CGUIRenderingControl::Render()
-{
- CSingleLock lock(m_rendering);
- if (m_addon)
- {
- // set the viewport - note: We currently don't have any control over how
- // the addon renders, so the best we can do is attempt to define
- // a viewport??
- g_graphicsContext.SetViewPort(m_posX, m_posY, m_width, m_height);
- g_graphicsContext.CaptureStateBlock();
- m_addon->Render();
- g_graphicsContext.ApplyStateBlock();
- g_graphicsContext.RestoreViewPort();
- }
-
- CGUIControl::Render();
-}
-
-void CGUIRenderingControl::FreeResources(bool immediately)
-{
- if (!m_addon) return;
-
- CSingleLock lock(m_rendering);
- g_graphicsContext.CaptureStateBlock(); //TODO locking
- m_addon->Stop();
- g_graphicsContext.ApplyStateBlock();
- m_addon.reset();
-}
-
-bool CGUIRenderingControl::CanFocusFromPoint(const CPoint &point) const
-{ // mouse is allowed to focus this control, but it doesn't actually receive focus
- return IsVisible() && HitTest(point);
-}