Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/branches/avi_play/src/lib/graphics/importer/texture_sequence.h @ 6163

Last change on this file since 6163 was 6163, checked in by hdavid, 18 years ago

branches\avi_play: added ability to get the frames in a list

File size: 1.8 KB
Line 
1/*!
2 * @file texture.h
3 * @brief Contains the texture class, that handles the reading of Images into Texutre-files.
4 */
5
6#ifndef _TEXTURE_SEQUENCE_H
7#define _TEXTURE_SEQUENCE_H
8
9#include "texture.h"
10
11#include "glincl.h"
12
13#include <vector>
14#include <stdarg.h>
15
16/* Forward Declaration */
17struct SDL_Surface;
18
19//! A Class, that reads in Textures from different fileformats.
20class TextureSequence : public Texture
21{
22  public:
23    TextureSequence(unsigned int count = 0, ...);
24  //  Texture(TEXTURE_TYPE type, int resolution);
25    ~TextureSequence();
26
27    bool loadImageSeries(unsigned int count, ...);
28    bool loadImageSeries(unsigned int count, va_list textureNames);
29    bool addFrame(const char* image);
30    bool addFrame(SDL_Surface* surface);
31    bool addFrame(GLuint texture);
32    bool addFrameList(std::vector<SDL_Surface*> surfaces);
33
34    virtual bool rebuild();
35
36    /** @returns the count of frames in this sequence */
37    inline unsigned int getFrameCount() const { return this->textures.size(); };
38
39    void gotoFrame(unsigned int frameNumber);
40    /** @returns The textureID of the Frame @param frameNumber the n-th frame this texture-series.  */
41    inline GLuint getFrameTexture(unsigned int frameNumber) const { return (this->textures.size()>frameNumber)?this->textures[frameNumber]:0; };
42    /** @returns The SDL_Surface of the image at Frame @param frameNumber the n-th frame of this image-seriers */
43    const SDL_Surface* const getFrameImage(unsigned int frameNumber) const { return (this->images.size()>frameNumber)?this->images[frameNumber]:NULL; };
44
45  private:
46    std::vector<GLuint>          textures;            //!< The Texture-ID of opengl from this Texture.
47    std::vector<SDL_Surface*>    images;              //!< The SDL_Surfce that stores the Texture on it.
48};
49
50#endif /* _TEXTURE_SEQUENCE_H */
Note: See TracBrowser for help on using the repository browser.