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

📄 texture.h

📁 这是在s60第五版上用Open GL开发的软件
💻 H
字号:
/*
 * ==============================================================================
 *  Name        : Texture.h
 *  Part of     : OpenGLEx / Texture
 *
 *  Copyright (c) 2004-2006 Nokia Corporation.
 *  This material, including documentation and any related
 *  computer programs, is protected by copyright controlled by
 *  Nokia Corporation.
 * ==============================================================================
 */

#ifndef TEXTURE_H
#define TEXTURE_H

// INCLUDES
#include <e32base.h> // for CBase definition
#include <GLES/gl.h> // OpenGL ES header file
#include "Utils3d.h" // Utilities (texmanager, textures etc.)
#include "Glutils.h" // Misc GLU and GLUT functions
#include "Direction.h" // Misc GLU and GLUT functions

// MACROS
#define TEX_WIDTH     256 // Texture size must be power of two and max size
#define TEX_HEIGHT    256 // for textures is 256 x 256

#define FRUSTUM_LEFT    -1.f  //left vertical clipping plane
#define FRUSTUM_RIGHT    1.f  //right vertical clipping plane
#define FRUSTUM_BOTTOM  -1.f  //bottom horizontal clipping plane
#define FRUSTUM_TOP      1.f  //top horizontal clipping plane
#define FRUSTUM_NEAR     3.f  //near depth clipping plane
#define FRUSTUM_FAR   1000.f  //far depth clipping plane

// CLASS DECLARATION

/**
 * Class that does the actual OpenGL ES rendering.
 * Subclass of CFiniteStateMachine because the application
 * needs to handle loading textures and running states.
 */
class CTexture : public CFiniteStateMachine, public MTextureLoadingListener
    {
    public:  // Constructors and destructor

        /**
         * Factory method for creating a new CSimpleCube object.
         */
        static CTexture* NewL( TUint aWidth, TUint aHeight );

        /**
         * Destructor. Does nothing.
         */
        virtual ~CTexture();

    public:  // New functions

        /**
         * Initializes OpenGL ES, sets the vertex and color
         * arrays and pointers. Also selects the shading mode and
         * creates the CTextureManager instance and starts loading
         * of required textures.
         */
        void AppInitL( void );


        /**
         * Called upon application exit. Destroys the CTextureManager
         * instance that was created in AppInitL() method.
         */
        void AppExit( void );


        /**
         * Renders one frame.
         * @param aFrame Number of the frame to be rendered.
         */
        void AppCycle( TInt aFrame, TRotationDirection aDirection );

    	/**
    	 * Called when the finite state machine enters a new state.
    	 * Does nothing in this implementation.
    	 * @param aState State that is about to be entered.
    	 */
    	void OnEnterStateL( TInt aState );

    	/**
    	 * Called when texture manager starts loading the textures.
    	 * Sets the current state to "loading textures".
    	 */
    	void OnStartLoadingTexturesL();

    	/**
    	 * Called when texture manager has completed texture loading.
    	 * Changes the current state to "running".
    	 */
    	void OnEndLoadingTexturesL();


        /**
         * Toggles perspective correction on and off.
         */
        void TogglePerspective( void );


        /**
         * Toggles texture wrapping on and off.
         */
        void ToggleWrapping( void );


        /**
         * Toggles lighting on and off.
         */
        void ToggleLighting( void );


        /**
         * Toggles blending enabled and disabled.
         */
        void ToggleBlending( void );

        /**
         * Notifies that the screen size has dynamically changed during execution of
         * this program. Resets the viewport to this new size and sets this size
         * to the CTextureManager.
         * @param aWidth New width of the screen.
         * @param aHeight New height of the screen.
         */
        void SetScreenSize( TUint aWidth, TUint aHeight );

    protected:

        /**
         * Standard constructor that must never Leave.
         * Stores the given screen width and height.
         * @param aWidth Width of the screen.
         * @param aHeight Height of the screen.
         */
        CTexture( TUint aWidth, TUint aHeight );

        /**
         * Second phase contructor. Does nothing.
         */
        void ConstructL( void );

    public:  // Data

    	/**
    	 * Application states:
    	 * ELoadingTextures - indicates that the app. is loading textures.
    	 * ERunning - indicates that the app. is running.
    	 */
    	enum
    		{
    		ELoadingTextures,
    		ERunning
    		};

        /** Whether perspective correction is used or not. */
        TBool iPerspectiveCorrEnabled;

        /** Whether texture wrapping is on or off. */
        TBool iTextureWrapEnabled;

        /** Whether lighting is on or off. */
        TBool iLightingEnabled;

        /** Whether blending is enabled or disabled. */
        TBool iBlendingEnabled;

    private:  // Data

    	/** Texture manager that is used to load the used textures. */
    	CTextureManager * iTextureManager;
        /** Width of the screen */
        TUint iScreenWidth;
        /** Height of the screen */
        TUint iScreenHeight;
    	TTexture iIcons1, iIcons2, iIcons3, iIcons4;
    };

#endif

⌨️ 快捷键说明

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