/* ** Command & Conquer Generals(tm) ** Copyright 2025 Electronic Arts Inc. ** ** This program is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation, either version 3 of the License, or ** (at your option) any later version. ** ** This program is distributed in the hope that it will be useful, ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** GNU General Public License for more details. ** ** You should have received a copy of the GNU General Public License ** along with this program. If not, see . */ //////////////////////////////////////////////////////////////////////////////// // // // (c) 2001-2003 Electronic Arts Inc. // // // //////////////////////////////////////////////////////////////////////////////// //---------------------------------------------------------------------------- // // Westwood Studios Pacific. // // Confidential Information // Copyright (C) 2001 - All Rights Reserved // //---------------------------------------------------------------------------- // // Project: Generals // // File name: W3DDevice/GameClient/W3DVideoBuffer.h // // Created: 10/23/01 // //---------------------------------------------------------------------------- #pragma once #ifndef __W3DDEVICE_GAMECLIENT_W3DVIDEOBUFFER_H_ #define __W3DDEVICE_GAMECLIENT_W3DVIDEOBUFFER_H_ //---------------------------------------------------------------------------- // Includes //---------------------------------------------------------------------------- #include "GameClient/VideoPlayer.h" //---------------------------------------------------------------------------- // Forward References //---------------------------------------------------------------------------- class TextureClass; class SurfaceClass; //---------------------------------------------------------------------------- // Type Defines //---------------------------------------------------------------------------- //=============================== // W3DVideoBuffer //=============================== /** * Video buffer interface class to a W3D TextureClass */ //=============================== class W3DVideoBuffer : public VideoBuffer { protected: TextureClass *m_texture; SurfaceClass *m_surface; public: W3DVideoBuffer( Type format ); virtual ~W3DVideoBuffer(); virtual Bool allocate( UnsignedInt width, UnsignedInt height); ///< Allocates buffer virtual void free( void); ///< Free buffer virtual void* lock( void ); ///< Returns memory pointer to start of buffer virtual void unlock( void ); ///< Release buffer virtual Bool valid( void ); ///< Is the buffer valid to use TextureClass *texture( void ); ///< Returns texture object static WW3DFormat TypeToW3DFormat( VideoBuffer::Type format ); static VideoBuffer::Type W3DFormatToType( WW3DFormat w3dFormat ); }; //---------------------------------------------------------------------------- // Inlining //---------------------------------------------------------------------------- inline TextureClass* W3DVideoBuffer::texture( void ) { return m_texture; } #endif // __W3DDEVICE_GAMECLIENT_W3DVIDEOBUFFER_H_