/usr/include/synfig-0.0/synfig/target_scanline.h is in libsynfig-dev 0.64.1-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | /* === S Y N F I G ========================================================= */
/*! \file target_scanline.h
** \brief Template Header for the Target Scanline class
**
** $Id$
**
** \legal
** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
** Copyright (c) 2012-2013 Carlos López
**
** This package 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 of
** the License, or (at your option) any later version.
**
** This package 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.
** \endlegal
*/
/* ========================================================================= */
/* === S T A R T =========================================================== */
#ifndef __SYNFIG_TARGET_SCANLINE_H
#define __SYNFIG_TARGET_SCANLINE_H
/* === H E A D E R S ======================================================= */
#include "target.h"
/* === M A C R O S ========================================================= */
/* === T Y P E D E F S ===================================================== */
/* === C L A S S E S & S T R U C T S ======================================= */
namespace synfig {
/*! \class Target_Scanline
** \brief This is a Target class that implements the render fucntion
* for a line by line render procedure
*/
class Target_Scanline : public Target
{
//! Number of threads to use
int threads_;
public:
typedef etl::handle<Target_Scanline> Handle;
typedef etl::loose_handle<Target_Scanline> LooseHandle;
typedef etl::handle<const Target_Scanline> ConstHandle;
//! Default constructor (threads = 2 current frame = 0)
Target_Scanline();
//! Renders the canvas to the target
virtual bool render(ProgressCallback *cb=NULL);
//! Marks the start of a frame
/*! \return \c true on success, \c false upon an error.
** \see end_frame(), start_scanline()
*/
virtual bool start_frame(ProgressCallback *cb=NULL)=0;
//! Returns the number of peniding frames to render. If it is zero it
//! stops rendering frames.
virtual int next_frame(Time& time);
//! Marks the end of a frame
/*! \see start_frame() */
virtual void end_frame()=0;
//! Marks the start of a scanline
/*! \param scanline Which scanline is going to be rendered.
** \return The address where the target wants the scanline
** to be written.
** \warning Must be called after start_frame()
** \see end_scanline(), start_frame()
*/
virtual Color * start_scanline(int scanline)=0;
//! Marks the end of a scanline
/*! Takes the data that was put at the address returned to by start_scanline()
** and does whatever it is supposed to do with it.
** \return \c true on success, \c false on failure.
** \see start_scanline()
*/
virtual bool end_scanline()=0;
//! Sets the number of threads
void set_threads(int x) { threads_=x; }
//! Gets the number of threads
int get_threads()const { return threads_; }
//! Puts the rendered surface onto the target.
bool add_frame(const synfig::Surface *surface);
private:
}; // END of class Target_Scanline
}; // END of namespace synfig
/* === E N D =============================================================== */
#endif
|