Harmonic Flow Framework

Harmonic Flow Blog

Harmonic Flow Framework v0-4-0

What's new in version 0.4.0:

  • Added new Vector3 class with some basic functionality.
  • Ability to set preferred projection matrix (Ortho or Perspective).
  • Added new Camera class with some basic functionality.
  • Added new convenient methods to draw primitives (Point, Lines, Ellipse, Circle and Triangle).
  • Renamed TriStrip class to Geometry and added some more functionality to it.
  • Added new method to draw Geometry called drawGeometry which can be rendered using rendertypes (POINTS, LINES, LINE_STRIP, TRIANGLES, TRIANGLE_FAN and TRIANGLE_STRIP) to keep it all flexible.
  • Added support in 'config.xml' for Multisample. Check out 'demos/demo1-minimal/data/config.xml' for an example. The following new options are available: EnableMultiSample (0 = Disabled, 1 = Enabled) and MultiSampleSamples (2 = 2 samples, 4 = 4 samples).
  • Added new methods in 'Image.h' (getPow2Width and getPow2Height).
  • Renamed rotateDeg to rotateZDeg in 'Graphics.h'.
  • Renamed rotateRad to rotateZRad in 'Graphics.h'.
  • Started documenting some classes so that Doxygen can be used for generating docs later.

New methods in Graphics.h:

// New methods:
virtual void            setOrthoProjectionLH(fp32_hf left, fp32_hf right,
                                             fp32_hf bottom, fp32_hf top,
                                             fp32_hf zNear, fp32_hf zFar) = 0;

virtual void            setPerspectiveProjectionLH(fp32_hf fovyDeg, fp32_hf aspect,
                                                   fp32_hf zNear, fp32_hf zFar) = 0;

virtual void            setLookAtLH(const Vector3 &eye, const Vector3 &lookAt,
                                    const Vector3 &upDirection) = 0;

virtual void            setVertexCenterPixelPerfect(bool enable) = 0;
virtual bool            isVertexCenterPixelPerfect() = 0;

virtual void            drawPoint(fp32_hf x, fp32_hf y) = 0;
virtual void            drawPoint(const Vector2 &v0) = 0;

virtual void            drawEllipse(fp32_hf cx, fp32_hf cy, fp32_hf radiusw,
                                    fp32_hf radiush, int32_hf numSegments) = 0;
virtual void            drawEllipse(const Vector2 &v0, fp32_hf radiusw,
                                    fp32_hf radiush, int32_hf numSegments) = 0;
virtual void            fillEllipse(fp32_hf cx, fp32_hf cy, fp32_hf radiusw,
                                    fp32_hf radiush, int32_hf numSegments) = 0;
virtual void            fillEllipse(const Vector2 &v0, fp32_hf radiusw,
                                    fp32_hf radiush, int32_hf numSegments) = 0;

virtual void            drawCircle(fp32_hf cx, fp32_hf cy, fp32_hf radius,
                                   int32_hf numSegments) = 0;
virtual void            drawCircle(const Vector2 &v0, fp32_hf radius,
                                   int32_hf numSegments) = 0;
virtual void            fillCircle(fp32_hf cx, fp32_hf cy, fp32_hf radius,
                                   int32_hf numSegments) = 0;
virtual void            fillCircle(const Vector2 &v0, fp32_hf radius,
                                   int32_hf numSegments) = 0;

virtual void            drawLine(fp32_hf x0, fp32_hf y0, fp32_hf x1, fp32_hf y1) = 0;
virtual void            drawLine(const Vector2 &v0, const Vector2 &v1) = 0;

virtual void            drawTriangle(fp32_hf x0, fp32_hf y0, fp32_hf x1, fp32_hf y1,
                                     fp32_hf x2, fp32_hf y2) = 0;
virtual void            drawTriangle(const Vector2 &v0, const Vector2 &v1,
                                     const Vector2 &v2) = 0;
virtual void            fillTriangle(fp32_hf x0, fp32_hf y0, fp32_hf x1, fp32_hf y1,
                                     fp32_hf x2, fp32_hf y2) = 0;
virtual void            fillTriangle(const Vector2 &v0, const Vector2 &v1,
                                     const Vector2 &v2) = 0;

virtual void            drawPointBatch(fp32_hf x, fp32_hf y, Color color,
                                       DrawMode drawMode = DRAWMODE_NORMAL) = 0;
virtual void            drawPointBatch(const Vector2 &v0, Color color,
                                       DrawMode drawMode = DRAWMODE_NORMAL) = 0;

virtual void            drawLineBatch(fp32_hf x0, fp32_hf y0, fp32_hf x1, fp32_hf y1,
                                      Color color, DrawMode drawMode = DRAWMODE_NORMAL) = 0;
virtual void            drawLineBatch(const Vector2 &v0, const Vector2 &v1,
                                      Color color, DrawMode drawMode = DRAWMODE_NORMAL) = 0;

virtual void            drawTriangleBatch(fp32_hf x0, fp32_hf y0, fp32_hf x1, fp32_hf y1,
                                          fp32_hf x2, fp32_hf y2, Color color,
                                          DrawMode drawMode = DRAWMODE_NORMAL) = 0;
virtual void            drawTriangleBatch(const Vector2 &v0, const Vector2 &v1,
                                          const Vector2 &v2, Color color,
                                          DrawMode drawMode = DRAWMODE_NORMAL) = 0;
virtual void            fillTriangleBatch(fp32_hf x0, fp32_hf y0, fp32_hf x1, fp32_hf y1,
                                          fp32_hf x2, fp32_hf y2, Color color,
                                          DrawMode drawMode = DRAWMODE_NORMAL) = 0;
virtual void            fillTriangleBatch(const Vector2 &v0, const Vector2 &v1,
                                          const Vector2 &v2, Color color,
                                          DrawMode drawMode = DRAWMODE_NORMAL) = 0;

virtual void            drawGeometry(Geometry *geometry, uint32_hf startIndex,
                                     uint32_hf vertexCount, RenderType renderType) = 0;

virtual void            setCreateNewBatchPrimitiveQueue(bool create,
                                                        PrimitiveType type) = 0;

Download the latest version here. Submit any bugs or thoughts here.

Posted on Sat, 4 Jul 2015
Tags: harmonic-flow-framework, harmonic-flow-news, libhffwk



Comment On This Entry

Submit a comment on this entry.