LCOV - code coverage report
Current view: top level - seq/detail - renderer.cpp (source / functions) Hit Total Coverage
Test: Equalizer Lines: 28 103 27.2 %
Date: 2017-12-16 05:07:20 Functions: 10 28 35.7 %

          Line data    Source code
       1             : 
       2             : /* Copyright (c) 2011-2016, Stefan Eilemann <eile@eyescale.ch>
       3             :  *                          Daniel Nachbaur <danielnachbaur@gmail.com>
       4             :  *                          Petros Kataras <petroskataras@gmail.com>
       5             :  *
       6             :  * This library is free software; you can redistribute it and/or modify it under
       7             :  * the terms of the GNU Lesser General Public License version 2.1 as published
       8             :  * by the Free Software Foundation.
       9             :  *
      10             :  * This library is distributed in the hope that it will be useful, but WITHOUT
      11             :  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
      12             :  * FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more
      13             :  * details.
      14             :  *
      15             :  * You should have received a copy of the GNU Lesser General Public License
      16             :  * along with this library; if not, write to the Free Software Foundation, Inc.,
      17             :  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
      18             :  */
      19             : 
      20             : #include "renderer.h"
      21             : 
      22             : #include "channel.h"
      23             : #include "objectMap.h"
      24             : #include "pipe.h"
      25             : #include "window.h"
      26             : 
      27             : #include <eq/config.h>
      28             : #include <seq/renderer.h>
      29             : 
      30             : namespace seq
      31             : {
      32             : namespace detail
      33             : {
      34          10 : static const RenderContext dummyContext;
      35             : 
      36           2 : Renderer::Renderer()
      37             :     : _glewContext(0)
      38             :     , _pipe(0)
      39             :     , _window(0)
      40           2 :     , _channel(0)
      41             : {
      42           2 : }
      43             : 
      44           4 : Renderer::~Renderer()
      45             : {
      46           2 :     LBASSERT(!_pipe);
      47           2 :     LBASSERT(!_channel);
      48           2 : }
      49             : 
      50           0 : co::Object* Renderer::mapObject(const uint128_t& identifier,
      51             :                                 co::Object* instance)
      52             : {
      53           0 :     if (!_pipe)
      54           0 :         return 0;
      55             : 
      56           0 :     seq::detail::ObjectMap* objectMap = _pipe->getObjectMap();
      57           0 :     return objectMap ? objectMap->map(identifier, instance) : 0;
      58             : }
      59             : 
      60           0 : bool Renderer::unmap(co::Object* object)
      61             : {
      62           0 :     if (!_pipe)
      63           0 :         return false;
      64             : 
      65           0 :     seq::detail::ObjectMap* objectMap = _pipe->getObjectMap();
      66           0 :     return objectMap ? objectMap->unmap(object) : false;
      67             : }
      68             : 
      69           5 : co::Object* Renderer::getFrameData()
      70             : {
      71           5 :     return _pipe->getFrameData();
      72             : }
      73             : 
      74           0 : const ObjectManager& Renderer::getObjectManager() const
      75             : {
      76           0 :     return _window->getObjectManager();
      77             : }
      78             : 
      79           0 : ObjectManager& Renderer::getObjectManager()
      80             : {
      81           0 :     return _window->getObjectManager();
      82             : }
      83             : 
      84           0 : const ViewData* Renderer::getViewData() const
      85             : {
      86           0 :     return _channel->getViewData();
      87             : }
      88             : 
      89           0 : const Frustumf& Renderer::getFrustum() const
      90             : {
      91           0 :     LBASSERT(_channel);
      92           0 :     static Frustumf none;
      93           0 :     return _channel ? _channel->getFrustum() : none;
      94             : }
      95             : 
      96           0 : const Matrix4f& Renderer::getViewMatrix() const
      97             : {
      98           0 :     LBASSERT(_channel);
      99           0 :     static const Matrix4f identity;
     100           0 :     return _channel ? _channel->getViewMatrix() : identity;
     101             : }
     102             : 
     103           0 : const Matrix4f& Renderer::getModelMatrix() const
     104             : {
     105           0 :     LBASSERT(_channel);
     106           0 :     static const Matrix4f identity;
     107           0 :     return _channel ? _channel->getModelMatrix() : identity;
     108             : }
     109             : 
     110           0 : const PixelViewport& Renderer::getPixelViewport() const
     111             : {
     112           0 :     LBASSERT(_channel);
     113           0 :     static const PixelViewport nullPVP;
     114           0 :     return _channel ? _channel->getPixelViewport() : nullPVP;
     115             : }
     116             : 
     117           0 : bool Renderer::useOrtho() const
     118             : {
     119           0 :     LBASSERT(_channel);
     120           0 :     return _channel ? _channel->useOrtho() : false;
     121             : }
     122             : 
     123           0 : void Renderer::applyScreenFrustum()
     124             : {
     125           0 :     LBASSERT(_channel);
     126           0 :     if (_channel)
     127           0 :         _channel->applyScreenFrustum();
     128           0 : }
     129             : 
     130           0 : void Renderer::applyPerspectiveFrustum()
     131             : {
     132           0 :     LBASSERT(_channel);
     133           0 :     if (_channel)
     134           0 :         _channel->applyPerspective();
     135           0 : }
     136             : 
     137           0 : void Renderer::setNearFar(const float nearPlane, const float farPlane)
     138             : {
     139           0 :     LBASSERT(_channel);
     140           0 :     if (_channel)
     141           0 :         _channel->setNearFar(nearPlane, farPlane);
     142           0 : }
     143             : 
     144          12 : void Renderer::setWindow(Window* window)
     145             : {
     146          12 :     _window = window;
     147          12 :     _glewContext = window ? window->glewGetContext() : 0;
     148          12 : }
     149             : 
     150           4 : void Renderer::setChannel(Channel* channel)
     151             : {
     152           4 :     _channel = channel;
     153           4 :     _glewContext = channel ? channel->glewGetContext() : 0;
     154           4 : }
     155             : 
     156           2 : bool Renderer::initContext()
     157             : {
     158           2 :     return _window ? _window->initContext() : false;
     159             : }
     160             : 
     161           2 : bool Renderer::exitContext()
     162             : {
     163           2 :     return _window ? _window->exitContext() : false;
     164             : }
     165             : 
     166           3 : void Renderer::clear()
     167             : {
     168           3 :     LBASSERT(_channel);
     169           3 :     if (_channel)
     170           3 :         _channel->clear();
     171           3 : }
     172             : 
     173           0 : void Renderer::requestRedraw()
     174             : {
     175           0 :     LBASSERT(_channel);
     176           0 :     if (_channel)
     177           0 :         _channel->getConfig()->sendEvent(EVENT_REDRAW);
     178           0 : }
     179             : 
     180           0 : void Renderer::applyRenderContext()
     181             : {
     182           0 :     LBASSERT(_channel);
     183           0 :     if (_channel)
     184           0 :         _channel->applyRenderContext();
     185           0 : }
     186             : 
     187           0 : void Renderer::bindDrawFrameBuffer()
     188             : {
     189           0 :     LBASSERT(_channel);
     190           0 :     if (_channel)
     191           0 :         _channel->bindDrawFrameBuffer();
     192           0 : }
     193             : 
     194           0 : const RenderContext& Renderer::getRenderContext() const
     195             : {
     196           0 :     LBASSERT(_channel);
     197           0 :     if (_channel)
     198           0 :         return _channel->getRenderContext();
     199           0 :     return dummyContext;
     200             : }
     201             : 
     202           0 : void Renderer::applyModelMatrix()
     203             : {
     204           0 :     LBASSERT(_channel);
     205           0 :     if (_channel)
     206           0 :         _channel->applyModelMatrix();
     207           0 : }
     208             : }
     209          30 : }

Generated by: LCOV version 1.11