This file is indexed.

/usr/include/BALL/VIEW/RENDERING/renderWindow.h is in libballview1.4-dev 1.4.3~beta1-4.

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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
// -*- Mode: C++; tab-width: 2; -*-
// vi: set ts=2:
//

#ifndef BALL_VIEW_RENDERING_RENDERINGWINDOW_H
#define BALL_VIEW_RENDERING_RENDERINGWINDOW_H

#include <BALL/COMMON/global.h>
#include <BALL/VIEW/RENDERING/renderTarget.h>

#include <boost/static_assert.hpp>
#include <boost/type_traits/is_same.hpp>

///Macro checks at compile time, whether <tt>aTypeA</tt> and <tt>aTypeB</tt> are the same
#define BALLVIEW_IS_SAME_TYPE(aTypeA, aTypeB) (boost::is_same<aTypeA, aTypeB>::value)

///Macro checks at compile time, whether <tt>aType</tt> is int or float
#define BALLVIEW_STATIC_ASSERT_TYPE_IS_CHAR_OR_FLOAT(aType)				                                \
        BOOST_STATIC_ASSERT(BALLVIEW_IS_SAME_TYPE(aType, char) || BALLVIEW_IS_SAME_TYPE(aType, float))

#define BALL_DEFAULT_PIXEL_TYPE float

namespace BALL
{
	namespace VIEW
	{        
		/**
		 * General rendering window interface.
		 * Such a window represents a surface on a screen or other device, where a buffer encapsulated by
		 * \link RenderTarget \endlink interface can be displayed
		 */
		template<typename taPixelDatatype>
			class BALL_VIEW_EXPORT TRenderWindow : public RenderTarget
		{
			// only int or floats are allowed as template parameters
			BALLVIEW_STATIC_ASSERT_TYPE_IS_CHAR_OR_FLOAT(taPixelDatatype);

			// type of the pixel buffer pointer
			typedef boost::shared_array<taPixelDatatype> t_PixelPtr;

			public:

			TRenderWindow();

			virtual ~TRenderWindow();            

			/* Initialize window internals. After that call, window is ready to receive \link resize \endlink call             
			 * returns false if the initialization fails
			 */
			virtual bool init();

			/** 
			 * Request new window size. 
			 * Returns false if such a size cannot be supplied
			 * This call must be made before the window buffer is handed out to be rendered.
			 * This precondition is being checked automatically, see \link getBuffer \endlink
			 */ 
			virtual bool resize(const unsigned int width, const unsigned int height);

			/**
			 * Request that the image is actually displayed on the screen or other device the window encapsulated.
			 * You should implement this method in subclass.
			 * This is different from \link RenderTarget \endlink \link releaseBuffer \endlink.
			 * ReleaseBuffer only informs the window that a buffer is ready, but does not imply the buffer is actually
			 * displayed somewhere. This is done by refresh. On the other hand, refresh called inbetween
			 * getBuffer and releaseBuffer has no effect.
			 */ 
			virtual void refresh();


			/* =====================
			 * RenderTarget methods
			 * ===================== */	

			/*
			 * See \link RenderTarget \endlink for general description.
			 * In addition there is a precondition that \link init \endlink must be called before 
			 * getBuffer. If not, \link NoBufferAvailable \endlink exception is thrown.
			 */
			virtual FrameBufferPtr getBuffer() throw(BALL::Exception::NoBufferAvailable);            

			/*
			 * See \link RenderTarget \endlink for description.
			 */
			virtual FrameBufferFormat getFormat() const;

			/*
			 * See \link RenderTarget \endlink for description.
			 */
			virtual void releaseBuffer(FrameBufferPtr buffer);			

			/* Prepare the window for rendering, e.g., make it current if necessary.
			 */
			virtual void prepareRendering() {};

			/** @copydoc RenderTarget::doNotResize 
			 */
			virtual bool doNotResize() const { return do_not_resize_; }

			virtual void setDoNotResize(bool do_not_resize) { do_not_resize_ = do_not_resize; }
			 

			protected:
			t_PixelPtr m_pixels;					// raw pixel buffer
			FrameBufferPtr m_framebuffer;           // frame buffer given out to the wild by getBuffer method
			FrameBufferFormat m_fmt;				// description of the buffer format
			const PixelFormat m_pfm;                // pixel format of the window
			bool m_bufferLocked;					// pixel buffer is being accessed by another object?            
			const Size m_minimalWidth;      // minimum with the window can have
			const Size m_minimalHeight;     // minimum height the window can have
			bool do_not_resize_;
		};

		typedef TRenderWindow<BALL_DEFAULT_PIXEL_TYPE> RenderWindow;

	} // namespace VIEW

} // namespace BALL

#endif // BALL_VIEW_RENDERING_RENDERINGWINDOW_H