mirror of
https://github.com/love2d/megasource.git
synced 2026-08-17 11:11:35 +02:00
Add DevIL 1.7.8.
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// ImageLib Utility Toolkit Sources
|
||||
// Copyright (C) 2000-2002 by Denton Woods
|
||||
// Last modified: 04/20/2002 <--Y2K Compliant! =]
|
||||
//
|
||||
// Filename: src-ILUT/include/ilut_alleg.h (Don't want to conflict with allegro.h)
|
||||
//
|
||||
// Description:
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
// xxxxAllegro.h has to be included before il/il.h!xxx
|
||||
//#ifdef ALLEGRO_VERSION // Check to make sure Allegro is present
|
||||
#ifdef ILUT_USE_ALLEGRO
|
||||
|
||||
#ifndef ILUT_ALLEG_H
|
||||
#define ILUT_ALLEG_H
|
||||
|
||||
#include <allegro.h>
|
||||
|
||||
|
||||
|
||||
#endif//ILUT_ALLEG_H
|
||||
#endif//ILUT_USE_ALLEGRO
|
||||
//#endif//ALLEGRO_VERSION
|
||||
|
||||
@@ -0,0 +1,99 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// ImageLib Utility Toolkit Sources
|
||||
// Copyright (C) 2000-2002 by Denton Woods
|
||||
// Last modified: 02/07/2002 <--Y2K Compliant! =]
|
||||
//
|
||||
// Filename: src-ILUT/include/ilut_internal.h
|
||||
//
|
||||
// Description: Internal stuff for ILUT
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
|
||||
#ifndef INTERNAL_H
|
||||
#define INTERNAL_H
|
||||
|
||||
#define _IL_BUILD_LIBRARY
|
||||
#define _ILU_BUILD_LIBRARY
|
||||
#define _ILUT_BUILD_LIBRARY
|
||||
|
||||
//#define WIN32_LEAN_AND_MEAN
|
||||
|
||||
/*#if defined(_WIN32) && !defined(HAVE_CONFIG_H)
|
||||
#define HAVE_CONFIG_H
|
||||
#endif*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H //if we use autotools, we have HAVE_CONFIG_H defined and we have to look for it like that
|
||||
#include <config.h>
|
||||
#else // if we don't use autotools, we have to point to (possibly different) config.h than in the opposite case
|
||||
#include <IL/config.h>
|
||||
#endif
|
||||
|
||||
#include <string.h>
|
||||
|
||||
#ifdef _WIN32
|
||||
#ifdef _MSC_VER
|
||||
#if _MSC_VER > 1000
|
||||
#pragma warning(disable: 4996) // "The POSIX name for this item is deprecated." AND "This function or variable may be unsafe."
|
||||
#endif // _MSC_VER > 1000
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
#ifdef _MSC_VER
|
||||
#if _MSC_VER > 1000
|
||||
pragma once
|
||||
pragma intrinsic(memcpy)
|
||||
pragma intrinsic(memset)
|
||||
#endif // _MSC_VER > 1000
|
||||
#endif
|
||||
*/
|
||||
|
||||
#include <IL/ilut.h>
|
||||
#include <IL/devil_internal_exports.h>
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
extern ILimage *ilutCurImage;
|
||||
|
||||
void ilutDefaultStates(void);
|
||||
|
||||
|
||||
#ifdef _UNICODE
|
||||
#define IL_TEXT(s) L##s
|
||||
#else
|
||||
#define IL_TEXT(s) (s)
|
||||
#endif
|
||||
|
||||
|
||||
// ImageLib Utility Toolkit's OpenGL Functions
|
||||
#ifdef ILUT_USE_OPENGL
|
||||
ILboolean ilutGLInit();
|
||||
#endif
|
||||
|
||||
// ImageLib Utility Toolkit's Win32 Functions
|
||||
#ifdef ILUT_USE_WIN32
|
||||
ILboolean ilutWin32Init();
|
||||
#endif
|
||||
|
||||
// ImageLib Utility Toolkit's Win32 Functions
|
||||
#ifdef ILUT_USE_DIRECTX8
|
||||
ILboolean ilutD3D8Init();
|
||||
#endif
|
||||
|
||||
#ifdef ILUT_USE_DIRECTX9
|
||||
ILboolean ilutD3D9Init();
|
||||
#endif
|
||||
|
||||
#ifdef ILUT_USE_DIRECTX10
|
||||
ILboolean ilutD3D10Init();
|
||||
#endif
|
||||
|
||||
#define CUBEMAP_SIDES 6
|
||||
#ifndef SAFE_RELEASE
|
||||
#define SAFE_RELEASE(p) {if((p)!=NULL){(p)->lpVtbl->Release(p);(p)=NULL;}}
|
||||
#endif
|
||||
|
||||
|
||||
#endif//INTERNAL_H
|
||||
@@ -0,0 +1,47 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// ImageLib Utility Toolkit Sources
|
||||
// Copyright (C) 2000-2009 by Denton Woods
|
||||
// Last modified: 01/09/2009
|
||||
//
|
||||
// Filename: src-ILUT/include/ilut_opengl.h
|
||||
//
|
||||
// Description: OpenGL functions for images
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
#ifndef ILUT_OPENGL_H
|
||||
#define ILUT_OPENGL_H
|
||||
|
||||
#include "ilut_internal.h"
|
||||
|
||||
#ifndef min
|
||||
#define min(a, b) (((a) < (b)) ? (a) : (b))
|
||||
#endif
|
||||
|
||||
#ifdef ILUT_USE_OPENGL
|
||||
ILenum ilutGLFormat(ILenum, ILubyte);
|
||||
ILimage* MakeGLCompliant2D(ILimage *Src);
|
||||
ILimage* MakeGLCompliant3D(ILimage *Src);
|
||||
ILboolean IsExtensionSupported(const char *extension);
|
||||
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <windows.h>
|
||||
#include <GL/gl.h>
|
||||
#elif linux
|
||||
#include <GL/gl.h>
|
||||
#include <GL/glx.h> // patch #1504388. X86_64 Problems by Hans de Goede
|
||||
#elif defined __APPLE__
|
||||
#include <mach-o/dyld.h>
|
||||
void* aglGetProcAddress (const GLubyte *name);
|
||||
#endif
|
||||
|
||||
typedef void (ILAPIENTRY * ILGLTEXIMAGE3DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *data);
|
||||
typedef void (ILAPIENTRY * ILGLTEXSUBIMAGE3DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *data);
|
||||
typedef void (ILAPIENTRY * ILGLCOMPRESSEDTEXIMAGE2DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data);
|
||||
typedef void (ILAPIENTRY * ILGLCOMPRESSEDTEXIMAGE3DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data);
|
||||
|
||||
|
||||
#endif //ILUT_USE_OPENGL
|
||||
#endif //ILUT_OPENGL_H
|
||||
@@ -0,0 +1,57 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// ImageLib Utility Toolkit Sources
|
||||
// Copyright (C) 2000-2002 by Denton Woods
|
||||
// Last modified: 05/28/2001 <--Y2K Compliant! =]
|
||||
//
|
||||
// Filename: src-ILUT/include/ilut_states.h
|
||||
//
|
||||
// Description: State machine
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
#ifndef STATES_H
|
||||
#define STATES_H
|
||||
|
||||
#include "ilut_internal.h"
|
||||
|
||||
|
||||
ILboolean ilutAble(ILenum Mode, ILboolean Flag);
|
||||
|
||||
|
||||
#define ILUT_ATTRIB_STACK_MAX 32
|
||||
|
||||
ILuint ilutCurrentPos = 0; // Which position on the stack
|
||||
|
||||
//
|
||||
// Various states
|
||||
//
|
||||
|
||||
typedef struct ILUT_STATES
|
||||
{
|
||||
|
||||
// ILUT states
|
||||
ILboolean ilutUsePalettes;
|
||||
ILboolean ilutOglConv;
|
||||
ILboolean ilutForceIntegerFormat;
|
||||
ILenum ilutDXTCFormat;
|
||||
|
||||
// GL states
|
||||
ILboolean ilutUseS3TC;
|
||||
ILboolean ilutGenS3TC;
|
||||
ILboolean ilutAutodetectTextureTarget;
|
||||
ILint MaxTexW;
|
||||
ILint MaxTexH;
|
||||
ILint MaxTexD;
|
||||
|
||||
// D3D states
|
||||
ILuint D3DMipLevels;
|
||||
ILenum D3DPool;
|
||||
ILint D3DAlphaKeyColor; // 0x00rrggbb format , -1 for none
|
||||
|
||||
} ILUT_STATES;
|
||||
|
||||
ILUT_STATES ilutStates[ILUT_ATTRIB_STACK_MAX];
|
||||
|
||||
|
||||
#endif//STATES_H
|
||||
@@ -0,0 +1,132 @@
|
||||
// Microsoft Visual C++ generated resource script.
|
||||
//
|
||||
#include "resource.h"
|
||||
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 2 resource.
|
||||
//
|
||||
#define APSTUDIO_HIDDEN_SYMBOLS
|
||||
#include "windows.h"
|
||||
#undef APSTUDIO_HIDDEN_SYMBOLS
|
||||
#include "resource.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// English (U.S.) resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
#pragma code_page(1252)
|
||||
#endif //_WIN32
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// TEXTINCLUDE
|
||||
//
|
||||
|
||||
2 TEXTINCLUDE
|
||||
BEGIN
|
||||
"#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
|
||||
"#include ""windows.h""\r\n"
|
||||
"#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"
|
||||
"#include ""resource.h""\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
3 TEXTINCLUDE
|
||||
BEGIN
|
||||
"\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
1 TEXTINCLUDE
|
||||
BEGIN
|
||||
"resource.h\0"
|
||||
END
|
||||
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Version
|
||||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 0,1,7,8
|
||||
PRODUCTVERSION 0,1,7,8
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x29L
|
||||
#else
|
||||
FILEFLAGS 0x28L
|
||||
#endif
|
||||
FILEOS 0x40004L
|
||||
FILETYPE 0x2L
|
||||
FILESUBTYPE 0x0L
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "040904b0"
|
||||
BEGIN
|
||||
VALUE "Comments", "ILUT: A portable image library in development"
|
||||
VALUE "CompanyName", "Abysmal Software"
|
||||
VALUE "FileDescription", "ILUT: A portable image library in development"
|
||||
VALUE "FileVersion", "1.7.8"
|
||||
VALUE "InternalName", "ILUT"
|
||||
VALUE "LegalCopyright", "Copyright © 2000-2008"
|
||||
VALUE "LegalTrademarks", "Under LGPL License"
|
||||
VALUE "OriginalFilename", "ILUT.dll"
|
||||
VALUE "PrivateBuild", "Open Source"
|
||||
VALUE "ProductName", "Developer's Image Utility Toolkit Library"
|
||||
VALUE "ProductVersion", "1.7.8 Unicode"
|
||||
VALUE "SpecialBuild", "Unicode"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
VALUE "Translation", 0x409, 1200
|
||||
END
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Icon
|
||||
//
|
||||
|
||||
// Icon with lowest ID value placed first to ensure application icon
|
||||
// remains consistent on all systems.
|
||||
IDI_ICON1 ICON "resources\\IL Logo.ico"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// String Table
|
||||
//
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDC_OPENILUT "Developer's Image Utility Toolkit Library, Version 1.7.8"
|
||||
END
|
||||
|
||||
#endif // English (U.S.) resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 3 resource.
|
||||
//
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
|
||||
@@ -0,0 +1,778 @@
|
||||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Name="ILUT"
|
||||
ProjectGUID="{7D060DA4-F2FA-44CC-80BE-065024DD6CA9}"
|
||||
RootNamespace="ILUT"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
<Platform
|
||||
Name="x64"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory=".\../../lib/vc8/unicode/x86"
|
||||
IntermediateDirectory="Release"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
CharacterSet="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
MkTypLibCompatible="true"
|
||||
SuppressStartupBanner="true"
|
||||
TargetEnvironment="1"
|
||||
TypeLibraryName=".\../../lib/ILUT.tlb"
|
||||
HeaderFileName=""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="1"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="../include,../../include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;ILUT_EXPORTS;IL_STATIC_LIB"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="2"
|
||||
EnableFunctionLevelLinking="true"
|
||||
PrecompiledHeaderFile=".\../src/obj/unicode/x86/ILUT.pch"
|
||||
AssemblerListingLocation=".\../src/obj/unicode/x86/"
|
||||
ObjectFile=".\../src/obj/unicode/x86/"
|
||||
ProgramDataBaseFileName=".\../src/obj/unicode/x86/"
|
||||
WarningLevel="4"
|
||||
SuppressStartupBanner="true"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
Culture="1033"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="Gdi32.lib User32.lib Comdlg32.lib"
|
||||
OutputFile=".\../../lib/vc8/unicode/x86/ILUT.dll"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories=""
|
||||
IgnoreDefaultLibraryNames=""
|
||||
ModuleDefinitionFile=".\ilut.def"
|
||||
DelayLoadDLLs="opengl32.dll,glu32.dll,d3d8.dll,d3d9.dll,d3d10.dll,sdl.dll,alleg42.dll,wininet.dll"
|
||||
ProgramDatabaseFile=".\../../lib/ILUT.pdb"
|
||||
ImportLibrary=".\../../lib/vc8/unicode/x86/ILUT.lib"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
SuppressStartupBanner="true"
|
||||
OutputFile=".\../../lib/ILUT.bsc"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
CommandLine="copy $(TargetPath) %SYSTEMROOT%\system32"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|x64"
|
||||
OutputDirectory=".\../../lib/vc8/unicode/x64"
|
||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
CharacterSet="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
MkTypLibCompatible="true"
|
||||
SuppressStartupBanner="true"
|
||||
TargetEnvironment="3"
|
||||
TypeLibraryName=".\../../lib/ILUT.tlb"
|
||||
HeaderFileName=""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="1"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="../include,../../include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;ILUT_EXPORTS;IL_STATIC_LIB"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="2"
|
||||
EnableFunctionLevelLinking="true"
|
||||
PrecompiledHeaderFile=".\../src/obj/unicode/x64/ILUT.pch"
|
||||
AssemblerListingLocation=".\../src/obj/unicode/x64/"
|
||||
ObjectFile=".\../src/obj/unicode/x64/"
|
||||
ProgramDataBaseFileName=".\../src/obj/unicode/x64/"
|
||||
WarningLevel="4"
|
||||
SuppressStartupBanner="true"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
Culture="1033"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="/ignore:4197"
|
||||
AdditionalDependencies="Gdi32.lib User32.lib Comdlg32.lib"
|
||||
OutputFile=".\../../lib/vc8/unicode/x64/ILUT.dll"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories=""
|
||||
IgnoreDefaultLibraryNames=""
|
||||
ModuleDefinitionFile=".\ilut.def"
|
||||
DelayLoadDLLs="opengl32.dll,glu32.dll,d3d8.dll,d3d9.dll,sdl.dll,alleg42.dll,wininet.dll"
|
||||
ProgramDatabaseFile=".\../../lib/ILUT.pdb"
|
||||
ImportLibrary=".\../../lib/vc8/unicode/x64/ILUT.lib"
|
||||
TargetMachine="17"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
SuppressStartupBanner="true"
|
||||
OutputFile=".\../../lib/ILUT.bsc"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
CommandLine="copy $(TargetPath) c:\windows\system32"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory=".\../../lib/vc8/unicode/x86/debug"
|
||||
IntermediateDirectory="Debug"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
CharacterSet="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
MkTypLibCompatible="true"
|
||||
SuppressStartupBanner="true"
|
||||
TargetEnvironment="1"
|
||||
TypeLibraryName=".\../../lib/debug/ILUT.tlb"
|
||||
HeaderFileName=""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../include,../../include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;ILUT_EXPORTS"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
PrecompiledHeaderFile=".\../src/obj/unicode/x86/debug/ILUT.pch"
|
||||
AssemblerListingLocation=".\../src/obj/unicode/x86/debug/"
|
||||
ObjectFile=".\../src/obj/unicode/x86/debug/"
|
||||
ProgramDataBaseFileName=".\../src/obj/unicode/x86/debug/"
|
||||
WarningLevel="4"
|
||||
SuppressStartupBanner="true"
|
||||
DebugInformationFormat="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
Culture="1033"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="delayimp.lib Gdi32.lib User32.lib Comdlg32.lib"
|
||||
OutputFile=".\../../lib/vc8/unicode/x86/debug/ILUT.dll"
|
||||
LinkIncremental="2"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories=""
|
||||
IgnoreDefaultLibraryNames=""
|
||||
ModuleDefinitionFile=".\ilut.def"
|
||||
DelayLoadDLLs="opengl32.dll,glu32.dll,d3d8.dll,d3d9.dll,d3d10.dll,sdl.dll,alleg42.dll,wininet.dll"
|
||||
GenerateDebugInformation="true"
|
||||
ProgramDatabaseFile=".\../../lib/debug/ilut.pdb"
|
||||
ImportLibrary=".\../../lib/vc8/unicode/x86/debug/ilut.lib"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
SuppressStartupBanner="true"
|
||||
OutputFile=".\../../lib/debug/ILUT.bsc"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
CommandLine="copy $(TargetPath) %SYSTEMROOT%\system32"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug|x64"
|
||||
OutputDirectory=".\../../lib/vc8/unicode/x64/debug"
|
||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
CharacterSet="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
MkTypLibCompatible="true"
|
||||
SuppressStartupBanner="true"
|
||||
TargetEnvironment="3"
|
||||
TypeLibraryName=".\../../lib/debug/ILUT.tlb"
|
||||
HeaderFileName=""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../include,../../include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;ILUT_EXPORTS"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
PrecompiledHeaderFile=".\../src/obj/unicode/x64/debug/ILUT.pch"
|
||||
AssemblerListingLocation=".\../src/obj/unicode/x64/debug/"
|
||||
ObjectFile=".\../src/obj/unicode/x64/debug/"
|
||||
ProgramDataBaseFileName=".\../src/obj/unicode/x64/debug/"
|
||||
WarningLevel="4"
|
||||
SuppressStartupBanner="true"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
Culture="1033"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="/ignore:4197"
|
||||
AdditionalDependencies="delayimp.lib Gdi32.lib User32.lib Comdlg32.lib"
|
||||
OutputFile=".\../../lib/vc8/unicode/x64/debug/ILUT.dll"
|
||||
LinkIncremental="2"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories=""
|
||||
IgnoreDefaultLibraryNames=""
|
||||
ModuleDefinitionFile=".\ilut.def"
|
||||
DelayLoadDLLs="opengl32.dll,glu32.dll,d3d8.dll,d3d9.dll,d3d10.dll,sdl.dll,alleg42.dll,wininet.dll"
|
||||
GenerateDebugInformation="true"
|
||||
ProgramDatabaseFile=".\../../lib/debug/ilut.pdb"
|
||||
ImportLibrary=".\../../lib/vc8/unicode/x64/debug/ilut.lib"
|
||||
TargetMachine="17"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
SuppressStartupBanner="true"
|
||||
OutputFile=".\../../lib/debug/ILUT.bsc"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
CommandLine="copy $(TargetPath) c:\windows\system32"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Source Files"
|
||||
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\ilut.def"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\ilut_allegro.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\ilut_directx.c"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\ilut_directx10.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\ilut_directx9.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\ilut_directxm.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\ilut_internal.c"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\ilut_main.c"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\ilut_opengl.c"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\ilut_sdlsurface.c"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\ilut_states.c"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\ilut_win32.c"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\include\IL\devil_internal_exports.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\il\ilut.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\include\ilut_internal.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\include\ilut_opengl.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\include\ilut_states.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="resource.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Resource Files"
|
||||
Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
||||
>
|
||||
<File
|
||||
RelativePath="resources\IL Logo.ico"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\ILUT Unicode.rc"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
@@ -0,0 +1,228 @@
|
||||
# Microsoft Developer Studio Project File - Name="ILUT" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** NICHT BEARBEITEN **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
|
||||
|
||||
CFG=ILUT - WIN32 DEBUG
|
||||
!MESSAGE Dies ist kein gültiges Makefile. Zum Erstellen dieses Projekts mit NMAKE
|
||||
!MESSAGE verwenden Sie den Befehl "Makefile exportieren" und führen Sie den Befehl
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "ILUT.mak".
|
||||
!MESSAGE
|
||||
!MESSAGE Sie können beim Ausführen von NMAKE eine Konfiguration angeben
|
||||
!MESSAGE durch Definieren des Makros CFG in der Befehlszeile. Zum Beispiel:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "ILUT.mak" CFG="ILUT - WIN32 DEBUG"
|
||||
!MESSAGE
|
||||
!MESSAGE Für die Konfiguration stehen zur Auswahl:
|
||||
!MESSAGE
|
||||
!MESSAGE "ILUT - Win32 Debug" (basierend auf "Win32 (x86) Dynamic-Link Library")
|
||||
!MESSAGE "ILUT - Win32 Dynamic" (basierend auf "Win32 (x86) Dynamic-Link Library")
|
||||
!MESSAGE "ILUT - Win32 Release" (basierend auf "Win32 (x86) Dynamic-Link Library")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName "ILUT"
|
||||
# PROP Scc_LocalPath "..\.."
|
||||
CPP=cl.exe
|
||||
MTL=midl.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "ILUT - Win32 Debug"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 1
|
||||
# PROP BASE Output_Dir "../../lib/debug"
|
||||
# PROP BASE Intermediate_Dir "../src/obj/debug"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 1
|
||||
# PROP Output_Dir "../../lib/debug"
|
||||
# PROP Intermediate_Dir "../src/obj/debug"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ILUT_EXPORTS" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../include" /I "../../include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ILUT_EXPORTS" /YX /FD /GZ /c
|
||||
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
|
||||
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
|
||||
# ADD BASE RSC /l 0x409 /d "_DEBUG"
|
||||
# ADD RSC /l 0x409 /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
|
||||
# ADD LINK32 devil.lib ilu.lib delayimp.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /def:".\ilut.def" /out:"c:\path\ilut.dll" /pdbtype:sept /libpath:"../../lib" /delayload:d3d8.dll /delayload:sdl.dll
|
||||
# SUBTRACT LINK32 /pdb:none
|
||||
|
||||
!ELSEIF "$(CFG)" == "ILUT - Win32 Dynamic"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir "../../lib"
|
||||
# PROP BASE Intermediate_Dir "../src/obj/dynamic"
|
||||
# PROP BASE Ignore_Export_Lib 0
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "../../lib"
|
||||
# PROP Intermediate_Dir "../src/obj/dynamic"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /MD /W3 /GX /O1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ILUT_EXPORTS" /YX /FD /c
|
||||
# ADD CPP /nologo /MD /W3 /GX /O1 /I "../include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ILUT_EXPORTS" /YX /FD /c
|
||||
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
|
||||
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
|
||||
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 delayimp.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /def:".\ilut.def" /out:"../../lib/ilut-l.dll" /delayload:d3d8.dll /delayload:sdl.dll
|
||||
# SUBTRACT BASE LINK32 /pdb:none
|
||||
# ADD LINK32 delayimp.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /def:".\ilut.def" /out:"../../lib/ilut-l.dll" /delayload:d3d8.dll /delayload:sdl.dll
|
||||
# SUBTRACT LINK32 /pdb:none
|
||||
# Begin Special Build Tool
|
||||
TargetName=ilut-l
|
||||
SOURCE="$(InputPath)"
|
||||
PostBuild_Cmds=..\..\projects\msvc\insdll.bat ..\..\lib\$(TargetName).dll
|
||||
# End Special Build Tool
|
||||
|
||||
!ELSEIF "$(CFG)" == "ILUT - Win32 Release"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir "../../lib"
|
||||
# PROP BASE Intermediate_Dir "../src/obj"
|
||||
# PROP BASE Ignore_Export_Lib 0
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "../../lib"
|
||||
# PROP Intermediate_Dir "../src/obj"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /MD /W3 /GX /O1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ILUT_EXPORTS" /YX /FD /c
|
||||
# ADD CPP /nologo /MD /W3 /GX /O1 /I "../include" /I "../../include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ILUT_EXPORTS" /D "IL_STATIC_LIB" /YX /FD /c
|
||||
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
|
||||
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
|
||||
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 delayimp.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /def:".\ilut.def" /delayload:d3d8.dll /delayload:sdl.dll
|
||||
# SUBTRACT BASE LINK32 /pdb:none
|
||||
# ADD LINK32 devil.lib ilu.lib kernel32.lib winspool.lib advapi32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib user32.lib gdi32.lib comdlg32.lib shell32.lib /nologo /dll /machine:I386 /def:".\ilut.def" /libpath:"../../lib" /delayload:d3d8.dll /delayload:sdl.dll
|
||||
# SUBTRACT LINK32 /pdb:none
|
||||
# Begin Special Build Tool
|
||||
SOURCE="$(InputPath)"
|
||||
PostBuild_Cmds=copy ..\..\lib\ilut.dll "C:\path\ilut.dll"
|
||||
# End Special Build Tool
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "ILUT - Win32 Debug"
|
||||
# Name "ILUT - Win32 Dynamic"
|
||||
# Name "ILUT - Win32 Release"
|
||||
# Begin Group "Source Files"
|
||||
|
||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\ilut.def
|
||||
|
||||
!IF "$(CFG)" == "ILUT - Win32 Debug"
|
||||
|
||||
# PROP Exclude_From_Build 1
|
||||
|
||||
!ELSEIF "$(CFG)" == "ILUT - Win32 Dynamic"
|
||||
|
||||
# PROP BASE Exclude_From_Build 1
|
||||
# PROP Exclude_From_Build 1
|
||||
|
||||
!ELSEIF "$(CFG)" == "ILUT - Win32 Release"
|
||||
|
||||
# PROP BASE Exclude_From_Build 1
|
||||
# PROP Exclude_From_Build 1
|
||||
|
||||
!ENDIF
|
||||
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\src\ilut_directx.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\src\ilut_internal.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\src\ilut_main.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\src\ilut_opengl.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\src\ilut_sdlsurface.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\src\ilut_states.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\src\ilut_win32.c
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Header Files"
|
||||
|
||||
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\include\IL\devil_internal_exports.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\include\il\ilut.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\include\ilut_internal.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\include\ilut_opengl.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\include\ilut_states.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\resource.h
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Resource Files"
|
||||
|
||||
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=".\resources\IL Logo.ico"
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\ILUT.rc
|
||||
# End Source File
|
||||
# End Group
|
||||
# End Target
|
||||
# End Project
|
||||
@@ -0,0 +1,132 @@
|
||||
// Microsoft Visual C++ generated resource script.
|
||||
//
|
||||
#include "resource.h"
|
||||
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 2 resource.
|
||||
//
|
||||
#define APSTUDIO_HIDDEN_SYMBOLS
|
||||
#include "windows.h"
|
||||
#undef APSTUDIO_HIDDEN_SYMBOLS
|
||||
#include "resource.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// English (U.S.) resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
#pragma code_page(1252)
|
||||
#endif //_WIN32
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// TEXTINCLUDE
|
||||
//
|
||||
|
||||
2 TEXTINCLUDE
|
||||
BEGIN
|
||||
"#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
|
||||
"#include ""windows.h""\r\n"
|
||||
"#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"
|
||||
"#include ""resource.h""\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
3 TEXTINCLUDE
|
||||
BEGIN
|
||||
"\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
1 TEXTINCLUDE
|
||||
BEGIN
|
||||
"resource.h\0"
|
||||
END
|
||||
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Version
|
||||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 0,1,7,8
|
||||
PRODUCTVERSION 0,1,7,8
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x29L
|
||||
#else
|
||||
FILEFLAGS 0x28L
|
||||
#endif
|
||||
FILEOS 0x40004L
|
||||
FILETYPE 0x2L
|
||||
FILESUBTYPE 0x0L
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "040904b0"
|
||||
BEGIN
|
||||
VALUE "Comments", "ILUT: A portable image library in development"
|
||||
VALUE "CompanyName", "Abysmal Software"
|
||||
VALUE "FileDescription", "ILUT: A portable image library in development"
|
||||
VALUE "FileVersion", "1.7.8"
|
||||
VALUE "InternalName", "ILUT"
|
||||
VALUE "LegalCopyright", "Copyright © 2000-2008"
|
||||
VALUE "LegalTrademarks", "Under LGPL License"
|
||||
VALUE "OriginalFilename", "ILUT.dll"
|
||||
VALUE "PrivateBuild", "Open Source"
|
||||
VALUE "ProductName", "Developer's Image Utility Toolkit Library"
|
||||
VALUE "ProductVersion", "1.7.8 Ansi"
|
||||
VALUE "SpecialBuild", "Ansi"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
VALUE "Translation", 0x409, 1200
|
||||
END
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Icon
|
||||
//
|
||||
|
||||
// Icon with lowest ID value placed first to ensure application icon
|
||||
// remains consistent on all systems.
|
||||
IDI_ICON1 ICON "resources\\IL Logo.ico"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// String Table
|
||||
//
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDC_OPENILUT "Developer's Image Utility Toolkit Library, Version 1.7.8"
|
||||
END
|
||||
|
||||
#endif // English (U.S.) resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 3 resource.
|
||||
//
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
|
||||
@@ -0,0 +1,812 @@
|
||||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Name="ILUT"
|
||||
ProjectGUID="{7D060DA4-F2FA-44CC-80BE-065024DD6CA9}"
|
||||
RootNamespace="ILUT"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
<Platform
|
||||
Name="x64"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory=".\../../lib/vc8/x86"
|
||||
IntermediateDirectory="x86/Release"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
MkTypLibCompatible="true"
|
||||
SuppressStartupBanner="true"
|
||||
TargetEnvironment="1"
|
||||
TypeLibraryName=".\../../lib/vc8/ILUT.tlb"
|
||||
HeaderFileName=""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="1"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="../include,../../include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;ILUT_EXPORTS;IL_STATIC_LIB"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="2"
|
||||
EnableFunctionLevelLinking="true"
|
||||
PrecompiledHeaderFile=".\../src/obj/x86/ILUT.pch"
|
||||
AssemblerListingLocation=".\../src/obj/x86/"
|
||||
ObjectFile=".\../src/obj/x86/"
|
||||
ProgramDataBaseFileName=".\../src/obj/x86/"
|
||||
WarningLevel="4"
|
||||
SuppressStartupBanner="true"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
Culture="1033"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="devil.lib ilu.lib Gdi32.lib User32.lib Comdlg32.lib"
|
||||
OutputFile=".\../../lib/vc8/x86/ILUT.dll"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories="../../lib/vc8/x86"
|
||||
IgnoreDefaultLibraryNames=""
|
||||
ModuleDefinitionFile=".\ilut.def"
|
||||
DelayLoadDLLs="opengl32.dll,glu32.dll,d3d8.dll,d3d9.dll,sdl.dll,alleg42.dll,wininet.dll"
|
||||
ProgramDatabaseFile=".\../../lib/vc8/ILUT.pdb"
|
||||
ImportLibrary=".\../../lib/vc8/x86/ILUT.lib"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
SuppressStartupBanner="true"
|
||||
OutputFile=".\../../lib/vc8/ILUT.bsc"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
CommandLine="copy $(TargetPath) %SYSTEMROOT%\system32"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|x64"
|
||||
OutputDirectory=".\../../lib/vc8/x64"
|
||||
IntermediateDirectory="$(PlatformName)\x64\$(ConfigurationName)"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
MkTypLibCompatible="true"
|
||||
SuppressStartupBanner="true"
|
||||
TargetEnvironment="3"
|
||||
TypeLibraryName=".\../../lib/vc8/ILUT.tlb"
|
||||
HeaderFileName=""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="1"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="../include,../../include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;ILUT_EXPORTS;IL_STATIC_LIB"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="2"
|
||||
EnableFunctionLevelLinking="true"
|
||||
PrecompiledHeaderFile=".\../src/obj/ILUT.pch"
|
||||
AssemblerListingLocation=".\../src/obj/"
|
||||
ObjectFile=".\../src/obj/"
|
||||
ProgramDataBaseFileName=".\../src/obj/"
|
||||
WarningLevel="4"
|
||||
SuppressStartupBanner="true"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
Culture="1033"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="/ignore:4197"
|
||||
AdditionalDependencies="Gdi32.lib User32.lib Comdlg32.lib"
|
||||
OutputFile=".\../../lib/vc8/x64/ILUT.dll"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories="../../lib/vc8/x64"
|
||||
ManifestFile="$(IntDir)\$(TargetFileName).intermediate.manifest"
|
||||
IgnoreDefaultLibraryNames=""
|
||||
ModuleDefinitionFile=".\ilut.def"
|
||||
DelayLoadDLLs="opengl32.dll,glu32.dll,d3d8.dll,d3d9.dll,sdl.dll,alleg42.dll,wininet.dll"
|
||||
ProgramDatabaseFile=".\../../lib/vc8/x64/ILUT.pdb"
|
||||
ImportLibrary=".\../../lib/vc8/x64/ILUT.lib"
|
||||
TargetMachine="17"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
SuppressStartupBanner="true"
|
||||
OutputFile=".\../../lib/vc8/ILUT.bsc"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
CommandLine="copy $(TargetPath) c:\windows\system32"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory=".\../../lib/vc8/x86/debug"
|
||||
IntermediateDirectory="x86/Debug"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
MkTypLibCompatible="true"
|
||||
SuppressStartupBanner="true"
|
||||
TargetEnvironment="1"
|
||||
TypeLibraryName=".\../../lib/vc8/debug/ILUT.tlb"
|
||||
HeaderFileName=""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../include,../../include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;ILUT_EXPORTS"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
PrecompiledHeaderFile=".\../src/obj/x86/debug/ILUT.pch"
|
||||
AssemblerListingLocation=".\../src/obj/x86/debug/"
|
||||
ObjectFile=".\../src/obj/x86/debug/"
|
||||
ProgramDataBaseFileName=".\../src/obj/x86/debug/"
|
||||
WarningLevel="4"
|
||||
SuppressStartupBanner="true"
|
||||
DebugInformationFormat="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
Culture="1033"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="devil.lib ilu.lib delayimp.lib Gdi32.lib User32.lib Comdlg32.lib"
|
||||
OutputFile=".\../../lib/vc8/x86/debug/ILUT.dll"
|
||||
LinkIncremental="2"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories="../../lib/vc8"
|
||||
IgnoreDefaultLibraryNames=""
|
||||
ModuleDefinitionFile=".\ilut.def"
|
||||
DelayLoadDLLs="opengl32.dll,glu32.dll,d3d8.dll,d3d9.dll,d3d10.dll,sdl.dll,alleg42.dll,wininet.dll"
|
||||
GenerateDebugInformation="true"
|
||||
ProgramDatabaseFile=".\../../lib/vc8/debug/ilut.pdb"
|
||||
ImportLibrary=".\../../lib/vc8/x86/debug/ilut.lib"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
SuppressStartupBanner="true"
|
||||
OutputFile=".\../../lib/vc8/debug/ILUT.bsc"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
CommandLine="copy $(TargetPath) %SYSTEMROOT%\system32"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug|x64"
|
||||
OutputDirectory=".\../../lib/vc8/x64/debug"
|
||||
IntermediateDirectory="$(PlatformName)\x64\$(ConfigurationName)"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
MkTypLibCompatible="true"
|
||||
SuppressStartupBanner="true"
|
||||
TargetEnvironment="3"
|
||||
TypeLibraryName=".\../../lib/vc8/debug/ILUT.tlb"
|
||||
HeaderFileName=""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../include,../../include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;ILUT_EXPORTS"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
PrecompiledHeaderFile=".\../src/obj/debug/ILUT.pch"
|
||||
AssemblerListingLocation=".\../src/obj/debug/"
|
||||
ObjectFile=".\../src/obj/debug/"
|
||||
ProgramDataBaseFileName=".\../src/obj/debug/"
|
||||
WarningLevel="4"
|
||||
SuppressStartupBanner="true"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
Culture="1033"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="/ignore:4197"
|
||||
AdditionalDependencies="delayimp.lib Gdi32.lib User32.lib Comdlg32.lib"
|
||||
OutputFile=".\../../lib/vc8/x64/debug/ILUT.dll"
|
||||
LinkIncremental="2"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories=""
|
||||
ManifestFile="$(IntDir)\$(TargetFileName).intermediate.manifest"
|
||||
IgnoreDefaultLibraryNames=""
|
||||
ModuleDefinitionFile=".\ilut.def"
|
||||
DelayLoadDLLs="opengl32.dll,glu32.dll,d3d8.dll,d3d9.dll,d3d10.dll,sdl.dll,alleg42.dll,wininet.dll"
|
||||
GenerateDebugInformation="true"
|
||||
ProgramDatabaseFile=".\../../lib/vc8/x64/debug/ilut.pdb"
|
||||
ImportLibrary=".\../../lib/vc8/x64/debug/ilut.lib"
|
||||
TargetMachine="17"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
SuppressStartupBanner="true"
|
||||
OutputFile=".\../../lib/vc8/debug/ILUT.bsc"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
CommandLine="copy $(TargetPath) c:\windows\system32"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Source Files"
|
||||
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\msvc\ilut.def"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\ilut_allegro.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\ilut_directx.c"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\ilut_directx10.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\ilut_directx9.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\ilut_directxm.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\ilut_internal.c"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\ilut_main.c"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\ilut_opengl.c"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\ilut_sdlsurface.c"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\ilut_states.c"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\ilut_win32.c"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\include\IL\devil_internal_exports.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\il\ilut.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\include\ilut_internal.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\include\ilut_opengl.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\include\ilut_states.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="resource.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Resource Files"
|
||||
Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
||||
>
|
||||
<File
|
||||
RelativePath="resources\IL Logo.ico"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="ILUT.rc"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
</Filter>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
@@ -0,0 +1,74 @@
|
||||
; To remove an export, add a semicolon at the beginning of the line to comment it out.
|
||||
|
||||
EXPORTS
|
||||
ilutConvertToHBitmap
|
||||
|
||||
ilutConvertSliceToHBitmap
|
||||
;ilutConvertToSDLSurface
|
||||
;ilutSDLSurfaceFromBitmap
|
||||
;ilutSDLSurfaceLoadImage
|
||||
;ilutD3D8LoadSurface
|
||||
;ilutD3D8MipFunc
|
||||
;ilutD3D8Texture
|
||||
;ilutD3D8TexFromFile
|
||||
;ilutD3D8VolumeTexture
|
||||
;ilutD3D8VolTexFromFile
|
||||
;ilutD3D8TexFromFileInMemory
|
||||
;ilutD3D8VolTexFromFileInMemory
|
||||
;ilutD3D8TexFromFileHandle
|
||||
;ilutD3D8VolTexFromFileHandle
|
||||
;ilutD3D8TexFromResource
|
||||
;ilutD3D8VolTexFromResource
|
||||
;ilutD3D9LoadSurface
|
||||
;ilutD3D9MipFunc
|
||||
;ilutD3D9Texture
|
||||
;ilutD3D9TexFromFile
|
||||
;ilutD3D9VolumeTexture
|
||||
;ilutD3D9VolTexFromFile
|
||||
;ilutD3D9TexFromFileInMemory
|
||||
;ilutD3D9VolTexFromFileInMemory
|
||||
;ilutD3D9TexFromFileHandle
|
||||
;ilutD3D9VolTexFromFileHandle
|
||||
;ilutD3D9TexFromResource
|
||||
;ilutD3D9VolTexFromResource
|
||||
ilutDisable
|
||||
ilutEnable
|
||||
ilutFreePaddedData
|
||||
ilutGetBmpInfo
|
||||
ilutGetBoolean
|
||||
ilutGetBooleanv
|
||||
ilutGetHPal
|
||||
ilutGetInteger
|
||||
ilutGetIntegerv
|
||||
ilutGetPaddedData
|
||||
ilutGetString
|
||||
ilutGetWinClipboard
|
||||
ilutInit
|
||||
ilutIsDisabled
|
||||
ilutIsEnabled
|
||||
ilutLoadResource
|
||||
ilutGLBindMipmaps
|
||||
ilutGLBindTexImage
|
||||
ilutGLBuildMipmaps
|
||||
ilutGLLoadImage
|
||||
ilutGLSaveImage
|
||||
ilutGLScreen
|
||||
ilutGLScreenie
|
||||
ilutGLSetTex
|
||||
ilutGLSetTex2D
|
||||
ilutGLSetTex3D
|
||||
ilutGLSubTex
|
||||
ilutGLSubTex2D
|
||||
ilutGLSubTex3D
|
||||
ilutGLTexImage
|
||||
ilutPopAttrib
|
||||
ilutPushAttrib
|
||||
ilutRenderer
|
||||
ilutSetHBitmap
|
||||
ilutSetHPal
|
||||
ilutSetInteger
|
||||
ilutSetWinClipboard
|
||||
ilutWinLoadImage
|
||||
ilutWinLoadUrl
|
||||
ilutWinPrint
|
||||
ilutWinSaveImage
|
||||
@@ -0,0 +1,17 @@
|
||||
//{{NO_DEPENDENCIES}}
|
||||
// Microsoft Visual C++ generated include file.
|
||||
// Used by ILUT Unicode.rc
|
||||
//
|
||||
#define IDC_OPENILUT 109
|
||||
#define IDI_ICON1 155
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 102
|
||||
#define _APS_NEXT_COMMAND_VALUE 40001
|
||||
#define _APS_NEXT_CONTROL_VALUE 1000
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
#endif
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 2.1 KiB |
@@ -0,0 +1,135 @@
|
||||
//Microsoft Developer Studio generated resource script.
|
||||
//
|
||||
#include "resource.h"
|
||||
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 2 resource.
|
||||
//
|
||||
#define APSTUDIO_HIDDEN_SYMBOLS
|
||||
#include "windows.h"
|
||||
#undef APSTUDIO_HIDDEN_SYMBOLS
|
||||
#include "resource.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// English (U.S.) resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
#pragma code_page(1252)
|
||||
#endif //_WIN32
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// TEXTINCLUDE
|
||||
//
|
||||
|
||||
2 TEXTINCLUDE DISCARDABLE
|
||||
BEGIN
|
||||
"#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
|
||||
"#include ""windows.h""\r\n"
|
||||
"#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"
|
||||
"#include ""resource.h""\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
3 TEXTINCLUDE DISCARDABLE
|
||||
BEGIN
|
||||
"\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
1 TEXTINCLUDE DISCARDABLE
|
||||
BEGIN
|
||||
"resource.h\0"
|
||||
END
|
||||
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
#ifndef _MAC
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Version
|
||||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 0,1,2,4
|
||||
PRODUCTVERSION 0,1,2,4
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x29L
|
||||
#else
|
||||
FILEFLAGS 0x28L
|
||||
#endif
|
||||
FILEOS 0x40004L
|
||||
FILETYPE 0x2L
|
||||
FILESUBTYPE 0x0L
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "040904b0"
|
||||
BEGIN
|
||||
VALUE "Comments", "ILUT: A great portable image library in development\0"
|
||||
VALUE "CompanyName", "Abysmal Software\0"
|
||||
VALUE "FileDescription", "ILUT: A great portable image library in development\0"
|
||||
VALUE "FileVersion", "1.2.4\0"
|
||||
VALUE "InternalName", "ILUT\0"
|
||||
VALUE "LegalCopyright", "Copyright © 2000-2001\0"
|
||||
VALUE "LegalTrademarks", "Under LGPL License\0"
|
||||
VALUE "OriginalFilename", "ILUT.dll\0"
|
||||
VALUE "PrivateBuild", "Open Source\0"
|
||||
VALUE "ProductName", "Developer's Image Utility Toolkit Library\0"
|
||||
VALUE "ProductVersion", "1.2.4\0"
|
||||
VALUE "SpecialBuild", "eh?\0"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
VALUE "Translation", 0x409, 1200
|
||||
END
|
||||
END
|
||||
|
||||
#endif // !_MAC
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Icon
|
||||
//
|
||||
|
||||
// Icon with lowest ID value placed first to ensure application icon
|
||||
// remains consistent on all systems.
|
||||
IDI_ICON1 ICON DISCARDABLE "resources\\IL Logo.ico"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// String Table
|
||||
//
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDC_OPENILUT "Developer's Image Utility Toolkit Library, Version 1.2.4"
|
||||
END
|
||||
|
||||
#endif // English (U.S.) resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 3 resource.
|
||||
//
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
|
||||
@@ -0,0 +1,132 @@
|
||||
// Microsoft Visual C++ generated resource script.
|
||||
//
|
||||
#include "resource.h"
|
||||
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 2 resource.
|
||||
//
|
||||
#define APSTUDIO_HIDDEN_SYMBOLS
|
||||
#include "windows.h"
|
||||
#undef APSTUDIO_HIDDEN_SYMBOLS
|
||||
#include "resource.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// English (U.S.) resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
#pragma code_page(1252)
|
||||
#endif //_WIN32
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// TEXTINCLUDE
|
||||
//
|
||||
|
||||
2 TEXTINCLUDE
|
||||
BEGIN
|
||||
"#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
|
||||
"#include ""windows.h""\r\n"
|
||||
"#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"
|
||||
"#include ""resource.h""\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
3 TEXTINCLUDE
|
||||
BEGIN
|
||||
"\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
1 TEXTINCLUDE
|
||||
BEGIN
|
||||
"resource.h\0"
|
||||
END
|
||||
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Version
|
||||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 0,1,7,8
|
||||
PRODUCTVERSION 0,1,7,8
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x29L
|
||||
#else
|
||||
FILEFLAGS 0x28L
|
||||
#endif
|
||||
FILEOS 0x40004L
|
||||
FILETYPE 0x2L
|
||||
FILESUBTYPE 0x0L
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "040904b0"
|
||||
BEGIN
|
||||
VALUE "Comments", "ILUT: A portable image library in development"
|
||||
VALUE "CompanyName", "Abysmal Software"
|
||||
VALUE "FileDescription", "ILUT: A portable image library in development"
|
||||
VALUE "FileVersion", "1.7.8"
|
||||
VALUE "InternalName", "ILUT"
|
||||
VALUE "LegalCopyright", "Copyright © 2000-2008"
|
||||
VALUE "LegalTrademarks", "Under LGPL License"
|
||||
VALUE "OriginalFilename", "ILUT.dll"
|
||||
VALUE "PrivateBuild", "Open Source"
|
||||
VALUE "ProductName", "Developer's Image Utility Toolkit Library"
|
||||
VALUE "ProductVersion", "1.7.8 Unicode"
|
||||
VALUE "SpecialBuild", "Unicode"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
VALUE "Translation", 0x409, 1200
|
||||
END
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Icon
|
||||
//
|
||||
|
||||
// Icon with lowest ID value placed first to ensure application icon
|
||||
// remains consistent on all systems.
|
||||
IDI_ICON1 ICON "resources\\IL Logo.ico"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// String Table
|
||||
//
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDC_OPENILUT "Developer's Image Utility Toolkit Library, Version 1.7.8"
|
||||
END
|
||||
|
||||
#endif // English (U.S.) resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 3 resource.
|
||||
//
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,228 @@
|
||||
# Microsoft Developer Studio Project File - Name="ILUT" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** NICHT BEARBEITEN **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
|
||||
|
||||
CFG=ILUT - WIN32 DEBUG
|
||||
!MESSAGE Dies ist kein gültiges Makefile. Zum Erstellen dieses Projekts mit NMAKE
|
||||
!MESSAGE verwenden Sie den Befehl "Makefile exportieren" und führen Sie den Befehl
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "ILUT.mak".
|
||||
!MESSAGE
|
||||
!MESSAGE Sie können beim Ausführen von NMAKE eine Konfiguration angeben
|
||||
!MESSAGE durch Definieren des Makros CFG in der Befehlszeile. Zum Beispiel:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "ILUT.mak" CFG="ILUT - WIN32 DEBUG"
|
||||
!MESSAGE
|
||||
!MESSAGE Für die Konfiguration stehen zur Auswahl:
|
||||
!MESSAGE
|
||||
!MESSAGE "ILUT - Win32 Debug" (basierend auf "Win32 (x86) Dynamic-Link Library")
|
||||
!MESSAGE "ILUT - Win32 Dynamic" (basierend auf "Win32 (x86) Dynamic-Link Library")
|
||||
!MESSAGE "ILUT - Win32 Release" (basierend auf "Win32 (x86) Dynamic-Link Library")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName "ILUT"
|
||||
# PROP Scc_LocalPath "..\.."
|
||||
CPP=cl.exe
|
||||
MTL=midl.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "ILUT - Win32 Debug"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 1
|
||||
# PROP BASE Output_Dir "../../lib/debug"
|
||||
# PROP BASE Intermediate_Dir "../src/obj/debug"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 1
|
||||
# PROP Output_Dir "../../lib/debug"
|
||||
# PROP Intermediate_Dir "../src/obj/debug"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ILUT_EXPORTS" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../include" /I "../../include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ILUT_EXPORTS" /YX /FD /GZ /c
|
||||
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
|
||||
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
|
||||
# ADD BASE RSC /l 0x409 /d "_DEBUG"
|
||||
# ADD RSC /l 0x409 /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
|
||||
# ADD LINK32 devil.lib ilu.lib delayimp.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /def:".\ilut.def" /out:"c:\path\ilut.dll" /pdbtype:sept /libpath:"../../lib" /delayload:d3d8.dll /delayload:sdl.dll
|
||||
# SUBTRACT LINK32 /pdb:none
|
||||
|
||||
!ELSEIF "$(CFG)" == "ILUT - Win32 Dynamic"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir "../../lib"
|
||||
# PROP BASE Intermediate_Dir "../src/obj/dynamic"
|
||||
# PROP BASE Ignore_Export_Lib 0
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "../../lib"
|
||||
# PROP Intermediate_Dir "../src/obj/dynamic"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /MD /W3 /GX /O1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ILUT_EXPORTS" /YX /FD /c
|
||||
# ADD CPP /nologo /MD /W3 /GX /O1 /I "../include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ILUT_EXPORTS" /YX /FD /c
|
||||
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
|
||||
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
|
||||
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 delayimp.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /def:".\ilut.def" /out:"../../lib/ilut-l.dll" /delayload:d3d8.dll /delayload:sdl.dll
|
||||
# SUBTRACT BASE LINK32 /pdb:none
|
||||
# ADD LINK32 delayimp.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /def:".\ilut.def" /out:"../../lib/ilut-l.dll" /delayload:d3d8.dll /delayload:sdl.dll
|
||||
# SUBTRACT LINK32 /pdb:none
|
||||
# Begin Special Build Tool
|
||||
TargetName=ilut-l
|
||||
SOURCE="$(InputPath)"
|
||||
PostBuild_Cmds=..\..\projects\msvc\insdll.bat ..\..\lib\$(TargetName).dll
|
||||
# End Special Build Tool
|
||||
|
||||
!ELSEIF "$(CFG)" == "ILUT - Win32 Release"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir "../../lib"
|
||||
# PROP BASE Intermediate_Dir "../src/obj"
|
||||
# PROP BASE Ignore_Export_Lib 0
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "../../lib"
|
||||
# PROP Intermediate_Dir "../src/obj"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /MD /W3 /GX /O1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ILUT_EXPORTS" /YX /FD /c
|
||||
# ADD CPP /nologo /MD /W3 /GX /O1 /I "../include" /I "../../include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ILUT_EXPORTS" /D "IL_STATIC_LIB" /YX /FD /c
|
||||
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
|
||||
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
|
||||
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 delayimp.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /def:".\ilut.def" /delayload:d3d8.dll /delayload:sdl.dll
|
||||
# SUBTRACT BASE LINK32 /pdb:none
|
||||
# ADD LINK32 devil.lib ilu.lib kernel32.lib winspool.lib advapi32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib user32.lib gdi32.lib comdlg32.lib shell32.lib /nologo /dll /machine:I386 /def:".\ilut.def" /libpath:"../../lib" /delayload:d3d8.dll /delayload:sdl.dll
|
||||
# SUBTRACT LINK32 /pdb:none
|
||||
# Begin Special Build Tool
|
||||
SOURCE="$(InputPath)"
|
||||
PostBuild_Cmds=copy ..\..\lib\ilut.dll "C:\path\ilut.dll"
|
||||
# End Special Build Tool
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "ILUT - Win32 Debug"
|
||||
# Name "ILUT - Win32 Dynamic"
|
||||
# Name "ILUT - Win32 Release"
|
||||
# Begin Group "Source Files"
|
||||
|
||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\ilut.def
|
||||
|
||||
!IF "$(CFG)" == "ILUT - Win32 Debug"
|
||||
|
||||
# PROP Exclude_From_Build 1
|
||||
|
||||
!ELSEIF "$(CFG)" == "ILUT - Win32 Dynamic"
|
||||
|
||||
# PROP BASE Exclude_From_Build 1
|
||||
# PROP Exclude_From_Build 1
|
||||
|
||||
!ELSEIF "$(CFG)" == "ILUT - Win32 Release"
|
||||
|
||||
# PROP BASE Exclude_From_Build 1
|
||||
# PROP Exclude_From_Build 1
|
||||
|
||||
!ENDIF
|
||||
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\src\ilut_directx.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\src\ilut_internal.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\src\ilut_main.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\src\ilut_opengl.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\src\ilut_sdlsurface.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\src\ilut_states.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\src\ilut_win32.c
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Header Files"
|
||||
|
||||
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\include\IL\devil_internal_exports.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\include\il\ilut.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\include\ilut_internal.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\include\ilut_opengl.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\include\ilut_states.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\resource.h
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Resource Files"
|
||||
|
||||
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=".\resources\IL Logo.ico"
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\ILUT.rc
|
||||
# End Source File
|
||||
# End Group
|
||||
# End Target
|
||||
# End Project
|
||||
@@ -0,0 +1,132 @@
|
||||
// Microsoft Visual C++ generated resource script.
|
||||
//
|
||||
#include "resource.h"
|
||||
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 2 resource.
|
||||
//
|
||||
#define APSTUDIO_HIDDEN_SYMBOLS
|
||||
#include "windows.h"
|
||||
#undef APSTUDIO_HIDDEN_SYMBOLS
|
||||
#include "resource.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// English (U.S.) resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
#pragma code_page(1252)
|
||||
#endif //_WIN32
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// TEXTINCLUDE
|
||||
//
|
||||
|
||||
2 TEXTINCLUDE
|
||||
BEGIN
|
||||
"#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
|
||||
"#include ""windows.h""\r\n"
|
||||
"#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"
|
||||
"#include ""resource.h""\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
3 TEXTINCLUDE
|
||||
BEGIN
|
||||
"\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
1 TEXTINCLUDE
|
||||
BEGIN
|
||||
"resource.h\0"
|
||||
END
|
||||
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Version
|
||||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 0,1,7,8
|
||||
PRODUCTVERSION 0,1,7,8
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x29L
|
||||
#else
|
||||
FILEFLAGS 0x28L
|
||||
#endif
|
||||
FILEOS 0x40004L
|
||||
FILETYPE 0x2L
|
||||
FILESUBTYPE 0x0L
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "040904b0"
|
||||
BEGIN
|
||||
VALUE "Comments", "ILUT: A portable image library in development"
|
||||
VALUE "CompanyName", "Abysmal Software"
|
||||
VALUE "FileDescription", "ILUT: A portable image library in development"
|
||||
VALUE "FileVersion", "1.7.8"
|
||||
VALUE "InternalName", "ILUT"
|
||||
VALUE "LegalCopyright", "Copyright © 2000-2008"
|
||||
VALUE "LegalTrademarks", "Under LGPL License"
|
||||
VALUE "OriginalFilename", "ILUT.dll"
|
||||
VALUE "PrivateBuild", "Open Source"
|
||||
VALUE "ProductName", "Developer's Image Utility Toolkit Library"
|
||||
VALUE "ProductVersion", "1.7.8 Ansi"
|
||||
VALUE "SpecialBuild", "Ansi"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
VALUE "Translation", 0x409, 1200
|
||||
END
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Icon
|
||||
//
|
||||
|
||||
// Icon with lowest ID value placed first to ensure application icon
|
||||
// remains consistent on all systems.
|
||||
IDI_ICON1 ICON "resources\\IL Logo.ico"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// String Table
|
||||
//
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDC_OPENILUT "Developer's Image Utility Toolkit Library, Version 1.7.8"
|
||||
END
|
||||
|
||||
#endif // English (U.S.) resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 3 resource.
|
||||
//
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
|
||||
@@ -0,0 +1,817 @@
|
||||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="9.00"
|
||||
Name="ILUT"
|
||||
ProjectGUID="{7D060DA4-F2FA-44CC-80BE-065024DD6CA9}"
|
||||
RootNamespace="ILUT"
|
||||
TargetFrameworkVersion="131072"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
<Platform
|
||||
Name="x64"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory=".\../../lib/vc9/x86"
|
||||
IntermediateDirectory="x86/Release"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
MkTypLibCompatible="true"
|
||||
SuppressStartupBanner="true"
|
||||
TargetEnvironment="1"
|
||||
TypeLibraryName=".\../../lib/vc8/ILUT.tlb"
|
||||
HeaderFileName=""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="1"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="../include,../../include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;ILUT_EXPORTS;IL_STATIC_LIB"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="2"
|
||||
EnableFunctionLevelLinking="true"
|
||||
PrecompiledHeaderFile=".\../src/obj/x86/ILUT.pch"
|
||||
AssemblerListingLocation=".\../src/obj/x86/"
|
||||
ObjectFile=".\../src/obj/x86/"
|
||||
ProgramDataBaseFileName=".\../src/obj/x86/"
|
||||
WarningLevel="4"
|
||||
SuppressStartupBanner="true"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
Culture="1033"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="devil.lib ilu.lib Gdi32.lib User32.lib Comdlg32.lib"
|
||||
OutputFile="../../lib/vc9/x86/ILUT.dll"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories="../../lib/vc9/x86"
|
||||
IgnoreDefaultLibraryNames=""
|
||||
ModuleDefinitionFile=".\ilut.def"
|
||||
DelayLoadDLLs="opengl32.dll,glu32.dll,d3d8.dll,d3d9.dll,sdl.dll,alleg42.dll,wininet.dll"
|
||||
ProgramDatabaseFile="../../lib/vc9/ILUT.pdb"
|
||||
RandomizedBaseAddress="1"
|
||||
DataExecutionPrevention="0"
|
||||
ImportLibrary="../../lib/vc9/x86/ILUT.lib"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
SuppressStartupBanner="true"
|
||||
OutputFile=".\../../lib/vc8/ILUT.bsc"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
CommandLine="copy $(TargetPath) %SYSTEMROOT%\system32"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|x64"
|
||||
OutputDirectory=".\../../lib/vc9/x64"
|
||||
IntermediateDirectory="$(PlatformName)\x64\$(ConfigurationName)"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
MkTypLibCompatible="true"
|
||||
SuppressStartupBanner="true"
|
||||
TargetEnvironment="3"
|
||||
TypeLibraryName=".\../../lib/vc8/ILUT.tlb"
|
||||
HeaderFileName=""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="1"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="../include,../../include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;ILUT_EXPORTS;IL_STATIC_LIB"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="2"
|
||||
EnableFunctionLevelLinking="true"
|
||||
PrecompiledHeaderFile=".\../src/obj/ILUT.pch"
|
||||
AssemblerListingLocation=".\../src/obj/"
|
||||
ObjectFile=".\../src/obj/"
|
||||
ProgramDataBaseFileName=".\../src/obj/"
|
||||
WarningLevel="4"
|
||||
SuppressStartupBanner="true"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
Culture="1033"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="/ignore:4197"
|
||||
AdditionalDependencies="Gdi32.lib User32.lib Comdlg32.lib"
|
||||
OutputFile="../../lib/vc9/x64/ILUT.dll"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories="../../lib/vc9/x64"
|
||||
ManifestFile="$(IntDir)\$(TargetFileName).intermediate.manifest"
|
||||
IgnoreDefaultLibraryNames=""
|
||||
ModuleDefinitionFile=".\ilut.def"
|
||||
DelayLoadDLLs="opengl32.dll,glu32.dll,d3d8.dll,d3d9.dll,sdl.dll,alleg42.dll,wininet.dll"
|
||||
ProgramDatabaseFile="../../lib/vc9/x64/ILUT.pdb"
|
||||
RandomizedBaseAddress="1"
|
||||
DataExecutionPrevention="0"
|
||||
ImportLibrary="../../lib/vc9/x64/ILUT.lib"
|
||||
TargetMachine="17"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
SuppressStartupBanner="true"
|
||||
OutputFile=".\../../lib/vc8/ILUT.bsc"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
CommandLine="copy $(TargetPath) c:\windows\system32"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory=".\../../lib/vc9/x86/debug"
|
||||
IntermediateDirectory="x86/Debug"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
MkTypLibCompatible="true"
|
||||
SuppressStartupBanner="true"
|
||||
TargetEnvironment="1"
|
||||
TypeLibraryName=".\../../lib/vc8/debug/ILUT.tlb"
|
||||
HeaderFileName=""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../include,../../include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;ILUT_EXPORTS"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
PrecompiledHeaderFile=".\../src/obj/x86/debug/ILUT.pch"
|
||||
AssemblerListingLocation=".\../src/obj/x86/debug/"
|
||||
ObjectFile=".\../src/obj/x86/debug/"
|
||||
ProgramDataBaseFileName=".\../src/obj/x86/debug/"
|
||||
WarningLevel="4"
|
||||
SuppressStartupBanner="true"
|
||||
DebugInformationFormat="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
Culture="1033"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="devil.lib ilu.lib delayimp.lib Gdi32.lib User32.lib Comdlg32.lib"
|
||||
OutputFile="../../lib/vc9/x86/debug/ILUT.dll"
|
||||
LinkIncremental="2"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories="../../lib/vc8"
|
||||
IgnoreDefaultLibraryNames=""
|
||||
ModuleDefinitionFile=".\ilut.def"
|
||||
DelayLoadDLLs="opengl32.dll,glu32.dll,d3d8.dll,d3d9.dll,d3d10.dll,sdl.dll,alleg42.dll,wininet.dll"
|
||||
GenerateDebugInformation="true"
|
||||
ProgramDatabaseFile="../../lib/vc9/debug/ilut.pdb"
|
||||
RandomizedBaseAddress="1"
|
||||
DataExecutionPrevention="0"
|
||||
ImportLibrary="../../lib/vc9/x86/debug/ilut.lib"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
SuppressStartupBanner="true"
|
||||
OutputFile=".\../../lib/vc8/debug/ILUT.bsc"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
CommandLine="copy $(TargetPath) %SYSTEMROOT%\system32"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug|x64"
|
||||
OutputDirectory=".\../../lib/vc9/x64/debug"
|
||||
IntermediateDirectory="$(PlatformName)\x64\$(ConfigurationName)"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
MkTypLibCompatible="true"
|
||||
SuppressStartupBanner="true"
|
||||
TargetEnvironment="3"
|
||||
TypeLibraryName=".\../../lib/vc8/debug/ILUT.tlb"
|
||||
HeaderFileName=""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../include,../../include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;ILUT_EXPORTS"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
PrecompiledHeaderFile=".\../src/obj/debug/ILUT.pch"
|
||||
AssemblerListingLocation=".\../src/obj/debug/"
|
||||
ObjectFile=".\../src/obj/debug/"
|
||||
ProgramDataBaseFileName=".\../src/obj/debug/"
|
||||
WarningLevel="4"
|
||||
SuppressStartupBanner="true"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
Culture="1033"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="/ignore:4197"
|
||||
AdditionalDependencies="delayimp.lib Gdi32.lib User32.lib Comdlg32.lib"
|
||||
OutputFile="../../lib/vc9/x64/debug/ILUT.dll"
|
||||
LinkIncremental="2"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories=""
|
||||
ManifestFile="$(IntDir)\$(TargetFileName).intermediate.manifest"
|
||||
IgnoreDefaultLibraryNames=""
|
||||
ModuleDefinitionFile=".\ilut.def"
|
||||
DelayLoadDLLs="opengl32.dll,glu32.dll,d3d8.dll,d3d9.dll,d3d10.dll,sdl.dll,alleg42.dll,wininet.dll"
|
||||
GenerateDebugInformation="true"
|
||||
ProgramDatabaseFile="../../lib/vc/x64/debug/ilut.pdb"
|
||||
RandomizedBaseAddress="1"
|
||||
DataExecutionPrevention="0"
|
||||
ImportLibrary="../../lib/vc9/x64/debug/ilut.lib"
|
||||
TargetMachine="17"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
SuppressStartupBanner="true"
|
||||
OutputFile=".\../../lib/vc8/debug/ILUT.bsc"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
CommandLine="copy $(TargetPath) c:\windows\system32"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Source Files"
|
||||
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\ilut.def"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\ilut_allegro.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\ilut_directx.c"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\ilut_directx10.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\ilut_directx9.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\ilut_directxm.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\ilut_internal.c"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\ilut_main.c"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\ilut_opengl.c"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\ilut_sdlsurface.c"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\ilut_states.c"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\ilut_win32.c"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\ilut_x11.c"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\include\IL\devil_internal_exports.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\il\ilut.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\IL\ilut_config.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\include\ilut_internal.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\include\ilut_opengl.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\include\ilut_states.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="resource.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Resource Files"
|
||||
Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
||||
>
|
||||
<File
|
||||
RelativePath="resources\IL Logo.ico"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="ILUT.rc"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
</Filter>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
@@ -0,0 +1,70 @@
|
||||
; To remove an export, add a semicolon at the beginning of the line to comment it out.
|
||||
|
||||
EXPORTS
|
||||
ilutConvertToHBitmap
|
||||
|
||||
ilutConvertSliceToHBitmap
|
||||
;ilutConvertToSDLSurface
|
||||
;ilutSDLSurfaceFromBitmap
|
||||
;ilutSDLSurfaceLoadImage
|
||||
;ilutD3D8LoadSurface
|
||||
;ilutD3D8MipFunc
|
||||
;ilutD3D8Texture
|
||||
;ilutD3D8TexFromFile
|
||||
;ilutD3D8VolumeTexture
|
||||
;ilutD3D8VolTexFromFile
|
||||
;ilutD3D8TexFromFileInMemory
|
||||
;ilutD3D8VolTexFromFileInMemory
|
||||
;ilutD3D8TexFromFileHandle
|
||||
;ilutD3D8VolTexFromFileHandle
|
||||
;ilutD3D8TexFromResource
|
||||
;ilutD3D8VolTexFromResource
|
||||
;ilutD3D9LoadSurface
|
||||
;ilutD3D9MipFunc
|
||||
;ilutD3D9Texture
|
||||
;ilutD3D9TexFromFile
|
||||
;ilutD3D9VolumeTexture
|
||||
;ilutD3D9VolTexFromFile
|
||||
;ilutD3D9TexFromFileInMemory
|
||||
;ilutD3D9VolTexFromFileInMemory
|
||||
;ilutD3D9TexFromFileHandle
|
||||
;ilutD3D9VolTexFromFileHandle
|
||||
;ilutD3D9TexFromResource
|
||||
;ilutD3D9VolTexFromResource
|
||||
ilutDisable
|
||||
ilutEnable
|
||||
ilutFreePaddedData
|
||||
ilutGetBmpInfo
|
||||
ilutGetBoolean
|
||||
ilutGetBooleanv
|
||||
ilutGetHPal
|
||||
ilutGetInteger
|
||||
ilutGetIntegerv
|
||||
ilutGetPaddedData
|
||||
ilutGetString
|
||||
ilutGetWinClipboard
|
||||
ilutInit
|
||||
ilutIsDisabled
|
||||
ilutIsEnabled
|
||||
ilutLoadResource
|
||||
ilutGLBindMipmaps
|
||||
ilutGLBindTexImage
|
||||
ilutGLBuildMipmaps
|
||||
ilutGLLoadImage
|
||||
ilutGLSaveImage
|
||||
ilutGLScreen
|
||||
ilutGLScreenie
|
||||
ilutGLSetTex
|
||||
ilutGLSubTex
|
||||
ilutGLTexImage
|
||||
ilutPopAttrib
|
||||
ilutPushAttrib
|
||||
ilutRenderer
|
||||
ilutSetHBitmap
|
||||
ilutSetHPal
|
||||
ilutSetInteger
|
||||
ilutSetWinClipboard
|
||||
ilutWinLoadImage
|
||||
ilutWinLoadUrl
|
||||
ilutWinPrint
|
||||
ilutWinSaveImage
|
||||
@@ -0,0 +1,17 @@
|
||||
//{{NO_DEPENDENCIES}}
|
||||
// Microsoft Visual C++ generated include file.
|
||||
// Used by ILUT.rc
|
||||
//
|
||||
#define IDC_OPENILUT 109
|
||||
#define IDI_ICON1 155
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 102
|
||||
#define _APS_NEXT_COMMAND_VALUE 40001
|
||||
#define _APS_NEXT_CONTROL_VALUE 1000
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
#endif
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 2.1 KiB |
@@ -0,0 +1,135 @@
|
||||
//Microsoft Developer Studio generated resource script.
|
||||
//
|
||||
#include "resource.h"
|
||||
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 2 resource.
|
||||
//
|
||||
#define APSTUDIO_HIDDEN_SYMBOLS
|
||||
#include "windows.h"
|
||||
#undef APSTUDIO_HIDDEN_SYMBOLS
|
||||
#include "resource.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// English (U.S.) resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
#pragma code_page(1252)
|
||||
#endif //_WIN32
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// TEXTINCLUDE
|
||||
//
|
||||
|
||||
2 TEXTINCLUDE DISCARDABLE
|
||||
BEGIN
|
||||
"#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
|
||||
"#include ""windows.h""\r\n"
|
||||
"#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"
|
||||
"#include ""resource.h""\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
3 TEXTINCLUDE DISCARDABLE
|
||||
BEGIN
|
||||
"\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
1 TEXTINCLUDE DISCARDABLE
|
||||
BEGIN
|
||||
"resource.h\0"
|
||||
END
|
||||
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
#ifndef _MAC
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Version
|
||||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 0,1,2,4
|
||||
PRODUCTVERSION 0,1,2,4
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x29L
|
||||
#else
|
||||
FILEFLAGS 0x28L
|
||||
#endif
|
||||
FILEOS 0x40004L
|
||||
FILETYPE 0x2L
|
||||
FILESUBTYPE 0x0L
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "040904b0"
|
||||
BEGIN
|
||||
VALUE "Comments", "ILUT: A great portable image library in development\0"
|
||||
VALUE "CompanyName", "Abysmal Software\0"
|
||||
VALUE "FileDescription", "ILUT: A great portable image library in development\0"
|
||||
VALUE "FileVersion", "1.2.4\0"
|
||||
VALUE "InternalName", "ILUT\0"
|
||||
VALUE "LegalCopyright", "Copyright © 2000-2001\0"
|
||||
VALUE "LegalTrademarks", "Under LGPL License\0"
|
||||
VALUE "OriginalFilename", "ILUT.dll\0"
|
||||
VALUE "PrivateBuild", "Open Source\0"
|
||||
VALUE "ProductName", "Developer's Image Utility Toolkit Library\0"
|
||||
VALUE "ProductVersion", "1.2.4\0"
|
||||
VALUE "SpecialBuild", "eh?\0"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
VALUE "Translation", 0x409, 1200
|
||||
END
|
||||
END
|
||||
|
||||
#endif // !_MAC
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Icon
|
||||
//
|
||||
|
||||
// Icon with lowest ID value placed first to ensure application icon
|
||||
// remains consistent on all systems.
|
||||
IDI_ICON1 ICON DISCARDABLE "resources\\IL Logo.ico"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// String Table
|
||||
//
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDC_OPENILUT "Developer's Image Utility Toolkit Library, Version 1.2.4"
|
||||
END
|
||||
|
||||
#endif // English (U.S.) resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 3 resource.
|
||||
//
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
|
||||
@@ -0,0 +1,131 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// ImageLib Sources
|
||||
// Copyright (C) 2000 by Denton Woods
|
||||
// Last modified: 11/23/2000 <--Y2K Compliant! =]
|
||||
//
|
||||
// Filename: openilut/allegro.c
|
||||
//
|
||||
// Description: Allegro functions for images
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif //HAVE_CONFIG_H
|
||||
|
||||
#ifdef ILUT_USE_ALLEGRO
|
||||
#include "ilut_allegro.h"
|
||||
#endif
|
||||
|
||||
#include "ilut_internal.h"
|
||||
|
||||
#ifdef ILUT_USE_ALLEGRO
|
||||
|
||||
ILboolean ilConvertPal(ILenum DestFormat);
|
||||
|
||||
// Does not account for converting luminance...
|
||||
BITMAP* ILAPIENTRY ilutConvertToAlleg(PALETTE Pal)
|
||||
{
|
||||
BITMAP *Bitmap;
|
||||
ILimage *TempImage;
|
||||
ILuint i = 0, j = 0;
|
||||
|
||||
ilutCurImage = ilGetCurImage();
|
||||
|
||||
if (ilutCurImage == NULL) {
|
||||
ilSetError(ILUT_ILLEGAL_OPERATION);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// Should be IL_BGR(A), but Djgpp screws up somewhere along the line.
|
||||
if (ilutCurImage->Format == IL_RGB || ilutCurImage->Format == IL_RGBA) {
|
||||
iluSwapColours();
|
||||
}
|
||||
|
||||
if (ilutCurImage->Origin == IL_ORIGIN_LOWER_LEFT)
|
||||
iluFlipImage();
|
||||
if (ilutCurImage->Type > IL_UNSIGNED_BYTE) {} // Can't do anything about this right now...
|
||||
if (ilutCurImage->Type == IL_BYTE) {} // Can't do anything about this right now...
|
||||
|
||||
Bitmap = create_bitmap_ex(ilutCurImage->Bpp * 8, ilutCurImage->Width, ilutCurImage->Height);
|
||||
if (Bitmap == NULL) {
|
||||
return IL_FALSE;
|
||||
}
|
||||
memcpy(Bitmap->dat, ilutCurImage->Data, ilutCurImage->SizeOfData);
|
||||
|
||||
// Should we make this toggleable?
|
||||
if (ilutCurImage->Bpp == 8 && ilutCurImage->Pal.PalType != IL_PAL_NONE) {
|
||||
// Use the image's palette if there is one
|
||||
|
||||
// ilConvertPal is destructive to the original image
|
||||
// @TODO: Use new ilCopyPal!!!
|
||||
TempImage = ilNewImage(ilutCurImage->Width, ilutCurImage->Height, ilutCurImage->Depth, ilutCurImage->Bpp, 1);
|
||||
ilCopyImageAttr(TempImage, ilutCurImage);
|
||||
ilSetCurImage(TempImage);
|
||||
|
||||
if (!ilConvertPal(IL_PAL_RGB24)) {
|
||||
destroy_bitmap(Bitmap);
|
||||
ilSetError(ILUT_ILLEGAL_OPERATION);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
for (; i < ilutCurImage->Pal.PalSize && i < 768; i += 3, j++) {
|
||||
Pal[j].r = TempImage->Pal.Palette[i+0];
|
||||
Pal[j].g = TempImage->Pal.Palette[i+1];
|
||||
Pal[j].b = TempImage->Pal.Palette[i+2];
|
||||
Pal[j].filler = 255;
|
||||
}
|
||||
|
||||
ilCloseImage(TempImage);
|
||||
ilSetCurImage(ilutCurImage);
|
||||
}
|
||||
|
||||
return Bitmap;
|
||||
}
|
||||
|
||||
|
||||
#ifndef _WIN32_WCE
|
||||
BITMAP* ILAPIENTRY ilutAllegLoadImage(ILstring FileName)
|
||||
{
|
||||
ILuint ImgId;
|
||||
PALETTE Pal;
|
||||
|
||||
ilGenImages(1, &ImgId);
|
||||
ilBindImage(ImgId);
|
||||
if (!ilLoadImage(FileName)) {
|
||||
ilDeleteImages(1, &ImgId);
|
||||
return 0;
|
||||
}
|
||||
|
||||
ilDeleteImages(1, &ImgId);
|
||||
|
||||
return ilutConvertToAlleg(Pal);
|
||||
}
|
||||
#endif//_WIN32_WCE
|
||||
|
||||
|
||||
// Unfinished
|
||||
ILboolean ILAPIENTRY ilutAllegFromBitmap(BITMAP *Bitmap)
|
||||
{
|
||||
ilutCurImage = ilGetCurImage();
|
||||
if (ilutCurImage == NULL) {
|
||||
ilSetError(ILUT_ILLEGAL_OPERATION);
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
if (Bitmap == NULL || Bitmap->w == 0 || Bitmap->h == 0) {
|
||||
ilSetError(ILUT_INVALID_PARAM);
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
if (!ilTexImage(Bitmap->w, Bitmap->h, 1, 3, IL_RGB, IL_UNSIGNED_BYTE, NULL))
|
||||
return IL_FALSE;
|
||||
|
||||
ilutCurImage->Origin = IL_ORIGIN_LOWER_LEFT; // I have no idea.
|
||||
|
||||
return IL_TRUE;
|
||||
}
|
||||
|
||||
#endif//ILUT_USE_ALLEGRO
|
||||
|
||||
@@ -0,0 +1,542 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// ImageLib Utility Toolkit Sources
|
||||
// Copyright (C) 2000-2008 by Denton Woods
|
||||
// Last modified: 12/25/2001
|
||||
//
|
||||
// Filename: src-ILUT/src/ilut_directx.c
|
||||
//
|
||||
// Description: DirectX 8 functions for textures
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
#include "ilut_internal.h"
|
||||
#ifdef ILUT_USE_DIRECTX8
|
||||
|
||||
#include <d3d8.h>
|
||||
//#include <d3dx8tex.h>
|
||||
//pragma comment(lib, "d3d8.lib")
|
||||
//pragma comment(lib, "d3dx8.lib")
|
||||
|
||||
ILimage* MakeD3D8Compliant(IDirect3DDevice8 *Device, D3DFORMAT *DestFormat);
|
||||
ILenum GetD3D8Compat(ILenum Format);
|
||||
D3DFORMAT GetD3DFormat(ILenum Format);
|
||||
ILboolean iD3D8CreateMipmaps(IDirect3DTexture8 *Texture, ILimage *Image);
|
||||
|
||||
ILboolean FormatsDX8Checked = IL_FALSE;
|
||||
ILboolean FormatsDX8supported[6] =
|
||||
{ IL_FALSE, IL_FALSE, IL_FALSE, IL_FALSE, IL_FALSE, IL_FALSE };
|
||||
D3DFORMAT FormatsDX8[6] =
|
||||
{ D3DFMT_R8G8B8, D3DFMT_A8R8G8B8, D3DFMT_L8, D3DFMT_DXT1, D3DFMT_DXT3, D3DFMT_DXT5 };
|
||||
|
||||
|
||||
ILboolean ilutD3D8Init()
|
||||
{
|
||||
|
||||
return IL_TRUE;
|
||||
}
|
||||
|
||||
|
||||
ILvoid CheckFormatsDX8(IDirect3DDevice8 *Device)
|
||||
{
|
||||
D3DDISPLAYMODE DispMode;
|
||||
HRESULT hr;
|
||||
IDirect3D8 *TestD3D8;
|
||||
ILuint i;
|
||||
|
||||
IDirect3DDevice8_GetDirect3D(Device, (IDirect3D8**)&TestD3D8);
|
||||
IDirect3DDevice8_GetDisplayMode(Device, &DispMode);
|
||||
|
||||
for (i = 0; i < 6; i++) {
|
||||
hr = IDirect3D8_CheckDeviceFormat(TestD3D8, D3DADAPTER_DEFAULT,
|
||||
D3DDEVTYPE_HAL, DispMode.Format, 0, D3DRTYPE_TEXTURE, FormatsDX8[i]);
|
||||
FormatsDX8supported[i] = SUCCEEDED(hr);
|
||||
}
|
||||
|
||||
IDirect3D8_Release(TestD3D8);
|
||||
FormatsDX8Checked = IL_TRUE;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
#ifndef _WIN32_WCE
|
||||
ILboolean ILAPIENTRY ilutD3D8TexFromFile(IDirect3DDevice8 *Device, char *FileName, IDirect3DTexture8 **Texture)
|
||||
{
|
||||
iBindImageTemp();
|
||||
if (!ilLoadImage(FileName))
|
||||
return IL_FALSE;
|
||||
|
||||
*Texture = ilutD3D8Texture(Device);
|
||||
|
||||
return IL_TRUE;
|
||||
}
|
||||
#endif//_WIN32_WCE
|
||||
|
||||
|
||||
#ifndef _WIN32_WCE
|
||||
ILboolean ILAPIENTRY ilutD3D8VolTexFromFile(IDirect3DDevice8 *Device, char *FileName, IDirect3DVolumeTexture8 **Texture)
|
||||
{
|
||||
iBindImageTemp();
|
||||
if (!ilLoadImage(FileName))
|
||||
return IL_FALSE;
|
||||
|
||||
*Texture = ilutD3D8VolumeTexture(Device);
|
||||
|
||||
return IL_TRUE;
|
||||
}
|
||||
#endif//_WIN32_WCE
|
||||
|
||||
|
||||
ILboolean ILAPIENTRY ilutD3D8TexFromFileInMemory(IDirect3DDevice8 *Device, ILvoid *Lump, ILuint Size, IDirect3DTexture8 **Texture)
|
||||
{
|
||||
iBindImageTemp();
|
||||
if (!ilLoadL(IL_TYPE_UNKNOWN, Lump, Size))
|
||||
return IL_FALSE;
|
||||
|
||||
*Texture = ilutD3D8Texture(Device);
|
||||
|
||||
return IL_TRUE;
|
||||
}
|
||||
|
||||
|
||||
ILboolean ILAPIENTRY ilutD3D8VolTexFromFileInMemory(IDirect3DDevice8 *Device, ILvoid *Lump, ILuint Size, IDirect3DVolumeTexture8 **Texture)
|
||||
{
|
||||
iBindImageTemp();
|
||||
if (!ilLoadL(IL_TYPE_UNKNOWN, Lump, Size))
|
||||
return IL_FALSE;
|
||||
|
||||
*Texture = ilutD3D8VolumeTexture(Device);
|
||||
|
||||
return IL_TRUE;
|
||||
}
|
||||
|
||||
|
||||
ILboolean ILAPIENTRY ilutD3D8TexFromResource(IDirect3DDevice8 *Device, HMODULE SrcModule, char *SrcResource, IDirect3DTexture8 **Texture)
|
||||
{
|
||||
HRSRC Resource;
|
||||
ILubyte *Data;
|
||||
|
||||
iBindImageTemp();
|
||||
|
||||
Resource = (HRSRC)LoadResource(SrcModule, FindResource(SrcModule, SrcResource, RT_BITMAP));
|
||||
Data = (ILubyte*)LockResource(Resource);
|
||||
if (!ilLoadL(IL_TYPE_UNKNOWN, Data, SizeofResource(SrcModule, FindResource(SrcModule, SrcResource, RT_BITMAP))))
|
||||
return IL_FALSE;
|
||||
|
||||
*Texture = ilutD3D8Texture(Device);
|
||||
|
||||
return IL_TRUE;
|
||||
}
|
||||
|
||||
|
||||
ILboolean ILAPIENTRY ilutD3D8VolTexFromResource(IDirect3DDevice8 *Device, HMODULE SrcModule, char *SrcResource, IDirect3DVolumeTexture8 **Texture)
|
||||
{
|
||||
HRSRC Resource;
|
||||
ILubyte *Data;
|
||||
|
||||
iBindImageTemp();
|
||||
|
||||
Resource = (HRSRC)LoadResource(SrcModule, FindResource(SrcModule, SrcResource, RT_BITMAP));
|
||||
Data = (ILubyte*)LockResource(Resource);
|
||||
if (!ilLoadL(IL_TYPE_UNKNOWN, Data, SizeofResource(SrcModule, FindResource(SrcModule, SrcResource, RT_BITMAP))))
|
||||
return IL_FALSE;
|
||||
|
||||
*Texture = ilutD3D8VolumeTexture(Device);
|
||||
|
||||
return IL_TRUE;
|
||||
}
|
||||
|
||||
|
||||
ILboolean ILAPIENTRY ilutD3D8TexFromFileHandle(IDirect3DDevice8 *Device, ILHANDLE File, IDirect3DTexture8 **Texture)
|
||||
{
|
||||
iBindImageTemp();
|
||||
if (!ilLoadF(IL_TYPE_UNKNOWN, File))
|
||||
return IL_FALSE;
|
||||
|
||||
*Texture = ilutD3D8Texture(Device);
|
||||
|
||||
return IL_TRUE;
|
||||
}
|
||||
|
||||
|
||||
ILboolean ILAPIENTRY ilutD3D8VolTexFromFileHandle(IDirect3DDevice8 *Device, ILHANDLE File, IDirect3DVolumeTexture8 **Texture)
|
||||
{
|
||||
iBindImageTemp();
|
||||
if (!ilLoadF(IL_TYPE_UNKNOWN, File))
|
||||
return IL_FALSE;
|
||||
|
||||
*Texture = ilutD3D8VolumeTexture(Device);
|
||||
|
||||
return IL_TRUE;
|
||||
}
|
||||
|
||||
|
||||
D3DFORMAT D3DGetDXTCNumDX8(ILenum DXTCFormat)
|
||||
{
|
||||
switch (DXTCFormat)
|
||||
{
|
||||
case IL_DXT1:
|
||||
return D3DFMT_DXT1;
|
||||
case IL_DXT3:
|
||||
return D3DFMT_DXT3;
|
||||
case IL_DXT5:
|
||||
return D3DFMT_DXT5;
|
||||
}
|
||||
|
||||
return D3DFMT_UNKNOWN;
|
||||
}
|
||||
|
||||
|
||||
IDirect3DTexture8* ILAPIENTRY ilutD3D8Texture(IDirect3DDevice8 *Device)
|
||||
{
|
||||
IDirect3DTexture8 *Texture;
|
||||
D3DLOCKED_RECT Rect;
|
||||
D3DFORMAT Format;
|
||||
ILimage *Image;
|
||||
ILenum DXTCFormat;
|
||||
ILuint Size;
|
||||
ILubyte *Buffer;
|
||||
|
||||
Image = ilutCurImage = ilGetCurImage();
|
||||
if (ilutCurImage == NULL) {
|
||||
ilSetError(ILUT_ILLEGAL_OPERATION);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (!FormatsDX8Checked)
|
||||
CheckFormatsDX8(Device);
|
||||
|
||||
if (ilutGetBoolean(ILUT_D3D_USE_DXTC) && FormatsDX8supported[3] && FormatsDX8supported[4] && FormatsDX8supported[5]) {
|
||||
if (ilutCurImage->DxtcData != NULL && ilutCurImage->DxtcSize != 0) {
|
||||
Format = D3DGetDXTCNumDX8(ilutCurImage->DxtcFormat);
|
||||
|
||||
if (FAILED(IDirect3DDevice8_CreateTexture(Device, ilutCurImage->Width,
|
||||
ilutCurImage->Height, ilutGetInteger(ILUT_D3D_MIPLEVELS), 0, Format,
|
||||
(D3DPOOL)ilutGetInteger(ILUT_D3D_POOL), &Texture)))
|
||||
return NULL;
|
||||
if (FAILED(IDirect3DTexture8_LockRect(Texture, 0, &Rect, NULL, 0)))
|
||||
return NULL;
|
||||
memcpy(Rect.pBits, ilutCurImage->DxtcData, ilutCurImage->DxtcSize);
|
||||
goto success;
|
||||
}
|
||||
|
||||
if (ilutGetBoolean(ILUT_D3D_GEN_DXTC)) {
|
||||
DXTCFormat = ilutGetInteger(ILUT_DXTC_FORMAT);
|
||||
|
||||
Size = ilGetDXTCData(NULL, 0, DXTCFormat);
|
||||
if (Size != 0) {
|
||||
Buffer = (ILubyte*)ialloc(Size);
|
||||
if (Buffer == NULL)
|
||||
return NULL;
|
||||
Size = ilGetDXTCData(Buffer, Size, DXTCFormat);
|
||||
if (Size == 0) {
|
||||
ifree(Buffer);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Format = D3DGetDXTCNumDX8(DXTCFormat);
|
||||
if (FAILED(IDirect3DDevice8_CreateTexture(Device, ilutCurImage->Width,
|
||||
ilutCurImage->Height, ilutGetInteger(ILUT_D3D_MIPLEVELS), 0, Format,
|
||||
(D3DPOOL)ilutGetInteger(ILUT_D3D_POOL), &Texture))) {
|
||||
ifree(Buffer);
|
||||
return NULL;
|
||||
}
|
||||
if (FAILED(IDirect3DTexture8_LockRect(Texture, 0, &Rect, NULL, 0))) {
|
||||
ifree(Buffer);
|
||||
return NULL;
|
||||
}
|
||||
memcpy(Rect.pBits, Buffer, Size);
|
||||
ifree(Buffer);
|
||||
goto success;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Image = MakeD3D8Compliant(Device, &Format);
|
||||
if (Image == NULL) {
|
||||
if (Image != ilutCurImage)
|
||||
ilCloseImage(Image);
|
||||
return NULL;
|
||||
}
|
||||
if (FAILED(IDirect3DDevice8_CreateTexture(Device, Image->Width, Image->Height,
|
||||
ilutGetInteger(ILUT_D3D_MIPLEVELS), 0, Format, (D3DPOOL)ilutGetInteger(ILUT_D3D_POOL), &Texture))) {
|
||||
if (Image != ilutCurImage)
|
||||
ilCloseImage(Image);
|
||||
return NULL;
|
||||
}
|
||||
if (FAILED(IDirect3DTexture8_LockRect(Texture, 0, &Rect, NULL, 0)))
|
||||
return NULL;
|
||||
memcpy(Rect.pBits, Image->Data, Image->SizeOfPlane);
|
||||
|
||||
success:
|
||||
IDirect3DTexture8_UnlockRect(Texture, 0);
|
||||
// Just let D3DX filter for us.
|
||||
//D3DXFilterTexture(Texture, NULL, D3DX_DEFAULT, D3DX_FILTER_BOX);
|
||||
iD3D8CreateMipmaps(Texture, Image);
|
||||
|
||||
if (Image != ilutCurImage)
|
||||
ilCloseImage(Image);
|
||||
|
||||
return Texture;
|
||||
}
|
||||
|
||||
|
||||
IDirect3DVolumeTexture8* ILAPIENTRY ilutD3D8VolumeTexture(IDirect3DDevice8 *Device)
|
||||
{
|
||||
IDirect3DVolumeTexture8 *Texture;
|
||||
D3DLOCKED_BOX Box;
|
||||
D3DFORMAT Format;
|
||||
ILimage *Image;
|
||||
|
||||
ilutCurImage = ilGetCurImage();
|
||||
if (ilutCurImage == NULL) {
|
||||
ilSetError(ILUT_ILLEGAL_OPERATION);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (!FormatsDX8Checked)
|
||||
CheckFormatsDX8(Device);
|
||||
|
||||
Image = MakeD3D8Compliant(Device, &Format);
|
||||
if (Image == NULL)
|
||||
return NULL;
|
||||
if (FAILED(IDirect3DDevice8_CreateVolumeTexture(Device, Image->Width, Image->Height,
|
||||
Image->Depth, 1, 0, Format, (D3DPOOL)ilutGetInteger(ILUT_D3D_POOL), &Texture)))
|
||||
return NULL;
|
||||
if (FAILED(IDirect3DVolumeTexture8_LockBox(Texture, 0, &Box, NULL, 0)))
|
||||
return NULL;
|
||||
|
||||
memcpy(Box.pBits, Image->Data, Image->SizeOfData);
|
||||
if (!IDirect3DVolumeTexture8_UnlockBox(Texture, 0))
|
||||
return IL_FALSE;
|
||||
|
||||
// We don't want to have mipmaps for such a large image.
|
||||
|
||||
if (Image != ilutCurImage)
|
||||
ilCloseImage(Image);
|
||||
|
||||
return Texture;
|
||||
}
|
||||
|
||||
|
||||
ILimage *MakeD3D8Compliant(IDirect3DDevice8 *Device, D3DFORMAT *DestFormat)
|
||||
{
|
||||
ILimage *Converted, *Scaled, *CurImage;
|
||||
|
||||
*DestFormat = D3DFMT_A8R8G8B8;
|
||||
|
||||
// Images must be in BGRA format.
|
||||
if (ilutCurImage->Format != IL_BGRA) {
|
||||
Converted = iConvertImage(ilutCurImage, IL_BGRA, IL_UNSIGNED_BYTE);
|
||||
if (Converted == NULL)
|
||||
return NULL;
|
||||
}
|
||||
else {
|
||||
Converted = ilutCurImage;
|
||||
}
|
||||
|
||||
// Images must have their origin in the upper left.
|
||||
if (Converted->Origin != IL_ORIGIN_UPPER_LEFT) {
|
||||
CurImage = ilutCurImage;
|
||||
ilSetCurImage(Converted);
|
||||
iluFlipImage();
|
||||
ilSetCurImage(CurImage);
|
||||
}
|
||||
|
||||
// Images must have powers-of-2 dimensions.
|
||||
if (ilNextPower2(ilutCurImage->Width) != ilutCurImage->Width ||
|
||||
ilNextPower2(ilutCurImage->Height) != ilutCurImage->Height ||
|
||||
ilNextPower2(ilutCurImage->Depth) != ilutCurImage->Depth) {
|
||||
Scaled = iluScale_(Converted, ilNextPower2(ilutCurImage->Width),
|
||||
ilNextPower2(ilutCurImage->Height), ilNextPower2(ilutCurImage->Depth));
|
||||
if (Converted != ilutCurImage) {
|
||||
ilCloseImage(Converted);
|
||||
}
|
||||
if (Scaled == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
Converted = Scaled;
|
||||
}
|
||||
|
||||
return Converted;
|
||||
}
|
||||
|
||||
|
||||
ILboolean iD3D8CreateMipmaps(IDirect3DTexture8 *Texture, ILimage *Image)
|
||||
{
|
||||
D3DLOCKED_RECT Rect;
|
||||
D3DSURFACE_DESC Desc;
|
||||
ILuint NumMips, Width, Height, i;
|
||||
ILimage *CurImage, *MipImage, *Temp;
|
||||
|
||||
NumMips = IDirect3DTexture8_GetLevelCount(Texture);
|
||||
Width = Image->Width;
|
||||
Height = Image->Height;
|
||||
|
||||
CurImage = ilGetCurImage();
|
||||
MipImage = ilCopyImage_(CurImage);
|
||||
ilSetCurImage(MipImage);
|
||||
if (!iluBuildMipmaps()) {
|
||||
ilCloseImage(MipImage);
|
||||
ilSetCurImage(CurImage);
|
||||
return IL_FALSE;
|
||||
}
|
||||
ilSetCurImage(CurImage);
|
||||
Temp = MipImage->Mipmaps;
|
||||
|
||||
// Counts the base texture as 1.
|
||||
for (i = 1; i < NumMips && Temp != NULL; i++) {
|
||||
if (FAILED(IDirect3DTexture8_LockRect(Texture, i, &Rect, NULL, 0)))
|
||||
return IL_FALSE;
|
||||
|
||||
Width = IL_MAX(1, Width / 2);
|
||||
Height = IL_MAX(1, Height / 2);
|
||||
|
||||
IDirect3DTexture8_GetLevelDesc(Texture, i, &Desc);
|
||||
if (Desc.Width != Width || Desc.Height != Height) {
|
||||
IDirect3DTexture8_UnlockRect(Texture, i);
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
memcpy(Rect.pBits, Temp->Data, Temp->SizeOfData);
|
||||
|
||||
IDirect3DTexture8_UnlockRect(Texture, i);
|
||||
Temp = Temp->Next;
|
||||
}
|
||||
|
||||
ilCloseImage(MipImage);
|
||||
|
||||
return IL_TRUE;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// SaveSurfaceToFile.cpp
|
||||
//
|
||||
// Copyright (c) 2001 David Galeano
|
||||
//
|
||||
// Permission to use, copy, modify and distribute this software
|
||||
// is hereby granted, provided that both the copyright notice and
|
||||
// this permission notice appear in all copies of the software,
|
||||
// derivative works or modified versions.
|
||||
//
|
||||
// THE AUTHOR ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
|
||||
// CONDITION AND DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY DAMAGES
|
||||
// WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
|
||||
//
|
||||
|
||||
ILAPI ILboolean ILAPIENTRY ilutD3D8LoadSurface(IDirect3DDevice8 *Device, IDirect3DSurface8 *Surface)
|
||||
{
|
||||
HRESULT hr;
|
||||
D3DSURFACE_DESC d3dsd;
|
||||
LPDIRECT3DSURFACE8 SurfaceCopy;
|
||||
D3DLOCKED_RECT d3dLR;
|
||||
ILboolean bHasAlpha;
|
||||
ILubyte *Image, *ImageAux, *Data;
|
||||
ILuint y, x;
|
||||
ILushort dwColor;
|
||||
|
||||
IDirect3DSurface8_GetDesc(Surface, &d3dsd);
|
||||
|
||||
bHasAlpha = (d3dsd.Format == D3DFMT_A8R8G8B8 || d3dsd.Format == D3DFMT_A1R5G5B5);
|
||||
|
||||
if (bHasAlpha) {
|
||||
if (!ilTexImage(d3dsd.Width, d3dsd.Height, 1, 4, IL_BGRA, IL_UNSIGNED_BYTE, NULL)) {
|
||||
return IL_FALSE;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (!ilTexImage(d3dsd.Width, d3dsd.Height, 1, 3, IL_BGR, IL_UNSIGNED_BYTE, NULL)) {
|
||||
return IL_FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
hr = IDirect3DDevice8_CreateImageSurface(Device, d3dsd.Width, d3dsd.Height, d3dsd.Format, &SurfaceCopy);
|
||||
if (FAILED(hr)) {
|
||||
ilSetError(ILUT_ILLEGAL_OPERATION);
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
hr = IDirect3DDevice8_CopyRects(Device, Surface, NULL, 0, SurfaceCopy, NULL);
|
||||
if (FAILED(hr)) {
|
||||
ilSetError(ILUT_ILLEGAL_OPERATION);
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
hr = IDirect3DSurface8_LockRect(SurfaceCopy, &d3dLR, NULL, D3DLOCK_NO_DIRTY_UPDATE | D3DLOCK_NOSYSLOCK | D3DLOCK_READONLY);
|
||||
if (FAILED(hr)) {
|
||||
IDirect3DSurface8_Release(SurfaceCopy);
|
||||
ilSetError(ILUT_ILLEGAL_OPERATION);
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
Image = (ILubyte*)d3dLR.pBits;
|
||||
Data = ilutCurImage->Data;
|
||||
|
||||
for (y = 0; y < d3dsd.Height; y++) {
|
||||
if (d3dsd.Format == D3DFMT_X8R8G8B8) {
|
||||
ImageAux = Image;
|
||||
for (x = 0; x < d3dsd.Width; x++) {
|
||||
Data[0] = ImageAux[0];
|
||||
Data[1] = ImageAux[1];
|
||||
Data[2] = ImageAux[2];
|
||||
|
||||
Data += 3;
|
||||
ImageAux += 4;
|
||||
}
|
||||
}
|
||||
else if (d3dsd.Format == D3DFMT_A8R8G8B8) {
|
||||
memcpy(Data, Image, d3dsd.Width * 4);
|
||||
}
|
||||
else if (d3dsd.Format == D3DFMT_R5G6B5) {
|
||||
ImageAux = Image;
|
||||
for (x = 0; x < d3dsd.Width; x++) {
|
||||
dwColor = *((ILushort*)ImageAux);
|
||||
|
||||
Data[0] = (ILubyte)((dwColor&0x001f)<<3);
|
||||
Data[1] = (ILubyte)(((dwColor&0x7e0)>>5)<<2);
|
||||
Data[2] = (ILubyte)(((dwColor&0xf800)>>11)<<3);
|
||||
|
||||
Data += 3;
|
||||
ImageAux += 2;
|
||||
}
|
||||
}
|
||||
else if (d3dsd.Format == D3DFMT_X1R5G5B5) {
|
||||
ImageAux = Image;
|
||||
for (x = 0; x < d3dsd.Width; x++) {
|
||||
dwColor = *((ILushort*)ImageAux);
|
||||
|
||||
Data[0] = (ILubyte)((dwColor&0x001f)<<3);
|
||||
Data[1] = (ILubyte)(((dwColor&0x3e0)>>5)<<3);
|
||||
Data[2] = (ILubyte)(((dwColor&0x7c00)>>10)<<3);
|
||||
|
||||
Data += 3;
|
||||
ImageAux += 2;
|
||||
}
|
||||
}
|
||||
else if (d3dsd.Format == D3DFMT_A1R5G5B5) {
|
||||
ImageAux = Image;
|
||||
for (x = 0; x < d3dsd.Width; x++) {
|
||||
dwColor = *((ILushort*)ImageAux);
|
||||
|
||||
Data[0] = (ILubyte)((dwColor&0x001f)<<3);
|
||||
Data[1] = (ILubyte)(((dwColor&0x3e0)>>5)<<3);
|
||||
Data[2] = (ILubyte)(((dwColor&0x7c00)>>10)<<3);
|
||||
Data[3] = (ILubyte)(((dwColor&0x8000)>>15)*255);
|
||||
|
||||
Data += 4;
|
||||
ImageAux += 2;
|
||||
}
|
||||
}
|
||||
|
||||
Image += d3dLR.Pitch;
|
||||
}
|
||||
|
||||
IDirect3DSurface8_UnlockRect(SurfaceCopy);
|
||||
IDirect3DSurface8_Release(SurfaceCopy);
|
||||
|
||||
return IL_TRUE;
|
||||
}
|
||||
|
||||
#endif//ILUT_USE_DIRECTX8
|
||||
@@ -0,0 +1,886 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// ImageLib Utility Toolkit Sources
|
||||
// Copyright (C) 2000-2009 by Denton Woods
|
||||
// Last modified: 01/30/2009
|
||||
//
|
||||
// Filename: src-ILUT/src/ilut_directx9.c
|
||||
//
|
||||
// Description: DirectX 9 functions for textures
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
|
||||
#include "ilut_internal.h"
|
||||
#ifdef ILUT_USE_DIRECTX9
|
||||
|
||||
|
||||
#include <d3d9.h>
|
||||
|
||||
//#include <d3dx9math.h>
|
||||
//#include <d3dx9tex.h>
|
||||
#pragma comment(lib, "d3d9.lib")
|
||||
#pragma comment(lib, "d3dx9.lib")
|
||||
|
||||
|
||||
ILimage* MakeD3D9Compliant(IDirect3DDevice9 *Device, D3DFORMAT *DestFormat);
|
||||
ILenum GetD3D9Compat(ILenum Format);
|
||||
//D3DFORMAT GetD3DFormat(ILenum Format);
|
||||
D3DFORMAT D3DGetDXTCNumDX9(ILenum DXTCFormat);
|
||||
ILenum D3DGetDXTCFormat(D3DFORMAT DXTCNum);
|
||||
ILboolean iD3D9CreateMipmaps(IDirect3DTexture9 *Texture, ILimage *Image);
|
||||
IDirect3DTexture9* iD3DMakeTexture( IDirect3DDevice9 *Device, void *Data, ILuint DLen, ILuint Width, ILuint Height, D3DFORMAT Format, D3DPOOL Pool, ILuint Levels );
|
||||
|
||||
|
||||
#define ILUT_TEXTUREFORMAT_D3D9_COUNT 7
|
||||
ILboolean FormatsDX9Checked = IL_FALSE;
|
||||
ILboolean FormatsDX9supported[ILUT_TEXTUREFORMAT_D3D9_COUNT] =
|
||||
{ IL_FALSE, IL_FALSE, IL_FALSE, IL_FALSE, IL_FALSE, IL_FALSE, IL_FALSE };
|
||||
D3DFORMAT FormatsDX9[ILUT_TEXTUREFORMAT_D3D9_COUNT] =
|
||||
{ D3DFMT_R8G8B8, D3DFMT_A8R8G8B8, D3DFMT_L8, D3DFMT_DXT1, D3DFMT_DXT3, D3DFMT_DXT5, D3DFMT_A16B16G16R16F};
|
||||
|
||||
|
||||
ILboolean ilutD3D9Init()
|
||||
{
|
||||
|
||||
return IL_TRUE;
|
||||
}
|
||||
|
||||
|
||||
void CheckFormatsDX9(IDirect3DDevice9 *Device)
|
||||
{
|
||||
D3DDISPLAYMODE DispMode;
|
||||
HRESULT hr;
|
||||
IDirect3D9 *TestD3D9;
|
||||
ILuint i;
|
||||
|
||||
IDirect3DDevice9_GetDirect3D(Device, (IDirect3D9**)&TestD3D9);
|
||||
IDirect3DDevice9_GetDisplayMode(Device, 0, &DispMode);
|
||||
|
||||
for (i = 0; i < ILUT_TEXTUREFORMAT_D3D9_COUNT; i++) {
|
||||
hr = IDirect3D9_CheckDeviceFormat(TestD3D9, D3DADAPTER_DEFAULT,
|
||||
D3DDEVTYPE_HAL, DispMode.Format, 0, D3DRTYPE_TEXTURE, FormatsDX9[i]);
|
||||
FormatsDX9supported[i] = (ILboolean)SUCCEEDED(hr);
|
||||
}
|
||||
|
||||
IDirect3D9_Release(TestD3D9);
|
||||
FormatsDX9Checked = IL_TRUE;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
#ifndef _WIN32_WCE
|
||||
ILboolean ILAPIENTRY ilutD3D9TexFromFile(IDirect3DDevice9 *Device, ILconst_string FileName, IDirect3DTexture9 **Texture)
|
||||
{
|
||||
iBindImageTemp();
|
||||
if (!ilLoadImage(FileName))
|
||||
return IL_FALSE;
|
||||
|
||||
*Texture = ilutD3D9Texture(Device);
|
||||
|
||||
return IL_TRUE;
|
||||
}
|
||||
#endif//_WIN32_WCE
|
||||
|
||||
#ifndef _WIN32_WCE
|
||||
ILboolean ILAPIENTRY ilutD3D9CubeTexFromFile(IDirect3DDevice9 *Device,
|
||||
ILconst_string FileName, IDirect3DCubeTexture9 **Texture)
|
||||
{
|
||||
iBindImageTemp();
|
||||
if (!ilLoadImage(FileName))
|
||||
return IL_FALSE;
|
||||
|
||||
*Texture = ilutD3D9CubeTexture(Device);
|
||||
|
||||
return IL_TRUE;
|
||||
}
|
||||
|
||||
#endif//_WIN32_WCE
|
||||
ILboolean ILAPIENTRY ilutD3D9CubeTexFromFileInMemory(IDirect3DDevice9 *Device,
|
||||
void *Lump, ILuint Size, IDirect3DCubeTexture9 **Texture)
|
||||
{
|
||||
iBindImageTemp();
|
||||
if( !ilLoadL(IL_TYPE_UNKNOWN, Lump, Size) )
|
||||
return IL_FALSE;
|
||||
|
||||
*Texture = ilutD3D9CubeTexture(Device);
|
||||
|
||||
return IL_TRUE;
|
||||
}
|
||||
|
||||
ILboolean ILAPIENTRY ilutD3D9CubeTexFromResource(IDirect3DDevice9 *Device,
|
||||
HMODULE SrcModule, ILconst_string SrcResource, IDirect3DCubeTexture9 **Texture)
|
||||
{
|
||||
HRSRC Resource;
|
||||
ILubyte *Data;
|
||||
|
||||
iBindImageTemp();
|
||||
|
||||
Resource = (HRSRC)LoadResource(SrcModule, FindResource(SrcModule, SrcResource, RT_BITMAP));
|
||||
Data = (ILubyte*)LockResource(Resource);
|
||||
if (!ilLoadL(IL_TYPE_UNKNOWN, Data, SizeofResource(SrcModule, FindResource(SrcModule, SrcResource, RT_BITMAP))))
|
||||
return IL_FALSE;
|
||||
|
||||
*Texture = ilutD3D9CubeTexture(Device);
|
||||
|
||||
return IL_TRUE;
|
||||
}
|
||||
|
||||
ILboolean ILAPIENTRY ilutD3D9CubeTexFromFileHandle(IDirect3DDevice9 *Device,
|
||||
ILHANDLE File, IDirect3DCubeTexture9 **Texture)
|
||||
{
|
||||
iBindImageTemp();
|
||||
if( !ilLoadF(IL_TYPE_UNKNOWN, File) )
|
||||
return IL_FALSE;
|
||||
|
||||
*Texture = ilutD3D9CubeTexture(Device);
|
||||
|
||||
return IL_TRUE;
|
||||
}
|
||||
|
||||
D3DCUBEMAP_FACES iToD3D9Cube(ILuint cube)
|
||||
{
|
||||
switch (cube)
|
||||
{
|
||||
case IL_CUBEMAP_POSITIVEX:
|
||||
return D3DCUBEMAP_FACE_POSITIVE_X;
|
||||
case IL_CUBEMAP_NEGATIVEX:
|
||||
return D3DCUBEMAP_FACE_NEGATIVE_X;
|
||||
case IL_CUBEMAP_POSITIVEY:
|
||||
return D3DCUBEMAP_FACE_POSITIVE_Y;
|
||||
case IL_CUBEMAP_NEGATIVEY:
|
||||
return D3DCUBEMAP_FACE_NEGATIVE_Y;
|
||||
case IL_CUBEMAP_POSITIVEZ:
|
||||
return D3DCUBEMAP_FACE_POSITIVE_Z;
|
||||
case IL_CUBEMAP_NEGATIVEZ:
|
||||
return D3DCUBEMAP_FACE_NEGATIVE_Z;
|
||||
default:
|
||||
return D3DCUBEMAP_FACE_POSITIVE_X; //???
|
||||
}
|
||||
}
|
||||
|
||||
IDirect3DCubeTexture9* ILAPIENTRY ilutD3D9CubeTexture(IDirect3DDevice9 *Device)
|
||||
{
|
||||
IDirect3DCubeTexture9 *Texture;
|
||||
D3DLOCKED_RECT Box;
|
||||
D3DFORMAT Format;
|
||||
ILimage *StartImage;
|
||||
ILimage *Image;
|
||||
int i;
|
||||
Texture=NULL;
|
||||
Image=NULL;
|
||||
ilutCurImage = ilGetCurImage();
|
||||
if (ilutCurImage == NULL) {
|
||||
ilSetError(ILUT_ILLEGAL_OPERATION);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (!FormatsDX9Checked)
|
||||
CheckFormatsDX9(Device);
|
||||
|
||||
Image = MakeD3D9Compliant(Device, &Format);
|
||||
if (Image == NULL) {
|
||||
if (Image != ilutCurImage)
|
||||
ilCloseImage(Image);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
StartImage = ilutCurImage;
|
||||
if (FAILED(IDirect3DDevice9_CreateCubeTexture(Device, StartImage->Width,
|
||||
ilutGetInteger(ILUT_D3D_MIPLEVELS),0,Format, (D3DPOOL)ilutGetInteger(ILUT_D3D_POOL), &Texture, NULL)))
|
||||
return NULL;
|
||||
for (i = 0; i < CUBEMAP_SIDES; i++) {
|
||||
if (ilutCurImage==NULL || ilutCurImage->CubeFlags == 0) {
|
||||
SAFE_RELEASE(Texture)
|
||||
return NULL;
|
||||
}
|
||||
Image = ilutCurImage;
|
||||
|
||||
Image = MakeD3D9Compliant(Device, &Format);
|
||||
if( Image == NULL ) {
|
||||
SAFE_RELEASE(Texture)
|
||||
return NULL;
|
||||
}
|
||||
if( FAILED(IDirect3DCubeTexture9_LockRect(Texture,iToD3D9Cube(Image->CubeFlags), 0, &Box, NULL, /*D3DLOCK_DISCARD*/0))) {
|
||||
SAFE_RELEASE(Texture)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
memcpy(Box.pBits, Image->Data, Image->SizeOfData);
|
||||
if (IDirect3DCubeTexture9_UnlockRect(Texture,iToD3D9Cube(Image->CubeFlags), 0) != D3D_OK) {
|
||||
SAFE_RELEASE(Texture)
|
||||
return IL_FALSE;
|
||||
}
|
||||
ilutCurImage=ilutCurImage->Faces;
|
||||
}
|
||||
ilutCurImage = StartImage;
|
||||
|
||||
// We don't want to have mipmaps for such a large image.
|
||||
//if (Image != ilutCurImage)
|
||||
// ilCloseImage(Image);
|
||||
|
||||
return Texture;
|
||||
}
|
||||
|
||||
#ifndef _WIN32_WCE
|
||||
ILboolean ILAPIENTRY ilutD3D9VolTexFromFile(IDirect3DDevice9 *Device, ILconst_string FileName, IDirect3DVolumeTexture9 **Texture) {
|
||||
iBindImageTemp();
|
||||
if (!ilLoadImage(FileName))
|
||||
return IL_FALSE;
|
||||
|
||||
*Texture = ilutD3D9VolumeTexture(Device);
|
||||
|
||||
return IL_TRUE;
|
||||
}
|
||||
#endif//_WIN32_WCE
|
||||
|
||||
|
||||
ILboolean ILAPIENTRY ilutD3D9TexFromFileInMemory(IDirect3DDevice9 *Device, void *Lump, ILuint Size, IDirect3DTexture9 **Texture)
|
||||
{
|
||||
iBindImageTemp();
|
||||
if (!ilLoadL(IL_TYPE_UNKNOWN, Lump, Size))
|
||||
return IL_FALSE;
|
||||
|
||||
*Texture = ilutD3D9Texture(Device);
|
||||
|
||||
return IL_TRUE;
|
||||
}
|
||||
|
||||
|
||||
ILboolean ILAPIENTRY ilutD3D9VolTexFromFileInMemory(IDirect3DDevice9 *Device, void *Lump, ILuint Size, IDirect3DVolumeTexture9 **Texture)
|
||||
{
|
||||
iBindImageTemp();
|
||||
if (!ilLoadL(IL_TYPE_UNKNOWN, Lump, Size))
|
||||
return IL_FALSE;
|
||||
|
||||
*Texture = ilutD3D9VolumeTexture(Device);
|
||||
|
||||
return IL_TRUE;
|
||||
}
|
||||
|
||||
|
||||
ILboolean ILAPIENTRY ilutD3D9TexFromResource(IDirect3DDevice9 *Device, HMODULE SrcModule, ILconst_string SrcResource, IDirect3DTexture9 **Texture)
|
||||
{
|
||||
HRSRC Resource;
|
||||
ILubyte *Data;
|
||||
|
||||
iBindImageTemp();
|
||||
|
||||
Resource = (HRSRC)LoadResource(SrcModule, FindResource(SrcModule, SrcResource, RT_BITMAP));
|
||||
Data = (ILubyte*)LockResource(Resource);
|
||||
if (!ilLoadL(IL_TYPE_UNKNOWN, Data, SizeofResource(SrcModule, FindResource(SrcModule, SrcResource, RT_BITMAP))))
|
||||
return IL_FALSE;
|
||||
|
||||
*Texture = ilutD3D9Texture(Device);
|
||||
|
||||
return IL_TRUE;
|
||||
}
|
||||
|
||||
|
||||
ILboolean ILAPIENTRY ilutD3D9VolTexFromResource(IDirect3DDevice9 *Device, HMODULE SrcModule, ILconst_string SrcResource, IDirect3DVolumeTexture9 **Texture)
|
||||
{
|
||||
HRSRC Resource;
|
||||
ILubyte *Data;
|
||||
|
||||
iBindImageTemp();
|
||||
|
||||
Resource = (HRSRC)LoadResource(SrcModule, FindResource(SrcModule, SrcResource, RT_BITMAP));
|
||||
Data = (ILubyte*)LockResource(Resource);
|
||||
if (!ilLoadL(IL_TYPE_UNKNOWN, Data, SizeofResource(SrcModule, FindResource(SrcModule, SrcResource, RT_BITMAP))))
|
||||
return IL_FALSE;
|
||||
|
||||
*Texture = ilutD3D9VolumeTexture(Device);
|
||||
|
||||
return IL_TRUE;
|
||||
}
|
||||
|
||||
|
||||
ILboolean ILAPIENTRY ilutD3D9TexFromFileHandle(IDirect3DDevice9 *Device, ILHANDLE File, IDirect3DTexture9 **Texture)
|
||||
{
|
||||
iBindImageTemp();
|
||||
if (!ilLoadF(IL_TYPE_UNKNOWN, File))
|
||||
return IL_FALSE;
|
||||
|
||||
*Texture = ilutD3D9Texture(Device);
|
||||
|
||||
return IL_TRUE;
|
||||
}
|
||||
|
||||
|
||||
ILboolean ILAPIENTRY ilutD3D9VolTexFromFileHandle(IDirect3DDevice9 *Device, ILHANDLE File, IDirect3DVolumeTexture9 **Texture)
|
||||
{
|
||||
iBindImageTemp();
|
||||
if (!ilLoadF(IL_TYPE_UNKNOWN, File))
|
||||
return IL_FALSE;
|
||||
|
||||
*Texture = ilutD3D9VolumeTexture(Device);
|
||||
|
||||
return IL_TRUE;
|
||||
}
|
||||
|
||||
|
||||
D3DFORMAT D3DGetDXTCNumDX9(ILenum DXTCFormat)
|
||||
{
|
||||
switch (DXTCFormat)
|
||||
{
|
||||
case IL_DXT1:
|
||||
return D3DFMT_DXT1;
|
||||
case IL_DXT3:
|
||||
return D3DFMT_DXT3;
|
||||
case IL_DXT5:
|
||||
return D3DFMT_DXT5;
|
||||
}
|
||||
|
||||
return D3DFMT_UNKNOWN;
|
||||
}
|
||||
|
||||
|
||||
ILenum D3DGetDXTCFormat(D3DFORMAT DXTCNum)
|
||||
{
|
||||
switch (DXTCNum)
|
||||
{
|
||||
case D3DFMT_DXT1:
|
||||
return IL_DXT1;
|
||||
case D3DFMT_DXT3:
|
||||
return IL_DXT3;
|
||||
case D3DFMT_DXT5:
|
||||
return IL_DXT5;
|
||||
}
|
||||
|
||||
return D3DFMT_UNKNOWN;
|
||||
}
|
||||
|
||||
|
||||
IDirect3DTexture9* iD3DMakeTexture( IDirect3DDevice9 *Device, void *Data, ILuint DLen, ILuint Width, ILuint Height, D3DFORMAT Format, D3DPOOL Pool, ILuint Levels )
|
||||
{
|
||||
IDirect3DTexture9 *Texture;
|
||||
D3DLOCKED_RECT Rect;
|
||||
|
||||
if (FAILED(IDirect3DDevice9_CreateTexture(Device, Width, Height, Levels,
|
||||
0, Format, Pool, &Texture, NULL)))
|
||||
return NULL;
|
||||
if (FAILED(IDirect3DTexture9_LockRect(Texture, 0, &Rect, NULL, 0)))
|
||||
return NULL;
|
||||
memcpy(Rect.pBits, Data, DLen);
|
||||
IDirect3DTexture9_UnlockRect(Texture, 0);
|
||||
|
||||
return Texture;
|
||||
}
|
||||
|
||||
IDirect3DTexture9* ILAPIENTRY ilutD3D9Texture(IDirect3DDevice9 *Device)
|
||||
{
|
||||
IDirect3DTexture9 *Texture;
|
||||
// D3DLOCKED_RECT Rect;
|
||||
D3DFORMAT Format;
|
||||
ILimage *Image;
|
||||
ILenum DXTCFormat;
|
||||
ILuint Size;
|
||||
ILubyte *Buffer;
|
||||
|
||||
Image = ilutCurImage = ilGetCurImage();
|
||||
if (ilutCurImage == NULL) {
|
||||
ilSetError(ILUT_ILLEGAL_OPERATION);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (!FormatsDX9Checked)
|
||||
CheckFormatsDX9(Device);
|
||||
|
||||
if (ilutGetBoolean(ILUT_D3D_USE_DXTC) && FormatsDX9supported[3] && FormatsDX9supported[4] && FormatsDX9supported[5]) {
|
||||
if (ilutCurImage->DxtcData != NULL && ilutCurImage->DxtcSize != 0) {
|
||||
ILuint dxtcFormat = ilutGetInteger(ILUT_DXTC_FORMAT);
|
||||
Format = D3DGetDXTCNumDX9(ilutCurImage->DxtcFormat);
|
||||
ilutSetInteger(ILUT_DXTC_FORMAT, ilutCurImage->DxtcFormat);
|
||||
|
||||
Texture = iD3DMakeTexture(Device, ilutCurImage->DxtcData, ilutCurImage->DxtcSize,
|
||||
ilutCurImage->Width, ilutCurImage->Height, Format,
|
||||
(D3DPOOL)(ilutGetInteger(ILUT_D3D_POOL) == D3DPOOL_DEFAULT ? D3DPOOL_SYSTEMMEM : ilutGetInteger(ILUT_D3D_POOL)), ilutGetInteger(ILUT_D3D_MIPLEVELS));
|
||||
if (!Texture)
|
||||
return NULL;
|
||||
iD3D9CreateMipmaps(Texture, Image);
|
||||
if (ilutGetInteger(ILUT_D3D_POOL) == D3DPOOL_DEFAULT) {
|
||||
IDirect3DTexture9 *SysTex = Texture;
|
||||
// copy texture to device memory
|
||||
if (FAILED(IDirect3DDevice9_CreateTexture(Device, ilutCurImage->Width,
|
||||
ilutCurImage->Height, ilutGetInteger(ILUT_D3D_MIPLEVELS), 0, Format,
|
||||
D3DPOOL_DEFAULT, &Texture, NULL))) {
|
||||
IDirect3DTexture9_Release(SysTex);
|
||||
return NULL;
|
||||
}
|
||||
if (FAILED(IDirect3DDevice9_UpdateTexture(Device, (LPDIRECT3DBASETEXTURE9)SysTex, (LPDIRECT3DBASETEXTURE9)Texture))) {
|
||||
IDirect3DTexture9_Release(SysTex);
|
||||
return NULL;
|
||||
}
|
||||
IDirect3DTexture9_Release(SysTex);
|
||||
}
|
||||
ilutSetInteger(ILUT_DXTC_FORMAT, dxtcFormat);
|
||||
|
||||
goto success;
|
||||
}
|
||||
|
||||
if (ilutGetBoolean(ILUT_D3D_GEN_DXTC)) {
|
||||
DXTCFormat = ilutGetInteger(ILUT_DXTC_FORMAT);
|
||||
|
||||
/*
|
||||
Image = MakeD3D9Compliant(Device, &Format);
|
||||
if (Image == NULL) {
|
||||
if (Image != ilutCurImage)
|
||||
ilCloseImage(Image);
|
||||
return NULL;
|
||||
}
|
||||
*/
|
||||
|
||||
Size = ilGetDXTCData(NULL, 0, DXTCFormat);
|
||||
if (Size != 0) {
|
||||
Buffer = (ILubyte*)ialloc(Size);
|
||||
if (Buffer == NULL)
|
||||
return NULL;
|
||||
Size = ilGetDXTCData(Buffer, Size, DXTCFormat);
|
||||
if (Size == 0) {
|
||||
ifree(Buffer);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Format = D3DGetDXTCNumDX9(DXTCFormat);
|
||||
Texture = iD3DMakeTexture(Device, Buffer, Size,
|
||||
ilutCurImage->Width, ilutCurImage->Height, Format,
|
||||
(D3DPOOL)(ilutGetInteger(ILUT_D3D_POOL) == D3DPOOL_DEFAULT ? D3DPOOL_SYSTEMMEM : ilutGetInteger(ILUT_D3D_POOL)), ilutGetInteger(ILUT_D3D_MIPLEVELS));
|
||||
if (!Texture)
|
||||
return NULL;
|
||||
iD3D9CreateMipmaps(Texture, Image);
|
||||
if (ilutGetInteger(ILUT_D3D_POOL) == D3DPOOL_DEFAULT) {
|
||||
IDirect3DTexture9 *SysTex = Texture;
|
||||
|
||||
if (FAILED(IDirect3DDevice9_CreateTexture(Device, ilutCurImage->Width,
|
||||
ilutCurImage->Height, ilutGetInteger(ILUT_D3D_MIPLEVELS), 0, Format,
|
||||
D3DPOOL_DEFAULT, &Texture, NULL))) {
|
||||
IDirect3DTexture9_Release(SysTex);
|
||||
return NULL;
|
||||
}
|
||||
if (FAILED(IDirect3DDevice9_UpdateTexture(Device, (LPDIRECT3DBASETEXTURE9)SysTex, (LPDIRECT3DBASETEXTURE9)Texture))) {
|
||||
IDirect3DTexture9_Release(SysTex);
|
||||
return NULL;
|
||||
}
|
||||
IDirect3DTexture9_Release(SysTex);
|
||||
}
|
||||
|
||||
goto success;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Image = MakeD3D9Compliant(Device, &Format);
|
||||
if (Image == NULL) {
|
||||
if (Image != ilutCurImage)
|
||||
ilCloseImage(Image);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Texture = iD3DMakeTexture(Device, Image->Data, Image->SizeOfPlane,
|
||||
Image->Width, Image->Height, Format,
|
||||
(D3DPOOL)(ilutGetInteger(ILUT_D3D_POOL) == D3DPOOL_DEFAULT ? D3DPOOL_SYSTEMMEM : ilutGetInteger(ILUT_D3D_POOL)), ilutGetInteger(ILUT_D3D_MIPLEVELS));
|
||||
if (!Texture)
|
||||
return NULL;
|
||||
iD3D9CreateMipmaps(Texture, Image);
|
||||
if (ilutGetInteger(ILUT_D3D_POOL) == D3DPOOL_DEFAULT) {
|
||||
IDirect3DTexture9 *SysTex = Texture;
|
||||
// create texture in system memory
|
||||
if (FAILED(IDirect3DDevice9_CreateTexture(Device, Image->Width,
|
||||
Image->Height, ilutGetInteger(ILUT_D3D_MIPLEVELS), 0, Format,
|
||||
(D3DPOOL)ilutGetInteger(ILUT_D3D_POOL), &Texture, NULL))) {
|
||||
IDirect3DTexture9_Release(SysTex);
|
||||
return NULL;
|
||||
}
|
||||
if (FAILED(IDirect3DDevice9_UpdateTexture(Device, (LPDIRECT3DBASETEXTURE9)SysTex, (LPDIRECT3DBASETEXTURE9)Texture))) {
|
||||
IDirect3DTexture9_Release(SysTex);
|
||||
return NULL;
|
||||
}
|
||||
IDirect3DTexture9_Release(SysTex);
|
||||
}
|
||||
// if (Image != ilutCurImage)
|
||||
// ilCloseImage(Image);
|
||||
|
||||
success:
|
||||
|
||||
if (Image != ilutCurImage)
|
||||
ilCloseImage(Image);
|
||||
|
||||
return Texture;
|
||||
}
|
||||
|
||||
|
||||
IDirect3DVolumeTexture9* ILAPIENTRY ilutD3D9VolumeTexture(IDirect3DDevice9 *Device)
|
||||
{
|
||||
IDirect3DVolumeTexture9 *Texture;
|
||||
D3DLOCKED_BOX Box;
|
||||
D3DFORMAT Format;
|
||||
ILimage *Image;
|
||||
|
||||
ilutCurImage = ilGetCurImage();
|
||||
if (ilutCurImage == NULL) {
|
||||
ilSetError(ILUT_ILLEGAL_OPERATION);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (!FormatsDX9Checked)
|
||||
CheckFormatsDX9(Device);
|
||||
|
||||
Image = MakeD3D9Compliant(Device, &Format);
|
||||
if (Image == NULL)
|
||||
return NULL;
|
||||
if (FAILED(IDirect3DDevice9_CreateVolumeTexture(Device, Image->Width, Image->Height,
|
||||
Image->Depth, 1, 0, Format, (D3DPOOL)ilutGetInteger(ILUT_D3D_POOL), &Texture, NULL)))
|
||||
return NULL;
|
||||
if (FAILED(IDirect3DVolumeTexture9_LockBox(Texture, 0, &Box, NULL, 0)))
|
||||
return NULL;
|
||||
|
||||
memcpy(Box.pBits, Image->Data, Image->SizeOfData);
|
||||
if (!IDirect3DVolumeTexture9_UnlockBox(Texture, 0))
|
||||
return IL_FALSE;
|
||||
|
||||
// We don't want to have mipmaps for such a large image.
|
||||
|
||||
if (Image != ilutCurImage)
|
||||
ilCloseImage(Image);
|
||||
|
||||
return Texture;
|
||||
}
|
||||
|
||||
|
||||
|
||||
ILimage *MakeD3D9Compliant(IDirect3DDevice9 *Device, D3DFORMAT *DestFormat)
|
||||
{
|
||||
ILuint color;
|
||||
ILimage *Converted, *Scaled, *CurImage;
|
||||
ILuint nConversionType, ilutFormat;
|
||||
ILboolean bForceIntegerFormat = ilutGetBoolean(ILUT_FORCE_INTEGER_FORMAT);
|
||||
|
||||
Device;
|
||||
ilutFormat = ilutCurImage->Format;
|
||||
nConversionType = ilutCurImage->Type;
|
||||
|
||||
if (!ilutCurImage)
|
||||
return NULL;
|
||||
|
||||
switch (ilutCurImage->Type)
|
||||
{
|
||||
case IL_UNSIGNED_BYTE:
|
||||
case IL_BYTE:
|
||||
case IL_SHORT:
|
||||
case IL_UNSIGNED_SHORT:
|
||||
case IL_INT:
|
||||
case IL_UNSIGNED_INT:
|
||||
*DestFormat = D3DFMT_A8R8G8B8;
|
||||
nConversionType = IL_UNSIGNED_BYTE;
|
||||
ilutFormat = IL_BGRA;
|
||||
break;
|
||||
case IL_FLOAT:
|
||||
case IL_DOUBLE:
|
||||
case IL_HALF:
|
||||
if (bForceIntegerFormat || (!FormatsDX9supported[6]))
|
||||
{
|
||||
*DestFormat = D3DFMT_A8R8G8B8;
|
||||
nConversionType = IL_UNSIGNED_BYTE;
|
||||
ilutFormat = IL_BGRA;
|
||||
}
|
||||
else
|
||||
{
|
||||
*DestFormat = D3DFMT_A16B16G16R16F;
|
||||
nConversionType = IL_HALF;
|
||||
ilutFormat = IL_RGBA;
|
||||
|
||||
//
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
// Images must be in BGRA format.
|
||||
if (((ilutCurImage->Format != ilutFormat))
|
||||
|| (ilutCurImage->Type != nConversionType))
|
||||
{
|
||||
Converted = iConvertImage(ilutCurImage, ilutFormat, nConversionType);
|
||||
if (Converted == NULL)
|
||||
return NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
Converted = ilutCurImage;
|
||||
}
|
||||
|
||||
// perform alpha key on images if requested
|
||||
color=ilutGetInteger(ILUT_D3D_ALPHA_KEY_COLOR);
|
||||
if((color>=0) && (nConversionType == IL_UNSIGNED_BYTE))
|
||||
{
|
||||
ILubyte *data;
|
||||
ILubyte *maxdata;
|
||||
ILuint t;
|
||||
|
||||
data=(Converted->Data);
|
||||
maxdata=(Converted->Data+Converted->SizeOfData);
|
||||
while(data<maxdata)
|
||||
{
|
||||
t= (data[2]<<16) + (data[1]<<8) + (data[0]) ;
|
||||
|
||||
if((t&0x00ffffff)==(color&0x00ffffff))
|
||||
{
|
||||
data[0]=0;
|
||||
data[1]=0;
|
||||
data[2]=0;
|
||||
data[3]=0;
|
||||
}
|
||||
data+=4;
|
||||
}
|
||||
}
|
||||
|
||||
// Images must have their origin in the upper left.
|
||||
if (Converted->Origin != IL_ORIGIN_UPPER_LEFT)
|
||||
{
|
||||
CurImage = ilutCurImage;
|
||||
ilSetCurImage(Converted);
|
||||
iluFlipImage();
|
||||
ilSetCurImage(CurImage);
|
||||
}
|
||||
|
||||
// Images must have powers-of-2 dimensions.
|
||||
if (ilNextPower2(ilutCurImage->Width) != ilutCurImage->Width ||
|
||||
ilNextPower2(ilutCurImage->Height) != ilutCurImage->Height ||
|
||||
ilNextPower2(ilutCurImage->Depth) != ilutCurImage->Depth) {
|
||||
Scaled = iluScale_(Converted, ilNextPower2(ilutCurImage->Width),
|
||||
ilNextPower2(ilutCurImage->Height), ilNextPower2(ilutCurImage->Depth));
|
||||
if (Converted != ilutCurImage) {
|
||||
ilCloseImage(Converted);
|
||||
}
|
||||
if (Scaled == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
Converted = Scaled;
|
||||
}
|
||||
|
||||
return Converted;
|
||||
}
|
||||
|
||||
|
||||
ILboolean iD3D9CreateMipmaps(IDirect3DTexture9 *Texture, ILimage *Image)
|
||||
{
|
||||
D3DLOCKED_RECT Rect;
|
||||
D3DSURFACE_DESC Desc;
|
||||
ILuint NumMips, srcMips, Width, Height, i;
|
||||
ILimage *CurImage, *MipImage, *Temp;
|
||||
ILenum DXTCFormat;
|
||||
ILuint Size;
|
||||
ILubyte *Buffer;
|
||||
ILboolean useDXTC = IL_FALSE;
|
||||
|
||||
NumMips = IDirect3DTexture9_GetLevelCount(Texture);
|
||||
Width = Image->Width;
|
||||
Height = Image->Height;
|
||||
|
||||
if (NumMips == 1)
|
||||
return IL_TRUE;
|
||||
|
||||
CurImage = ilGetCurImage();
|
||||
MipImage = Image;
|
||||
iGetIntegervImage(MipImage, IL_NUM_MIPMAPS, (ILint*) &srcMips);
|
||||
if ( srcMips != NumMips-1) {
|
||||
MipImage = ilCopyImage_(Image);
|
||||
ilSetCurImage(MipImage);
|
||||
if (!iluBuildMipmaps()) {
|
||||
ilCloseImage(MipImage);
|
||||
ilSetCurImage(CurImage);
|
||||
return IL_FALSE;
|
||||
}
|
||||
}
|
||||
// ilSetCurImage(CurImage);
|
||||
Temp = MipImage->Mipmaps;
|
||||
|
||||
if (ilutGetBoolean(ILUT_D3D_USE_DXTC) && FormatsDX9supported[3] && FormatsDX9supported[4] && FormatsDX9supported[5])
|
||||
useDXTC = IL_TRUE;
|
||||
|
||||
// Counts the base texture as 1.
|
||||
for (i = 1; i < NumMips && Temp != NULL; i++) {
|
||||
ilSetCurImage(Temp);
|
||||
if (FAILED(IDirect3DTexture9_LockRect(Texture, i, &Rect, NULL, 0)))
|
||||
return IL_FALSE;
|
||||
|
||||
Width = IL_MAX(1, Width / 2);
|
||||
Height = IL_MAX(1, Height / 2);
|
||||
|
||||
IDirect3DTexture9_GetLevelDesc(Texture, i, &Desc);
|
||||
if (Desc.Width != Width || Desc.Height != Height) {
|
||||
IDirect3DTexture9_UnlockRect(Texture, i);
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
if (useDXTC) {
|
||||
if (Temp->DxtcData != NULL && Temp->DxtcSize != 0) {
|
||||
memcpy(Rect.pBits, Temp->DxtcData, Temp->DxtcSize);
|
||||
} else if (ilutGetBoolean(ILUT_D3D_GEN_DXTC)) {
|
||||
DXTCFormat = ilutGetInteger(ILUT_DXTC_FORMAT);
|
||||
|
||||
Size = ilGetDXTCData(NULL, 0, DXTCFormat);
|
||||
if (Size != 0) {
|
||||
Buffer = (ILubyte*)ialloc(Size);
|
||||
if (Buffer == NULL) {
|
||||
IDirect3DTexture9_UnlockRect(Texture, i);
|
||||
return IL_FALSE;
|
||||
}
|
||||
Size = ilGetDXTCData(Buffer, Size, DXTCFormat);
|
||||
if (Size == 0) {
|
||||
ifree(Buffer);
|
||||
IDirect3DTexture9_UnlockRect(Texture, i);
|
||||
return IL_FALSE;
|
||||
}
|
||||
memcpy(Rect.pBits, Buffer, Size);
|
||||
} else {
|
||||
IDirect3DTexture9_UnlockRect(Texture, i);
|
||||
return IL_FALSE;
|
||||
}
|
||||
} else {
|
||||
IDirect3DTexture9_UnlockRect(Texture, i);
|
||||
return IL_FALSE;
|
||||
}
|
||||
} else
|
||||
memcpy(Rect.pBits, Temp->Data, Temp->SizeOfData);
|
||||
|
||||
IDirect3DTexture9_UnlockRect(Texture, i);
|
||||
Temp = Temp->Mipmaps;
|
||||
}
|
||||
|
||||
if (MipImage != Image)
|
||||
ilCloseImage(MipImage);
|
||||
ilSetCurImage(CurImage);
|
||||
|
||||
return IL_TRUE;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// SaveSurfaceToFile.cpp
|
||||
//
|
||||
// Copyright (c) 2001 David Galeano
|
||||
//
|
||||
// Permission to use, copy, modify and distribute this software
|
||||
// is hereby granted, provided that both the copyright notice and
|
||||
// this permission notice appear in all copies of the software,
|
||||
// derivative works or modified versions.
|
||||
//
|
||||
// THE AUTHOR ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
|
||||
// CONDITION AND DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY DAMAGES
|
||||
// WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
|
||||
//
|
||||
|
||||
ILAPI ILboolean ILAPIENTRY ilutD3D9LoadSurface(IDirect3DDevice9 *Device, IDirect3DSurface9 *Surface)
|
||||
{
|
||||
HRESULT hr;
|
||||
D3DSURFACE_DESC d3dsd;
|
||||
LPDIRECT3DSURFACE9 SurfaceCopy;
|
||||
D3DLOCKED_RECT d3dLR;
|
||||
ILboolean bHasAlpha;
|
||||
ILubyte *Image, *ImageAux, *Data;
|
||||
ILuint y, x;
|
||||
ILushort dwColor;
|
||||
|
||||
IDirect3DSurface9_GetDesc(Surface, &d3dsd);
|
||||
|
||||
bHasAlpha = (ILboolean)(d3dsd.Format == D3DFMT_A8R8G8B8 || d3dsd.Format == D3DFMT_A1R5G5B5);
|
||||
|
||||
if (bHasAlpha) {
|
||||
if (!ilTexImage(d3dsd.Width, d3dsd.Height, 1, 4, IL_BGRA, IL_UNSIGNED_BYTE, NULL)) {
|
||||
return IL_FALSE;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (!ilTexImage(d3dsd.Width, d3dsd.Height, 1, 3, IL_BGR, IL_UNSIGNED_BYTE, NULL)) {
|
||||
return IL_FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
hr = IDirect3DDevice9_CreateOffscreenPlainSurface(Device, d3dsd.Width, d3dsd.Height, d3dsd.Format, D3DPOOL_SCRATCH, &SurfaceCopy, NULL);
|
||||
if (FAILED(hr)) {
|
||||
ilSetError(ILUT_ILLEGAL_OPERATION);
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
hr = IDirect3DDevice9_StretchRect(Device, Surface, NULL, SurfaceCopy, NULL, D3DTEXF_NONE);
|
||||
if (FAILED(hr)) {
|
||||
ilSetError(ILUT_ILLEGAL_OPERATION);
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
hr = IDirect3DSurface9_LockRect(SurfaceCopy, &d3dLR, NULL, D3DLOCK_NO_DIRTY_UPDATE | D3DLOCK_NOSYSLOCK | D3DLOCK_READONLY);
|
||||
if (FAILED(hr)) {
|
||||
IDirect3DSurface9_Release(SurfaceCopy);
|
||||
ilSetError(ILUT_ILLEGAL_OPERATION);
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
Image = (ILubyte*)d3dLR.pBits;
|
||||
Data = ilutCurImage->Data;
|
||||
|
||||
for (y = 0; y < d3dsd.Height; y++) {
|
||||
if (d3dsd.Format == D3DFMT_X8R8G8B8) {
|
||||
ImageAux = Image;
|
||||
for (x = 0; x < d3dsd.Width; x++) {
|
||||
Data[0] = ImageAux[0];
|
||||
Data[1] = ImageAux[1];
|
||||
Data[2] = ImageAux[2];
|
||||
|
||||
Data += 3;
|
||||
ImageAux += 4;
|
||||
}
|
||||
}
|
||||
else if (d3dsd.Format == D3DFMT_A8R8G8B8) {
|
||||
memcpy(Data, Image, d3dsd.Width * 4);
|
||||
}
|
||||
else if (d3dsd.Format == D3DFMT_R5G6B5) {
|
||||
ImageAux = Image;
|
||||
for (x = 0; x < d3dsd.Width; x++) {
|
||||
dwColor = *((ILushort*)ImageAux);
|
||||
|
||||
Data[0] = (ILubyte)((dwColor&0x001f)<<3);
|
||||
Data[1] = (ILubyte)(((dwColor&0x7e0)>>5)<<2);
|
||||
Data[2] = (ILubyte)(((dwColor&0xf800)>>11)<<3);
|
||||
|
||||
Data += 3;
|
||||
ImageAux += 2;
|
||||
}
|
||||
}
|
||||
else if (d3dsd.Format == D3DFMT_X1R5G5B5) {
|
||||
ImageAux = Image;
|
||||
for (x = 0; x < d3dsd.Width; x++) {
|
||||
dwColor = *((ILushort*)ImageAux);
|
||||
|
||||
Data[0] = (ILubyte)((dwColor&0x001f)<<3);
|
||||
Data[1] = (ILubyte)(((dwColor&0x3e0)>>5)<<3);
|
||||
Data[2] = (ILubyte)(((dwColor&0x7c00)>>10)<<3);
|
||||
|
||||
Data += 3;
|
||||
ImageAux += 2;
|
||||
}
|
||||
}
|
||||
else if (d3dsd.Format == D3DFMT_A1R5G5B5) {
|
||||
ImageAux = Image;
|
||||
for (x = 0; x < d3dsd.Width; x++) {
|
||||
dwColor = *((ILushort*)ImageAux);
|
||||
|
||||
Data[0] = (ILubyte)((dwColor&0x001f)<<3);
|
||||
Data[1] = (ILubyte)(((dwColor&0x3e0)>>5)<<3);
|
||||
Data[2] = (ILubyte)(((dwColor&0x7c00)>>10)<<3);
|
||||
Data[3] = (ILubyte)(((dwColor&0x8000)>>15)*255);
|
||||
|
||||
Data += 4;
|
||||
ImageAux += 2;
|
||||
}
|
||||
}
|
||||
|
||||
Image += d3dLR.Pitch;
|
||||
}
|
||||
|
||||
IDirect3DSurface9_UnlockRect(SurfaceCopy);
|
||||
IDirect3DSurface9_Release(SurfaceCopy);
|
||||
|
||||
return IL_TRUE;
|
||||
}
|
||||
|
||||
#endif//ILUT_USE_DIRECTX9
|
||||
@@ -0,0 +1,18 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// ImageLib Utility Toolkit Sources
|
||||
// Copyright (C) 2000-2002 by Denton Woods
|
||||
// Last modified: 05/15/2002 <--Y2K Compliant! =]
|
||||
//
|
||||
// Filename: src-ILUT/src/ilut_internal.c
|
||||
//
|
||||
// Description: Internal stuff for ILUT
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
|
||||
#include "ilut_internal.h"
|
||||
|
||||
//#if !defined(__APPLE__)
|
||||
ILimage *ilutCurImage = NULL;
|
||||
//#endif
|
||||
@@ -0,0 +1,76 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// ImageLib Utility Toolkit Sources
|
||||
// Copyright (C) 2000-2002 by Denton Woods
|
||||
// Last modified: 05/28/2001 <--Y2K Compliant! =]
|
||||
//
|
||||
// Filename: src-ILUT/src/ilut_main.c
|
||||
//
|
||||
// Description: Startup functions
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
|
||||
#include "ilut_internal.h"
|
||||
|
||||
#ifdef _WIN32
|
||||
#ifndef IL_STATIC_LIB
|
||||
//#define WIN32_LEAN_AND_MEAN
|
||||
#include <windows.h>
|
||||
|
||||
|
||||
#ifdef _WIN32
|
||||
#if (defined(IL_USE_PRAGMA_LIBS))
|
||||
#if defined(_MSC_VER) || defined(__BORLANDC__)
|
||||
#pragma comment(lib, "ILU.lib")
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
BOOL APIENTRY DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
|
||||
{
|
||||
hModule; lpReserved;
|
||||
|
||||
// only initialize when attached to a new process. setup can cause errors in OpenIL
|
||||
// when called on a per thread basis
|
||||
if (ul_reason_for_call == DLL_PROCESS_ATTACH) {
|
||||
//ilutInit();
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
#endif
|
||||
|
||||
#else // Should check if gcc?
|
||||
|
||||
// Should be able to condense this...
|
||||
static void GccMain() __attribute__((constructor));
|
||||
static void GccMain()
|
||||
{
|
||||
//ilutInit();
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
void ILAPIENTRY ilutInit()
|
||||
{
|
||||
ilutDefaultStates(); // Set states to their defaults
|
||||
// Can cause crashes if DevIL is not initialized yet
|
||||
|
||||
#ifdef ILUT_USE_OPENGL
|
||||
ilutGLInit(); // default renderer is OpenGL
|
||||
#endif
|
||||
|
||||
#ifdef ILUT_USE_DIRECTX8
|
||||
ilutD3D8Init();
|
||||
#endif
|
||||
|
||||
#ifdef ILUT_USE_DIRECTX9
|
||||
ilutD3D9Init();
|
||||
#endif
|
||||
|
||||
return;
|
||||
}
|
||||
@@ -0,0 +1,923 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// ImageLib Utility Toolkit Sources
|
||||
// Copyright (C) 2000-2002 by Denton Woods
|
||||
// Last modified: 05/25/2002 <--Y2K Compliant! =]
|
||||
//
|
||||
// Filename: src-ILUT/src/ilut_opengl.c
|
||||
//
|
||||
// Description: OpenGL functions for images
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
|
||||
#include "ilut_opengl.h"
|
||||
|
||||
#ifdef ILUT_USE_OPENGL
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#ifdef __APPLE__
|
||||
#include <OpenGL/glext.h>
|
||||
#include <dlfcn.h>
|
||||
void *aglGetProcAddress( const GLubyte *name ) {
|
||||
// deprecated code! and wasn't working
|
||||
/*NSSymbol symbol;
|
||||
char* symbolName;
|
||||
// prepend a '_' for the Unix C symbol mangling convention
|
||||
int len = strlen((const char*)name);
|
||||
symbolName = malloc(len + 2);
|
||||
memcpy(symbolName+1, (const char*)name, len );
|
||||
symbolName[0] = '_';
|
||||
symbol = NULL;
|
||||
if (NSIsSymbolNameDefined(symbolName))
|
||||
symbol = NSLookupAndBindSymbol(symbolName);
|
||||
free(symbolName);
|
||||
return symbol ? NSAddressOfSymbol(symbol) : NULL;
|
||||
*/
|
||||
// not deprecated code! and isn't working :(
|
||||
// now the address is directly known with glext.h include
|
||||
const int len = strlen((const char*)name);
|
||||
char *symbolName = calloc(len + 2,1);
|
||||
|
||||
memcpy(symbolName+1, (const char*)name, len );
|
||||
symbolName[0] = '_';
|
||||
printf("searching %s as %s ",name,symbolName);
|
||||
void *image = dlopen(NULL,RTLD_LAZY); // brutal solution
|
||||
if( image == NULL ) {
|
||||
return NULL;
|
||||
}
|
||||
return dlsym(image,symbolName);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#pragma comment(lib, "opengl32.lib")
|
||||
#pragma comment(lib, "Glu32.lib")
|
||||
// #pragma comment(lib, "freeglut.lib")
|
||||
#endif
|
||||
|
||||
#ifdef linux
|
||||
// fix for glXGetProcAddressARB
|
||||
#define GLX_GLXEXT_PROTOTYPES
|
||||
#include <GL/glx.h>
|
||||
#endif
|
||||
|
||||
//used for automatic texture target detection
|
||||
#define ILGL_TEXTURE_CUBE_MAP 0x8513
|
||||
#define ILGL_TEXTURE_BINDING_CUBE_MAP 0x8514
|
||||
#define ILGL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515
|
||||
#define ILGL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516
|
||||
#define ILGL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517
|
||||
#define ILGL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518
|
||||
#define ILGL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519
|
||||
#define ILGL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A
|
||||
#define ILGL_CLAMP_TO_EDGE 0x812F
|
||||
#define ILGL_TEXTURE_WRAP_R 0x8072
|
||||
|
||||
// Not defined in OpenGL 1.1 headers.
|
||||
#define ILGL_TEXTURE_DEPTH 0x8071
|
||||
#define ILGL_TEXTURE_3D 0x806F
|
||||
#define ILGL_MAX_3D_TEXTURE_SIZE 0x8073
|
||||
|
||||
|
||||
static ILboolean HasCubemapHardware = IL_FALSE;
|
||||
static ILboolean HasNonPowerOfTwoHardware = IL_FALSE;
|
||||
#if defined(_WIN32) || defined(_WIN64) || defined(linux) || defined(__APPLE__)
|
||||
ILGLTEXIMAGE3DARBPROC ilGLTexImage3D = NULL;
|
||||
ILGLTEXSUBIMAGE3DARBPROC ilGLTexSubImage3D = NULL;
|
||||
ILGLCOMPRESSEDTEXIMAGE2DARBPROC ilGLCompressed2D = NULL;
|
||||
ILGLCOMPRESSEDTEXIMAGE3DARBPROC ilGLCompressed3D = NULL;
|
||||
#endif
|
||||
|
||||
|
||||
// Absolutely *have* to call this if planning on using the image library with OpenGL.
|
||||
// Call this after OpenGL has initialized.
|
||||
ILboolean ilutGLInit()
|
||||
{
|
||||
ILint MaxTexW, MaxTexH, MaxTexD = 1;
|
||||
|
||||
// Should we really be setting all this ourselves? Seems too much like a glu(t) approach...
|
||||
glEnable(GL_TEXTURE_2D);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
|
||||
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
|
||||
glPixelStorei(GL_UNPACK_SKIP_ROWS, 0);
|
||||
glPixelStorei(GL_UNPACK_SKIP_PIXELS, 0);
|
||||
glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
|
||||
glPixelStorei(GL_UNPACK_SWAP_BYTES, GL_FALSE);
|
||||
glPixelStorei(GL_PACK_ALIGNMENT, 1);
|
||||
|
||||
//#ifndef GL_VERSION_1_3
|
||||
#if (defined (_WIN32) || defined(_WIN64))
|
||||
if (IsExtensionSupported("GL_ARB_texture_compression") &&
|
||||
IsExtensionSupported("GL_EXT_texture_compression_s3tc")) {
|
||||
ilGLCompressed2D = (ILGLCOMPRESSEDTEXIMAGE2DARBPROC)wglGetProcAddress("glCompressedTexImage2DARB");
|
||||
}
|
||||
if (IsExtensionSupported("GL_EXT_texture3D")) {
|
||||
ilGLTexImage3D = (ILGLTEXIMAGE3DARBPROC)wglGetProcAddress("glTexImage3D");
|
||||
ilGLTexImage3D = (ILGLTEXIMAGE3DARBPROC)wglGetProcAddress("glTexSubImage3D");
|
||||
}
|
||||
if (IsExtensionSupported("GL_ARB_texture_compression") &&
|
||||
IsExtensionSupported("GL_EXT_texture_compression_s3tc") &&
|
||||
IsExtensionSupported("GL_EXT_texture3D")) {
|
||||
ilGLCompressed3D = (ILGLCOMPRESSEDTEXIMAGE3DARBPROC)wglGetProcAddress("glCompressedTexImage3DARB");
|
||||
}
|
||||
#elif linux
|
||||
if (IsExtensionSupported("GL_ARB_texture_compression") &&
|
||||
IsExtensionSupported("GL_EXT_texture_compression_s3tc")) {
|
||||
ilGLCompressed2D = (ILGLCOMPRESSEDTEXIMAGE2DARBPROC)
|
||||
glXGetProcAddressARB((const GLubyte*)"glCompressedTexImage2DARB");
|
||||
}
|
||||
if (IsExtensionSupported("GL_EXT_texture3D")) {
|
||||
ilGLTexImage3D = (ILGLTEXIMAGE3DARBPROC)glXGetProcAddressARB((const GLubyte*)"glTexImage3D");
|
||||
}
|
||||
if (IsExtensionSupported("GL_ARB_texture_compression") &&
|
||||
IsExtensionSupported("GL_EXT_texture_compression_s3tc") &&
|
||||
IsExtensionSupported("GL_EXT_texture3D")) {
|
||||
ilGLCompressed3D = (ILGLCOMPRESSEDTEXIMAGE3DARBPROC)glXGetProcAddressARB((const GLubyte*)"glCompressedTexImage3DARB");
|
||||
}
|
||||
#elif defined(__APPLE__)
|
||||
// Mac OS X headers are OpenGL 1.4 compliant already.
|
||||
ilGLCompressed2D = glCompressedTexImage2DARB;//(ILGLCOMPRESSEDTEXIMAGE2DARBPROC)aglGetProcAddress((const GLubyte *)"glCompressedTexImage2DARB");
|
||||
ilGLTexImage3D = glTexImage3D;
|
||||
ilGLCompressed3D = glCompressedTexImage3DARB;
|
||||
#else
|
||||
return IL_FALSE; // @TODO: Find any other systems that we could be on.
|
||||
#endif
|
||||
//#else
|
||||
//#endif//GL_VERSION_1_3
|
||||
|
||||
// Use PROXY_TEXTURE_2D/3D with glTexImage2D/3D() to test more accurately...
|
||||
glGetIntegerv(GL_MAX_TEXTURE_SIZE, (GLint*)&MaxTexW);
|
||||
glGetIntegerv(GL_MAX_TEXTURE_SIZE, (GLint*)&MaxTexH);
|
||||
if (ilGLTexImage3D != NULL)
|
||||
glGetIntegerv(ILGL_MAX_3D_TEXTURE_SIZE, (GLint*)&MaxTexD);
|
||||
if (MaxTexW <= 0 || MaxTexH <= 0 || MaxTexD <= 0) {
|
||||
MaxTexW = MaxTexH = 256; // Trying this because of the VooDoo series of cards.
|
||||
MaxTexD = 1;
|
||||
}
|
||||
|
||||
ilutSetInteger(ILUT_MAXTEX_WIDTH, MaxTexW);
|
||||
ilutSetInteger(ILUT_MAXTEX_HEIGHT, MaxTexH);
|
||||
ilutSetInteger(ILUT_MAXTEX_DEPTH, MaxTexD);
|
||||
|
||||
if (IsExtensionSupported("GL_ARB_texture_cube_map"))
|
||||
HasCubemapHardware = IL_TRUE;
|
||||
if (IsExtensionSupported("GL_ARB_texture_non_power_of_two"))
|
||||
HasNonPowerOfTwoHardware = IL_TRUE;
|
||||
|
||||
return IL_TRUE;
|
||||
}
|
||||
|
||||
|
||||
// @TODO: Check what dimensions an image has and use the appropriate IL_IMAGE_XD #define!
|
||||
|
||||
GLuint ILAPIENTRY ilutGLBindTexImage()
|
||||
{
|
||||
GLuint TexID = 0, Target = GL_TEXTURE_2D;
|
||||
ILimage *Image;
|
||||
|
||||
Image = ilGetCurImage();
|
||||
if (Image == NULL)
|
||||
return 0;
|
||||
|
||||
if (ilutGetBoolean(ILUT_GL_AUTODETECT_TEXTURE_TARGET)) {
|
||||
if (HasCubemapHardware && Image->CubeFlags != 0)
|
||||
Target = ILGL_TEXTURE_CUBE_MAP;
|
||||
|
||||
}
|
||||
|
||||
glGenTextures(1, &TexID);
|
||||
glBindTexture(Target, TexID);
|
||||
|
||||
if (Target == GL_TEXTURE_2D) {
|
||||
glTexParameteri(Target, GL_TEXTURE_WRAP_S, GL_REPEAT);
|
||||
glTexParameteri(Target, GL_TEXTURE_WRAP_T, GL_REPEAT);
|
||||
}
|
||||
else if (Target == ILGL_TEXTURE_CUBE_MAP) {
|
||||
glTexParameteri(Target, GL_TEXTURE_WRAP_S, ILGL_CLAMP_TO_EDGE);
|
||||
glTexParameteri(Target, GL_TEXTURE_WRAP_T, ILGL_CLAMP_TO_EDGE);
|
||||
glTexParameteri(Target, ILGL_TEXTURE_WRAP_R, ILGL_CLAMP_TO_EDGE);
|
||||
}
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
|
||||
glTexParameteri(Target, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
||||
glTexParameteri(Target, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
|
||||
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
|
||||
glPixelStorei(GL_UNPACK_SKIP_ROWS, 0);
|
||||
glPixelStorei(GL_UNPACK_SKIP_PIXELS, 0);
|
||||
glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
|
||||
glPixelStorei(GL_UNPACK_SWAP_BYTES, IL_FALSE);
|
||||
|
||||
if (!ilutGLTexImage(0)) {
|
||||
glDeleteTextures(1, &TexID);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return TexID;
|
||||
}
|
||||
|
||||
|
||||
ILuint GLGetDXTCNum(ILenum DXTCFormat)
|
||||
{
|
||||
switch (DXTCFormat)
|
||||
{
|
||||
// Constants from glext.h.
|
||||
case IL_DXT1:
|
||||
DXTCFormat = 0x83F1;
|
||||
break;
|
||||
case IL_DXT3:
|
||||
DXTCFormat = 0x83F2;
|
||||
break;
|
||||
case IL_DXT5:
|
||||
DXTCFormat = 0x83F3;
|
||||
break;
|
||||
}
|
||||
|
||||
return DXTCFormat;
|
||||
}
|
||||
|
||||
|
||||
// We assume *all* states have been set by the user, including 2D texturing!
|
||||
ILboolean ILAPIENTRY ilutGLTexImage_(GLuint Level, GLuint Target, ILimage *Image)
|
||||
{
|
||||
ILimage *ImageCopy, *OldImage;
|
||||
#if defined (_MSC_VER) || defined (linux) || defined(__APPLE__)
|
||||
ILenum DXTCFormat;
|
||||
ILuint Size;
|
||||
ILubyte *Buffer;
|
||||
#endif
|
||||
|
||||
if (Image == NULL) {
|
||||
ilSetError(ILUT_ILLEGAL_OPERATION);
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
OldImage = ilGetCurImage();
|
||||
|
||||
#if defined (_MSC_VER) || defined (linux) || defined(__APPLE__)
|
||||
if (ilutGetBoolean(ILUT_GL_USE_S3TC) && ilGLCompressed2D != NULL) {
|
||||
if (Image->DxtcData != NULL && Image->DxtcSize != 0) {
|
||||
DXTCFormat = GLGetDXTCNum(Image->DxtcFormat);
|
||||
ilGLCompressed2D(Target, Level, DXTCFormat, Image->Width,
|
||||
Image->Height, 0, Image->DxtcSize, Image->DxtcData);
|
||||
return IL_TRUE;
|
||||
}
|
||||
|
||||
if (ilutGetBoolean(ILUT_GL_GEN_S3TC)) {
|
||||
DXTCFormat = ilutGetInteger(ILUT_S3TC_FORMAT);
|
||||
|
||||
ilSetCurImage(Image);
|
||||
Size = ilGetDXTCData(NULL, 0, DXTCFormat);
|
||||
if (Size != 0) {
|
||||
Buffer = (ILubyte*)ialloc(Size);
|
||||
if (Buffer == NULL) {
|
||||
ilSetCurImage(OldImage);
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
Size = ilGetDXTCData(Buffer, Size, DXTCFormat);
|
||||
if (Size == 0) {
|
||||
ilSetCurImage(OldImage);
|
||||
ifree(Buffer);
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
DXTCFormat = GLGetDXTCNum(DXTCFormat);
|
||||
ilGLCompressed2D(Target, Level, DXTCFormat, Image->Width,
|
||||
Image->Height, 0, Size, Buffer);
|
||||
ifree(Buffer);
|
||||
ilSetCurImage(OldImage);
|
||||
return IL_TRUE;
|
||||
}
|
||||
ilSetCurImage(OldImage);
|
||||
}
|
||||
}
|
||||
#endif//_MSC_VER
|
||||
|
||||
ImageCopy = MakeGLCompliant2D(Image);
|
||||
if (ImageCopy == NULL)
|
||||
return IL_FALSE;
|
||||
|
||||
glTexImage2D(
|
||||
Target,
|
||||
Level,
|
||||
ilutGLFormat(ImageCopy->Format, ImageCopy->Bpp),
|
||||
ImageCopy->Width,
|
||||
ImageCopy->Height,
|
||||
0,
|
||||
ImageCopy->Format,
|
||||
ImageCopy->Type,
|
||||
ImageCopy->Data);
|
||||
|
||||
if (Image != ImageCopy)
|
||||
ilCloseImage(ImageCopy);
|
||||
|
||||
return IL_TRUE;
|
||||
}
|
||||
|
||||
GLuint iToGLCube(ILuint cube)
|
||||
{
|
||||
switch (cube) {
|
||||
case IL_CUBEMAP_POSITIVEX:
|
||||
return ILGL_TEXTURE_CUBE_MAP_POSITIVE_X;
|
||||
case IL_CUBEMAP_POSITIVEY:
|
||||
return ILGL_TEXTURE_CUBE_MAP_POSITIVE_Y;
|
||||
case IL_CUBEMAP_POSITIVEZ:
|
||||
return ILGL_TEXTURE_CUBE_MAP_POSITIVE_Z;
|
||||
case IL_CUBEMAP_NEGATIVEX:
|
||||
return ILGL_TEXTURE_CUBE_MAP_NEGATIVE_X;
|
||||
case IL_CUBEMAP_NEGATIVEY:
|
||||
return ILGL_TEXTURE_CUBE_MAP_NEGATIVE_Y;
|
||||
case IL_CUBEMAP_NEGATIVEZ:
|
||||
return ILGL_TEXTURE_CUBE_MAP_NEGATIVE_Z;
|
||||
|
||||
default:
|
||||
return ILGL_TEXTURE_CUBE_MAP_POSITIVE_X; //???
|
||||
}
|
||||
}
|
||||
|
||||
ILboolean ILAPIENTRY ilutGLTexImage(GLuint Level)
|
||||
{
|
||||
ILimage *Temp;
|
||||
|
||||
ilutCurImage = ilGetCurImage();
|
||||
|
||||
if (!ilutGetBoolean(ILUT_GL_AUTODETECT_TEXTURE_TARGET))
|
||||
return ilutGLTexImage_(Level, GL_TEXTURE_2D, ilGetCurImage());
|
||||
else {
|
||||
// Autodetect texture target
|
||||
|
||||
// Cubemap
|
||||
if (ilutCurImage->CubeFlags != 0 && HasCubemapHardware) { //bind to cubemap
|
||||
Temp = ilutCurImage;
|
||||
while (Temp != NULL && Temp->CubeFlags != 0) {
|
||||
ilutGLTexImage_(Level, iToGLCube(Temp->CubeFlags), Temp);
|
||||
Temp = Temp->Next;
|
||||
}
|
||||
return IL_TRUE; //@TODO: check for errors??
|
||||
}
|
||||
else // 2D texture
|
||||
return ilutGLTexImage_(Level, GL_TEXTURE_2D, ilGetCurImage());
|
||||
}
|
||||
}
|
||||
|
||||
GLuint ILAPIENTRY ilutGLBindMipmaps()
|
||||
{
|
||||
GLuint TexID = 0;
|
||||
|
||||
// glPushAttrib(GL_ALL_ATTRIB_BITS);
|
||||
|
||||
glGenTextures(1, &TexID);
|
||||
glBindTexture(GL_TEXTURE_2D, TexID);
|
||||
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
|
||||
|
||||
if (!ilutGLBuildMipmaps()) {
|
||||
glDeleteTextures(1, &TexID);
|
||||
return 0;
|
||||
}
|
||||
|
||||
// glPopAttrib();
|
||||
|
||||
return TexID;
|
||||
}
|
||||
|
||||
|
||||
ILboolean ILAPIENTRY ilutGLBuildMipmaps()
|
||||
{
|
||||
ILimage *Image;
|
||||
|
||||
ilutCurImage = ilGetCurImage();
|
||||
if (ilutCurImage == NULL) {
|
||||
ilSetError(ILUT_ILLEGAL_OPERATION);
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
Image = MakeGLCompliant2D(ilutCurImage);
|
||||
if (Image == NULL)
|
||||
return IL_FALSE;
|
||||
|
||||
gluBuild2DMipmaps(GL_TEXTURE_2D, ilutGLFormat(Image->Format, Image->Bpp), Image->Width,
|
||||
Image->Height, Image->Format, Image->Type, Image->Data);
|
||||
|
||||
if (Image != ilutCurImage)
|
||||
ilCloseImage(Image);
|
||||
|
||||
return IL_TRUE;
|
||||
}
|
||||
|
||||
|
||||
ILboolean ILAPIENTRY ilutGLSubTex(GLuint TexID, ILuint XOff, ILuint YOff)
|
||||
{
|
||||
return ilutGLSubTex2D(TexID, XOff, YOff);
|
||||
}
|
||||
|
||||
|
||||
ILboolean ILAPIENTRY ilutGLSubTex2D(GLuint TexID, ILuint XOff, ILuint YOff)
|
||||
{
|
||||
ILimage *Image;
|
||||
ILint Width, Height;
|
||||
|
||||
ilutCurImage = ilGetCurImage();
|
||||
if (ilutCurImage == NULL) {
|
||||
ilSetError(ILUT_ILLEGAL_OPERATION);
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
Image = MakeGLCompliant2D(ilutCurImage);
|
||||
if (Image == NULL)
|
||||
return IL_FALSE;
|
||||
|
||||
glBindTexture(GL_TEXTURE_2D, TexID);
|
||||
|
||||
glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_WIDTH, (GLint*)&Width);
|
||||
glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_HEIGHT, (GLint*)&Height);
|
||||
|
||||
if (Image->Width + XOff > (ILuint)Width || Image->Height + YOff > (ILuint)Height) {
|
||||
ilSetError(ILUT_BAD_DIMENSIONS);
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
|
||||
glPixelStorei(GL_UNPACK_SKIP_ROWS, 0);
|
||||
glPixelStorei(GL_UNPACK_SKIP_PIXELS, 0);
|
||||
glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
|
||||
glPixelStorei(GL_UNPACK_SWAP_BYTES, IL_FALSE);
|
||||
glTexSubImage2D(GL_TEXTURE_2D, 0, XOff, YOff, Image->Width, Image->Height, Image->Format,
|
||||
Image->Type, Image->Data);
|
||||
|
||||
if (Image != ilutCurImage)
|
||||
ilCloseImage(Image);
|
||||
|
||||
return IL_TRUE;
|
||||
}
|
||||
|
||||
|
||||
ILboolean ILAPIENTRY ilutGLSubTex3D(GLuint TexID, ILuint XOff, ILuint YOff, ILuint ZOff)
|
||||
{
|
||||
ILimage *Image;
|
||||
ILint Width, Height, Depth;
|
||||
|
||||
if (ilGLTexSubImage3D == NULL) {
|
||||
ilSetError(ILUT_ILLEGAL_OPERATION); // Set a different error?
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
ilutCurImage = ilGetCurImage();
|
||||
if (ilutCurImage == NULL) {
|
||||
ilSetError(ILUT_ILLEGAL_OPERATION);
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
Image = MakeGLCompliant3D(ilutCurImage);
|
||||
if (Image == NULL)
|
||||
return IL_FALSE;
|
||||
|
||||
glBindTexture(ILGL_TEXTURE_3D, TexID);
|
||||
|
||||
glGetTexLevelParameteriv(ILGL_TEXTURE_3D, 0, GL_TEXTURE_WIDTH, (GLint*)&Width);
|
||||
glGetTexLevelParameteriv(ILGL_TEXTURE_3D, 0, GL_TEXTURE_HEIGHT, (GLint*)&Height);
|
||||
glGetTexLevelParameteriv(ILGL_TEXTURE_3D, 0, ILGL_TEXTURE_DEPTH, (GLint*)&Depth);
|
||||
|
||||
if (Image->Width + XOff > (ILuint)Width || Image->Height + YOff > (ILuint)Height
|
||||
|| Image->Depth + ZOff > (ILuint)Depth) {
|
||||
ilSetError(ILUT_BAD_DIMENSIONS);
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
|
||||
glPixelStorei(GL_UNPACK_SKIP_ROWS, 0);
|
||||
glPixelStorei(GL_UNPACK_SKIP_PIXELS, 0);
|
||||
glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
|
||||
glPixelStorei(GL_UNPACK_SWAP_BYTES, IL_FALSE);
|
||||
ilGLTexSubImage3D(ILGL_TEXTURE_3D, 0, XOff, YOff, ZOff, Image->Width, Image->Height, Image->Depth,
|
||||
Image->Format, Image->Type, Image->Data);
|
||||
|
||||
if (Image != ilutCurImage)
|
||||
ilCloseImage(Image);
|
||||
|
||||
return IL_TRUE;
|
||||
}
|
||||
|
||||
|
||||
ILimage* MakeGLCompliant2D(ILimage *Src)
|
||||
{
|
||||
ILimage *Dest = Src, *Temp;
|
||||
ILboolean Created = IL_FALSE;
|
||||
ILenum Filter;
|
||||
ILubyte *Flipped;
|
||||
ILboolean need_resize = IL_FALSE;
|
||||
ILint MaxTexW, MaxTexH;
|
||||
|
||||
MaxTexW = ilutGetInteger(ILUT_MAXTEX_WIDTH);
|
||||
MaxTexH = ilutGetInteger(ILUT_MAXTEX_HEIGHT);
|
||||
|
||||
if (Src->Pal.Palette != NULL && Src->Pal.PalSize != 0 && Src->Pal.PalType != IL_PAL_NONE) {
|
||||
//ilSetCurImage(Src);
|
||||
Dest = iConvertImage(Src, ilGetPalBaseType(Src->Pal.PalType), IL_UNSIGNED_BYTE);
|
||||
//Dest = iConvertImage(IL_BGR);
|
||||
//ilSetCurImage(ilutCurImage);
|
||||
if (Dest == NULL)
|
||||
return NULL;
|
||||
|
||||
Created = IL_TRUE;
|
||||
|
||||
// Change here!
|
||||
|
||||
|
||||
// Set Dest's palette stuff here
|
||||
Dest->Pal.PalType = IL_PAL_NONE;
|
||||
}
|
||||
|
||||
if (HasNonPowerOfTwoHardware == IL_FALSE &&
|
||||
(Src->Width != ilNextPower2(Src->Width) ||
|
||||
Src->Height != ilNextPower2(Src->Height) )) {
|
||||
need_resize = IL_TRUE;
|
||||
}
|
||||
|
||||
if ((ILint)Src->Width > MaxTexW || (ILint)Src->Height > MaxTexH)
|
||||
need_resize = IL_TRUE;
|
||||
|
||||
if (need_resize == IL_TRUE) {
|
||||
if (!Created) {
|
||||
Dest = ilCopyImage_(Src);
|
||||
if (Dest == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
Created = IL_TRUE;
|
||||
}
|
||||
|
||||
Filter = iluGetInteger(ILU_FILTER);
|
||||
if (Src->Format == IL_COLOUR_INDEX) {
|
||||
iluImageParameter(ILU_FILTER, ILU_NEAREST);
|
||||
Temp = HasNonPowerOfTwoHardware == IL_TRUE ?
|
||||
iluScale_(Dest, min((ILuint)MaxTexW, Dest->Width), min((ILuint)MaxTexH, Dest->Height), 1)
|
||||
: iluScale_(Dest, min((ILuint)MaxTexW, ilNextPower2(Dest->Width)),
|
||||
min((ILuint)MaxTexH, ilNextPower2(Dest->Height)), 1);
|
||||
iluImageParameter(ILU_FILTER, Filter);
|
||||
} else {
|
||||
iluImageParameter(ILU_FILTER, ILU_BILINEAR);
|
||||
Temp = HasNonPowerOfTwoHardware == IL_TRUE ?
|
||||
iluScale_(Dest, min((ILuint)MaxTexW, Dest->Width), min((ILuint)MaxTexH, Dest->Height), 1)
|
||||
: iluScale_(Dest, min((ILuint)MaxTexW, (ILint)ilNextPower2(Dest->Width)),
|
||||
min(MaxTexH, (ILint)ilNextPower2(Dest->Height)), 1);
|
||||
iluImageParameter(ILU_FILTER, Filter);
|
||||
}
|
||||
|
||||
ilCloseImage(Dest);
|
||||
if (!Temp) {
|
||||
return NULL;
|
||||
}
|
||||
Dest = Temp;
|
||||
}
|
||||
|
||||
if (Dest->Origin != IL_ORIGIN_LOWER_LEFT) {
|
||||
Flipped = iGetFlipped(Dest);
|
||||
ifree(Dest->Data);
|
||||
Dest->Data = Flipped;
|
||||
Dest->Origin = IL_ORIGIN_LOWER_LEFT;
|
||||
}
|
||||
|
||||
return Dest;
|
||||
}
|
||||
|
||||
|
||||
ILimage* MakeGLCompliant3D(ILimage *Src)
|
||||
{
|
||||
ILimage *Dest = Src, *Temp;
|
||||
ILboolean Created = IL_FALSE;
|
||||
ILenum Filter;
|
||||
ILubyte *Flipped;
|
||||
ILboolean need_resize = IL_FALSE;
|
||||
ILint MaxTexW, MaxTexH, MaxTexD;
|
||||
|
||||
MaxTexW = ilutGetInteger(ILUT_MAXTEX_WIDTH);
|
||||
MaxTexH = ilutGetInteger(ILUT_MAXTEX_HEIGHT);
|
||||
MaxTexD = ilutGetInteger(ILUT_MAXTEX_DEPTH);
|
||||
|
||||
if (Src->Pal.Palette != NULL && Src->Pal.PalSize != 0 && Src->Pal.PalType != IL_PAL_NONE) {
|
||||
//ilSetCurImage(Src);
|
||||
Dest = iConvertImage(Src, ilGetPalBaseType(Src->Pal.PalType), IL_UNSIGNED_BYTE);
|
||||
//Dest = iConvertImage(IL_BGR);
|
||||
//ilSetCurImage(ilutCurImage);
|
||||
if (Dest == NULL)
|
||||
return NULL;
|
||||
|
||||
Created = IL_TRUE;
|
||||
|
||||
// Change here!
|
||||
|
||||
|
||||
// Set Dest's palette stuff here
|
||||
Dest->Pal.PalType = IL_PAL_NONE;
|
||||
}
|
||||
|
||||
if (HasNonPowerOfTwoHardware == IL_FALSE &&
|
||||
(Src->Width != ilNextPower2(Src->Width) ||
|
||||
Src->Height != ilNextPower2(Src->Height) ||
|
||||
Src->Depth != ilNextPower2(Src->Depth) )) {
|
||||
need_resize = IL_TRUE;
|
||||
}
|
||||
|
||||
if ((ILint)Src->Width > MaxTexW || (ILint)Src->Height > MaxTexH || (ILint)Src->Depth > MaxTexD)
|
||||
need_resize = IL_TRUE;
|
||||
|
||||
if (need_resize == IL_TRUE) {
|
||||
if (!Created) {
|
||||
Dest = ilCopyImage_(Src);
|
||||
if (Dest == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
Created = IL_TRUE;
|
||||
}
|
||||
|
||||
Filter = iluGetInteger(ILU_FILTER);
|
||||
if (Src->Format == IL_COLOUR_INDEX) {
|
||||
iluImageParameter(ILU_FILTER, ILU_NEAREST);
|
||||
Temp = HasNonPowerOfTwoHardware == IL_TRUE ?
|
||||
iluScale_(Dest, min((ILuint)MaxTexW, Dest->Width), min((ILuint)MaxTexH, Dest->Height), min((ILuint)MaxTexD, Dest->Depth))
|
||||
: iluScale_(Dest, min((ILuint)MaxTexW, ilNextPower2(Dest->Width)),
|
||||
min((ILuint)MaxTexH, ilNextPower2(Dest->Height)),
|
||||
min((ILuint)MaxTexD, ilNextPower2(Dest->Height)));
|
||||
iluImageParameter(ILU_FILTER, Filter);
|
||||
} else {
|
||||
iluImageParameter(ILU_FILTER, ILU_BILINEAR);
|
||||
Temp = HasNonPowerOfTwoHardware == IL_TRUE ?
|
||||
iluScale_(Dest, min((ILuint)MaxTexW, Dest->Width), min((ILuint)MaxTexH, Dest->Height), min((ILuint)MaxTexD, Dest->Depth))
|
||||
: iluScale_(Dest, min((ILuint)MaxTexW, (ILint)ilNextPower2(Dest->Width)),
|
||||
min(MaxTexH, (ILint)ilNextPower2(Dest->Height)),
|
||||
min(MaxTexD, (ILint)ilNextPower2(Dest->Depth)));
|
||||
iluImageParameter(ILU_FILTER, Filter);
|
||||
}
|
||||
|
||||
ilCloseImage(Dest);
|
||||
if (!Temp) {
|
||||
return NULL;
|
||||
}
|
||||
Dest = Temp;
|
||||
}
|
||||
|
||||
if (Dest->Origin != IL_ORIGIN_LOWER_LEFT) {
|
||||
Flipped = iGetFlipped(Dest);
|
||||
ifree(Dest->Data);
|
||||
Dest->Data = Flipped;
|
||||
Dest->Origin = IL_ORIGIN_LOWER_LEFT;
|
||||
}
|
||||
|
||||
return Dest;
|
||||
}
|
||||
|
||||
|
||||
//! Just a convenience function.
|
||||
#ifndef _WIN32_WCE
|
||||
GLuint ILAPIENTRY ilutGLLoadImage(ILstring FileName)
|
||||
{
|
||||
GLuint TexId;
|
||||
//ILuint Id;
|
||||
|
||||
iBindImageTemp();
|
||||
//ilGenImages(1, &Id);
|
||||
//ilBindImage(Id);
|
||||
|
||||
if (!ilLoadImage(FileName))
|
||||
return 0;
|
||||
|
||||
TexId = ilutGLBindTexImage();
|
||||
|
||||
//ilDeleteImages(1, &Id);
|
||||
|
||||
return TexId;
|
||||
}
|
||||
#endif//_WIN32_WCE
|
||||
|
||||
|
||||
#ifndef _WIN32_WCE
|
||||
ILboolean ILAPIENTRY ilutGLSaveImage(ILstring FileName, GLuint TexID)
|
||||
{
|
||||
ILuint CurName;
|
||||
ILboolean Saved;
|
||||
|
||||
CurName = ilGetCurName();
|
||||
|
||||
iBindImageTemp();
|
||||
|
||||
if (!ilutGLSetTex(TexID)) {
|
||||
ilBindImage(CurName);
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
Saved = ilSaveImage(FileName);
|
||||
ilBindImage(CurName);
|
||||
|
||||
return Saved;
|
||||
}
|
||||
#endif//_WIN32_WCE
|
||||
|
||||
|
||||
//! Takes a screenshot of the current OpenGL window.
|
||||
ILboolean ILAPIENTRY ilutGLScreen()
|
||||
{
|
||||
ILuint ViewPort[4];
|
||||
|
||||
ilutCurImage = ilGetCurImage();
|
||||
if (ilutCurImage == NULL) {
|
||||
ilSetError(ILUT_ILLEGAL_OPERATION);
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
glGetIntegerv(GL_VIEWPORT, (GLint*)ViewPort);
|
||||
|
||||
if (!ilTexImage(ViewPort[2], ViewPort[3], 1, 3, IL_RGB, IL_UNSIGNED_BYTE, NULL))
|
||||
return IL_FALSE; // Error already set.
|
||||
ilutCurImage->Origin = IL_ORIGIN_LOWER_LEFT;
|
||||
|
||||
glPixelStorei(GL_PACK_ALIGNMENT, 1);
|
||||
glReadPixels(0, 0, ViewPort[2], ViewPort[3], GL_RGB, GL_UNSIGNED_BYTE, ilutCurImage->Data);
|
||||
|
||||
return IL_TRUE;
|
||||
}
|
||||
|
||||
|
||||
#ifndef _WIN32_WCE
|
||||
ILboolean ILAPIENTRY ilutGLScreenie()
|
||||
{
|
||||
FILE *File;
|
||||
ILchar Buff[255];
|
||||
ILuint i, CurName;
|
||||
ILboolean ReturnVal = IL_TRUE;
|
||||
|
||||
CurName = ilGetCurName();
|
||||
|
||||
// Could go above 128 easily...
|
||||
for (i = 0; i < 128; i++) {
|
||||
#ifndef _UNICODE
|
||||
sprintf(Buff, "screen%d.tga", i);
|
||||
File = fopen(Buff, "rb");
|
||||
#else
|
||||
swprintf(Buff, 128, L"screen%d.tga", i);
|
||||
// Windows has a different function, _wfopen, to open UTF16 files,
|
||||
// whereas Linux just uses fopen.
|
||||
#ifdef _WIN32
|
||||
File = _wfopen(Buff, L"rb");
|
||||
#else
|
||||
File = fopen((char*)Buff, "rb");
|
||||
#endif
|
||||
#endif
|
||||
if (!File)
|
||||
break;
|
||||
fclose(File);
|
||||
}
|
||||
|
||||
if (i == 127) {
|
||||
ilSetError(ILUT_COULD_NOT_OPEN_FILE);
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
iBindImageTemp();
|
||||
if (!ilutGLScreen()) {
|
||||
ReturnVal = IL_FALSE;
|
||||
}
|
||||
|
||||
if (ReturnVal)
|
||||
ilSave(IL_TGA, Buff);
|
||||
|
||||
ilBindImage(CurName);
|
||||
|
||||
return ReturnVal;
|
||||
}
|
||||
#endif//_WIN32_WCE
|
||||
|
||||
|
||||
//! Deprecated - use ilutGLSetTex2D instead.
|
||||
ILboolean ILAPIENTRY ilutGLSetTex(GLuint TexID)
|
||||
{
|
||||
return ilutGLSetTex2D(TexID);
|
||||
}
|
||||
|
||||
|
||||
ILboolean ILAPIENTRY ilutGLSetTex2D(GLuint TexID)
|
||||
{
|
||||
ILubyte *Data;
|
||||
ILuint Width, Height;
|
||||
|
||||
glBindTexture(GL_TEXTURE_2D, TexID);
|
||||
|
||||
glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_WIDTH, (GLint*)&Width);
|
||||
glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_HEIGHT, (GLint*)&Height);
|
||||
|
||||
Data = (ILubyte*)ialloc(Width * Height * 4);
|
||||
if (Data == NULL) {
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
glGetTexImage(GL_TEXTURE_2D, 0, IL_BGRA, GL_UNSIGNED_BYTE, Data);
|
||||
|
||||
if (!ilTexImage(Width, Height, 1, 4, IL_BGRA, IL_UNSIGNED_BYTE, Data)) {
|
||||
ifree(Data);
|
||||
return IL_FALSE;
|
||||
}
|
||||
ilutCurImage->Origin = IL_ORIGIN_LOWER_LEFT;
|
||||
|
||||
ifree(Data);
|
||||
return IL_TRUE;
|
||||
}
|
||||
|
||||
|
||||
ILboolean ILAPIENTRY ilutGLSetTex3D(GLuint TexID)
|
||||
{
|
||||
ILubyte *Data;
|
||||
ILuint Width, Height, Depth;
|
||||
|
||||
if (ilGLTexImage3D == NULL) {
|
||||
ilSetError(ILUT_ILLEGAL_OPERATION); // Set a different error?
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
glBindTexture(ILGL_TEXTURE_3D, TexID);
|
||||
|
||||
glGetTexLevelParameteriv(ILGL_TEXTURE_3D, 0, GL_TEXTURE_WIDTH, (GLint*)&Width);
|
||||
glGetTexLevelParameteriv(ILGL_TEXTURE_3D, 0, GL_TEXTURE_HEIGHT, (GLint*)&Height);
|
||||
glGetTexLevelParameteriv(ILGL_TEXTURE_3D, 0, ILGL_TEXTURE_DEPTH, (GLint*)&Depth);
|
||||
|
||||
Data = (ILubyte*)ialloc(Width * Height * Depth * 4);
|
||||
if (Data == NULL) {
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
glGetTexImage(ILGL_TEXTURE_3D, 0, IL_BGRA, GL_UNSIGNED_BYTE, Data);
|
||||
|
||||
if (!ilTexImage(Width, Height, Depth, 4, IL_BGRA, IL_UNSIGNED_BYTE, Data)) {
|
||||
ifree(Data);
|
||||
return IL_FALSE;
|
||||
}
|
||||
ilutCurImage->Origin = IL_ORIGIN_LOWER_LEFT;
|
||||
|
||||
ifree(Data);
|
||||
return IL_TRUE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
ILenum ilutGLFormat(ILenum Format, ILubyte Bpp)
|
||||
{
|
||||
if (Format == IL_RGB || Format == IL_BGR) {
|
||||
if (ilutIsEnabled(ILUT_OPENGL_CONV)) {
|
||||
return GL_RGB8;
|
||||
}
|
||||
}
|
||||
else if (Format == IL_RGBA || Format == IL_BGRA) {
|
||||
if (ilutIsEnabled(ILUT_OPENGL_CONV)) {
|
||||
return GL_RGBA8;
|
||||
}
|
||||
}
|
||||
else if (Format == IL_ALPHA) {
|
||||
if (ilutIsEnabled(ILUT_OPENGL_CONV)) {
|
||||
return GL_ALPHA;
|
||||
}
|
||||
}
|
||||
|
||||
return Bpp;
|
||||
}
|
||||
|
||||
|
||||
// From http://www.opengl.org/News/Special/OGLextensions/OGLextensions.html
|
||||
// Should we make this accessible outside the lib?
|
||||
ILboolean IsExtensionSupported(const char *extension)
|
||||
{
|
||||
const GLubyte *extensions;// = NULL;
|
||||
const GLubyte *start;
|
||||
GLubyte *where, *terminator;
|
||||
|
||||
// Extension names should not have spaces.
|
||||
where = (GLubyte *) strchr(extension, ' ');
|
||||
if (where || *extension == '\0')
|
||||
return IL_FALSE;
|
||||
extensions = glGetString(GL_EXTENSIONS);
|
||||
if (!extensions)
|
||||
return IL_FALSE;
|
||||
// It takes a bit of care to be fool-proof about parsing the
|
||||
// OpenGL extensions string. Don't be fooled by sub-strings, etc.
|
||||
start = extensions;
|
||||
for (;;) {
|
||||
where = (GLubyte *)strstr((const char *) start, extension);
|
||||
if (!where)
|
||||
break;
|
||||
terminator = where + strlen(extension);
|
||||
if (where == start || *(where - 1) == ' ')
|
||||
if (*terminator == ' ' || *terminator == '\0')
|
||||
return IL_TRUE;
|
||||
start = terminator;
|
||||
}
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
|
||||
#endif//ILUT_USE_OPENGL
|
||||
@@ -0,0 +1,207 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// ImageLib Sources
|
||||
// Copyright (C) 2002 by Denton Woods
|
||||
// Copyright (C) 2002 Nelson Rush.
|
||||
// Last modified: 05/18/2002
|
||||
//
|
||||
// Filename: src-ILUT/src/ilut_sdlsurface.c
|
||||
//
|
||||
// Description: SDL Surface functions for images
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
|
||||
#include "ilut_internal.h"
|
||||
#ifdef ILUT_USE_SDL
|
||||
#include <SDL.h>
|
||||
//#include "endian.h"
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#pragma comment(lib, "sdl.lib")
|
||||
#endif//_MSC_VER
|
||||
|
||||
int isBigEndian;
|
||||
int rmask, gmask, bmask, amask;
|
||||
|
||||
void InitSDL()
|
||||
{
|
||||
//#if SDL_BYTEORDER == SDL_BIG_ENDIAN
|
||||
#ifdef __BIG_ENDIAN__
|
||||
isBigEndian = 1;
|
||||
rmask = 0xFF000000;
|
||||
gmask = 0x00FF0000;
|
||||
bmask = 0x0000FF00;
|
||||
amask = 0x000000FF;
|
||||
#else
|
||||
isBigEndian = 0;
|
||||
rmask = 0x000000FF;
|
||||
gmask = 0x0000FF00;
|
||||
bmask = 0x00FF0000;
|
||||
amask = 0xFF000000;
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
|
||||
//ILboolean ilConvertPal(ILenum DestFormat);
|
||||
|
||||
//ILpal *Pal;
|
||||
|
||||
// Does not account for converting luminance...
|
||||
SDL_Surface *ILAPIENTRY ilutConvertToSDLSurface(unsigned int flags)
|
||||
{
|
||||
SDL_Surface *Bitmap = NULL;
|
||||
ILuint i = 0, Pad, BppPal;
|
||||
ILubyte *Dest, *Data;
|
||||
ILimage *Image;
|
||||
|
||||
Image = ilutCurImage = ilGetCurImage();
|
||||
if (ilutCurImage == NULL) {
|
||||
ilSetError(ILUT_ILLEGAL_OPERATION);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
InitSDL();
|
||||
|
||||
// Should be IL_BGR(A).
|
||||
if (ilutCurImage->Format == IL_RGB || ilutCurImage->Format == IL_RGBA) {
|
||||
if (!isBigEndian) {
|
||||
//iluSwapColours(); // No need to swap colors. Just use the bitmasks.
|
||||
rmask = 0x00FF0000;
|
||||
gmask = 0x0000FF00;
|
||||
bmask = 0x000000FF;
|
||||
}
|
||||
}
|
||||
else if (ilutCurImage->Format == IL_BGR || ilutCurImage->Format == IL_BGRA) {
|
||||
if (isBigEndian) {
|
||||
rmask = 0x0000FF00;
|
||||
gmask = 0x00FF0000;
|
||||
bmask = 0xFF000000;
|
||||
}
|
||||
}
|
||||
else if (Image->Format != IL_COLOR_INDEX) { // We have to convert the image.
|
||||
#ifdef __BIG_ENDIAN__
|
||||
Image = iConvertImage(Image, IL_RGBA, IL_UNSIGNED_BYTE);
|
||||
#else
|
||||
Image = iConvertImage(Image, IL_BGRA, IL_UNSIGNED_BYTE);
|
||||
#endif
|
||||
if (Image == NULL)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (Image->Type != IL_UNSIGNED_BYTE) {
|
||||
// We do not have to worry about Image != iCurImage at this point, because if it was converted,
|
||||
// it was converted to a type of unsigned byte.
|
||||
Image = iConvertImage(Image, Image->Format, IL_UNSIGNED_BYTE);
|
||||
if (Image == NULL)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Data = Image->Data;
|
||||
if (Image->Origin == IL_ORIGIN_LOWER_LEFT) {
|
||||
Data = iGetFlipped(Image);
|
||||
if (Data == NULL)
|
||||
goto done;
|
||||
}
|
||||
|
||||
Bitmap = SDL_CreateRGBSurface(flags, Image->Width, Image->Height, Image->Bpp * 8,
|
||||
rmask,gmask,bmask,amask);
|
||||
if (Bitmap == NULL)
|
||||
goto done;
|
||||
|
||||
if (SDL_MUSTLOCK(Bitmap))
|
||||
SDL_LockSurface(Bitmap);
|
||||
|
||||
Pad = Bitmap->pitch - Image->Bps;
|
||||
if (Pad == 0) {
|
||||
memcpy(Bitmap->pixels, Data, Image->SizeOfData);
|
||||
}
|
||||
else { // Must pad the lines on some images.
|
||||
Dest = Bitmap->pixels;
|
||||
for (i = 0; i < Image->Height; i++) {
|
||||
memcpy(Dest, Data + i * Image->Bps, Image->Bps);
|
||||
imemclear(Dest + Image->Bps, Pad);
|
||||
Dest += Bitmap->pitch;
|
||||
}
|
||||
}
|
||||
|
||||
if (SDL_MUSTLOCK(Bitmap))
|
||||
SDL_UnlockSurface(Bitmap);
|
||||
|
||||
if (Image->Format == IL_COLOR_INDEX) {
|
||||
BppPal = ilGetBppPal(Image->Pal.PalType);
|
||||
switch (ilutCurImage->Pal.PalType)
|
||||
{
|
||||
case IL_PAL_RGB24:
|
||||
case IL_PAL_RGB32:
|
||||
case IL_PAL_RGBA32:
|
||||
for (i = 0; i < ilutCurImage->Pal.PalSize / BppPal; i++) {
|
||||
(Bitmap->format)->palette->colors[i].r = ilutCurImage->Pal.Palette[i*BppPal+0];
|
||||
(Bitmap->format)->palette->colors[i].g = ilutCurImage->Pal.Palette[i*BppPal+1];
|
||||
(Bitmap->format)->palette->colors[i].b = ilutCurImage->Pal.Palette[i*BppPal+2];
|
||||
(Bitmap->format)->palette->colors[i].unused = 0xFF;
|
||||
}
|
||||
break;
|
||||
case IL_PAL_BGR24:
|
||||
case IL_PAL_BGR32:
|
||||
case IL_PAL_BGRA32:
|
||||
for (i = 0; i < ilutCurImage->Pal.PalSize / BppPal; i++) {
|
||||
(Bitmap->format)->palette->colors[i].b = ilutCurImage->Pal.Palette[i*BppPal+0];
|
||||
(Bitmap->format)->palette->colors[i].g = ilutCurImage->Pal.Palette[i*BppPal+1];
|
||||
(Bitmap->format)->palette->colors[i].r = ilutCurImage->Pal.Palette[i*BppPal+2];
|
||||
(Bitmap->format)->palette->colors[i].unused = 0xFF;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
ilSetError(IL_INTERNAL_ERROR); // Do anything else?
|
||||
}
|
||||
}
|
||||
|
||||
done:
|
||||
if (Data != Image->Data)
|
||||
ifree(Data); // This is flipped data.
|
||||
if (Image != ilutCurImage)
|
||||
ilCloseImage(Image); // This is a converted image.
|
||||
return Bitmap; // This is NULL if there was an error.
|
||||
}
|
||||
|
||||
|
||||
#ifndef _WIN32_WCE
|
||||
SDL_Surface* ILAPIENTRY ilutSDLSurfaceLoadImage(ILstring FileName)
|
||||
{
|
||||
SDL_Surface *Surface;
|
||||
|
||||
iBindImageTemp();
|
||||
if (!ilLoadImage(FileName)) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Surface = ilutConvertToSDLSurface(SDL_SWSURFACE);
|
||||
|
||||
return Surface;
|
||||
}
|
||||
#endif//_WIN32_WCE
|
||||
|
||||
|
||||
// Unfinished
|
||||
ILboolean ILAPIENTRY ilutSDLSurfaceFromBitmap(SDL_Surface *Bitmap)
|
||||
{
|
||||
ilutCurImage = ilGetCurImage();
|
||||
if (ilutCurImage == NULL) {
|
||||
ilSetError(ILUT_ILLEGAL_OPERATION);
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
if (Bitmap == NULL || Bitmap->w == 0 || Bitmap->h == 0) {
|
||||
ilSetError(ILUT_INVALID_PARAM);
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
if (!ilTexImage(Bitmap->w, Bitmap->h, 1, 3, IL_RGB, IL_UNSIGNED_BYTE, NULL))
|
||||
return IL_FALSE;
|
||||
|
||||
return IL_TRUE;
|
||||
}
|
||||
|
||||
|
||||
#endif//ILUT_USE_SDL
|
||||
@@ -0,0 +1,424 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// ImageLib Utility Toolkit Sources
|
||||
// Copyright (C) 2000-2009 by Denton Woods
|
||||
// Last modified: 03/07/2009
|
||||
//
|
||||
// Filename: src-ILUT/src/ilut_states.c
|
||||
//
|
||||
// Description: The state machine
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
|
||||
#include "ilut_internal.h"
|
||||
#include "ilut_states.h"
|
||||
//#ifdef ILUT_USE_OPENGL
|
||||
#include "ilut_opengl.h"
|
||||
//#endif
|
||||
|
||||
|
||||
ILconst_string _ilutVendor = IL_TEXT("Abysmal Software");
|
||||
//ILconst_string _ilutVersion = IL_TEXT("Developer's Image Library Utility Toolkit (ILUT) 1.7.8 " IL_TEXT(__DATE__));
|
||||
ILconst_string _ilutVersion = IL_TEXT("Developer's Image Library Utility Toolkit (ILUT) 1.7.8");
|
||||
|
||||
|
||||
// Set all states to their defaults
|
||||
void ilutDefaultStates()
|
||||
{
|
||||
ilutStates[ilutCurrentPos].ilutUsePalettes = IL_FALSE;
|
||||
ilutStates[ilutCurrentPos].ilutForceIntegerFormat = IL_FALSE;
|
||||
ilutStates[ilutCurrentPos].ilutOglConv = IL_FALSE; // IL_TRUE ?
|
||||
ilutStates[ilutCurrentPos].ilutDXTCFormat = 0;
|
||||
ilutStates[ilutCurrentPos].ilutUseS3TC = IL_FALSE;
|
||||
ilutStates[ilutCurrentPos].ilutGenS3TC = IL_FALSE;
|
||||
ilutStates[ilutCurrentPos].ilutAutodetectTextureTarget = IL_FALSE;
|
||||
ilutStates[ilutCurrentPos].MaxTexW = 256;
|
||||
ilutStates[ilutCurrentPos].MaxTexH = 256;
|
||||
ilutStates[ilutCurrentPos].MaxTexD = 1;
|
||||
ilutStates[ilutCurrentPos].D3DMipLevels = 0;
|
||||
ilutStates[ilutCurrentPos].D3DPool = 0;
|
||||
ilutStates[ilutCurrentPos].D3DAlphaKeyColor = -1;
|
||||
}
|
||||
|
||||
|
||||
void ILAPIENTRY ilutD3D8MipFunc(ILuint NumLevels)
|
||||
{
|
||||
ilutStates[ilutCurrentPos].D3DMipLevels = NumLevels;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
ILstring ILAPIENTRY ilutGetString(ILenum StringName)
|
||||
{
|
||||
switch (StringName)
|
||||
{
|
||||
case ILUT_VENDOR:
|
||||
return (ILstring)_ilutVendor;
|
||||
//changed 2003-09-04
|
||||
case ILUT_VERSION_NUM:
|
||||
return (ILstring)_ilutVersion;
|
||||
default:
|
||||
ilSetError(ILUT_INVALID_PARAM);
|
||||
break;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
ILboolean ILAPIENTRY ilutEnable(ILenum Mode)
|
||||
{
|
||||
return ilutAble(Mode, IL_TRUE);
|
||||
}
|
||||
|
||||
|
||||
ILboolean ILAPIENTRY ilutDisable(ILenum Mode)
|
||||
{
|
||||
return ilutAble(Mode, IL_FALSE);
|
||||
}
|
||||
|
||||
|
||||
ILboolean ilutAble(ILenum Mode, ILboolean Flag)
|
||||
{
|
||||
switch (Mode)
|
||||
{
|
||||
case ILUT_PALETTE_MODE:
|
||||
ilutStates[ilutCurrentPos].ilutUsePalettes = Flag;
|
||||
break;
|
||||
|
||||
case ILUT_FORCE_INTEGER_FORMAT:
|
||||
ilutStates[ilutCurrentPos].ilutForceIntegerFormat = Flag;
|
||||
break;
|
||||
|
||||
case ILUT_OPENGL_CONV:
|
||||
ilutStates[ilutCurrentPos].ilutOglConv = Flag;
|
||||
break;
|
||||
|
||||
case ILUT_GL_USE_S3TC:
|
||||
ilutStates[ilutCurrentPos].ilutUseS3TC = Flag;
|
||||
break;
|
||||
|
||||
case ILUT_GL_GEN_S3TC:
|
||||
ilutStates[ilutCurrentPos].ilutGenS3TC = Flag;
|
||||
break;
|
||||
|
||||
case ILUT_GL_AUTODETECT_TEXTURE_TARGET:
|
||||
ilutStates[ilutCurrentPos].ilutAutodetectTextureTarget = Flag;
|
||||
break;
|
||||
|
||||
|
||||
default:
|
||||
ilSetError(ILUT_INVALID_ENUM);
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
return IL_TRUE;
|
||||
}
|
||||
|
||||
|
||||
ILboolean ILAPIENTRY ilutIsEnabled(ILenum Mode)
|
||||
{
|
||||
switch (Mode)
|
||||
{
|
||||
case ILUT_PALETTE_MODE:
|
||||
return ilutStates[ilutCurrentPos].ilutUsePalettes;
|
||||
|
||||
case ILUT_FORCE_INTEGER_FORMAT:
|
||||
return ilutStates[ilutCurrentPos].ilutForceIntegerFormat;
|
||||
|
||||
case ILUT_OPENGL_CONV:
|
||||
return ilutStates[ilutCurrentPos].ilutOglConv;
|
||||
|
||||
case ILUT_GL_USE_S3TC:
|
||||
return ilutStates[ilutCurrentPos].ilutUseS3TC;
|
||||
|
||||
case ILUT_GL_GEN_S3TC:
|
||||
return ilutStates[ilutCurrentPos].ilutGenS3TC;
|
||||
|
||||
case ILUT_GL_AUTODETECT_TEXTURE_TARGET:
|
||||
return ilutStates[ilutCurrentPos].ilutAutodetectTextureTarget;
|
||||
|
||||
|
||||
default:
|
||||
ilSetError(ILUT_INVALID_ENUM);
|
||||
}
|
||||
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
|
||||
ILboolean ILAPIENTRY ilutIsDisabled(ILenum Mode)
|
||||
{
|
||||
return !ilutIsEnabled(Mode);
|
||||
}
|
||||
|
||||
|
||||
void ILAPIENTRY ilutGetBooleanv(ILenum Mode, ILboolean *Param)
|
||||
{
|
||||
switch (Mode)
|
||||
{
|
||||
case ILUT_PALETTE_MODE:
|
||||
*Param = ilutStates[ilutCurrentPos].ilutUsePalettes;
|
||||
break;
|
||||
|
||||
case ILUT_FORCE_INTEGER_FORMAT:
|
||||
*Param = ilutStates[ilutCurrentPos].ilutForceIntegerFormat;
|
||||
break;
|
||||
|
||||
case ILUT_OPENGL_CONV:
|
||||
*Param = ilutStates[ilutCurrentPos].ilutOglConv;
|
||||
break;
|
||||
|
||||
case ILUT_GL_USE_S3TC:
|
||||
*Param = ilutStates[ilutCurrentPos].ilutUseS3TC;
|
||||
break;
|
||||
|
||||
case ILUT_GL_GEN_S3TC:
|
||||
*Param = ilutStates[ilutCurrentPos].ilutGenS3TC;
|
||||
break;
|
||||
|
||||
case ILUT_GL_AUTODETECT_TEXTURE_TARGET:
|
||||
*Param = ilutStates[ilutCurrentPos].ilutAutodetectTextureTarget;
|
||||
break;
|
||||
|
||||
default:
|
||||
ilSetError(ILUT_INVALID_ENUM);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
ILboolean ILAPIENTRY ilutGetBoolean(ILenum Mode)
|
||||
{
|
||||
ILboolean Temp = IL_FALSE;
|
||||
ilutGetBooleanv(Mode, &Temp);
|
||||
return Temp;
|
||||
}
|
||||
|
||||
|
||||
void ILAPIENTRY ilutGetIntegerv(ILenum Mode, ILint *Param)
|
||||
{
|
||||
switch (Mode)
|
||||
{
|
||||
/*case IL_ORIGIN_MODE:
|
||||
*Param = ilutStates[ilutCurrentPos].ilutOriginMode;
|
||||
break;*/
|
||||
case ILUT_MAXTEX_WIDTH:
|
||||
*Param = ilutStates[ilutCurrentPos].MaxTexW;
|
||||
break;
|
||||
case ILUT_MAXTEX_HEIGHT:
|
||||
*Param = ilutStates[ilutCurrentPos].MaxTexH;
|
||||
break;
|
||||
case ILUT_MAXTEX_DEPTH:
|
||||
*Param = ilutStates[ilutCurrentPos].MaxTexD;
|
||||
break;
|
||||
case ILUT_VERSION_NUM:
|
||||
*Param = ILUT_VERSION;
|
||||
break;
|
||||
case ILUT_PALETTE_MODE:
|
||||
*Param = ilutStates[ilutCurrentPos].ilutUsePalettes;
|
||||
break;
|
||||
case ILUT_FORCE_INTEGER_FORMAT:
|
||||
*Param = ilutStates[ilutCurrentPos].ilutForceIntegerFormat;
|
||||
break;
|
||||
case ILUT_OPENGL_CONV:
|
||||
*Param = ilutStates[ilutCurrentPos].ilutOglConv;
|
||||
break;
|
||||
case ILUT_GL_USE_S3TC:
|
||||
*Param = ilutStates[ilutCurrentPos].ilutUseS3TC;
|
||||
break;
|
||||
case ILUT_GL_GEN_S3TC:
|
||||
*Param = ilutStates[ilutCurrentPos].ilutUseS3TC;
|
||||
break;
|
||||
case ILUT_S3TC_FORMAT:
|
||||
*Param = ilutStates[ilutCurrentPos].ilutDXTCFormat;
|
||||
break;
|
||||
case ILUT_GL_AUTODETECT_TEXTURE_TARGET:
|
||||
*Param = ilutStates[ilutCurrentPos].ilutAutodetectTextureTarget;
|
||||
break;
|
||||
case ILUT_D3D_MIPLEVELS:
|
||||
*Param = ilutStates[ilutCurrentPos].D3DMipLevels;
|
||||
break;
|
||||
case ILUT_D3D_ALPHA_KEY_COLOR:
|
||||
*Param = ilutStates[ilutCurrentPos].D3DAlphaKeyColor;
|
||||
break;
|
||||
case ILUT_D3D_POOL:
|
||||
*Param = ilutStates[ilutCurrentPos].D3DPool;
|
||||
break;
|
||||
|
||||
default:
|
||||
ilSetError(ILUT_INVALID_ENUM);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
ILint ILAPIENTRY ilutGetInteger(ILenum Mode)
|
||||
{
|
||||
ILint Temp = 0;
|
||||
ilutGetIntegerv(Mode, &Temp);
|
||||
return Temp;
|
||||
}
|
||||
|
||||
|
||||
void ILAPIENTRY ilutSetInteger(ILenum Mode, ILint Param)
|
||||
{
|
||||
switch (Mode)
|
||||
{
|
||||
case ILUT_S3TC_FORMAT:
|
||||
if (Param >= IL_DXT1 && Param <= IL_DXT5) {
|
||||
ilutStates[ilutCurrentPos].ilutDXTCFormat = Param;
|
||||
return;
|
||||
}
|
||||
|
||||
//#ifdef ILUT_USE_OPENGL
|
||||
case ILUT_MAXTEX_WIDTH:
|
||||
if (Param >= 1) {
|
||||
ilutStates[ilutCurrentPos].MaxTexW = Param;
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case ILUT_MAXTEX_HEIGHT:
|
||||
if (Param >= 1) {
|
||||
ilutStates[ilutCurrentPos].MaxTexH = Param;
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case ILUT_MAXTEX_DEPTH:
|
||||
if (Param >= 1) {
|
||||
ilutStates[ilutCurrentPos].MaxTexD = Param;
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case ILUT_GL_USE_S3TC:
|
||||
if (Param == IL_TRUE || Param == IL_FALSE) {
|
||||
ilutStates[ilutCurrentPos].ilutUseS3TC = (ILboolean)Param;
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case ILUT_GL_GEN_S3TC:
|
||||
if (Param == IL_TRUE || Param == IL_FALSE) {
|
||||
ilutStates[ilutCurrentPos].ilutGenS3TC = (ILboolean)Param;
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case ILUT_GL_AUTODETECT_TEXTURE_TARGET:
|
||||
if (Param == IL_TRUE || Param == IL_FALSE) {
|
||||
ilutStates[ilutCurrentPos].ilutAutodetectTextureTarget = (ILboolean)Param;
|
||||
return;
|
||||
}
|
||||
break;
|
||||
//#endif//ILUT_USE_OPENGL
|
||||
|
||||
//#ifdef ILUT_USE_DIRECTX8
|
||||
case ILUT_D3D_MIPLEVELS:
|
||||
if (Param >= 0) {
|
||||
ilutStates[ilutCurrentPos].D3DMipLevels = Param;
|
||||
return;
|
||||
}
|
||||
break;
|
||||
|
||||
case ILUT_D3D_ALPHA_KEY_COLOR:
|
||||
ilutStates[ilutCurrentPos].D3DAlphaKeyColor = Param;
|
||||
return;
|
||||
break;
|
||||
|
||||
case ILUT_D3D_POOL:
|
||||
if (Param >= 0 && Param <= 2) {
|
||||
ilutStates[ilutCurrentPos].D3DPool = Param;
|
||||
return;
|
||||
}
|
||||
break;
|
||||
//#endif//ILUT_USE_DIRECTX8
|
||||
|
||||
default:
|
||||
ilSetError(ILUT_INVALID_ENUM);
|
||||
}
|
||||
|
||||
ilSetError(IL_INVALID_PARAM); // Parameter not in valid bounds.
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
void ILAPIENTRY ilutPushAttrib(ILuint Bits)
|
||||
{
|
||||
// Should we check here to see if ilCurrentPos is negative?
|
||||
|
||||
if (ilutCurrentPos >= ILUT_ATTRIB_STACK_MAX - 1) {
|
||||
ilutCurrentPos = ILUT_ATTRIB_STACK_MAX - 1;
|
||||
ilSetError(ILUT_STACK_OVERFLOW);
|
||||
return;
|
||||
}
|
||||
|
||||
ilutCurrentPos++;
|
||||
|
||||
//memcpy(&ilutStates[ilutCurrentPos], &ilutStates[ilutCurrentPos - 1], sizeof(ILUT_STATES));
|
||||
|
||||
if (Bits & ILUT_OPENGL_BIT) {
|
||||
ilutStates[ilutCurrentPos].ilutUsePalettes = ilutStates[ilutCurrentPos-1].ilutUsePalettes;
|
||||
ilutStates[ilutCurrentPos].ilutOglConv = ilutStates[ilutCurrentPos-1].ilutOglConv;
|
||||
}
|
||||
if (Bits & ILUT_D3D_BIT) {
|
||||
ilutStates[ilutCurrentPos].D3DMipLevels = ilutStates[ilutCurrentPos-1].D3DMipLevels;
|
||||
ilutStates[ilutCurrentPos].D3DAlphaKeyColor = ilutStates[ilutCurrentPos-1].D3DAlphaKeyColor;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
void ILAPIENTRY ilutPopAttrib()
|
||||
{
|
||||
if (ilutCurrentPos <= 0) {
|
||||
ilutCurrentPos = 0;
|
||||
ilSetError(ILUT_STACK_UNDERFLOW);
|
||||
return;
|
||||
}
|
||||
|
||||
// Should we check here to see if ilutCurrentPos is too large?
|
||||
ilutCurrentPos--;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
ILboolean ILAPIENTRY ilutRenderer(ILenum Renderer)
|
||||
{
|
||||
if (Renderer > ILUT_WIN32) {
|
||||
ilSetError(ILUT_INVALID_VALUE);
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
switch (Renderer)
|
||||
{
|
||||
#ifdef ILUT_USE_OPENGL
|
||||
case ILUT_OPENGL:
|
||||
return ilutGLInit();
|
||||
#endif
|
||||
|
||||
#ifdef ILUT_USE_WIN32
|
||||
case ILUT_WIN32:
|
||||
return ilutWin32Init();
|
||||
#endif
|
||||
|
||||
#ifdef ILUT_USE_DIRECTX8
|
||||
case ILUT_DIRECT3D8:
|
||||
return ilutD3D8Init();
|
||||
#endif
|
||||
|
||||
#ifdef ILUT_USE_DIRECTX9
|
||||
case ILUT_DIRECT3D9:
|
||||
return ilutD3D9Init();
|
||||
#endif
|
||||
|
||||
#ifdef ILUT_USE_DIRECTX10
|
||||
case ILUT_DIRECT3D10:
|
||||
return ilutD3D10Init();
|
||||
#endif
|
||||
|
||||
default:
|
||||
ilSetError(ILUT_NOT_SUPPORTED);
|
||||
}
|
||||
|
||||
return IL_FALSE;
|
||||
}
|
||||
@@ -0,0 +1,856 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// ImageLib Utility Toolkit Sources
|
||||
// Copyright (C) 2000-2008 by Denton Woods
|
||||
// Last modified: 12/14/2008
|
||||
//
|
||||
// Filename: src-ILUT/src/ilut_win32.c
|
||||
//
|
||||
// Description: Windows functions for images
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
|
||||
#include "ilut_internal.h"
|
||||
#ifdef ILUT_USE_WIN32
|
||||
#include <windows.h>
|
||||
#include <wininet.h>
|
||||
|
||||
// For ilutWinLoadUrl().
|
||||
#ifdef _MSC_VER
|
||||
#pragma comment(lib, "wininet.lib")
|
||||
#endif
|
||||
|
||||
|
||||
#if !_WIN32_WCE && (_WIN32 && __GNUC__)
|
||||
PRINTDLG Pd;
|
||||
#endif//_WIN32_WCE
|
||||
|
||||
ILboolean ilutWin32Init()
|
||||
{
|
||||
|
||||
|
||||
return IL_TRUE;
|
||||
}
|
||||
|
||||
|
||||
ILAPI HBITMAP ILAPIENTRY ilutConvertSliceToHBitmap(HDC hDC, ILuint slice)
|
||||
{
|
||||
ILubyte *Data, *DataBackup;
|
||||
HBITMAP hBitmap = NULL;
|
||||
ILimage *TempImage = NULL;
|
||||
ILuint pad, i, j, k, l, m, n, DepthBackup;
|
||||
ILpal *palImg;
|
||||
ILboolean alloc_buffer;
|
||||
|
||||
//reserve space for palette in every case...
|
||||
ILubyte buff[sizeof(BITMAPINFOHEADER) + 256*sizeof(RGBQUAD)];
|
||||
BITMAPINFO *info = (BITMAPINFO*)buff;
|
||||
RGBQUAD *pal = info->bmiColors;
|
||||
|
||||
ilutCurImage = ilGetCurImage();
|
||||
if (ilutCurImage == NULL) {
|
||||
ilSetError(ILUT_ILLEGAL_OPERATION);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
//check if the image has the wanted slice
|
||||
if (slice < 0 || slice >= ilutCurImage->Depth) {
|
||||
ilSetError(ILUT_INVALID_PARAM);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// Fool iConvertImage into thinking that the current image has
|
||||
// only one slice, the one we want:
|
||||
DepthBackup = ilutCurImage->Depth;
|
||||
DataBackup = ilutCurImage->Data;
|
||||
ilutCurImage->Depth = 1;
|
||||
ilutCurImage->Data += ilutCurImage->SizeOfPlane*slice;
|
||||
|
||||
if (ilutCurImage->Type != IL_UNSIGNED_BYTE)
|
||||
TempImage = iConvertImage(ilutCurImage, ilutCurImage->Format, IL_UNSIGNED_BYTE);
|
||||
else
|
||||
TempImage = ilutCurImage;
|
||||
if (TempImage == NULL) {
|
||||
goto error;
|
||||
}
|
||||
|
||||
//changed 2003-09-09: use Temp!
|
||||
ilSetCurImage(TempImage);
|
||||
|
||||
hBitmap = CreateCompatibleBitmap(hDC, ilutCurImage->Width, ilutCurImage->Height);
|
||||
if (hBitmap == NULL) {
|
||||
ilSetError(IL_UNKNOWN_ERROR);
|
||||
goto error;
|
||||
}
|
||||
|
||||
info->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
|
||||
info->bmiHeader.biWidth = TempImage->Width;
|
||||
if (TempImage->Origin == IL_ORIGIN_UPPER_LEFT)
|
||||
info->bmiHeader.biHeight = -(ILint)TempImage->Height;
|
||||
else
|
||||
info->bmiHeader.biHeight = TempImage->Height;
|
||||
info->bmiHeader.biPlanes = 1;
|
||||
info->bmiHeader.biCompression = 0;
|
||||
info->bmiHeader.biSizeImage = 0;
|
||||
info->bmiHeader.biXPelsPerMeter = 0;
|
||||
info->bmiHeader.biYPelsPerMeter = 0;
|
||||
info->bmiHeader.biClrUsed = 0;
|
||||
info->bmiHeader.biClrImportant = 0;
|
||||
|
||||
pad = (4 - TempImage->Bps%4)%4;
|
||||
alloc_buffer = (ILboolean)!(pad == 0 && TempImage->Format != IL_RGB
|
||||
&& TempImage->Format != IL_RGBA && TempImage->Format != IL_LUMINANCE_ALPHA);
|
||||
if (!alloc_buffer) {
|
||||
Data = TempImage->Data;
|
||||
}
|
||||
else {
|
||||
ILsizei DataSize = 0;
|
||||
if (TempImage->Format == IL_RGBA) { // Strip alpha during byte swapping for faster upload to GDI.
|
||||
// Recalculate pad, because it changes when bpp changes.
|
||||
pad = (4 - (3 * TempImage->Width) % 4) % 4;
|
||||
DataSize = (TempImage->Width + pad) * TempImage->Height * 3;
|
||||
}
|
||||
// Strip alpha channel from grayscale image.
|
||||
else if (TempImage->Format == IL_LUMINANCE_ALPHA) {
|
||||
// Added 01-09-2009: Recalculate pad.
|
||||
pad = (4 - TempImage->Width % 4) % 4;
|
||||
DataSize = (TempImage->Width + pad) * TempImage->Height;
|
||||
}
|
||||
else {
|
||||
DataSize = (TempImage->Width + pad) * TempImage->Height * TempImage->Bpp;
|
||||
}
|
||||
|
||||
Data = (ILubyte*)ialloc(DataSize);
|
||||
if (Data == NULL) {
|
||||
goto error;
|
||||
}
|
||||
|
||||
if (TempImage->Format == IL_RGB || TempImage->Format == IL_RGBA) {
|
||||
//swap bytes
|
||||
m = (TempImage->Format == IL_RGB)?3:4;
|
||||
k = l = 0;
|
||||
for (j = 0; j < TempImage->Height; j++) {
|
||||
for (i = 0, n = 0; i < 3*TempImage->Width; i += 3, n += m) {
|
||||
Data[l + i] = TempImage->Data[k + n + 2];
|
||||
Data[l + i + 1] = TempImage->Data[k + n + 1];
|
||||
Data[l + i + 2] = TempImage->Data[k + n];
|
||||
}
|
||||
|
||||
k += TempImage->Bps;
|
||||
l += 3*TempImage->Width + pad;
|
||||
}
|
||||
}
|
||||
else if (TempImage->Format == IL_LUMINANCE_ALPHA) {
|
||||
//strip alpha channel
|
||||
//recalculate pad because it included alpha channel info
|
||||
pad = (4 - TempImage->Width%4)%4;
|
||||
k = l = 0;
|
||||
for (j = 0; j < TempImage->Height; j++) {
|
||||
for (i = 0, n = 0; i < TempImage->Width; ++i, n += 2) {
|
||||
Data[l + i] = TempImage->Data[k + n];
|
||||
}
|
||||
k += TempImage->Bps;
|
||||
l += TempImage->Width + pad;
|
||||
}
|
||||
}
|
||||
else
|
||||
for (i = 0; i < TempImage->Height; i++)
|
||||
memcpy(Data + i*(TempImage->Bps + pad), TempImage->Data + i*TempImage->Bps, TempImage->Bps);
|
||||
}
|
||||
|
||||
switch (TempImage->Format)
|
||||
{
|
||||
case IL_LUMINANCE:
|
||||
case IL_LUMINANCE_ALPHA:
|
||||
case IL_COLOUR_INDEX:
|
||||
if (TempImage->Format != IL_COLOUR_INDEX) {
|
||||
//generate greyscale palette
|
||||
for (i = 0; i < 256; i++)
|
||||
pal[i].rgbRed = pal[i].rgbGreen = pal[i].rgbBlue = (ILubyte)i;
|
||||
}
|
||||
else {
|
||||
palImg = iConvertPal(&TempImage->Pal, IL_PAL_BGR32);
|
||||
if (palImg != NULL) {
|
||||
memcpy(pal, palImg->Palette, palImg->PalSize);
|
||||
ilClosePal(palImg);
|
||||
}
|
||||
else {
|
||||
//ilSetError(IL_INVALID_PARAM);
|
||||
// Generate greyscale palette <-- Why is this here?
|
||||
for (i = 0; i < 256; i++)
|
||||
pal[i].rgbRed = pal[i].rgbGreen = pal[i].rgbBlue = (ILubyte)i;
|
||||
}
|
||||
}
|
||||
info->bmiHeader.biBitCount = 8;
|
||||
break;
|
||||
|
||||
case IL_RGB:
|
||||
case IL_BGR:
|
||||
case IL_RGBA: //alpha is removed during byte swapping
|
||||
info->bmiHeader.biBitCount = 24;
|
||||
break;
|
||||
|
||||
case IL_BGRA:
|
||||
info->bmiHeader.biBitCount = 32;
|
||||
break;
|
||||
|
||||
/*default:
|
||||
ilSetError(IL_FORMAT_NOT_SUPPORTED);
|
||||
return hBitmap;*/
|
||||
}
|
||||
|
||||
// Restore original data
|
||||
ilutCurImage->Data = DataBackup;
|
||||
ilutCurImage->Depth = DepthBackup;
|
||||
|
||||
SetDIBits(hDC, hBitmap, 0, ilutCurImage->Height, Data, info, DIB_RGB_COLORS);
|
||||
|
||||
if (alloc_buffer)
|
||||
ifree(Data);
|
||||
|
||||
if (ilutCurImage != TempImage) {
|
||||
ilSetCurImage(ilutCurImage);
|
||||
ilCloseImage(TempImage);
|
||||
}
|
||||
|
||||
return hBitmap;
|
||||
|
||||
error:
|
||||
// Restore original data
|
||||
ilutCurImage->Data = DataBackup;
|
||||
ilutCurImage->Depth = DepthBackup;
|
||||
if (ilutCurImage != TempImage) {
|
||||
ilSetCurImage(ilutCurImage);
|
||||
ilCloseImage(TempImage);
|
||||
}
|
||||
ilSetCurImage(ilutCurImage);
|
||||
if (hBitmap)
|
||||
DeleteObject(hBitmap);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
HBITMAP ILAPIENTRY ilutConvertToHBitmap(HDC hDC)
|
||||
{
|
||||
return ilutConvertSliceToHBitmap(hDC, 0);
|
||||
}
|
||||
|
||||
ILubyte* ILAPIENTRY iGetPaddedData(ILimage *Image)
|
||||
{
|
||||
ILubyte *NewData = NULL, *TempBuff = NULL;
|
||||
ILuint i, CurPos = 0, PadSize;
|
||||
ILubyte *TempData = NULL;
|
||||
|
||||
if (Image == NULL) {
|
||||
ilSetError(ILUT_INVALID_PARAM);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (Image->Origin != IL_ORIGIN_LOWER_LEFT) {
|
||||
TempData = iGetFlipped(Image);
|
||||
}
|
||||
else {
|
||||
TempData = Image->Data;
|
||||
}
|
||||
|
||||
if (Image->Format == IL_RGB || Image->Format == IL_RGBA) {
|
||||
TempBuff = (ILubyte*)ialloc(Image->SizeOfData);
|
||||
|
||||
if (TempBuff == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
// Swap red and blue.
|
||||
for (i = 0; i < Image->SizeOfData; i += Image->Bpp) {
|
||||
TempBuff[i] = TempData[i+2];
|
||||
TempBuff[i+1] = TempData[i+1];
|
||||
TempBuff[i+2] = TempData[i];
|
||||
// Copy the alpha channel if present.
|
||||
if (Image->Bpp == 4)
|
||||
TempBuff[i+3] = TempData[i+3];
|
||||
}
|
||||
}
|
||||
else {
|
||||
TempBuff = TempData;
|
||||
}
|
||||
|
||||
PadSize = (4 - (Image->Bps % 4)) % 4;
|
||||
NewData = (ILubyte*)ialloc((Image->Width + PadSize) * Image->Height * Image->Bpp);
|
||||
if (NewData == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
for (i = 0; i < Image->Height; i++) {
|
||||
memcpy(NewData + CurPos, TempBuff + Image->Bps * i, Image->Bps);
|
||||
CurPos += Image->Bps;
|
||||
memset(NewData + CurPos, 0, PadSize);
|
||||
CurPos += PadSize;
|
||||
}
|
||||
|
||||
if (TempData != TempBuff && TempData != Image->Data)
|
||||
ifree(TempData);
|
||||
if (TempBuff != Image->Data)
|
||||
ifree(TempBuff);
|
||||
|
||||
return NewData;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void ILAPIENTRY ilutFreePaddedData(ILubyte *Data)
|
||||
{
|
||||
ifree(Data);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
// DirectX/GDI insists that all scanlines end on a dword boundary. =(
|
||||
ILubyte* ILAPIENTRY ilutGetPaddedData()
|
||||
{
|
||||
return iGetPaddedData(ilGetCurImage());
|
||||
}
|
||||
|
||||
|
||||
// @TODO: Figure how to mess with multiple bpc's!
|
||||
void ILAPIENTRY ilutGetBmpInfo(BITMAPINFO *Info)
|
||||
{
|
||||
ILuint NewBps, Padding;
|
||||
|
||||
ilutCurImage = ilGetCurImage();
|
||||
if (ilutCurImage == NULL) {
|
||||
ilSetError(ILUT_ILLEGAL_OPERATION);
|
||||
return;
|
||||
}
|
||||
|
||||
Padding = (4 - (ilutCurImage->Bps % 4)) % 4;
|
||||
NewBps = ilutCurImage->Bps/* + Padding*/;
|
||||
|
||||
Info->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
|
||||
Info->bmiHeader.biWidth = ilutCurImage->Width;
|
||||
Info->bmiHeader.biHeight = ilutCurImage->Height;
|
||||
Info->bmiHeader.biPlanes = 1;
|
||||
Info->bmiHeader.biBitCount = ilutCurImage->Bpp << 3;
|
||||
Info->bmiHeader.biCompression = BI_RGB;
|
||||
Info->bmiHeader.biSizeImage = NewBps * ilutCurImage->Height;
|
||||
Info->bmiHeader.biXPelsPerMeter = 0;
|
||||
Info->bmiHeader.biYPelsPerMeter = 0;
|
||||
Info->bmiHeader.biClrUsed = ilutCurImage->Bpp == 1 ? 255 : 0;
|
||||
if (Info->bmiHeader.biClrUsed < 24)
|
||||
Info->bmiHeader.biClrImportant = Info->bmiHeader.biClrUsed;
|
||||
else
|
||||
Info->bmiHeader.biClrImportant = 0;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
//! Just a convenience function.
|
||||
HBITMAP ILAPIENTRY ilutWinLoadImage(ILstring FileName, HDC hDC)
|
||||
{
|
||||
HBITMAP Bitmap;
|
||||
|
||||
iBindImageTemp();
|
||||
if (!ilLoadImage(FileName))
|
||||
return 0;
|
||||
|
||||
Bitmap = ilutConvertToHBitmap(hDC);
|
||||
|
||||
return Bitmap;
|
||||
}
|
||||
|
||||
|
||||
#ifndef _WIN32_WCE
|
||||
ILboolean ILAPIENTRY ilutWinSaveImage(ILstring FileName, HBITMAP Bitmap)
|
||||
{
|
||||
ILuint CurName;
|
||||
ILboolean Saved;
|
||||
|
||||
CurName = ilGetCurName();
|
||||
|
||||
iBindImageTemp();
|
||||
|
||||
if (!ilutSetHBitmap(Bitmap)) {
|
||||
ilBindImage(CurName);
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
Saved = ilSaveImage(FileName);
|
||||
ilBindImage(CurName);
|
||||
|
||||
return Saved;
|
||||
}
|
||||
#endif//_WIN32_WCE
|
||||
|
||||
|
||||
// @TODO: Just create a copy of the palette!
|
||||
// Credit for this goes to the OpenGL SuperBible.
|
||||
HPALETTE ILAPIENTRY ilutGetHPal()
|
||||
{
|
||||
HPALETTE Palette;
|
||||
LOGPALETTE *LogPal;
|
||||
ILuint NumEntries, i;
|
||||
ILenum CurPalType;
|
||||
|
||||
ilutCurImage = ilGetCurImage();
|
||||
if (ilutCurImage == NULL) {
|
||||
ilSetError(ILUT_ILLEGAL_OPERATION);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (!ilutCurImage->Pal.Palette || !ilutCurImage->Pal.PalSize || ilutCurImage->Pal.PalType == IL_PAL_NONE) {
|
||||
//ilSetError(ILUT_ILLEGAL_OPERATION);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
CurPalType = ilutCurImage->Pal.PalType;
|
||||
if (!ilConvertPal(IL_PAL_RGB24)) {
|
||||
return NULL; // ilConvertPal already sets the error
|
||||
}
|
||||
NumEntries = ilutCurImage->Pal.PalSize / 3;
|
||||
|
||||
LogPal = (LOGPALETTE*)ialloc(sizeof(LOGPALETTE) + NumEntries * sizeof(PALETTEENTRY));
|
||||
if (!LogPal) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
LogPal->palVersion = 0x300;
|
||||
LogPal->palNumEntries = (WORD)NumEntries;
|
||||
|
||||
for (i = 0; i < NumEntries; i++) {
|
||||
LogPal->palPalEntry[i].peRed = ilutCurImage->Pal.Palette[i * 3];
|
||||
LogPal->palPalEntry[i].peGreen = ilutCurImage->Pal.Palette[i * 3 + 1];
|
||||
LogPal->palPalEntry[i].peBlue = ilutCurImage->Pal.Palette[i * 3 + 2];
|
||||
LogPal->palPalEntry[i].peFlags = 0;
|
||||
}
|
||||
|
||||
Palette = CreatePalette(LogPal);
|
||||
ifree(LogPal);
|
||||
|
||||
ilConvertPal(CurPalType); // Should we check the return value?
|
||||
|
||||
return Palette;
|
||||
}
|
||||
|
||||
|
||||
ILboolean ILAPIENTRY ilutSetHBitmap(HBITMAP Bitmap)
|
||||
{
|
||||
#ifndef _WIN32_WCE
|
||||
BITMAPINFO Info[2];
|
||||
HWND hWnd;
|
||||
HDC hDC;
|
||||
ILubyte *Buffer1 = NULL, *Buffer2 = NULL;
|
||||
ILuint i, j, PadSize, Bps;
|
||||
|
||||
ilutCurImage = ilGetCurImage();
|
||||
if (ilutCurImage == NULL) {
|
||||
ilSetError(ILUT_ILLEGAL_OPERATION);
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
hWnd = GetForegroundWindow();
|
||||
hDC = GetDC(hWnd);
|
||||
|
||||
// Query the dimensions
|
||||
memset(&Info, 0, sizeof(BITMAPINFO));
|
||||
Info[0].bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
|
||||
GetDIBits(hDC, Bitmap, 0, 0, NULL, Info, DIB_RGB_COLORS);
|
||||
|
||||
// @TODO: Implement this shitz0rz!
|
||||
if (Info[0].bmiHeader.biBitCount < 24) {
|
||||
ReleaseDC(hWnd, hDC); //added 20040527
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
Buffer1 = (ILubyte*)ialloc(Info[0].bmiHeader.biSizeImage);
|
||||
Buffer2 = (ILubyte*)ialloc(Info[0].bmiHeader.biSizeImage);
|
||||
if (Buffer1 == NULL || Buffer2 == NULL) {
|
||||
ReleaseDC(hWnd, hDC); //added 20040527
|
||||
ifree(Buffer1);
|
||||
ifree(Buffer2);
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
//GetBitmapBits
|
||||
GetDIBits(hDC, Bitmap, 0, Info[0].bmiHeader.biHeight, Buffer1, Info, DIB_RGB_COLORS);
|
||||
|
||||
Bps = Info[0].bmiHeader.biWidth * (Info[0].bmiHeader.biBitCount >> 3);
|
||||
PadSize = (4 - (Bps % 4)) % 4;
|
||||
|
||||
// Remove the padding.
|
||||
for (i = 0, j = 0; i < Info[0].bmiHeader.biSizeImage; i += Bps + PadSize, j += Bps) {
|
||||
memcpy(Buffer2 + j, Buffer1 + i, Bps);
|
||||
}
|
||||
|
||||
if (Info[0].bmiHeader.biBitCount == 24) {
|
||||
ilTexImage(Info[0].bmiHeader.biWidth, Info[0].bmiHeader.biHeight, 1,
|
||||
(ILubyte)(Info[0].bmiHeader.biBitCount >> 3), IL_BGR, IL_UNSIGNED_BYTE, Buffer2);
|
||||
}
|
||||
else if (Info[0].bmiHeader.biBitCount == 32) {
|
||||
ilTexImage(Info[0].bmiHeader.biWidth, Info[0].bmiHeader.biHeight, 1,
|
||||
(ILubyte)(Info[0].bmiHeader.biBitCount >> 3), IL_BGRA, IL_UNSIGNED_BYTE, Buffer2);
|
||||
}
|
||||
ilutCurImage->Origin = IL_ORIGIN_LOWER_LEFT;
|
||||
|
||||
ReleaseDC(hWnd, hDC); //added 20040527
|
||||
ifree(Buffer1);
|
||||
ifree(Buffer2);
|
||||
|
||||
#endif//_WIN32_WCE
|
||||
|
||||
return IL_TRUE;
|
||||
}
|
||||
|
||||
|
||||
ILboolean ILAPIENTRY ilutSetHPal(HPALETTE Pal)
|
||||
{
|
||||
LPPALETTEENTRY PalEntries;
|
||||
ILuint NumEntries, i;
|
||||
ILubyte *TempPal;
|
||||
|
||||
ilutCurImage = ilGetCurImage();
|
||||
if (ilutCurImage == NULL) {
|
||||
ilSetError(ILUT_ILLEGAL_OPERATION);
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
NumEntries = GetPaletteEntries(Pal, 0, 0, NULL);
|
||||
if (NumEntries == 0)
|
||||
return IL_TRUE; // @TODO: Determine if correct...
|
||||
|
||||
PalEntries = (LPPALETTEENTRY)ialloc(NumEntries * sizeof(PALETTEENTRY));
|
||||
if (PalEntries == NULL) {
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
NumEntries = GetPaletteEntries(Pal, 0, NumEntries, PalEntries);
|
||||
|
||||
TempPal = (ILubyte*)ialloc(NumEntries * 3);
|
||||
if (TempPal == NULL) {
|
||||
ifree(PalEntries);
|
||||
return IL_FALSE;
|
||||
}
|
||||
if (ilutCurImage->Pal.Palette)
|
||||
ifree(ilutCurImage->Pal.Palette);
|
||||
ilutCurImage->Pal.Palette = TempPal;
|
||||
ilutCurImage->Pal.PalSize = NumEntries * 3;
|
||||
ilutCurImage->Pal.PalType = IL_PAL_RGB24;
|
||||
|
||||
for (i = 0; i < NumEntries; i++) {
|
||||
*TempPal++ = PalEntries[i].peRed;
|
||||
*TempPal++ = PalEntries[i].peGreen;
|
||||
*TempPal++ = PalEntries[i].peBlue;
|
||||
}
|
||||
|
||||
ifree(PalEntries);
|
||||
|
||||
return IL_TRUE;
|
||||
}
|
||||
|
||||
|
||||
ILboolean ILAPIENTRY ilutSetWinClipboard()
|
||||
{
|
||||
HBITMAP Bitmap;
|
||||
HANDLE Handle;
|
||||
HWND hWnd;
|
||||
HDC hDC;
|
||||
ILimage *TempImage, *CurImage;
|
||||
|
||||
ilutCurImage = ilGetCurImage();
|
||||
if (ilutCurImage == NULL) {
|
||||
ilSetError(ILUT_ILLEGAL_OPERATION);
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
if (ilutCurImage->Format != IL_BGR || ilutCurImage->Bps > 1) {
|
||||
TempImage = iConvertImage(ilutCurImage, IL_BGR, IL_UNSIGNED_BYTE);
|
||||
if (TempImage == NULL)
|
||||
return IL_FALSE;
|
||||
}
|
||||
else
|
||||
TempImage = ilutCurImage;
|
||||
|
||||
CurImage = ilutCurImage;
|
||||
ilSetCurImage(TempImage);
|
||||
|
||||
hWnd = GetForegroundWindow();
|
||||
hDC = GetDC(hWnd);
|
||||
|
||||
if (!OpenClipboard(NULL)) {
|
||||
if (TempImage != ilutCurImage)
|
||||
ilCloseImage(TempImage);
|
||||
ilSetCurImage(CurImage);
|
||||
ilSetError(ILUT_ILLEGAL_OPERATION); // Dunno if this is the correct error.
|
||||
ReleaseDC(hWnd, hDC); //added 20040604
|
||||
if (TempImage != ilutCurImage)
|
||||
ilCloseImage(TempImage);
|
||||
ilSetCurImage(CurImage);
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
//note that this is not the best method to put an image into the
|
||||
//clipboard, CF_DIB is much better because HBITMAPS are device-dependent.
|
||||
//TODO: eventually change that if there is a need
|
||||
Bitmap = ilutConvertToHBitmap(hDC);
|
||||
ReleaseDC(hWnd, hDC); //added 20040604
|
||||
|
||||
EmptyClipboard();
|
||||
Handle = SetClipboardData(CF_BITMAP, Bitmap);
|
||||
|
||||
CloseClipboard();
|
||||
|
||||
//DeleteObject(Bitmap); // Needed? No! Clipboard takes care of image.
|
||||
|
||||
if (TempImage != ilutCurImage)
|
||||
ilCloseImage(TempImage);
|
||||
ilSetCurImage(CurImage);
|
||||
|
||||
return IL_TRUE;
|
||||
}
|
||||
|
||||
|
||||
ILboolean ILAPIENTRY ilutGetWinClipboard()
|
||||
{
|
||||
//HBITMAP Bitmap;
|
||||
HWND hWnd;
|
||||
HGLOBAL hGlobal;
|
||||
PTSTR pGlobal, data;
|
||||
BITMAPFILEHEADER *BmpHeader;
|
||||
BITMAPINFOHEADER *InfoHeader;
|
||||
SIZE_T Size;
|
||||
|
||||
ilutCurImage = ilGetCurImage();
|
||||
if (ilutCurImage == NULL) {
|
||||
ilSetError(ILUT_ILLEGAL_OPERATION);
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
if (IsClipboardFormatAvailable(CF_DIB)) {
|
||||
hWnd = GetForegroundWindow();
|
||||
|
||||
if (!OpenClipboard(hWnd)) {
|
||||
ilSetError(ILUT_ILLEGAL_OPERATION); // Dunno if this is the correct error.
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
hGlobal = GetClipboardData(CF_DIB);
|
||||
if (!hGlobal) {
|
||||
CloseClipboard();
|
||||
return IL_FALSE; // No error?
|
||||
}
|
||||
|
||||
//copy DIB to buffer because windows delivers it without the
|
||||
//BITMAPFILEHEADER that DevIL needs to load the image
|
||||
Size = GlobalSize(hGlobal);
|
||||
//@TODO: Size should never be larger than an ILuint?
|
||||
data = (PTSTR)ialloc((ILuint)Size + sizeof(BITMAPFILEHEADER));
|
||||
pGlobal = (PTSTR)GlobalLock(hGlobal);
|
||||
if (!pGlobal || !data) {
|
||||
ifree(data);
|
||||
CloseClipboard();
|
||||
return IL_FALSE; // No error?
|
||||
}
|
||||
memcpy(data + sizeof(BITMAPFILEHEADER), pGlobal, Size);
|
||||
GlobalUnlock(hGlobal);
|
||||
CloseClipboard();
|
||||
|
||||
//create BITMAPFILEHEADER
|
||||
InfoHeader = (BITMAPINFOHEADER*)(data + sizeof(BITMAPFILEHEADER));
|
||||
BmpHeader = (BITMAPFILEHEADER*)data;
|
||||
BmpHeader->bfType = 'B' | ('M' << 8);
|
||||
//@TODO: Again, could it ever be larger than an unsigned integer (DWORD)?
|
||||
BmpHeader->bfSize = (DWORD)Size + sizeof(BITMAPFILEHEADER);
|
||||
BmpHeader->bfReserved1 = BmpHeader->bfReserved2 = 0;
|
||||
BmpHeader->bfOffBits = sizeof(BITMAPFILEHEADER) + InfoHeader->biSize + InfoHeader->biClrUsed*4;
|
||||
if (InfoHeader->biCompression == BI_BITFIELDS)
|
||||
BmpHeader->bfOffBits += 12;
|
||||
|
||||
return ilLoadL(IL_BMP, data, BmpHeader->bfSize);
|
||||
}
|
||||
/*
|
||||
//this is not required becaus CF_BITMAP is converted to CF_DIB automatically
|
||||
//when needed. CF_DIB suffices.
|
||||
else if (IsClipboardFormatAvailable(CF_BITMAP)) {
|
||||
hWnd = GetForegroundWindow();
|
||||
|
||||
if (!OpenClipboard(hWnd)) {
|
||||
ilSetError(ILUT_ILLEGAL_OPERATION); // Dunno if this is the correct error.
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
Bitmap = (HBITMAP)GetClipboardData(CF_BITMAP);
|
||||
if (!Bitmap) {
|
||||
CloseClipboard();
|
||||
return IL_FALSE; // No error?
|
||||
}
|
||||
|
||||
if (!ilutSetHBitmap(Bitmap)) {
|
||||
CloseClipboard();
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
CloseClipboard();
|
||||
}*/
|
||||
|
||||
//no data in clipboard
|
||||
ilSetError(ILUT_ILLEGAL_OPERATION);
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
|
||||
ILboolean ILAPIENTRY ilutWinPrint(ILuint XPos, ILuint YPos, ILuint Width, ILuint Height, HDC hDC)
|
||||
{
|
||||
#if !defined(_WIN32_WCE) && !(defined(_WIN32) && defined(__GNUC__))
|
||||
PRINTDLG Pd;
|
||||
DOCINFO Di;
|
||||
HBITMAP Bitmap, hReplaced;
|
||||
HDC hMemDC;
|
||||
|
||||
ilutCurImage = ilGetCurImage();
|
||||
if (ilutCurImage == NULL) {
|
||||
ilSetError(ILUT_ILLEGAL_OPERATION);
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
//@TODO: Needs error checking!
|
||||
hMemDC = CreateCompatibleDC(hDC);
|
||||
Bitmap = ilutConvertToHBitmap(hDC);
|
||||
hReplaced = (HBITMAP)SelectObject(hMemDC, Bitmap);
|
||||
|
||||
memset(&Pd, 0, sizeof(PRINTDLG));
|
||||
Pd.lStructSize = sizeof(PRINTDLG);
|
||||
Pd.hwndOwner = GetForegroundWindow();
|
||||
Pd.Flags = PD_RETURNDC;
|
||||
Pd.nCopies = 1;
|
||||
Pd.nFromPage = 0xFFFF;
|
||||
Pd.nToPage = 0xFFFF;
|
||||
Pd.nMinPage = 1;
|
||||
Pd.nMaxPage = 0xFFFF;
|
||||
|
||||
if (!PrintDlg(&Pd))
|
||||
return (0L);
|
||||
|
||||
Di.cbSize = sizeof(DOCINFO);
|
||||
Di.lpszDocName = IL_TEXT("DevIL Print Job");
|
||||
Di.lpszOutput = NULL;
|
||||
Di.lpszDatatype = NULL;
|
||||
Di.fwType = 0;
|
||||
|
||||
StartDoc(Pd.hDC, &Di);
|
||||
StartPage(Pd.hDC);
|
||||
|
||||
StretchBlt(Pd.hDC, XPos, YPos, Width, Height, hMemDC, 0, 0, ilutCurImage->Width, ilutCurImage->Height, SRCCOPY);
|
||||
|
||||
EndPage(Pd.hDC);
|
||||
EndDoc(Pd.hDC);
|
||||
DeleteObject(Bitmap);
|
||||
DeleteObject(hReplaced);
|
||||
DeleteDC(Pd.hDC);
|
||||
|
||||
#endif
|
||||
|
||||
return IL_TRUE;
|
||||
}
|
||||
|
||||
|
||||
ILboolean ILAPIENTRY ilutLoadResource(HINSTANCE hInst, ILint ID, ILstring ResourceType, ILenum Type)
|
||||
{
|
||||
HRSRC Resource = (HRSRC)LoadResource(hInst, FindResource(hInst, MAKEINTRESOURCE(ID), ResourceType));
|
||||
ILubyte *Data = (ILubyte*)LockResource(Resource);
|
||||
|
||||
return ilLoadL(Type, Data, SizeofResource(hInst, FindResource(hInst, MAKEINTRESOURCE(ID), ResourceType)));
|
||||
}
|
||||
|
||||
|
||||
#if !defined(_WIN32_WCE) && !(defined(_WIN32) && defined(__GNUC__))
|
||||
#define BUFFSIZE 8192 // Change to suit the efficiency.
|
||||
ILboolean ILAPIENTRY ilutWinLoadUrl(ILstring Url)
|
||||
{
|
||||
HINTERNET Handle, UrlHandle;
|
||||
DWORD BytesRead = 0, Context = 1;
|
||||
ILubyte Buff[BUFFSIZE], *Buffer, *TempBuff;
|
||||
ILuint BufferSize = 0, i;
|
||||
ILboolean Is404 = IL_TRUE;
|
||||
char Buffer404[] = { '<', 'h', 't', 'm', 'l', '>' };
|
||||
|
||||
Buffer = (ILubyte*)ialloc(0);
|
||||
if (Buffer == NULL) {
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
Handle = InternetOpen(IL_TEXT("Developer's Image Library"), INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
|
||||
if (Handle == NULL) {
|
||||
ifree(Buffer);
|
||||
ilSetError(ILUT_COULD_NOT_OPEN_FILE);
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
// Try again if fails the first time, loading only from the cache.
|
||||
UrlHandle = InternetOpenUrl(Handle, Url, NULL, 0, 0, Context);
|
||||
if (UrlHandle == NULL) {
|
||||
InternetCloseHandle(Handle);
|
||||
Handle = InternetOpen(IL_TEXT("Developer's Image Library"), INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, INTERNET_FLAG_FROM_CACHE);
|
||||
if (Handle == NULL) {
|
||||
ifree(Buffer);
|
||||
ilSetError(ILUT_COULD_NOT_OPEN_FILE);
|
||||
return IL_FALSE;
|
||||
}
|
||||
UrlHandle = InternetOpenUrl(Handle, Url, NULL, 0, 0, Context);
|
||||
if (UrlHandle == NULL) {
|
||||
ifree(Buffer);
|
||||
InternetCloseHandle(Handle);
|
||||
ilSetError(ILUT_COULD_NOT_OPEN_FILE);
|
||||
return IL_FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
do {
|
||||
if (!InternetReadFile(UrlHandle, Buff, BUFFSIZE, &BytesRead)) {
|
||||
InternetCloseHandle(UrlHandle);
|
||||
InternetCloseHandle(Handle);
|
||||
ifree(Buffer);
|
||||
ilSetError(ILUT_COULD_NOT_OPEN_FILE);
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
TempBuff = (ILubyte*)ialloc(BufferSize + BytesRead);
|
||||
if (TempBuff == NULL) {
|
||||
ifree(Buffer);
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
memcpy(TempBuff, Buffer, BufferSize);
|
||||
memcpy(TempBuff + BufferSize, Buff, BytesRead);
|
||||
ifree(Buffer);
|
||||
Buffer = TempBuff;
|
||||
|
||||
BufferSize += BytesRead;
|
||||
} while (BytesRead > 0);
|
||||
|
||||
InternetCloseHandle(UrlHandle);
|
||||
InternetCloseHandle(Handle);
|
||||
|
||||
// If the image does not exist, the server usually returns a 404 HTML page.
|
||||
for (i = 0; i < sizeof(Buffer404) && i < BufferSize; i++) {
|
||||
if (tolower(Buffer[i]) != Buffer404[i]) {
|
||||
Is404 = IL_FALSE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!Is404) {
|
||||
if (!ilLoadL(ilTypeFromExt(Url), Buffer, BufferSize)) {
|
||||
if (!ilLoadL(IL_TYPE_UNKNOWN, Buffer, BufferSize)) {
|
||||
ifree(Buffer);
|
||||
return IL_FALSE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ifree(Buffer);
|
||||
|
||||
return IL_TRUE;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#endif//ILUT_USE_WIN32
|
||||
@@ -0,0 +1,399 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// ImageLib Sources
|
||||
// Copyright (C) 2002 by Denton Woods
|
||||
// Copyright (C) 2002 Nelson Rush.
|
||||
// Last modified: 05/18/2002
|
||||
//
|
||||
// Filename: src-ILUT/src/ilut_x11.c
|
||||
//
|
||||
// Description: X11 Pixmap and XImage binding functions (with XShm)
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
/*
|
||||
** This file was created by Jesse Maurais Wed April 4, 2007
|
||||
** Contact: www.jessemaurais@gmail.com
|
||||
**
|
||||
**
|
||||
** This patch to the Devil Tookit binds to the X Windows System Version 11,
|
||||
** using client-side XImages and server-side Pixmaps, with support for both
|
||||
** ZPixmaps and the insane XYPixmap format. (Depends on the X server)
|
||||
**
|
||||
** If the XShm extension to X11 is present at the time of ./configure then
|
||||
** support for shared memory XImages and Pixmaps is also compiled in. Note
|
||||
** that "shared" does not mean Devil and X are sharing the same memory space.
|
||||
** This is not possible, because both libraries make byte-for-byte copies
|
||||
** of their data. It means that memory is part of an inter-process memory
|
||||
** segment (see XShm spec).
|
||||
**
|
||||
** TODO
|
||||
** 1) Assumed the display depth is 24 bits (the most common) but there should
|
||||
** be a check, and iXConvertImage should handle this properly. I don't think
|
||||
** this should be difficult to modify from whats here.
|
||||
** 2) It would be nice to convert from an XImage back to a Devil image for
|
||||
** saving changes. Would be seful for an interactive image editor.
|
||||
** 3) Possibly some additional OpenGL bindings for GLX Pbuffers.
|
||||
**
|
||||
** FYI
|
||||
** It was a long night figuring out the under-documented XYPixmap format.
|
||||
*/
|
||||
|
||||
|
||||
#include "ilut_internal.h"
|
||||
#ifdef ILUT_USE_X11
|
||||
|
||||
|
||||
int bits; // bits per pixel
|
||||
int field; // bits per channel
|
||||
int bytes; // bytes per pixel
|
||||
int grain; // bytes per line
|
||||
int width; // pixels per line
|
||||
int height; // number of lines
|
||||
ILpal* palette; // for indexed colors
|
||||
char* data; // pointer to pixels
|
||||
|
||||
|
||||
|
||||
void iXGrabImage( ILimage * img )
|
||||
{
|
||||
bits = img->Bpp*8; // bits per pixel
|
||||
field = img->Bpc; // bits per channel
|
||||
bytes = img->Bpp; // bytes per pixel
|
||||
grain = img->Bps; // bytes per line
|
||||
width = img->Width;
|
||||
height = img->Height;
|
||||
palette = &img->Pal;
|
||||
data = (char*)img->Data;
|
||||
}
|
||||
|
||||
|
||||
Bool iXGrabCurrentImage(void)
|
||||
{
|
||||
ilutCurImage = ilGetCurImage();
|
||||
if (!ilutCurImage) {
|
||||
return False;
|
||||
}
|
||||
iXGrabImage(ilutCurImage);
|
||||
return True;
|
||||
}
|
||||
|
||||
|
||||
void iXConvertImage( Display * dpy, XImage * img )
|
||||
{
|
||||
int x,y,z;
|
||||
int sX,dX;
|
||||
int sY,dY;
|
||||
int sZ,dZ;
|
||||
int plane;
|
||||
|
||||
|
||||
ILimage * tmp;
|
||||
|
||||
switch ( img->byte_order )
|
||||
{
|
||||
case LSBFirst:
|
||||
tmp = iConvertImage( ilutCurImage,IL_BGR,IL_UNSIGNED_BYTE );
|
||||
break;
|
||||
case MSBFirst:
|
||||
tmp = iConvertImage( ilutCurImage,IL_RGB,IL_UNSIGNED_BYTE );
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
if ( !tmp ) return;
|
||||
iXGrabImage( tmp );
|
||||
|
||||
|
||||
switch ( img->format )
|
||||
{
|
||||
case ZPixmap:
|
||||
|
||||
for ( y = 0; y < height; y ++ )
|
||||
{
|
||||
dY = y * img->bytes_per_line;
|
||||
sY = y * grain;
|
||||
|
||||
for ( x = 0; x < width; x ++ )
|
||||
{
|
||||
dX = x * img->bits_per_pixel / 8;
|
||||
sX = x * bytes;
|
||||
|
||||
for ( z = 0; z < bytes; z ++ )
|
||||
{
|
||||
img->data[dX+dY+z] = data[sX+sY+z];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case XYPixmap:
|
||||
|
||||
for ( y = 0; y < height; y ++ )
|
||||
{
|
||||
sY = y * grain;
|
||||
|
||||
for ( x = 0; x < width; x ++ )
|
||||
{
|
||||
sX = x * bytes;
|
||||
|
||||
for ( z = 0; z < bits; z ++ )
|
||||
{
|
||||
sZ = z / 8;
|
||||
dZ = z % 8;
|
||||
|
||||
if ( data[sY+sX+sZ] & ( 1 << dZ ) )
|
||||
{
|
||||
plane = bits - z - 1;
|
||||
|
||||
sZ = x % 8;
|
||||
dX = x / 8;
|
||||
dY = y * img->bytes_per_line;
|
||||
dZ = plane * img->bytes_per_line * height;
|
||||
|
||||
img->data[dZ+dY+dX] |= 1 << sZ;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
ilSetError( ILUT_NOT_SUPPORTED );
|
||||
}
|
||||
|
||||
ilCloseImage( tmp );
|
||||
}
|
||||
|
||||
ILboolean ilutXInit(void) {
|
||||
return IL_TRUE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
XImage * ILAPIENTRY ilutXCreateImage( Display * dpy )
|
||||
{
|
||||
Visual * vis;
|
||||
XImage * img;
|
||||
char * buffer;
|
||||
|
||||
if (!iXGrabCurrentImage()) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
buffer = malloc( width * height * 4 );
|
||||
if (!buffer) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
vis = CopyFromParent;
|
||||
img = XCreateImage( dpy,vis, 24,ZPixmap,0,buffer,width,height,8,0 );
|
||||
if (!img) {
|
||||
free(buffer);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
iXConvertImage( dpy,img );
|
||||
|
||||
return img;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Pixmap ILAPIENTRY ilutXCreatePixmap( Display * dpy, Drawable draw )
|
||||
{
|
||||
XImage * img;
|
||||
GC gc;
|
||||
Pixmap pix;
|
||||
|
||||
img = ilutXCreateImage( dpy );
|
||||
if (!img) {
|
||||
return None;
|
||||
}
|
||||
|
||||
gc = DefaultGC(dpy,DefaultScreen(dpy));
|
||||
if (!gc) {
|
||||
XDestroyImage( img );
|
||||
return None;
|
||||
}
|
||||
|
||||
pix = XCreatePixmap( dpy,draw, width,height,24 );
|
||||
if (!pix ) {
|
||||
XDestroyImage( img );
|
||||
return None;
|
||||
}
|
||||
|
||||
XPutImage( dpy,pix,gc,img, 0,0,0,0,width,height );
|
||||
|
||||
XDestroyImage( img );
|
||||
|
||||
return pix;
|
||||
}
|
||||
|
||||
|
||||
|
||||
XImage * ILAPIENTRY ilutXLoadImage( Display * dpy, char * filename )
|
||||
{
|
||||
iBindImageTemp();
|
||||
if (!ilLoadImage(filename)) {
|
||||
return NULL;
|
||||
}
|
||||
return ilutXCreateImage( dpy );
|
||||
}
|
||||
|
||||
|
||||
|
||||
Pixmap ILAPIENTRY ilutXLoadPixmap( Display * dpy, Drawable draw, char * filename )
|
||||
{
|
||||
iBindImageTemp();
|
||||
if (!ilLoadImage(filename)) {
|
||||
return None;
|
||||
}
|
||||
return ilutXCreatePixmap( dpy,draw );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifdef ILUT_USE_XSHM
|
||||
#include <sys/ipc.h>
|
||||
#include <sys/shm.h>
|
||||
#include <X11/extensions/XShm.h>
|
||||
|
||||
|
||||
XImage * ILAPIENTRY ilutXShmCreateImage( Display * dpy, XShmSegmentInfo * info )
|
||||
{
|
||||
Visual * vis;
|
||||
XImage * img;
|
||||
|
||||
// Get server supported format
|
||||
|
||||
int size,format = XShmPixmapFormat( dpy );
|
||||
|
||||
// Grab the current image
|
||||
|
||||
if (!iXGrabCurrentImage()) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// Create a shared image
|
||||
|
||||
vis = CopyFromParent;
|
||||
img = XShmCreateImage( dpy,vis, 24,format,NULL,info,width,height );
|
||||
|
||||
if (!img) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// Create shared memory
|
||||
|
||||
size = img->bytes_per_line * img->height;
|
||||
|
||||
info->shmid = shmget( IPC_PRIVATE, size, IPC_CREAT | 0666 );
|
||||
info->shmaddr = img->data = shmat( info->shmid, 0, 0 );
|
||||
info->readOnly = False;
|
||||
|
||||
// Attach to server
|
||||
|
||||
XShmAttach( dpy,info );
|
||||
|
||||
// Copy image pixels to shared memory
|
||||
|
||||
iXConvertImage( dpy,img );
|
||||
|
||||
return img;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void ILAPIENTRY ilutXShmDestroyImage( Display * dpy, XImage * img, XShmSegmentInfo * info )
|
||||
{
|
||||
XShmDetach( dpy,info );
|
||||
XDestroyImage( img );
|
||||
XFlush( dpy );
|
||||
|
||||
shmdt( info->shmaddr );
|
||||
shmctl( info->shmid, IPC_RMID, 0 );
|
||||
}
|
||||
|
||||
|
||||
|
||||
Pixmap ILAPIENTRY ilutXShmCreatePixmap( Display * dpy, Drawable draw, XShmSegmentInfo * info )
|
||||
{
|
||||
Pixmap pix;
|
||||
XImage*img;
|
||||
|
||||
// Create a dumby image
|
||||
|
||||
img = ilutXShmCreateImage( dpy,info );
|
||||
if (!img) {
|
||||
return None;
|
||||
}
|
||||
|
||||
// Use the same memory segment in the pixmap
|
||||
|
||||
pix = XShmCreatePixmap( dpy,draw, info->shmaddr,info,width,height,24 );
|
||||
if (!pix) {
|
||||
ilutXShmDestroyImage( dpy,img,info );
|
||||
return None;
|
||||
}
|
||||
|
||||
// Riddance to the image
|
||||
|
||||
XDestroyImage( img );
|
||||
|
||||
return pix;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void ILAPIENTRY ilutXShmFreePixmap( Display * dpy, Pixmap pix, XShmSegmentInfo * info )
|
||||
{
|
||||
XShmDetach( dpy,info );
|
||||
XFreePixmap( dpy,pix );
|
||||
XFlush( dpy );
|
||||
|
||||
shmdt( info->shmaddr );
|
||||
shmctl( info->shmid, IPC_RMID, 0 );
|
||||
}
|
||||
|
||||
|
||||
|
||||
XImage * ILAPIENTRY ilutXShmLoadImage( Display * dpy, char* filename, XShmSegmentInfo * info )
|
||||
{
|
||||
iBindImageTemp();
|
||||
if (!ilLoadImage(filename)) {
|
||||
return NULL;
|
||||
}
|
||||
return ilutXShmCreateImage( dpy,info );
|
||||
}
|
||||
|
||||
|
||||
|
||||
Pixmap ILAPIENTRY ilutXShmLoadPixmap( Display * dpy, Drawable draw, char* filename, XShmSegmentInfo * info )
|
||||
{
|
||||
iBindImageTemp();
|
||||
if (!ilLoadImage(filename)) {
|
||||
return None;
|
||||
}
|
||||
return ilutXShmCreatePixmap( dpy,draw,info );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif//ILUT_USE_XSHM
|
||||
|
||||
|
||||
#endif//ILUT_USE_X11
|
||||
|
||||
Reference in New Issue
Block a user