source: trunk/packages/vizservers/nanovis/Texture2D.h @ 3177

Last change on this file since 3177 was 3177, checked in by mmc, 12 years ago

Updated all of the copyright notices to reference the transfer to
the new HUBzero Foundation, LLC.

  • Property svn:eol-style set to native
File size: 1.5 KB
Line 
1/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2/*
3 * ----------------------------------------------------------------------
4 * Texture2D.h: 2d texture class
5 *
6 * ======================================================================
7 *  AUTHOR:  Wei Qiao <qiaow@purdue.edu>
8 *           Purdue Rendering and Perceptualization Lab (PURPL)
9 *
10 *  Copyright (c) 2004-2012  HUBzero Foundation, LLC
11 *
12 *  See the file "license.terms" for information on usage and
13 *  redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
14 * ======================================================================
15 */
16#ifndef TEXTURE2D_H
17#define TEXTURE2D_H
18
19#include <GL/glew.h>
20
21class Texture2D
22{
23public:
24    Texture2D();
25
26    Texture2D(int width, int height,
27              GLuint type = GL_FLOAT,
28              GLuint interp = GL_LINEAR,
29              int numComponents = 4,
30              void *data = NULL);
31
32    ~Texture2D();
33
34    GLuint initialize(void *data);
35
36    void update(void *data);
37
38    void activate();
39
40    void deactivate();
41
42    int width() const
43    {
44        return _width;
45    }
46
47    int height() const
48    {
49        return _width;
50    }
51
52    GLuint id() const
53    {
54        return _id;
55    }
56
57    void setWrapS(GLuint wrapMode);
58
59    void setWrapT(GLuint wrapMode);
60
61    static void checkMaxSize();
62
63    static void checkMaxUnit();
64
65private:
66    int _width;
67    int _height;
68
69    int _numComponents;
70
71    bool _glResourceAllocated;
72    GLuint _id;
73    GLuint _type;
74    GLuint _interpType;
75    GLuint _wrapS;
76    GLuint _wrapT;
77};
78
79#endif
Note: See TracBrowser for help on using the repository browser.