egl/sfopenvg/riContext.h
branchEGL_MERGE
changeset 180 f767bd5f4cfc
parent 119 5f371025658c
child 181 c1509651cd2b
--- a/egl/sfopenvg/riContext.h	Fri Jul 16 18:54:03 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,277 +0,0 @@
-#ifndef __RICONTEXT_H
-#define __RICONTEXT_H
-
-/*------------------------------------------------------------------------
- *
- * OpenVG 1.1 Reference Implementation
- * -----------------------------------
- *
- * Copyright (c) 2007 The Khronos Group Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and /or associated documentation files
- * (the "Materials "), to deal in the Materials without restriction,
- * including without limitation the rights to use, copy, modify, merge,
- * publish, distribute, sublicense, and/or sell copies of the Materials,
- * and to permit persons to whom the Materials are furnished to do so,
- * subject to the following conditions: 
- *
- * The above copyright notice and this permission notice shall be included 
- * in all copies or substantial portions of the Materials. 
- *
- * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MATERIALS OR
- * THE USE OR OTHER DEALINGS IN THE MATERIALS.
- *
- *//**
- * \file
- * \brief	VGContext class. Used for storing OpenVG state.
- * \note	
- *//*-------------------------------------------------------------------*/
-
-#ifndef OPENVG_H
-#include "openvg.h"
-#endif
-
-#ifndef __RIDEFS_H
-#include "riDefs.h"
-#endif
-
-#ifndef __RIMATH_H
-#include "riMath.h"
-#endif
-
-#ifndef __RIIMAGE_H
-#include "riImage.h"
-#endif
-
-#ifndef __RIPATH_H
-#include "riPath.h"
-#endif
-
-#ifndef __RIFONT_H
-#include "riFont.h"
-#endif
-
-#ifndef __RIARRAY_H
-#include "riArray.h"
-#endif
-
-//==============================================================================================
-
-namespace OpenVGRI
-{
-
-class VGContext;
-
-/*-------------------------------------------------------------------*//*!
-* \brief	A list of resources (Images, Paths, or Paints) shared by a
-*			set of contexts.
-* \param	
-* \return	
-* \note		
-*//*-------------------------------------------------------------------*/
-
-template <class Resource> class ResourceManager
-{
-public:
-	ResourceManager() :
-		m_referenceCount(0),
-		m_resources()
-	{
-	}
-
-	~ResourceManager()
-	{
-		RI_ASSERT(m_referenceCount == 0);
-		RI_ASSERT(m_resources.size() == 0);
-	}
-
-	void			addReference()
-	{
-		m_referenceCount++;
-	}
-
-	int				removeReference()
-	{
-		m_referenceCount--;
-		RI_ASSERT(m_referenceCount >= 0);
-		return m_referenceCount;
-	}
-
-	void			addResource(Resource* resource, VGContext* context)
-	{
-		Entry r;
-		r.resource = resource;
-		r.context = context;
-		m_resources.push_back(r);	//throws bad_alloc
-		resource->addReference();
-	}
-
-	void			removeResource(Resource* resource)
-	{
-		if(!resource->removeReference())
-			RI_DELETE(resource);
-
-		int i=0;
-		bool found = false;
-		for(;i<m_resources.size();i++)
-		{
-			if(m_resources[i].resource == resource)
-			{
-				found = true;
-				break;
-			}
-		}
-		RI_ASSERT(found);
-
-		for(;i<m_resources.size()-1;i++)
-		{
-			m_resources[i] = m_resources[i+1];
-		}
-		m_resources.resize(m_resources.size()-1);
-	}
-
-	bool			isValid(Resource* resource)
-	{
-		for(int i=0;i<m_resources.size();i++)
-		{
-			if(m_resources[i].resource == resource)
-				return true;
-		}
-		return false;
-	}
-
-	Resource*		getFirstResource(VGContext* context)
-	{
-		for(int i=0;i<m_resources.size();i++)
-		{
-			if(m_resources[i].context == context)
-				return m_resources[i].resource;
-		}
-		return NULL;
-	}
-
-private:
-	ResourceManager(const ResourceManager&);
-	ResourceManager operator=(const ResourceManager&);
-
-	struct Entry
-	{
-		Resource*	resource;
-		VGContext*	context;
-	};
-
-	int				m_referenceCount;
-	Array<Entry>	m_resources;
-};
-
-/*-------------------------------------------------------------------*//*!
-* \brief	
-* \param	
-* \return	
-* \note		
-*//*-------------------------------------------------------------------*/
-
-class VGContext
-{
-public:
-	VGContext(VGContext* shareContext);	//throws bad_alloc
-	~VGContext();
-
-    void            setDefaultDrawable(Drawable* drawable); //called from EGL
-    Drawable*       getCurrentDrawable()        { return m_eglDrawable; }
-
-	bool			isValidImage(VGImage image);
-	bool			isValidPath(VGPath path);
-	bool			isValidPaint(VGPaint paint);
-	bool			isValidFont(VGFont font);
-	bool			isValidMaskLayer(VGMaskLayer layer);
-
-	void			releasePaint(VGbitfield paintModes);
-
-	void			setError(VGErrorCode error)		{ if(m_error == VG_NO_ERROR) m_error = error; }
-
-	// Mode settings
-	VGMatrixMode					m_matrixMode;
-	VGFillRule						m_fillRule;
-	VGImageQuality					m_imageQuality;
-	VGRenderingQuality				m_renderingQuality;
-	VGBlendMode						m_blendMode;
-	VGImageMode						m_imageMode;
-	
-	// Scissor rectangles
-	Array<Rectangle>				m_scissor;
-
-	// Stroke parameters
-	RIfloat							m_strokeLineWidth;
-	RIfloat							m_inputStrokeLineWidth;
-	VGCapStyle						m_strokeCapStyle;
-	VGJoinStyle						m_strokeJoinStyle;
-	RIfloat							m_strokeMiterLimit;
-	RIfloat							m_inputStrokeMiterLimit;
-	Array<RIfloat>					m_strokeDashPattern;
-	Array<RIfloat>					m_inputStrokeDashPattern;
-	RIfloat							m_strokeDashPhase;
-	RIfloat							m_inputStrokeDashPhase;
-	VGboolean						m_strokeDashPhaseReset;
-
-	// Edge fill color for vgConvolve and pattern paint
-	Color							m_tileFillColor;
-	Color							m_inputTileFillColor;
-
-	// Color for vgClear
-	Color							m_clearColor;
-	Color							m_inputClearColor;
-
-    Vector2                         m_glyphOrigin;
-    Vector2                         m_inputGlyphOrigin;
-
-	VGboolean						m_masking;
-	VGboolean						m_scissoring;
-
-	VGPixelLayout					m_pixelLayout;
-
-	VGboolean						m_filterFormatLinear;
-	VGboolean						m_filterFormatPremultiplied;
-	VGbitfield						m_filterChannelMask;
-
-	// Matrices
-	Matrix3x3						m_pathUserToSurface;
-	Matrix3x3						m_imageUserToSurface;
-	Matrix3x3						m_glyphUserToSurface;
-	Matrix3x3						m_fillPaintToUser;
-	Matrix3x3						m_strokePaintToUser;
-
-	VGPaint							m_fillPaint;
-	VGPaint							m_strokePaint;
-
-    VGboolean                       m_colorTransform;
-    RIfloat                         m_colorTransformValues[8];
-    RIfloat                         m_inputColorTransformValues[8];
-
-	VGErrorCode						m_error;
-
-	ResourceManager<Image>*			m_imageManager;
-	ResourceManager<Path>*			m_pathManager;
-	ResourceManager<Paint>*			m_paintManager;
-	ResourceManager<Font>*			m_fontManager;
-	ResourceManager<Surface>*		m_maskLayerManager;
-private:
-	Drawable*                       m_eglDrawable;
-
-	VGContext(const VGContext&);			//!< Not allowed.
-	void operator=(const VGContext&);		//!< Not allowed.
-};
-
-//==============================================================================================
-
-}	//namespace OpenVGRI
-
-//==============================================================================================
-
-#endif /* __RICONTEXT_H */