Initial Source Code commit
Initial commit of original Tiberian Dawn and Red Alert source code converted to build as DLLs, and compatible with the release version of Command & Conquer Remastered.
This commit is contained in:
parent
ea8ecc76fa
commit
03416d24e1
1038 changed files with 629779 additions and 0 deletions
150
REDALERT/DIBAPI.H
Normal file
150
REDALERT/DIBAPI.H
Normal file
|
@ -0,0 +1,150 @@
|
|||
//
|
||||
// Copyright 2020 Electronic Arts Inc.
|
||||
//
|
||||
// TiberianDawn.DLL and RedAlert.dll and corresponding source code 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.
|
||||
|
||||
// TiberianDawn.DLL and RedAlert.dll and corresponding source code is distributed
|
||||
// in the hope that it will be useful, but with permitted additional restrictions
|
||||
// under Section 7 of the GPL. See the GNU General Public License in LICENSE.TXT
|
||||
// distributed with this program. You should have received a copy of the
|
||||
// GNU General Public License along with permitted additional restrictions
|
||||
// with this program. If not, see https://github.com/electronicarts/CnC_Remastered_Collection
|
||||
|
||||
#ifndef DIBAPI_H
|
||||
#define DIBAPI_H
|
||||
/*
|
||||
* dibapi.h
|
||||
*
|
||||
* Copyright (c) 1991 Microsoft Corporation. All rights reserved
|
||||
*
|
||||
* Header file for Device-Independent Bitmap (DIB) API. Provides
|
||||
* function prototypes and constants for the following functions:
|
||||
*
|
||||
* BitmapToDIB() - Creates a DIB from a bitmap
|
||||
* ChangeBitmapFormat() - Changes a bitmap to a specified DIB format
|
||||
* ChangeDIBFormat() - Changes a DIB's BPP and/or compression format
|
||||
* CopyScreenToBitmap() - Copies entire screen to a standard Bitmap
|
||||
* CopyScreenToDIB() - Copies entire screen to a DIB
|
||||
* CopyWindowToBitmap() - Copies a window to a standard Bitmap
|
||||
* CopyWindowToDIB() - Copies a window to a DIB
|
||||
* CreateDIBPalette() - Creates a palette from a DIB
|
||||
* CreateDIB() - Creates a new DIB
|
||||
* DestroyDIB() - Deletes DIB when finished using it
|
||||
* DIBError() - Displays message box with error message
|
||||
* DIBHeight() - Gets the DIB height
|
||||
* DIBNumColors() - Calculates number of colors in the DIB's color table
|
||||
* DIBToBitmap() - Creates a bitmap from a DIB
|
||||
* DIBWidth() - Gets the DIB width
|
||||
* FindDIBBits() - Sets pointer to the DIB bits
|
||||
* GetSystemPalette() - Gets the current palette
|
||||
* LoadDIB() - Loads a DIB from a file
|
||||
* PaintBitmap() - Displays standard bitmap in the specified DC
|
||||
* PaintDIB() - Displays DIB in the specified DC
|
||||
* PalEntriesOnDevice() - Gets the number of palette entries
|
||||
* PaletteSize() - Calculates the buffer size required by a palette
|
||||
* PrintDIB() - Prints the specified DIB
|
||||
* PrintScreen() - Prints the entire screen
|
||||
* PrintWindow() - Prints all or part of a window
|
||||
* SaveDIB() - Saves the specified dib in a file
|
||||
*
|
||||
* See the file DIBAPI.TXT for more information about these functions.
|
||||
*
|
||||
* ajw added
|
||||
* LoadDIB_FromMemory() - Loads a DIB from BMP file data located at a location in memory.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
/* Handle to a DIB */
|
||||
#define HDIB HANDLE
|
||||
|
||||
|
||||
/* Print Area selection */
|
||||
#define PW_WINDOW 1
|
||||
#define PW_CLIENT 2
|
||||
|
||||
|
||||
/* Print Options selection */
|
||||
#define PW_BESTFIT 1
|
||||
#define PW_STRETCHTOPAGE 2
|
||||
#define PW_SCALE 3
|
||||
|
||||
/* DIB Macros*/
|
||||
|
||||
// WIDTHBYTES performs DWORD-aligning of DIB scanlines. The "bits"
|
||||
// parameter is the bit count for the scanline (biWidth * biBitCount),
|
||||
// and this macro returns the number of DWORD-aligned bytes needed
|
||||
// to hold those bits.
|
||||
|
||||
#define WIDTHBYTES(bits) (((bits) + 31) / 32 * 4)
|
||||
|
||||
/* Error constants */
|
||||
enum {
|
||||
ERR_MIN = 0, // All error #s >= this value
|
||||
ERR_NOT_DIB = 0, // Tried to load a file, NOT a DIB!
|
||||
ERR_MEMORY, // Not enough memory!
|
||||
ERR_READ, // Error reading file!
|
||||
ERR_LOCK, // Error on a GlobalLock()!
|
||||
ERR_OPEN, // Error opening a file!
|
||||
ERR_CREATEPAL, // Error creating palette.
|
||||
ERR_GETDC, // Couldn't get a DC.
|
||||
ERR_CREATEDDB, // Error create a DDB.
|
||||
ERR_STRETCHBLT, // StretchBlt() returned failure.
|
||||
ERR_STRETCHDIBITS, // StretchDIBits() returned failure.
|
||||
ERR_SETDIBITSTODEVICE, // SetDIBitsToDevice() failed.
|
||||
ERR_STARTDOC, // Error calling StartDoc().
|
||||
ERR_NOGDIMODULE, // Couldn't find GDI module in memory.
|
||||
ERR_SETABORTPROC, // Error calling SetAbortProc().
|
||||
ERR_STARTPAGE, // Error calling StartPage().
|
||||
ERR_NEWFRAME, // Error calling NEWFRAME escape.
|
||||
ERR_ENDPAGE, // Error calling EndPage().
|
||||
ERR_ENDDOC, // Error calling EndDoc().
|
||||
ERR_SETDIBITS, // Error calling SetDIBits().
|
||||
ERR_FILENOTFOUND, // Error opening file in GetDib()
|
||||
ERR_INVALIDHANDLE, // Invalid Handle
|
||||
ERR_DIBFUNCTION, // Error on call to DIB function
|
||||
ERR_MAX // All error #s < this value
|
||||
};
|
||||
|
||||
|
||||
|
||||
/* Function prototypes */
|
||||
|
||||
HDIB FAR BitmapToDIB (HBITMAP hBitmap, HPALETTE hPal);
|
||||
HDIB FAR ChangeBitmapFormat (HBITMAP hBitmap,
|
||||
WORD wBitCount,
|
||||
DWORD dwCompression,
|
||||
HPALETTE hPal);
|
||||
HDIB FAR ChangeDIBFormat (HDIB hDIB, WORD wBitCount,
|
||||
DWORD dwCompression);
|
||||
HBITMAP FAR CopyScreenToBitmap (LPRECT);
|
||||
HDIB FAR CopyScreenToDIB (LPRECT);
|
||||
HBITMAP FAR CopyWindowToBitmap (HWND, WORD);
|
||||
HDIB FAR CopyWindowToDIB (HWND, WORD);
|
||||
HPALETTE FAR CreateDIBPalette (HDIB hDIB);
|
||||
HDIB FAR CreateDIB(DWORD, DWORD, WORD);
|
||||
WORD FAR DestroyDIB (HDIB);
|
||||
void FAR DIBError (int ErrNo);
|
||||
DWORD FAR DIBHeight (LPCSTR lpDIB);
|
||||
WORD FAR DIBNumColors (LPCSTR lpDIB);
|
||||
HBITMAP FAR DIBToBitmap (HDIB hDIB, HPALETTE hPal);
|
||||
DWORD FAR DIBWidth (LPCSTR lpDIB);
|
||||
LPSTR FAR FindDIBBits (LPCSTR lpDIB);
|
||||
HPALETTE FAR GetSystemPalette (void);
|
||||
HDIB FAR LoadDIB (LPSTR);
|
||||
BOOL FAR PaintBitmap (HDC, LPRECT, HBITMAP, LPRECT, HPALETTE);
|
||||
BOOL FAR PaintDIB (HDC, LPRECT, HDIB, LPRECT, HPALETTE);
|
||||
int FAR PalEntriesOnDevice (HDC hDC);
|
||||
WORD FAR PaletteSize (LPCSTR lpDIB);
|
||||
WORD FAR PrintDIB (HDIB, WORD, WORD, WORD, LPSTR);
|
||||
WORD FAR PrintScreen (LPRECT, WORD, WORD, WORD, LPSTR);
|
||||
WORD FAR PrintWindow (HWND, WORD, WORD, WORD, WORD, LPSTR);
|
||||
WORD FAR SaveDIB (HDIB, LPSTR);
|
||||
|
||||
// ajw added
|
||||
HDIB LoadDIB_FromMemory( const unsigned char* pData, DWORD dwBitsSize );
|
||||
|
||||
#endif
|
Reference in a new issue