~ubuntu-branches/ubuntu/oneiric/nux/oneiric

« back to all changes in this revision

Viewing changes to NuxGraphics/GLSh_Fill.h

  • Committer: Bazaar Package Importer
  • Author(s): Didier Roche
  • Date: 2010-11-18 19:17:32 UTC
  • Revision ID: james.westby@ubuntu.com-20101118191732-rn35790vekj6o4my
Tags: upstream-0.9.4
ImportĀ upstreamĀ versionĀ 0.9.4

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright 2010 Inalogic Inc.
 
3
 *
 
4
 * This program is free software: you can redistribute it and/or modify it
 
5
 * under the terms of the GNU Lesser General Public License version 3, as
 
6
 * published by the  Free Software Foundation.
 
7
 *
 
8
 * This program is distributed in the hope that it will be useful, but
 
9
 * WITHOUT ANY WARRANTY; without even the implied warranties of
 
10
 * MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR
 
11
 * PURPOSE.  See the applicable version of the GNU Lesser General Public
 
12
 * License for more details.
 
13
 *
 
14
 * You should have received a copy of both the GNU Lesser General Public
 
15
 * License version 3 along with this program.  If not, see
 
16
 * <http://www.gnu.org/licenses/>
 
17
 *
 
18
 * Authored by: Jay Taoko <jay.taoko_AT_gmail_DOT_com>
 
19
 *
 
20
 */
 
21
 
 
22
 
 
23
#ifndef GLSH_FILL_H
 
24
#define GLSH_FILL_H
 
25
 
 
26
#include "IOpenGLGLSLShader.h"
 
27
#include "GLShaderParameter.h"
 
28
#include "GLDeviceObjects.h"
 
29
 
 
30
namespace nux
 
31
{
 
32
 
 
33
  class TemplateQuadBuffer;
 
34
 
 
35
  class GLSh_Fill
 
36
  {
 
37
  public:
 
38
    GLShaderParameter *Color;
 
39
    GLShaderParameter *ViewProjectionMatrix;
 
40
    GLShaderParameter *Scale;
 
41
    GLShaderParameter *Offset;
 
42
 
 
43
    GLSh_Fill();
 
44
    ~GLSh_Fill();
 
45
 
 
46
    void CacheShader();
 
47
    void SetColor (FLOAT R, FLOAT G, FLOAT B, FLOAT A);
 
48
    void Render (INT x, INT y, INT z, INT width, INT height);
 
49
 
 
50
    void SetTransformMatrix (const Matrix4 &TransformMatrix);
 
51
 
 
52
  private:
 
53
    FLOAT _R, _G, _B, _A;
 
54
 
 
55
    IntrusiveSP<IOpenGLVertexShader> vs;
 
56
    IntrusiveSP<IOpenGLPixelShader> ps;
 
57
    IntrusiveSP<IOpenGLShaderProgram> sprog;
 
58
    Matrix4 m_TransformMatrix;
 
59
    TemplateQuadBuffer *m_QuadBuffer;
 
60
  };
 
61
}
 
62
 
 
63
#endif // GLSH_FILL_H