]> git.tdb.fi Git - libs/gl.git/commitdiff
Improve interface documentation a bit
authorMikko Rasa <tdb@tdb.fi>
Fri, 16 May 2014 18:35:30 +0000 (21:35 +0300)
committerMikko Rasa <tdb@tdb.fi>
Fri, 16 May 2014 18:36:39 +0000 (21:36 +0300)
12 files changed:
source/colorcurve.h
source/font.h
source/program.cpp
source/program.h
source/programbuilder.cpp
source/programbuilder.h
source/renderable.h
source/resources.h
source/shader.h
source/technique.h
source/texture2d.h
source/texunit.h

index 75e7fd302a76a2bea330162942c7c881379dd2c5..f66ff976d7a0d06dc020980239b9adcf0676d008 100644 (file)
@@ -14,7 +14,9 @@ Processes oversaturated colors to preserve hues.  When one color component
 exceeds 1.0, the others are scaled towards white.  A transition curve is also
 applied near 1.0 to prevent the abrupt change in the gradient.
 
-Only makes sense when used in an HDR framebuffer.
+Gamma or sRGB correction can also be applied to the output.  It can be used to
+improve color reproduction by performing lighting calculations in linear color
+space and converting to sRGB for display.
 */
 class ColorCurve: public PostProcessor
 {
@@ -35,8 +37,15 @@ public:
        saturated value. */
        void set_brightness(float);
 
+       /** Sets the gamma value used for mapping output colors.  Allowed range is
+       from 0.1 to 10. */
        void set_gamma(float);
+
+       /** Sets output mapping to sRGB.  This is almost, but not exactly equivalent
+       to set_gamma(2.2). */
        void set_srgb();
+
+       /// Sets output mapping to linear.  This is equivalent to set_gamma(1).
        void set_linear();
 
        virtual void render(const Texture2D &, const Texture2D &);
index fea97a11feb026688d56028e8804b4539677b311..bb8bd0a29a1c5c45612d4def0476824817e602a6 100644 (file)
@@ -13,6 +13,9 @@ namespace GL {
 class PrimitiveBuilder;
 class Texture2D;
 
+/**
+Stores a set of glyphs and creates strings out of them.
+*/
 class Font
 {
 public:
@@ -66,12 +69,21 @@ public:
 
        void set_texture(const Texture2D &);
        const Texture2D &get_texture() const;
+
+       /** Adds a glyph to the font.  There must not be an existing glyph with the
+       same code. */
        void add_glyph(const Glyph &);
        void set_kerning(unsigned, unsigned, float);
+
+       /** Returns the size used to generate the font texture.  This serves as a
+       hint for obtaining the best quality when rendering strings. */
        float get_native_size() const { return native_size; }
+
        float get_ascent() const { return ascent; }
        float get_descent() const { return descent; }
 
+       /** Returns the width of a string, in multiples of the font size.  Scale the
+       result according to the size used in rendering. */
        float get_string_width(const std::string &, StringCodec::Decoder &) const;
 
        template<class C>
@@ -84,7 +96,8 @@ public:
        float get_string_width(const std::string &str) const
        { return get_string_width<StringCodec::Utf8>(str); }
 
-       /// Draws a string to the framebuffer with Immediate.
+       /** Draws a string to the framebuffer with Immediate.  It is drawn with size
+       1.0; set up matrices for the desired size before the call. */
        void draw_string(const std::string &, StringCodec::Decoder &, const Color & = Color()) const;
 
        template<class C>
@@ -97,10 +110,10 @@ public:
        void draw_string(const std::string &str, const Color &color = Color()) const
        { draw_string<StringCodec::Utf8>(str, color); }
 
-       /** Builds the primitives for a string.  The PrimitiveBuilder should be
-       associated with a target that has at least VERTEX2 and TEXCOORD2 components.
-       The texture is not bound, to avoid unnecessary bindings when creating
-       meshes. */
+       /** Builds the primitives for a string.  Two-dimensional vertex and texture
+       coordinates are generated.  Size 1.0 is used for building; set up the
+       builder's matrix before the call.  The texture is not bound, to avoid
+       unnecessary bindings when creating meshes. */
        void build_string(const std::string &, StringCodec::Decoder &, PrimitiveBuilder &) const;
 
        template<class C>
index baeba9f5c33d1091da815f0d14d7f6be45807b3b..66ca36b1c5210a3ec0e0e29ff1b61a0336bcbe9e 100644 (file)
@@ -125,7 +125,7 @@ void Program::link()
                if(len && strncmp(name, "gl_", 3))
                {
                        /* Some implementations report the first element of a uniform array,
-                       others report just the name of an array. */
+                       others report just the name of the array itself. */
                        if(len>3 && !strcmp(name+len-3, "[0]"))
                                name[len-3] = 0;
 
index b41f9ac225e9edc724b18d375b278e4793b6b15b..e78c8ccd0bfef96d0da006827bd6e22dee527973 100644 (file)
@@ -14,6 +14,10 @@ namespace GL {
 
 class Shader;
 
+/**
+A complete shader program.  Programs can be assembled of individual Shaders or
+generated with a set of standard features.
+*/
 class Program: public Bindable<Program>
 {
 public:
@@ -68,9 +72,15 @@ private:
        bool legacy_vars;
 
 public:
+       /// Constructs an empty Program with no Shaders attached.
        Program();
+
+       /// Constructs a Program with standard features.
        Program(const ProgramBuilder::StandardFeatures &);
+
+       /// Constructs a Program from vertex and fragment shader source code.
        Program(const std::string &, const std::string &);
+
 private:
        void init();
 public:
index f22d1088bad265853e5e94d46e71e92f17a0a268..26689bcef6ee20687c4586a201cf3f5bac5fbb7d 100644 (file)
@@ -38,7 +38,7 @@ Naming conventions:
   color_*    Color with rgba components
 */
 
-/* The array are stored in reverse order, so that variables always come after
+/* The array is stored in reverse order, so that variables always come after
 anything that might need them. */
 const ProgramBuilder::VariableDefinition ProgramBuilder::standard_variables[] =
 {
index cca0c14912165616eecc7f9838e59671a9a2ebb1..678ee2ca142d9b31e264d2abad9d33ef9fbb31d2 100644 (file)
@@ -18,9 +18,15 @@ public:
        virtual ~invalid_variable_definition() throw() { }
 };
 
+/**
+Generates shaders with common features.
+*/
 class ProgramBuilder
 {
 public:
+       /**
+       Describes the features of a standard shader program.
+       */
        struct StandardFeatures
        {
                class Loader: public DataFile::ObjectLoader<StandardFeatures>
index eae75cce642768f9988adcd853f27d253a695c18..9a534e9038579f37256c2722f6681235dc062eea 100644 (file)
@@ -50,12 +50,12 @@ public:
        /** Called when a complete frame has been rendered. */
        virtual void finish_frame() const { }
 
-       /** Renders the renderable without a renderer.  This can be convenient in
+       /** Renders the Renderable without a renderer.  This can be convenient in
        some simple cases, but most renderables don't need to implement this
        method. */
        virtual void render(const Tag & = Tag()) const;
 
-       /** Renders the renderable.  Implementors should take care to return the
+       /** Renders the Renderable.  Implementors should take care to return the
        renderer to the state it was in, for example by using Renderer::Push. */
        virtual void render(Renderer &, const Tag & = Tag()) const = 0;
 };
index 0390d85936902d4b7e75b4c2d569ec8548e61353..51adec4a63c87d7e306a5b694542f77604e5b89b 100644 (file)
@@ -9,6 +9,10 @@ namespace GL {
 
 class Texture2D;
 
+/**
+A collection class for GL resources.  Most useful as a base class for an
+application-specific collection.
+*/
 class Resources: virtual public DataFile::Collection
 {
 private:
index 63af9b3ab74862c10fb417b68bdaa18786c8e9b9..961cb6944fb5f553ad3abbdb5af90675ac897230 100644 (file)
@@ -7,6 +7,12 @@
 namespace Msp {
 namespace GL {
 
+/**
+A single shader stage.  Shaders must be attached to a Program to be used.
+
+This class can't be instantiated directly.  Use one of the VertexShader and
+FragmentShader classes to create Shaders.
+*/
 class Shader
 {
 private:
index d1fab38f7ad9649f45d7c2be6b9fd4f805a1e3d0..141fa9c80a2b3f42cbfd2a87c1b218253993bce6 100644 (file)
@@ -11,6 +11,7 @@ class Material;
 class Texture;
 
 /**
+Ties multiple tagged render passes together.
 */
 class Technique
 {
index dce58a7873213e772381582e490c11363f8557b6..639d47a6cee591d3a39ad6cbeced110c75550a0a 100644 (file)
@@ -12,8 +12,8 @@ namespace GL {
 
 /**
 Two-dimensional texture.  Consists of an array of texels in the shape of a
-rectangle.  Texture coordinate have a principal range of [0, 1].  This is the
-most common type of texture.
+rectangle.  Texture coordinate have a range of [0, 1].  Coordinates outside of
+this range are subject to wrapping.  This is the most common type of texture.
 */
 class Texture2D: public Texture
 {
@@ -60,14 +60,15 @@ public:
        void sub_image(unsigned level, int x, int y, unsigned wd, unsigned ht,
                PixelFormat fmt, DataType type, const void *data);
 
-       /** Loads an image from a file and uploads it to the texture.  If storage
-       has not been defined, it will be set to match the loaded image.  Otherwise
-       the image must be compatible with the defined storage. */
+       /// Loads a Graphics::Image from a file and uploads it to the texture.
        void load_image(const std::string &fn, bool srgb = false);
 
        /** Uploads an image to the texture.  If storage has not been defined, it
        will be set to match the image.  Otherwise the image must be compatible with
-       the defined storage. */
+       the defined storage.
+
+       If srgb is true and storage is determined by this call, then an sRGB pixel
+       format will be used. */
        void image(const Graphics::Image &, bool srgb = false);
 
        unsigned get_width() const { return width; }
index 05952a2207b57ae015be531b4995dcfd12ee1345..8962e63839cc6dd2f68113917396bf3816889056 100644 (file)
@@ -10,6 +10,9 @@ class TexEnv;
 class TexGen;
 class Texture;
 
+/**
+Keeps track of texture unit related state.  Mostly for internal use.
+*/
 class TexUnit
 {
 private: