⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 moviedata.h

📁 最新osg包
💻 H
字号:
 /* *  MovieData.h *  encapsulates movie-related stuff * *  Created by Stephan Huber on Wed Mar 10 2004. *  Copyright (c) 2004 digital mind. All rights reserved. * */#ifndef _MOVIEDATA_HEADER_#define _MOVIEDATA_HEADER_#include <osg/Notify>#include <osg/Image>#include <string>#include "QTUtils.h"#include <math.h>    /**      * the class MovieData encapsulates all quicktime-related stuff, so it doesn't polute the namespaces     * it handles all calls to quicktime etc... It is mainly used by the QuicktimeImageStream, it is      * rarely needed in other contexts      */    class MovieData {            public:            /** default constructor */            MovieData();                        /** default destructor */            ~MovieData();                        /**              * loads a movie, start it playing at startTime, use Image for the storage             * @param image the image, to use as storage             * @param fileName the movie to open             * @param startTime the starttime to begin with             */            void load(osg::Image* image, std::string fileName, float startTime = 0.0f);                        /** @return the duration for this movie in seconds */            inline float getMovieDuration() { return GetMovieDuration(_movie)/(float)_timescale;}                        /** @return the current position for this movie in seconds */            inline float getMovieTime()  {return GetMovieTime(_movie,NULL)/(float)_timescale; }                        /** stes the movietime */            void setMovieTime(float atime);                                    /** @return the Movie-handle, to use it with other quicktime-calls */            inline Movie &getMovie() { return _movie; }                        /** @return the current movieRate */            inline float getMovieRate() { return Fix2X(GetMovieRate(_movie)); }            /** @return returns the cached movierate, may differ to the real movierate */            inline float getCachedMovieRate() { return _movieRate; }                        /** sets the MovieRate for this movie */            void setMovieRate(float rate);                        /** sets the volume for the soundtrack of this movie */            void setVolume(float volume) { SetMovieVolume(_movie,(short)(ceil(volume*255.0f)));}            float getVolume() const { return GetMovieVolume(_movie) / 255.0f; }                        void setAudioBalance(float f) {                Float32 balance = f;                SetMovieAudioBalance(_movie, balance, 0);            }                        float getAudioBalance() {                Float32 balance;                float f;                GetMovieAudioBalance(_movie, &balance, 0);                f = balance;                return f;            }                        /** @return true, if this movie is looping */            bool isLooping() const { return _isLooping; }                        /** sets the looping mode */            void setLooping(bool loop) {                if (_isLooping != loop) {                    _isLooping = loop;                    switch (_isLooping) {                        case true:                            SetTimeBaseFlags(GetMovieTimeBase(_movie), loopTimeBase);                            break;                        case false:                            SetTimeBaseFlags(GetMovieTimeBase(_movie), 0);                            break;                    }                }            }                                    protected:            char*           _pointer;            short           _resref;            Movie           _movie;            GWorldPtr       _gw;                        unsigned int    _movieWidth, _movieHeight, _textureWidth, _textureHeight;            float           _timescale;            bool            _fError;            float           _movieRate;            bool            _preRolled;            bool            _isLooping;                        /** inits the image for storage */            void _initImage(osg::Image* image);                        /** inits the gWorld, where the movie gets drawn into */            void _initGWorldStuff(osg::Image * image);                        /** inits the texture */            void _initTexture();                        /** checks for an movie-error */            inline void _checkMovieError(std::string msg) {                if (GetMoviesError()) {                    _fError = true;                    osg::notify(osg::ALWAYS) << "MovieData: GetMoviesError fails at " << msg << std::endl;                }            }                };#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -