Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/freestyle/intern/stroke/StrokeRenderer.h')
-rw-r--r--source/blender/freestyle/intern/stroke/StrokeRenderer.h219
1 files changed, 116 insertions, 103 deletions
diff --git a/source/blender/freestyle/intern/stroke/StrokeRenderer.h b/source/blender/freestyle/intern/stroke/StrokeRenderer.h
index c7c6df635d5..ab451a14496 100644
--- a/source/blender/freestyle/intern/stroke/StrokeRenderer.h
+++ b/source/blender/freestyle/intern/stroke/StrokeRenderer.h
@@ -1,43 +1,49 @@
-//
-// Filename : StrokeRenderer.h
-// Author(s) : Fredo Durand
-// Purpose : Classes to render a stroke with OpenGL
-// Date of creation : 09/09/2002
-//
-///////////////////////////////////////////////////////////////////////////////
-
-
-//
-// Copyright (C) : Please refer to the COPYRIGHT file distributed
-// with this source distribution.
-//
-// This program 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 program 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.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef STROKE_RENDERER_H
-# define STROKE_RENDERER_H
-
-# include "Stroke.h"
-# include <vector>
-# include <map>
-# include <utility>
-# include "../system/FreestyleConfig.h"
-# include "StrokeRep.h"
-# include <string.h>
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program 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 program 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2010 Blender Foundation.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): none yet.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+#ifndef __FREESTYLE_STROKE_RENDERER_H__
+#define __FREESTYLE_STROKE_RENDERER_H__
+
+/** \file blender/freestyle/intern/stroke/StrokeRenderer.h
+ * \ingroup freestyle
+ * \brief Classes to render a stroke with OpenGL
+ * \author Fredo Durand
+ * \date 09/09/2002
+ */
+#include <map>
+#include <string.h>
+#include <utility>
+#include <vector>
+
+#include "Stroke.h"
+#include "StrokeRep.h"
+
+#include "../system/FreestyleConfig.h"
/**********************************/
/* */
@@ -48,53 +54,64 @@
/**********************************/
-/*! Class to load textures
- */
+/*! Class to load textures */
class LIB_STROKE_EXPORT TextureManager
{
public:
-
- TextureManager ();
- virtual ~TextureManager ();
- static TextureManager * getInstance() {return _pInstance;}
- void load () ;
- unsigned getBrushTextureIndex(string name, Stroke::MediumType iType = Stroke::OPAQUE_MEDIUM) ;
-
- inline bool hasLoaded() const {return _hasLoadedTextures;}
- inline unsigned int getDefaultTextureId() const {return _defaultTextureId;}
-
- struct LIB_STROKE_EXPORT Options
- {
-
- static void setPatternsPath(const string& path);
- static string getPatternsPath();
-
- static void setBrushesPath(const string& path);
- static string getBrushesPath();
- };
-
- protected:
- virtual void loadStandardBrushes() = 0;
- virtual unsigned loadBrush(string fileName, Stroke::MediumType = Stroke::OPAQUE_MEDIUM) = 0;
-
- typedef std::pair<string,Stroke::MediumType> BrushTexture;
- struct cmpBrushTexture{
- bool operator()(const BrushTexture& bt1, const BrushTexture& bt2) const{
- int r = strcmp(bt1.first.c_str(), bt2.first.c_str());
- if(r != 0)
- return (r<0);
- else
- return (bt1.second < bt2.second);
- }
- };
- typedef std::map<BrushTexture, unsigned, cmpBrushTexture> brushesMap;
-
- static TextureManager * _pInstance;
- bool _hasLoadedTextures;
- brushesMap _brushesMap;
- static string _patterns_path;
- static string _brushes_path;
- unsigned int _defaultTextureId;
+ TextureManager ();
+ virtual ~TextureManager ();
+
+ static TextureManager *getInstance()
+ {
+ return _pInstance;
+ }
+
+ void load();
+ unsigned getBrushTextureIndex(string name, Stroke::MediumType iType = Stroke::OPAQUE_MEDIUM);
+
+ inline bool hasLoaded() const
+ {
+ return _hasLoadedTextures;
+ }
+
+ inline unsigned int getDefaultTextureId() const
+ {
+ return _defaultTextureId;
+ }
+
+ struct LIB_STROKE_EXPORT Options
+ {
+ static void setPatternsPath(const string& path);
+ static string getPatternsPath();
+
+ static void setBrushesPath(const string& path);
+ static string getBrushesPath();
+ };
+
+protected:
+ virtual void loadStandardBrushes() = 0;
+ virtual unsigned loadBrush(string fileName, Stroke::MediumType = Stroke::OPAQUE_MEDIUM) = 0;
+
+ typedef std::pair<string,Stroke::MediumType> BrushTexture;
+ struct cmpBrushTexture
+ {
+ bool operator()(const BrushTexture& bt1, const BrushTexture& bt2) const
+ {
+ int r = strcmp(bt1.first.c_str(), bt2.first.c_str());
+ if (r != 0)
+ return (r < 0);
+ else
+ return (bt1.second < bt2.second);
+ }
+ };
+ typedef std::map<BrushTexture, unsigned, cmpBrushTexture> brushesMap;
+
+ static TextureManager *_pInstance;
+ bool _hasLoadedTextures;
+ brushesMap _brushesMap;
+ static string _patterns_path;
+ static string _brushes_path;
+ unsigned int _defaultTextureId;
};
@@ -106,27 +123,23 @@ public:
/* */
/**********************************/
-/*! Class to render a stroke.
- Creates a triangle strip and stores it
- strip is lazily created at the first rendering
-*/
+/*! Class to render a stroke. Creates a triangle strip and stores it strip is lazily created at the first rendering */
class LIB_STROKE_EXPORT StrokeRenderer
{
- public:
- StrokeRenderer();
- virtual ~StrokeRenderer ();
-
- /*! Renders a stroke rep */
- virtual void RenderStrokeRep(StrokeRep *iStrokeRep) const = 0;
- virtual void RenderStrokeRepBasic(StrokeRep *iStrokeRep) const = 0;
-
- // initializes the texture manager
- // lazy, checks if it has already been done
- static bool loadTextures() ;
-
- //static unsigned int getTextureIndex(unsigned int index) ;
- static TextureManager *_textureManager;
-};
+public:
+ StrokeRenderer();
+ virtual ~StrokeRenderer();
+ /*! Renders a stroke rep */
+ virtual void RenderStrokeRep(StrokeRep *iStrokeRep) const = 0;
+ virtual void RenderStrokeRepBasic(StrokeRep *iStrokeRep) const = 0;
+
+ // initializes the texture manager
+ // lazy, checks if it has already been done
+ static bool loadTextures();
+
+ //static unsigned int getTextureIndex(unsigned int index);
+ static TextureManager *_textureManager;
+};
-#endif // STROKE_RENDERER_H
+#endif // __FREESTYLE_STROKE_RENDERER_H__