141 lines
5.8 KiB
C++
141 lines
5.8 KiB
C++
/*
|
|
** Command & Conquer Generals Zero Hour(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 <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
// //
|
|
// (c) 2001-2003 Electronic Arts Inc. //
|
|
// //
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// FILE: GUIEditDisplay.h /////////////////////////////////////////////////////
|
|
//-----------------------------------------------------------------------------
|
|
//
|
|
// Westwood Studios Pacific.
|
|
//
|
|
// Confidential Information
|
|
// Copyright (C) 2001 - All Rights Reserved
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
//
|
|
// Project: RTS3
|
|
//
|
|
// File name: GUIEditDisplay.h
|
|
//
|
|
// Created: Colin Day, July 2001
|
|
//
|
|
// Desc: Display implementation for the GUI edit tool
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
#pragma once
|
|
|
|
#ifndef __GUIEDITDISPLAY_H_
|
|
#define __GUIEDITDISPLAY_H_
|
|
|
|
// SYSTEM INCLUDES ////////////////////////////////////////////////////////////
|
|
|
|
// USER INCLUDES //////////////////////////////////////////////////////////////
|
|
#include "GameClient/Display.h"
|
|
|
|
// FORWARD REFERENCES /////////////////////////////////////////////////////////
|
|
class VideoBuffer;
|
|
|
|
// TYPE DEFINES ///////////////////////////////////////////////////////////////
|
|
|
|
// GUIEditDisplay -------------------------------------------------------------
|
|
/** Stripped down display for the GUI tool editor */
|
|
//-----------------------------------------------------------------------------
|
|
class GUIEditDisplay : public Display
|
|
{
|
|
|
|
public:
|
|
|
|
GUIEditDisplay( void );
|
|
virtual ~GUIEditDisplay( void );
|
|
|
|
virtual void draw( void ) { };
|
|
|
|
/// draw a line on the display in pixel coordinates with the specified color
|
|
virtual void drawLine( Int startX, Int startY, Int endX, Int endY,
|
|
Real lineWidth, UnsignedInt lineColor );
|
|
virtual void drawLine( Int startX, Int startY, Int endX, Int endY,
|
|
Real lineWidth, UnsignedInt lineColor1, UnsignedInt lineColor2 ) { }
|
|
/// draw a rect border on the display in pixel coordinates with the specified color
|
|
virtual void drawOpenRect( Int startX, Int startY, Int width, Int height,
|
|
Real lineWidth, UnsignedInt lineColor );
|
|
/// draw a filled rect on the display in pixel coords with the specified color
|
|
virtual void drawFillRect( Int startX, Int startY, Int width, Int height,
|
|
UnsignedInt color );
|
|
|
|
/// Draw a percentage of a rectange, much like a clock
|
|
virtual void drawRectClock(Int startX, Int startY, Int width, Int height, Int percent, UnsignedInt color) { }
|
|
virtual void drawRemainingRectClock(Int startX, Int startY, Int width, Int height, Int percent, UnsignedInt color) { }
|
|
|
|
/// draw an image fit within the screen coordinates
|
|
virtual void drawImage( const Image *image, Int startX, Int startY,
|
|
Int endX, Int endY, Color color = 0xFFFFFFFF, DrawImageMode mode=DRAW_IMAGE_ALPHA);
|
|
/// image clipping support
|
|
virtual void setClipRegion( IRegion2D *region );
|
|
virtual Bool isClippingEnabled( void );
|
|
virtual void enableClipping( Bool onoff );
|
|
|
|
// These are stub functions to allow compilation:
|
|
|
|
/// Create a video buffer that can be used for this display
|
|
virtual VideoBuffer* createVideoBuffer( void ) { return NULL; }
|
|
|
|
/// draw a video buffer fit within the screen coordinates
|
|
virtual void drawVideoBuffer( VideoBuffer *buffer, Int startX, Int startY,
|
|
Int endX, Int endY ) { }
|
|
virtual void takeScreenShot(void){ }
|
|
virtual void toggleMovieCapture(void) {}
|
|
|
|
// methods that we need to stub
|
|
virtual void setTimeOfDay( TimeOfDay tod ) {}
|
|
virtual void createLightPulse( const Coord3D *pos, const RGBColor *color, Real innerRadius, Real attenuationWidth,
|
|
UnsignedInt increaseFrameTime, UnsignedInt decayFrameTime ) {}
|
|
virtual void setShroudLevel(Int x, Int y, CellShroudStatus setting) {}
|
|
void setBorderShroudLevel(UnsignedByte level){}
|
|
virtual void clearShroud() {}
|
|
virtual void preloadModelAssets( AsciiString model ) {}
|
|
virtual void preloadTextureAssets( AsciiString texture ) {}
|
|
virtual void toggleLetterBox(void) {}
|
|
virtual void enableLetterBox(Bool enable) {}
|
|
#if defined(_DEBUG) || defined(_INTERNAL)
|
|
virtual void dumpModelAssets(const char *path) {}
|
|
#endif
|
|
virtual void doSmartAssetPurgeAndPreload(const char* usageFileName) {}
|
|
#if defined(_DEBUG) || defined(_INTERNAL)
|
|
virtual void dumpAssetUsage(const char* mapname) {}
|
|
#endif
|
|
|
|
virtual Real getAverageFPS(void) { return 0; }
|
|
virtual Int getLastFrameDrawCalls( void ) { return 0; }
|
|
|
|
protected:
|
|
|
|
}; // end GUIEditDisplay
|
|
|
|
// INLINING ///////////////////////////////////////////////////////////////////
|
|
|
|
// EXTERNALS //////////////////////////////////////////////////////////////////
|
|
|
|
#endif // __GUIEDITDISPLAY_H_
|
|
|