LCOV - code coverage report
Current view: top level - eq - frame.cpp (source / functions) Hit Total Coverage
Test: Equalizer Lines: 23 72 31.9 %
Date: 2016-07-30 05:04:55 Functions: 10 27 37.0 %

          Line data    Source code
       1             : 
       2             : /* Copyright (c) 2006-2016, Stefan Eilemann <eile@equalizergraphics.com>
       3             :  *                          Daniel Nachbaur <danielnachbaur@gmail.com>
       4             :  *
       5             :  * This library is free software; you can redistribute it and/or modify it under
       6             :  * the terms of the GNU Lesser General Public License version 2.1 as published
       7             :  * by the Free Software Foundation.
       8             :  *
       9             :  * This library is distributed in the hope that it will be useful, but WITHOUT
      10             :  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
      11             :  * FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more
      12             :  * details.
      13             :  *
      14             :  * You should have received a copy of the GNU Lesser General Public License
      15             :  * along with this library; if not, write to the Free Software Foundation, Inc.,
      16             :  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
      17             :  */
      18             : 
      19             : #include "frame.h"
      20             : 
      21             : #include "frameData.h"
      22             : #include "image.h"
      23             : #include <eq/util/objectManager.h>
      24             : 
      25             : namespace eq
      26             : {
      27             : namespace detail
      28             : {
      29             : class Frame
      30             : {
      31             : public:
      32             :     FrameDataPtr frameData;
      33             : 
      34             :     ZoomFilter zoomFilter; // texture filter
      35             : 
      36           1 :     Frame() : zoomFilter( FILTER_LINEAR ) {}
      37           1 :     ~Frame()
      38           1 :     {
      39           1 :         if( frameData )
      40           1 :             LBDEBUG << "FrameData attached in frame destructor" << std::endl;
      41           1 :     }
      42             : };
      43             : }
      44             : 
      45           1 : Frame::Frame()
      46           1 :         : _impl( new detail::Frame )
      47             : {
      48           1 : }
      49             : 
      50           2 : Frame::~Frame()
      51             : {
      52           1 :     delete _impl;
      53           1 : }
      54             : 
      55           0 : void Frame::setZoomFilter( const ZoomFilter zoomFilter )
      56             : {
      57           0 :     _impl->zoomFilter = zoomFilter;
      58           0 : }
      59             : 
      60           0 : ZoomFilter Frame::getZoomFilter() const
      61             : {
      62           0 :     return _impl->zoomFilter;
      63             : }
      64             : 
      65           1 : void Frame::setFrameData( FrameDataPtr data )
      66             : {
      67           1 :     _impl->frameData = data;
      68           1 : }
      69             : 
      70           0 : FrameDataPtr Frame::getFrameData()
      71             : {
      72           0 :     return _impl->frameData;
      73             : }
      74             : 
      75         189 : ConstFrameDataPtr Frame::getFrameData() const
      76             : {
      77         189 :     return _impl->frameData;
      78             : }
      79             : 
      80           0 : uint32_t Frame::getBuffers() const
      81             : {
      82           0 :     return _impl->frameData->getBuffers();
      83             : }
      84             : 
      85          21 : const Images& Frame::getImages() const
      86             : {
      87          21 :     return _impl->frameData->getImages();
      88             : }
      89             : 
      90           0 : void Frame::clear()
      91             : {
      92           0 :     _impl->frameData->clear();
      93           0 : }
      94             : 
      95           0 : void Frame::deleteGLObjects( util::ObjectManager& om )
      96             : {
      97           0 :     if( _impl->frameData )
      98           0 :         _impl->frameData->deleteGLObjects( om );
      99           0 : }
     100             : 
     101           0 : void Frame::setAlphaUsage( const bool useAlpha )
     102             : {
     103           0 :     if( _impl->frameData )
     104           0 :         _impl->frameData->setAlphaUsage( useAlpha );
     105           0 : }
     106             : 
     107           0 : void Frame::setQuality( const Buffer buffer, const float quality )
     108             : {
     109           0 :     if( _impl->frameData )
     110           0 :         _impl->frameData->setQuality( buffer, quality );
     111           0 : }
     112             : 
     113           0 : void Frame::useCompressor( const Buffer buffer, const uint32_t name )
     114             : {
     115           0 :     if( _impl->frameData )
     116           0 :         _impl->frameData->useCompressor( buffer, name );
     117           0 : }
     118             : 
     119           0 : void Frame::readback( util::ObjectManager& glObjects,
     120             :                       const DrawableConfig& config,
     121             :                       const PixelViewports& regions,
     122             :                       const RenderContext& context )
     123             : {
     124             :     const Images& images =
     125             :         _impl->frameData->startReadback( *this, glObjects, config, regions,
     126           0 :                                          context );
     127           0 :     for( Image* image : images )
     128           0 :         image->finishReadback( glObjects.glewGetContext( ));
     129           0 : }
     130             : 
     131           0 : Images Frame::startReadback( util::ObjectManager& glObjects,
     132             :                              const DrawableConfig& config,
     133             :                              const PixelViewports& regions,
     134             :                              const RenderContext& context )
     135             : {
     136             :     return _impl->frameData->startReadback( *this, glObjects, config, regions,
     137           0 :                                             context );
     138             : }
     139             : 
     140           0 : void Frame::setReady()
     141             : {
     142           0 :     _impl->frameData->setReady();
     143           0 : }
     144             : 
     145           0 : bool Frame::isReady() const
     146             : {
     147           0 :     return _impl->frameData->isReady();
     148             : }
     149             : 
     150          21 : void Frame::waitReady( const uint32_t timeout ) const
     151             : {
     152          21 :     _impl->frameData->waitReady( timeout );
     153          21 : }
     154             : 
     155           0 : void Frame::disableBuffer( const Buffer buffer )
     156             : {
     157           0 :     _impl->frameData->disableBuffer( buffer );
     158           0 : }
     159             : 
     160           0 : void Frame::addListener( lunchbox::Monitor<uint32_t>& listener )
     161             : {
     162           0 :     _impl->frameData->addListener( listener );
     163           0 : }
     164             : 
     165           0 : void Frame::removeListener( lunchbox::Monitor<uint32_t>& listener )
     166             : {
     167           0 :     _impl->frameData->removeListener( listener );
     168           0 : }
     169             : 
     170          42 : }

Generated by: LCOV version 1.11