openvg/openvgrefimplementation/sfopenvg/sfopenvg/riRasterizer.h
author Mitsuaki Nakamura <nakamura-mitsuaki@sharp.co.jp>
Mon, 24 May 2010 14:11:29 +0900
branchsharp_contrib_0
changeset 80 823021ef148e
parent 43 7579f232bae7
permissions -rw-r--r--
start branch sharp_contrib_0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
43
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
     1
#ifndef __RIRASTERIZER_H
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
     2
#define __RIRASTERIZER_H
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
     3
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
     4
/*------------------------------------------------------------------------
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
     5
 *
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
     6
 * OpenVG 1.1 Reference Implementation
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
     7
 * -----------------------------------
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
     8
 *
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
     9
 * Copyright (c) 2007 The Khronos Group Inc.
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    10
 *
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    11
 * Permission is hereby granted, free of charge, to any person obtaining a
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    12
 * copy of this software and /or associated documentation files
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    13
 * (the "Materials "), to deal in the Materials without restriction,
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    14
 * including without limitation the rights to use, copy, modify, merge,
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    15
 * publish, distribute, sublicense, and/or sell copies of the Materials,
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    16
 * and to permit persons to whom the Materials are furnished to do so,
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    17
 * subject to the following conditions: 
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    18
 *
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    19
 * The above copyright notice and this permission notice shall be included 
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    20
 * in all copies or substantial portions of the Materials. 
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    21
 *
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    22
 * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    23
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    24
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    25
 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    26
 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    27
 * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MATERIALS OR
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    28
 * THE USE OR OTHER DEALINGS IN THE MATERIALS.
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    29
 *
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    30
 *//**
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    31
 * \file
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    32
 * \brief	Rasterizer class.
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    33
 * \note	
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    34
 *//*-------------------------------------------------------------------*/
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    35
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    36
#ifndef __RIMATH_H
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    37
#include "riMath.h"
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    38
#endif
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    39
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    40
#ifndef __RIARRAY_H
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    41
#include "riArray.h"
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    42
#endif
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    43
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    44
#ifndef __RIPIXELPIPE_H
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    45
#include "riPixelPipe.h"
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    46
#endif
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    47
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    48
//=======================================================================
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    49
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    50
namespace OpenVGRI
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    51
{
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    52
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    53
/*-------------------------------------------------------------------*//*!
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    54
* \brief	Scalar and vector data types used by the rasterizer.
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    55
* \param	
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    56
* \return	
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    57
* \note		
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    58
*//*-------------------------------------------------------------------*/
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    59
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    60
typedef RIfloat RScalar;	//change this if you want to have different precision for rasterizer scalars and RIfloat
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    61
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    62
struct RVector2
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    63
{
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    64
	RI_INLINE RVector2()							{ }
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    65
	RI_INLINE RVector2(const Vector2& v)			{ x = v.x; y = v.y; }
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    66
	RI_INLINE RVector2(RIfloat vx, RIfloat vy)		{ x = vx; y = vy; }
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    67
	RI_INLINE void set(RIfloat vx, RIfloat vy)		{ x = vx; y = vy; }
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    68
	RScalar		x;
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    69
	RScalar		y;
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    70
};
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    71
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    72
/*-------------------------------------------------------------------*//*!
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    73
* \brief	Converts a set of edges to coverage values for each pixel and
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    74
*			calls PixelPipe::pixelPipe for painting a pixel.
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    75
* \param	
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    76
* \return	
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    77
* \note		
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    78
*//*-------------------------------------------------------------------*/
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    79
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    80
class Rasterizer
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    81
{
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    82
public:
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    83
	Rasterizer();	//throws bad_alloc
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    84
	~Rasterizer();
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    85
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    86
    void        setup(int vpx, int vpy, int vpwidth, int vpheight, VGFillRule fillRule, const PixelPipe* pixelPipe, RIuint32* covBuffer);
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    87
	void		setScissor(const Array<Rectangle>& scissors);	//throws bad_alloc
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    88
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    89
	void		clear();
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    90
	void		addEdge(const Vector2& v0, const Vector2& v1);	//throws bad_alloc
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    91
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    92
	int         setupSamplingPattern(VGRenderingQuality renderingQuality, int numFSAASamples);
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    93
	void		fill();	//throws bad_alloc
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    94
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    95
    void        getBBox(int& sx, int& sy, int& ex, int& ey) const       { sx = m_covMinx; sy = m_covMiny; ex = m_covMaxx; ey = m_covMaxy; }
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    96
private:
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    97
	Rasterizer(const Rasterizer&);						//!< Not allowed.
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    98
	const Rasterizer& operator=(const Rasterizer&);		//!< Not allowed.
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    99
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   100
	struct ScissorEdge
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   101
	{
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   102
		ScissorEdge() : x(0), miny(0), maxy(0), direction(0) {}
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   103
		bool operator<(const ScissorEdge& e) const	{ return x < e.x; }
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   104
		int			x;
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   105
		int			miny;
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   106
		int			maxy;
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   107
		int			direction;		//1 start, -1 end
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   108
	};
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   109
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   110
	struct Edge
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   111
	{
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   112
		Edge() : v0(), v1(), direction(1) {}
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   113
		bool operator<(const Edge& e) const	{ return v0.y < e.v0.y; }
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   114
		RVector2	v0;
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   115
		RVector2	v1;
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   116
		int			direction;
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   117
	};
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   118
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   119
	struct ActiveEdge
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   120
	{
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   121
		ActiveEdge() : v0(), v1(), direction(0), minx(0.0f), maxx(0.0f), n(), cnst(0.0f) {}
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   122
		bool operator<(const ActiveEdge& e) const	{ return minx < e.minx; }
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   123
		RVector2	v0;
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   124
		RVector2	v1;
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   125
		int			direction;		//-1 down, 1 up
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   126
		RScalar		minx;			//for the current scanline
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   127
		RScalar		maxx;			//for the current scanline
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   128
		RVector2	n;
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   129
		RScalar		cnst;
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   130
	};
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   131
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   132
	struct Sample
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   133
	{
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   134
		Sample() : x(0.0f), y(0.0f), weight(0.0f) {}
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   135
		RScalar		x;
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   136
		RScalar		y;
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   137
		RScalar		weight;
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   138
	};
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   139
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   140
    void                addBBox(const Vector2& v);
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   141
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   142
	Array<Edge>				m_edges;
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   143
	Array<ScissorEdge>		m_scissorEdges;
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   144
	bool					m_scissor;
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   145
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   146
	Sample				m_samples[RI_MAX_SAMPLES];
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   147
	int					m_numSamples;
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   148
	int					m_numFSAASamples;
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   149
	RScalar				m_sumWeights;
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   150
	RScalar				m_sampleRadius;
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   151
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   152
    Vector2             m_edgeMin;
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   153
    Vector2             m_edgeMax;
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   154
    int                 m_covMinx;
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   155
    int                 m_covMiny;
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   156
    int                 m_covMaxx;
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   157
    int                 m_covMaxy;
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   158
    int                 m_vpx;
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   159
    int                 m_vpy;
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   160
    int                 m_vpwidth;
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   161
    int                 m_vpheight;
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   162
    VGFillRule          m_fillRule;
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   163
    const PixelPipe*    m_pixelPipe;
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   164
    RIuint32*           m_covBuffer;
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   165
};
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   166
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   167
//=======================================================================
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   168
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   169
}	//namespace OpenVGRI
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   170
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   171
//=======================================================================
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   172
7579f232bae7 Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   173
#endif /* __RIRASTERIZER_H */