mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-06-28 01:49:33 -06:00
Initial megacommit.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
509
Externals/Bochs_disasm/Bochs_disasm.vcproj
vendored
Normal file
509
Externals/Bochs_disasm/Bochs_disasm.vcproj
vendored
Normal file
@ -0,0 +1,509 @@
|
||||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Name="Bochs_disasm"
|
||||
ProjectGUID="{29C2ABC1-ADA5-42CD-A5FC-96022D52A510}"
|
||||
RootNamespace="Bochs_disasm"
|
||||
Keyword="Win32Proj"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
<Platform
|
||||
Name="x64"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
ConfigurationType="4"
|
||||
CharacterSet="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="4"
|
||||
ForcedIncludeFiles="stdafx.h"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug|x64"
|
||||
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
ConfigurationType="4"
|
||||
CharacterSet="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
TargetEnvironment="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="0"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="3"
|
||||
ForcedIncludeFiles="stdafx.h"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
ConfigurationType="4"
|
||||
CharacterSet="1"
|
||||
WholeProgramOptimization="0"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
WholeProgramOptimization="false"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
|
||||
RuntimeLibrary="0"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="3"
|
||||
ForcedIncludeFiles="stdafx.h"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|x64"
|
||||
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
ConfigurationType="4"
|
||||
CharacterSet="1"
|
||||
WholeProgramOptimization="0"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
TargetEnvironment="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
EnableIntrinsicFunctions="true"
|
||||
FavorSizeOrSpeed="2"
|
||||
WholeProgramOptimization="false"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
|
||||
RuntimeLibrary="0"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="3"
|
||||
ForcedIncludeFiles="stdafx.h"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="DebugFast|Win32"
|
||||
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
ConfigurationType="4"
|
||||
CharacterSet="1"
|
||||
WholeProgramOptimization="0"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
WholeProgramOptimization="false"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
|
||||
RuntimeLibrary="0"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="3"
|
||||
ForcedIncludeFiles="stdafx.h"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="DebugFast|x64"
|
||||
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
ConfigurationType="4"
|
||||
CharacterSet="1"
|
||||
WholeProgramOptimization="0"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
TargetEnvironment="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
EnableIntrinsicFunctions="true"
|
||||
FavorSizeOrSpeed="2"
|
||||
WholeProgramOptimization="false"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
|
||||
RuntimeLibrary="0"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="3"
|
||||
ForcedIncludeFiles="stdafx.h"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<File
|
||||
RelativePath=".\config.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\dis_decode.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\dis_groups.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\dis_tables.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\dis_tables.inl"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\disasm.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\opcodes.inl"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\PowerPCDisasm.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\PowerPCDisasm.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\resolve.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\stdafx.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="DebugFast|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="DebugFast|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\stdafx.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\syntax.cpp"
|
||||
>
|
||||
</File>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
2247
Externals/Bochs_disasm/PowerPCDisasm.cpp
vendored
Normal file
2247
Externals/Bochs_disasm/PowerPCDisasm.cpp
vendored
Normal file
File diff suppressed because it is too large
Load Diff
28
Externals/Bochs_disasm/PowerPCDisasm.h
vendored
Normal file
28
Externals/Bochs_disasm/PowerPCDisasm.h
vendored
Normal file
@ -0,0 +1,28 @@
|
||||
/* $VER: ppc_disasm V0.1 (23.05.1998)
|
||||
*
|
||||
* Disassembler module for the PowerPC microprocessor family
|
||||
* Copyright (c) 1998-2000 Frank Wille
|
||||
*
|
||||
* ppc_disasm.c is freeware and may be freely redistributed as long as
|
||||
* no modifications are made and nothing is charged for it.
|
||||
* Non-commercial usage is allowed without any restrictions.
|
||||
* EVERY PRODUCT OR PROGRAM DERIVED DIRECTLY FROM MY SOURCE MAY NOT BE
|
||||
* SOLD COMMERCIALLY WITHOUT PERMISSION FROM THE AUTHOR.
|
||||
*
|
||||
*
|
||||
* v0.1 (23.05.1998) phx
|
||||
* First version, which implements all PowerPC instructions.
|
||||
* v0.0 (09.05.1998) phx
|
||||
* File created.
|
||||
*/
|
||||
|
||||
|
||||
// Yeah, this does not really belong in bochs_disasm, but hey, it's a disasm and it needed a common location...
|
||||
|
||||
#ifndef _POWERPC_DISASM
|
||||
#define _POWERPC_DISASM
|
||||
|
||||
const char *DisassembleGekko(unsigned int opcode, unsigned int curInstAddr);
|
||||
const char *GetGRPName(unsigned int index);
|
||||
|
||||
#endif
|
11
Externals/Bochs_disasm/SConscript
vendored
Normal file
11
Externals/Bochs_disasm/SConscript
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
Import('env')
|
||||
|
||||
files = ["dis_decode.cpp",
|
||||
"dis_groups.cpp",
|
||||
"resolve.cpp",
|
||||
"syntax.cpp",
|
||||
"PowerPCDisasm.cpp",
|
||||
]
|
||||
|
||||
env_bochs = env.Copy(CXXFLAGS = " -fPIC ")
|
||||
env_bochs.StaticLibrary("bdisasm", files)
|
41
Externals/Bochs_disasm/config.h
vendored
Normal file
41
Externals/Bochs_disasm/config.h
vendored
Normal file
@ -0,0 +1,41 @@
|
||||
#ifndef _BOCHS_CONFIG_H
|
||||
#define _BOCHS_CONFIG_H
|
||||
|
||||
#ifdef _WIN32
|
||||
typedef signed __int8 Bit8s;
|
||||
typedef signed __int16 Bit16s;
|
||||
typedef signed __int32 Bit32s;
|
||||
typedef signed __int64 Bit64s;
|
||||
|
||||
typedef unsigned __int8 Bit8u;
|
||||
typedef unsigned __int16 Bit16u;
|
||||
typedef unsigned __int32 Bit32u;
|
||||
typedef unsigned __int64 Bit64u;
|
||||
|
||||
typedef bool bx_bool;
|
||||
typedef Bit64u bx_address;
|
||||
|
||||
#define BX_CPP_INLINE inline
|
||||
|
||||
#else
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
typedef int8_t Bit8s;
|
||||
typedef int16_t Bit16s;
|
||||
typedef int32_t Bit32s;
|
||||
typedef int64_t Bit64s;
|
||||
|
||||
typedef uint8_t Bit8u;
|
||||
typedef uint16_t Bit16u;
|
||||
typedef uint32_t Bit32u;
|
||||
typedef uint64_t Bit64u;
|
||||
|
||||
typedef bool bx_bool;
|
||||
typedef Bit64u bx_address;
|
||||
|
||||
#define BX_CPP_INLINE inline
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
328
Externals/Bochs_disasm/dis_decode.cpp
vendored
Normal file
328
Externals/Bochs_disasm/dis_decode.cpp
vendored
Normal file
@ -0,0 +1,328 @@
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// $Id: dis_decode.cc,v 1.32 2006/05/12 17:04:19 sshwarts Exp $
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdarg.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "disasm.h"
|
||||
#include "dis_tables.h"
|
||||
|
||||
#define OPCODE(entry) ((BxDisasmOpcodeInfo_t*) entry->OpcodeInfo)
|
||||
#define OPCODE_TABLE(entry) ((BxDisasmOpcodeTable_t*) entry->OpcodeInfo)
|
||||
|
||||
#ifndef NULL
|
||||
#define NULL 0
|
||||
#endif
|
||||
|
||||
|
||||
static const unsigned char instruction_has_modrm[512] = {
|
||||
/* 0 1 2 3 4 5 6 7 8 9 a b c d e f */
|
||||
/* ------------------------------- */
|
||||
/* 00 */ 1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,
|
||||
/* 10 */ 1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,
|
||||
/* 20 */ 1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,
|
||||
/* 30 */ 1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,
|
||||
/* 40 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
/* 50 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
/* 60 */ 0,0,1,1,0,0,0,0,0,1,0,1,0,0,0,0,
|
||||
/* 70 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
/* 80 */ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
|
||||
/* 90 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
/* A0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
/* B0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
/* C0 */ 1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,
|
||||
/* D0 */ 1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,
|
||||
/* E0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
/* F0 */ 0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,
|
||||
/* 0 1 2 3 4 5 6 7 8 9 a b c d e f */
|
||||
/* ------------------------------- */
|
||||
1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,1, /* 0F 00 */
|
||||
1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1, /* 0F 10 */
|
||||
1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1, /* 0F 20 */
|
||||
0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, /* 0F 30 */
|
||||
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 0F 40 */
|
||||
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 0F 50 */
|
||||
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 0F 60 */
|
||||
1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1, /* 0F 70 */
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 0F 80 */
|
||||
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 0F 90 */
|
||||
0,0,0,1,1,1,0,0,0,0,0,1,1,1,1,1, /* 0F A0 */
|
||||
1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1, /* 0F B0 */
|
||||
1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, /* 0F C0 */
|
||||
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 0F D0 */
|
||||
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 0F E0 */
|
||||
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 /* 0F F0 */
|
||||
/* ------------------------------- */
|
||||
/* 0 1 2 3 4 5 6 7 8 9 a b c d e f */
|
||||
};
|
||||
|
||||
unsigned disassembler::disasm(bx_bool is_32, bx_bool is_64, bx_address base, bx_address ip, const Bit8u *instr, char *disbuf)
|
||||
{
|
||||
x86_insn insn = decode(is_32, is_64, base, ip, instr, disbuf);
|
||||
return insn.ilen;
|
||||
}
|
||||
|
||||
x86_insn disassembler::decode(bx_bool is_32, bx_bool is_64, bx_address base, bx_address ip, const Bit8u *instr, char *disbuf)
|
||||
{
|
||||
x86_insn insn(is_32, is_64);
|
||||
const Bit8u *instruction_begin = instruction = instr;
|
||||
resolve_modrm = NULL;
|
||||
unsigned b3 = 0;
|
||||
|
||||
db_eip = ip;
|
||||
db_base = base; // cs linear base (base for PM & cs<<4 for RM & VM)
|
||||
|
||||
disbufptr = disbuf; // start sprintf()'ing into beginning of buffer
|
||||
|
||||
#define SSE_PREFIX_NONE 0
|
||||
#define SSE_PREFIX_66 1
|
||||
#define SSE_PREFIX_F2 2
|
||||
#define SSE_PREFIX_F3 3 /* only one SSE prefix could be used */
|
||||
unsigned sse_prefix = SSE_PREFIX_NONE;
|
||||
|
||||
for(;;)
|
||||
{
|
||||
insn.b1 = fetch_byte();
|
||||
insn.prefixes++;
|
||||
|
||||
switch(insn.b1) {
|
||||
case 0x40: // rex
|
||||
case 0x41:
|
||||
case 0x42:
|
||||
case 0x43:
|
||||
case 0x44:
|
||||
case 0x45:
|
||||
case 0x46:
|
||||
case 0x47:
|
||||
case 0x48:
|
||||
case 0x49:
|
||||
case 0x4A:
|
||||
case 0x4B:
|
||||
case 0x4C:
|
||||
case 0x4D:
|
||||
case 0x4E:
|
||||
case 0x4F:
|
||||
if (! is_64) break;
|
||||
insn.extend8b = 1;
|
||||
if (insn.b1 & 0x8) {
|
||||
insn.os_64 = 1;
|
||||
insn.os_32 = 1;
|
||||
}
|
||||
if (insn.b1 & 0x4) insn.rex_r = 8;
|
||||
if (insn.b1 & 0x2) insn.rex_x = 8;
|
||||
if (insn.b1 & 0x1) insn.rex_b = 8;
|
||||
continue;
|
||||
|
||||
case 0x26: // ES:
|
||||
if (! is_64) insn.seg_override = ES_REG;
|
||||
continue;
|
||||
|
||||
case 0x2e: // CS:
|
||||
if (! is_64) insn.seg_override = CS_REG;
|
||||
continue;
|
||||
|
||||
case 0x36: // SS:
|
||||
if (! is_64) insn.seg_override = SS_REG;
|
||||
continue;
|
||||
|
||||
case 0x3e: // DS:
|
||||
if (! is_64) insn.seg_override = DS_REG;
|
||||
continue;
|
||||
|
||||
case 0x64: // FS:
|
||||
insn.seg_override = FS_REG;
|
||||
continue;
|
||||
|
||||
case 0x65: // GS:
|
||||
insn.seg_override = GS_REG;
|
||||
continue;
|
||||
|
||||
case 0x66: // operand size override
|
||||
if (!insn.os_64) insn.os_32 = !is_32;
|
||||
if (!sse_prefix) sse_prefix = SSE_PREFIX_66;
|
||||
continue;
|
||||
|
||||
case 0x67: // address size override
|
||||
if (!is_64) insn.as_32 = !is_32;
|
||||
insn.as_64 = 0;
|
||||
continue;
|
||||
|
||||
case 0xf0: // lock
|
||||
continue;
|
||||
|
||||
case 0xf2: // repne
|
||||
if (!sse_prefix) sse_prefix = SSE_PREFIX_F2;
|
||||
continue;
|
||||
|
||||
case 0xf3: // rep
|
||||
if (!sse_prefix) sse_prefix = SSE_PREFIX_F3;
|
||||
continue;
|
||||
|
||||
// no more prefixes
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
insn.prefixes--;
|
||||
break;
|
||||
}
|
||||
|
||||
if (insn.b1 == 0x0f)
|
||||
{
|
||||
insn.b1 = 0x100 | fetch_byte();
|
||||
}
|
||||
|
||||
const BxDisasmOpcodeTable_t *opcode_table, *entry;
|
||||
|
||||
if (is_64) {
|
||||
if (insn.os_64)
|
||||
opcode_table = BxDisasmOpcodes64q;
|
||||
else if (insn.os_32)
|
||||
opcode_table = BxDisasmOpcodes64d;
|
||||
else
|
||||
opcode_table = BxDisasmOpcodes64w;
|
||||
} else {
|
||||
if (insn.os_32)
|
||||
opcode_table = BxDisasmOpcodes32;
|
||||
else
|
||||
opcode_table = BxDisasmOpcodes16;
|
||||
}
|
||||
|
||||
entry = opcode_table + insn.b1;
|
||||
|
||||
// will require 3rd byte for 3-byte opcode
|
||||
if (entry->Attr & _GRP3BTAB) b3 = fetch_byte();
|
||||
|
||||
if (instruction_has_modrm[insn.b1])
|
||||
{
|
||||
decode_modrm(&insn);
|
||||
}
|
||||
|
||||
int attr = entry->Attr;
|
||||
while(attr)
|
||||
{
|
||||
switch(attr) {
|
||||
case _GROUPN:
|
||||
entry = &(OPCODE_TABLE(entry)[insn.nnn]);
|
||||
break;
|
||||
|
||||
case _GRPSSE:
|
||||
if(sse_prefix) insn.prefixes--;
|
||||
/* For SSE opcodes, look into another 4 entries table
|
||||
with the opcode prefixes (NONE, 0x66, 0xF2, 0xF3) */
|
||||
entry = &(OPCODE_TABLE(entry)[sse_prefix]);
|
||||
break;
|
||||
|
||||
case _SPLIT11B:
|
||||
entry = &(OPCODE_TABLE(entry)[insn.mod != 3]); /* REG/MEM */
|
||||
break;
|
||||
|
||||
case _GRPRM:
|
||||
entry = &(OPCODE_TABLE(entry)[insn.rm]);
|
||||
break;
|
||||
|
||||
case _GRPFP:
|
||||
if(insn.mod != 3)
|
||||
{
|
||||
entry = &(OPCODE_TABLE(entry)[insn.nnn]);
|
||||
} else {
|
||||
int index = (insn.b1-0xD8)*64 + (insn.modrm & 0x3f);
|
||||
entry = &(BxDisasmOpcodeInfoFP[index]);
|
||||
}
|
||||
break;
|
||||
|
||||
case _GRP3DNOW:
|
||||
entry = &(BxDisasm3DNowGroup[peek_byte()]);
|
||||
break;
|
||||
|
||||
case _GRP3BTAB:
|
||||
entry = &(OPCODE_TABLE(entry)[b3 >> 4]);
|
||||
break;
|
||||
|
||||
case _GRP3BOP:
|
||||
entry = &(OPCODE_TABLE(entry)[b3 & 15]);
|
||||
break;
|
||||
|
||||
default:
|
||||
printf("Internal disassembler error - unknown attribute !\n");
|
||||
return x86_insn(is_32, is_64);
|
||||
}
|
||||
|
||||
/* get additional attributes from group table */
|
||||
attr = entry->Attr;
|
||||
}
|
||||
|
||||
#define BRANCH_NOT_TAKEN 0x2E
|
||||
#define BRANCH_TAKEN 0x3E
|
||||
|
||||
unsigned branch_hint = 0;
|
||||
|
||||
// print prefixes
|
||||
for(unsigned i=0;i<insn.prefixes;i++)
|
||||
{
|
||||
Bit8u prefix_byte = *(instr+i);
|
||||
|
||||
if (prefix_byte == 0xF3 || prefix_byte == 0xF2 || prefix_byte == 0xF0)
|
||||
{
|
||||
const BxDisasmOpcodeTable_t *prefix = &(opcode_table[prefix_byte]);
|
||||
dis_sprintf("%s ", OPCODE(prefix)->IntelOpcode);
|
||||
}
|
||||
|
||||
// branch hint for jcc instructions
|
||||
if ((insn.b1 >= 0x070 && insn.b1 <= 0x07F) ||
|
||||
(insn.b1 >= 0x180 && insn.b1 <= 0x18F))
|
||||
{
|
||||
if (prefix_byte == BRANCH_NOT_TAKEN || prefix_byte == BRANCH_TAKEN)
|
||||
branch_hint = prefix_byte;
|
||||
}
|
||||
}
|
||||
|
||||
const BxDisasmOpcodeInfo_t *opcode = OPCODE(entry);
|
||||
|
||||
// patch jecx opcode
|
||||
if (insn.b1 == 0xE3 && insn.as_32 && !insn.as_64)
|
||||
opcode = &Ia_jecxz_Jb;
|
||||
|
||||
// fix nop opcode
|
||||
if (insn.b1 == 0x90 && !insn.rex_b) {
|
||||
opcode = &Ia_nop;
|
||||
}
|
||||
|
||||
// print instruction disassembly
|
||||
if (intel_mode)
|
||||
print_disassembly_intel(&insn, opcode);
|
||||
else
|
||||
print_disassembly_att (&insn, opcode);
|
||||
|
||||
if (branch_hint == BRANCH_NOT_TAKEN)
|
||||
{
|
||||
dis_sprintf(", not taken");
|
||||
}
|
||||
else if (branch_hint == BRANCH_TAKEN)
|
||||
{
|
||||
dis_sprintf(", taken");
|
||||
}
|
||||
|
||||
insn.ilen = (unsigned)(instruction - instruction_begin);
|
||||
|
||||
return insn;
|
||||
}
|
||||
|
||||
void disassembler::dis_sprintf(const char *fmt, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
va_start(ap, fmt);
|
||||
vsprintf(disbufptr, fmt, ap);
|
||||
va_end(ap);
|
||||
|
||||
disbufptr += strlen(disbufptr);
|
||||
}
|
||||
|
||||
void disassembler::dis_putc(char symbol)
|
||||
{
|
||||
*disbufptr++ = symbol;
|
||||
*disbufptr = 0;
|
||||
}
|
607
Externals/Bochs_disasm/dis_groups.cpp
vendored
Normal file
607
Externals/Bochs_disasm/dis_groups.cpp
vendored
Normal file
@ -0,0 +1,607 @@
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// $Id: dis_groups.cc,v 1.33 2006/08/13 09:40:07 sshwarts Exp $
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include <stdio.h>
|
||||
#include <assert.h>
|
||||
#include "disasm.h"
|
||||
|
||||
/*
|
||||
#if BX_DEBUGGER
|
||||
#include "../bx_debug/debug.h"
|
||||
#endif
|
||||
*/
|
||||
|
||||
void disassembler::Apw(const x86_insn *insn)
|
||||
{
|
||||
Bit16u imm16 = fetch_word();
|
||||
Bit16u cs_selector = fetch_word();
|
||||
dis_sprintf("%04x:%04x", (unsigned) cs_selector, (unsigned) imm16);
|
||||
}
|
||||
|
||||
void disassembler::Apd(const x86_insn *insn)
|
||||
{
|
||||
Bit32u imm32 = fetch_dword();
|
||||
Bit16u cs_selector = fetch_word();
|
||||
dis_sprintf("%04x:%08x", (unsigned) cs_selector, (unsigned) imm32);
|
||||
}
|
||||
|
||||
// 8-bit general purpose registers
|
||||
void disassembler::AL(const x86_insn *insn) { dis_sprintf("%s", general_8bit_regname[rAX_REG]); }
|
||||
void disassembler::CL(const x86_insn *insn) { dis_sprintf("%s", general_8bit_regname[rCX_REG]); }
|
||||
|
||||
// 16-bit general purpose registers
|
||||
void disassembler::AX(const x86_insn *insn) {
|
||||
dis_sprintf("%s", general_16bit_regname[rAX_REG]);
|
||||
}
|
||||
|
||||
void disassembler::DX(const x86_insn *insn) {
|
||||
dis_sprintf("%s", general_16bit_regname[rDX_REG]);
|
||||
}
|
||||
|
||||
// 32-bit general purpose registers
|
||||
void disassembler::EAX(const x86_insn *insn)
|
||||
{
|
||||
dis_sprintf("%s", general_32bit_regname[rAX_REG]);
|
||||
}
|
||||
|
||||
// 64-bit general purpose registers
|
||||
void disassembler::RAX(const x86_insn *insn)
|
||||
{
|
||||
dis_sprintf("%s", general_64bit_regname[rAX_REG]);
|
||||
}
|
||||
|
||||
// segment registers
|
||||
void disassembler::CS(const x86_insn *insn) { dis_sprintf("%s", segment_name[CS_REG]); }
|
||||
void disassembler::DS(const x86_insn *insn) { dis_sprintf("%s", segment_name[DS_REG]); }
|
||||
void disassembler::ES(const x86_insn *insn) { dis_sprintf("%s", segment_name[ES_REG]); }
|
||||
void disassembler::SS(const x86_insn *insn) { dis_sprintf("%s", segment_name[SS_REG]); }
|
||||
void disassembler::FS(const x86_insn *insn) { dis_sprintf("%s", segment_name[FS_REG]); }
|
||||
void disassembler::GS(const x86_insn *insn) { dis_sprintf("%s", segment_name[GS_REG]); }
|
||||
|
||||
void disassembler::Sw(const x86_insn *insn) { dis_sprintf("%s", segment_name[insn->nnn]); }
|
||||
|
||||
// test registers
|
||||
void disassembler::Td(const x86_insn *insn)
|
||||
{
|
||||
if (intel_mode)
|
||||
dis_sprintf ("tr%d", insn->nnn);
|
||||
else
|
||||
dis_sprintf("%%tr%d", insn->nnn);
|
||||
}
|
||||
|
||||
// control register
|
||||
void disassembler::Cd(const x86_insn *insn)
|
||||
{
|
||||
if (intel_mode)
|
||||
dis_sprintf ("cr%d", insn->nnn);
|
||||
else
|
||||
dis_sprintf("%%cr%d", insn->nnn);
|
||||
}
|
||||
|
||||
void disassembler::Cq(const x86_insn *insn) { Cd(insn); }
|
||||
|
||||
// debug register
|
||||
void disassembler::Dd(const x86_insn *insn)
|
||||
{
|
||||
if (intel_mode)
|
||||
dis_sprintf ("db%d", insn->nnn);
|
||||
else
|
||||
dis_sprintf("%%db%d", insn->nnn);
|
||||
}
|
||||
|
||||
void disassembler::Dq(const x86_insn *insn) { Dd(insn); }
|
||||
|
||||
// 8-bit general purpose register
|
||||
void disassembler::R8(const x86_insn *insn)
|
||||
{
|
||||
unsigned reg = (insn->b1 & 7) | insn->rex_b;
|
||||
|
||||
if (reg < 4 || insn->extend8b)
|
||||
dis_sprintf("%s", general_8bit_regname_rex[reg]);
|
||||
else
|
||||
dis_sprintf("%s", general_8bit_regname[reg]);
|
||||
}
|
||||
|
||||
// 16-bit general purpose register
|
||||
void disassembler::RX(const x86_insn *insn)
|
||||
{
|
||||
dis_sprintf("%s", general_16bit_regname[(insn->b1 & 7) | insn->rex_b]);
|
||||
}
|
||||
|
||||
// 32-bit general purpose register
|
||||
void disassembler::ERX(const x86_insn *insn)
|
||||
{
|
||||
dis_sprintf("%s", general_32bit_regname[(insn->b1 & 7) | insn->rex_b]);
|
||||
}
|
||||
|
||||
// 64-bit general purpose register
|
||||
void disassembler::RRX(const x86_insn *insn)
|
||||
{
|
||||
dis_sprintf("%s", general_64bit_regname[(insn->b1 & 7) | insn->rex_b]);
|
||||
}
|
||||
|
||||
// general purpose register or memory operand
|
||||
void disassembler::Eb(const x86_insn *insn)
|
||||
{
|
||||
if (insn->mod == 3) {
|
||||
if (insn->rm < 4 || insn->extend8b)
|
||||
dis_sprintf("%s", general_8bit_regname_rex[insn->rm]);
|
||||
else
|
||||
dis_sprintf("%s", general_8bit_regname[insn->rm]);
|
||||
}
|
||||
else
|
||||
(this->*resolve_modrm)(insn, B_SIZE);
|
||||
}
|
||||
|
||||
void disassembler::Ew(const x86_insn *insn)
|
||||
{
|
||||
if (insn->mod == 3)
|
||||
dis_sprintf("%s", general_16bit_regname[insn->rm]);
|
||||
else
|
||||
(this->*resolve_modrm)(insn, W_SIZE);
|
||||
}
|
||||
|
||||
void disassembler::Ed(const x86_insn *insn)
|
||||
{
|
||||
if (insn->mod == 3)
|
||||
dis_sprintf("%s", general_32bit_regname[insn->rm]);
|
||||
else
|
||||
(this->*resolve_modrm)(insn, D_SIZE);
|
||||
}
|
||||
|
||||
void disassembler::Eq(const x86_insn *insn)
|
||||
{
|
||||
if (insn->mod == 3)
|
||||
dis_sprintf("%s", general_64bit_regname[insn->rm]);
|
||||
else
|
||||
(this->*resolve_modrm)(insn, Q_SIZE);
|
||||
}
|
||||
|
||||
// general purpose register
|
||||
void disassembler::Gb(const x86_insn *insn)
|
||||
{
|
||||
if (insn->nnn < 4 || insn->extend8b)
|
||||
dis_sprintf("%s", general_8bit_regname_rex[insn->nnn]);
|
||||
else
|
||||
dis_sprintf("%s", general_8bit_regname[insn->nnn]);
|
||||
}
|
||||
|
||||
void disassembler::Gw(const x86_insn *insn)
|
||||
{
|
||||
dis_sprintf("%s", general_16bit_regname[insn->nnn]);
|
||||
}
|
||||
|
||||
void disassembler::Gd(const x86_insn *insn)
|
||||
{
|
||||
dis_sprintf("%s", general_32bit_regname[insn->nnn]);
|
||||
}
|
||||
|
||||
void disassembler::Gq(const x86_insn *insn)
|
||||
{
|
||||
dis_sprintf("%s", general_64bit_regname[insn->nnn]);
|
||||
}
|
||||
|
||||
// immediate
|
||||
void disassembler::I1(const x86_insn *insn)
|
||||
{
|
||||
if (! intel_mode) dis_putc('$');
|
||||
dis_putc ('1');
|
||||
}
|
||||
|
||||
void disassembler::Ib(const x86_insn *insn)
|
||||
{
|
||||
if (! intel_mode) dis_putc('$');
|
||||
dis_sprintf("0x%02x", (unsigned) fetch_byte());
|
||||
}
|
||||
|
||||
void disassembler::Iw(const x86_insn *insn)
|
||||
{
|
||||
if (! intel_mode) dis_putc('$');
|
||||
dis_sprintf("0x%04x", (unsigned) fetch_word());
|
||||
}
|
||||
|
||||
void disassembler::IwIb(const x86_insn *insn)
|
||||
{
|
||||
Bit16u iw = fetch_word();
|
||||
Bit8u ib = fetch_byte();
|
||||
|
||||
if (intel_mode) {
|
||||
dis_sprintf("0x%04x, 0x%02x", iw, ib);
|
||||
}
|
||||
else {
|
||||
dis_sprintf("$0x%02x, $0x%04x", ib, iw);
|
||||
}
|
||||
}
|
||||
|
||||
void disassembler::Id(const x86_insn *insn)
|
||||
{
|
||||
if (! intel_mode) dis_putc('$');
|
||||
dis_sprintf("0x%08x", (unsigned) fetch_dword());
|
||||
}
|
||||
|
||||
void disassembler::Iq(const x86_insn *insn)
|
||||
{
|
||||
Bit64u value = fetch_qword();
|
||||
|
||||
if (! intel_mode) dis_putc('$');
|
||||
dis_sprintf("0x%08x%08x",
|
||||
(unsigned)(value>>32), (unsigned)(value & 0xffffffff));
|
||||
}
|
||||
|
||||
// sign extended immediate
|
||||
void disassembler::sIbw(const x86_insn *insn)
|
||||
{
|
||||
if (! intel_mode) dis_putc('$');
|
||||
Bit16u imm16 = (Bit8s) fetch_byte();
|
||||
dis_sprintf("0x%04x", (unsigned) imm16);
|
||||
}
|
||||
|
||||
// sign extended immediate
|
||||
void disassembler::sIbd(const x86_insn *insn)
|
||||
{
|
||||
if (! intel_mode) dis_putc('$');
|
||||
Bit32u imm32 = (Bit8s) fetch_byte();
|
||||
dis_sprintf ("0x%08x", (unsigned) imm32);
|
||||
}
|
||||
|
||||
// sign extended immediate
|
||||
void disassembler::sIbq(const x86_insn *insn)
|
||||
{
|
||||
if (! intel_mode) dis_putc('$');
|
||||
Bit64u imm64 = (Bit8s) fetch_byte();
|
||||
dis_sprintf ("0x%08x%08x",
|
||||
(unsigned)(imm64>>32), (unsigned)(imm64 & 0xffffffff));
|
||||
}
|
||||
|
||||
// sign extended immediate
|
||||
void disassembler::sIdq(const x86_insn *insn)
|
||||
{
|
||||
if (! intel_mode) dis_putc('$');
|
||||
Bit64u imm64 = (Bit32s) fetch_dword();
|
||||
dis_sprintf ("0x%08x%08x",
|
||||
(unsigned)(imm64>>32), (unsigned)(imm64 & 0xffffffff));
|
||||
}
|
||||
|
||||
// floating point
|
||||
void disassembler::ST0(const x86_insn *insn)
|
||||
{
|
||||
if (intel_mode)
|
||||
dis_sprintf ("st(0)");
|
||||
else
|
||||
dis_sprintf("%%st(0)");
|
||||
}
|
||||
|
||||
void disassembler::STi(const x86_insn *insn)
|
||||
{
|
||||
if (intel_mode)
|
||||
dis_sprintf ("st(%d)", insn->rm);
|
||||
else
|
||||
dis_sprintf("%%st(%d)", insn->rm);
|
||||
}
|
||||
|
||||
// 16-bit general purpose register
|
||||
void disassembler::Rw(const x86_insn *insn)
|
||||
{
|
||||
dis_sprintf("%s", general_16bit_regname[insn->rm]);
|
||||
}
|
||||
|
||||
// 32-bit general purpose register
|
||||
void disassembler::Rd(const x86_insn *insn)
|
||||
{
|
||||
dis_sprintf("%s", general_32bit_regname[insn->rm]);
|
||||
}
|
||||
|
||||
// 64-bit general purpose register
|
||||
void disassembler::Rq(const x86_insn *insn)
|
||||
{
|
||||
dis_sprintf("%s", general_64bit_regname[insn->rm]);
|
||||
}
|
||||
|
||||
// mmx register
|
||||
void disassembler::Pq(const x86_insn *insn)
|
||||
{
|
||||
if (intel_mode)
|
||||
dis_sprintf ("mm%d", insn->nnn);
|
||||
else
|
||||
dis_sprintf("%%mm%d", insn->nnn);
|
||||
}
|
||||
|
||||
void disassembler::Nq(const x86_insn *insn)
|
||||
{
|
||||
if (intel_mode)
|
||||
dis_sprintf ("mm%d", insn->rm);
|
||||
else
|
||||
dis_sprintf("%%mm%d", insn->rm);
|
||||
}
|
||||
|
||||
void disassembler::Qd(const x86_insn *insn)
|
||||
{
|
||||
if (insn->mod == 3)
|
||||
{
|
||||
if (intel_mode)
|
||||
dis_sprintf ("mm%d", insn->rm);
|
||||
else
|
||||
dis_sprintf("%%mm%d", insn->rm);
|
||||
}
|
||||
else
|
||||
(this->*resolve_modrm)(insn, D_SIZE);
|
||||
}
|
||||
|
||||
void disassembler::Qq(const x86_insn *insn)
|
||||
{
|
||||
if (insn->mod == 3)
|
||||
{
|
||||
if (intel_mode)
|
||||
dis_sprintf ("mm%d", insn->rm);
|
||||
else
|
||||
dis_sprintf("%%mm%d", insn->rm);
|
||||
}
|
||||
else
|
||||
(this->*resolve_modrm)(insn, Q_SIZE);
|
||||
}
|
||||
|
||||
// xmm register
|
||||
void disassembler::Udq(const x86_insn *insn)
|
||||
{
|
||||
if (intel_mode)
|
||||
dis_sprintf ("xmm%d", insn->rm);
|
||||
else
|
||||
dis_sprintf("%%xmm%d", insn->rm);
|
||||
}
|
||||
|
||||
void disassembler::Vq(const x86_insn *insn)
|
||||
{
|
||||
if (intel_mode)
|
||||
dis_sprintf ("xmm%d", insn->nnn);
|
||||
else
|
||||
dis_sprintf("%%xmm%d", insn->nnn);
|
||||
}
|
||||
|
||||
void disassembler::Vdq(const x86_insn *insn) { Vq(insn); }
|
||||
void disassembler::Vss(const x86_insn *insn) { Vq(insn); }
|
||||
void disassembler::Vsd(const x86_insn *insn) { Vq(insn); }
|
||||
void disassembler::Vps(const x86_insn *insn) { Vq(insn); }
|
||||
void disassembler::Vpd(const x86_insn *insn) { Vq(insn); }
|
||||
|
||||
void disassembler::Wq(const x86_insn *insn)
|
||||
{
|
||||
if (insn->mod == 3)
|
||||
{
|
||||
if (intel_mode)
|
||||
dis_sprintf ("xmm%d", insn->rm);
|
||||
else
|
||||
dis_sprintf("%%xmm%d", insn->rm);
|
||||
}
|
||||
else
|
||||
(this->*resolve_modrm)(insn, Q_SIZE);
|
||||
}
|
||||
|
||||
void disassembler::Wdq(const x86_insn *insn)
|
||||
{
|
||||
if (insn->mod == 3)
|
||||
{
|
||||
if (intel_mode)
|
||||
dis_sprintf ("xmm%d", insn->rm);
|
||||
else
|
||||
dis_sprintf("%%xmm%d", insn->rm);
|
||||
}
|
||||
else
|
||||
(this->*resolve_modrm)(insn, O_SIZE);
|
||||
}
|
||||
|
||||
void disassembler::Wsd(const x86_insn *insn) { Wq(insn); }
|
||||
|
||||
void disassembler::Wss(const x86_insn *insn)
|
||||
{
|
||||
if (insn->mod == 3)
|
||||
{
|
||||
if (intel_mode)
|
||||
dis_sprintf ("xmm%d", insn->rm);
|
||||
else
|
||||
dis_sprintf("%%xmm%d", insn->rm);
|
||||
}
|
||||
else
|
||||
(this->*resolve_modrm)(insn, D_SIZE);
|
||||
}
|
||||
|
||||
void disassembler::Wpd(const x86_insn *insn) { Wdq(insn); }
|
||||
void disassembler::Wps(const x86_insn *insn) { Wdq(insn); }
|
||||
|
||||
// direct memory access
|
||||
void disassembler::OP_O(const x86_insn *insn, unsigned size)
|
||||
{
|
||||
const char *seg;
|
||||
|
||||
if (insn->is_seg_override())
|
||||
seg = segment_name[insn->seg_override];
|
||||
else
|
||||
seg = segment_name[DS_REG];
|
||||
|
||||
print_datasize(size);
|
||||
|
||||
if (insn->as_64) {
|
||||
Bit64u imm64 = fetch_qword();
|
||||
dis_sprintf("%s:0x%08x%08x", seg,
|
||||
(unsigned)(imm64>>32), (unsigned)(imm64 & 0xffffffff));
|
||||
}
|
||||
else if (insn->as_32) {
|
||||
Bit32u imm32 = fetch_dword();
|
||||
dis_sprintf("%s:0x%x", seg, (unsigned) imm32);
|
||||
}
|
||||
else {
|
||||
Bit16u imm16 = fetch_word();
|
||||
dis_sprintf("%s:0x%x", seg, (unsigned) imm16);
|
||||
}
|
||||
}
|
||||
|
||||
void disassembler::Ob(const x86_insn *insn) { OP_O(insn, B_SIZE); }
|
||||
void disassembler::Ow(const x86_insn *insn) { OP_O(insn, W_SIZE); }
|
||||
void disassembler::Od(const x86_insn *insn) { OP_O(insn, D_SIZE); }
|
||||
void disassembler::Oq(const x86_insn *insn) { OP_O(insn, Q_SIZE); }
|
||||
|
||||
// memory operand
|
||||
void disassembler::OP_M(const x86_insn *insn, unsigned size)
|
||||
{
|
||||
if(insn->mod == 3)
|
||||
dis_sprintf("(bad)");
|
||||
else
|
||||
(this->*resolve_modrm)(insn, size);
|
||||
}
|
||||
|
||||
void disassembler::Ma(const x86_insn *insn) { OP_M(insn, X_SIZE); }
|
||||
void disassembler::Mp(const x86_insn *insn) { OP_M(insn, X_SIZE); }
|
||||
void disassembler::Ms(const x86_insn *insn) { OP_M(insn, X_SIZE); }
|
||||
void disassembler::Mx(const x86_insn *insn) { OP_M(insn, X_SIZE); }
|
||||
|
||||
void disassembler::Mb(const x86_insn *insn) { OP_M(insn, B_SIZE); }
|
||||
void disassembler::Mw(const x86_insn *insn) { OP_M(insn, W_SIZE); }
|
||||
void disassembler::Md(const x86_insn *insn) { OP_M(insn, D_SIZE); }
|
||||
void disassembler::Mq(const x86_insn *insn) { OP_M(insn, Q_SIZE); }
|
||||
void disassembler::Mt(const x86_insn *insn) { OP_M(insn, T_SIZE); }
|
||||
|
||||
void disassembler::Mdq(const x86_insn *insn) { OP_M(insn, O_SIZE); }
|
||||
void disassembler::Mps(const x86_insn *insn) { OP_M(insn, O_SIZE); }
|
||||
void disassembler::Mpd(const x86_insn *insn) { OP_M(insn, O_SIZE); }
|
||||
|
||||
// string instructions
|
||||
void disassembler::OP_X(const x86_insn *insn, unsigned size)
|
||||
{
|
||||
const char *rsi, *seg;
|
||||
|
||||
if (insn->as_64) {
|
||||
rsi = general_64bit_regname[rSI_REG];
|
||||
}
|
||||
else {
|
||||
if (insn->as_32)
|
||||
rsi = general_32bit_regname[rSI_REG];
|
||||
else
|
||||
rsi = general_16bit_regname[rSI_REG];
|
||||
}
|
||||
|
||||
if (insn->is_seg_override())
|
||||
seg = segment_name[insn->seg_override];
|
||||
else
|
||||
seg = segment_name[DS_REG];
|
||||
|
||||
print_datasize(size);
|
||||
|
||||
if (intel_mode)
|
||||
dis_sprintf("%s:[%s]", seg, rsi);
|
||||
else
|
||||
dis_sprintf("%s:(%s)", seg, rsi);
|
||||
}
|
||||
|
||||
void disassembler::Xb(const x86_insn *insn) { OP_X(insn, B_SIZE); }
|
||||
void disassembler::Xw(const x86_insn *insn) { OP_X(insn, W_SIZE); }
|
||||
void disassembler::Xd(const x86_insn *insn) { OP_X(insn, D_SIZE); }
|
||||
void disassembler::Xq(const x86_insn *insn) { OP_X(insn, Q_SIZE); }
|
||||
|
||||
void disassembler::OP_Y(const x86_insn *insn, unsigned size)
|
||||
{
|
||||
const char *rdi;
|
||||
|
||||
if (insn->as_64) {
|
||||
rdi = general_64bit_regname[rDI_REG];
|
||||
}
|
||||
else {
|
||||
if (insn->as_32)
|
||||
rdi = general_32bit_regname[rDI_REG];
|
||||
else
|
||||
rdi = general_16bit_regname[rDI_REG];
|
||||
}
|
||||
|
||||
print_datasize(size);
|
||||
|
||||
if (intel_mode)
|
||||
dis_sprintf("%s:[%s]", segment_name[ES_REG], rdi);
|
||||
else
|
||||
dis_sprintf("%s:(%s)", segment_name[ES_REG], rdi);
|
||||
}
|
||||
|
||||
void disassembler::Yb(const x86_insn *insn) { OP_Y(insn, B_SIZE); }
|
||||
void disassembler::Yw(const x86_insn *insn) { OP_Y(insn, W_SIZE); }
|
||||
void disassembler::Yd(const x86_insn *insn) { OP_Y(insn, D_SIZE); }
|
||||
void disassembler::Yq(const x86_insn *insn) { OP_Y(insn, Q_SIZE); }
|
||||
|
||||
#define BX_JUMP_TARGET_NOT_REQ ((bx_address)(-1))
|
||||
|
||||
// jump offset
|
||||
void disassembler::Jb(const x86_insn *insn)
|
||||
{
|
||||
Bit8s imm8 = (Bit8s) fetch_byte();
|
||||
|
||||
if (insn->is_64) {
|
||||
Bit64u imm64 = (Bit64s) imm8;
|
||||
dis_sprintf(".+0x%08x%08x",
|
||||
(unsigned)(imm64>>32), (unsigned)(imm64 & 0xffffffff));
|
||||
|
||||
if (db_base != BX_JUMP_TARGET_NOT_REQ) {
|
||||
Bit64u target = db_eip + (Bit64s) imm64; target += db_base;
|
||||
dis_sprintf(" (0x%08x%08x)",
|
||||
(unsigned)(target>>32), (unsigned)(target & 0xffffffff));
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (insn->os_32) {
|
||||
Bit32u imm32 = (Bit32s) imm8;
|
||||
dis_sprintf(".+0x%08x", (unsigned) imm32);
|
||||
|
||||
if (db_base != BX_JUMP_TARGET_NOT_REQ) {
|
||||
Bit32u target = db_eip + (Bit32s) imm32; target += db_base;
|
||||
dis_sprintf(" (0x%08x)", target);
|
||||
}
|
||||
}
|
||||
else {
|
||||
Bit16u imm16 = (Bit16s) imm8;
|
||||
dis_sprintf(".+0x%04x", (unsigned) imm16);
|
||||
|
||||
if (db_base != BX_JUMP_TARGET_NOT_REQ) {
|
||||
Bit16u target = (db_eip + (Bit16s) imm16) & 0xffff;
|
||||
dis_sprintf(" (0x%08x)", target + db_base);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void disassembler::Jw(const x86_insn *insn)
|
||||
{
|
||||
// Jw supported in 16-bit mode only
|
||||
assert(! insn->is_64);
|
||||
assert(! insn->is_32);
|
||||
|
||||
Bit16u imm16 = (Bit16s) fetch_word();
|
||||
dis_sprintf(".+0x%04x", (unsigned) imm16);
|
||||
|
||||
if (db_base != BX_JUMP_TARGET_NOT_REQ) {
|
||||
Bit16u target = (db_eip + (Bit16s) imm16) & 0xffff;
|
||||
dis_sprintf(" (0x%08x)", target + db_base);
|
||||
}
|
||||
}
|
||||
|
||||
void disassembler::Jd(const x86_insn *insn)
|
||||
{
|
||||
Bit32s imm32 = (Bit32s) fetch_dword();
|
||||
|
||||
if (insn->is_64) {
|
||||
Bit64u imm64 = (Bit64s) imm32;
|
||||
dis_sprintf(".+0x%08x%08x",
|
||||
(unsigned)(imm64>>32), (unsigned)(imm64 & 0xffffffff));
|
||||
|
||||
if (db_base != BX_JUMP_TARGET_NOT_REQ) {
|
||||
Bit64u target = db_eip + (Bit64s) imm64; target += db_base;
|
||||
dis_sprintf(" (0x%08x%08x)",
|
||||
(unsigned)(target>>32), (unsigned)(target & 0xffffffff));
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
dis_sprintf(".+0x%08x", (unsigned) imm32);
|
||||
|
||||
if (db_base != BX_JUMP_TARGET_NOT_REQ) {
|
||||
Bit32u target = db_eip + (Bit32s) imm32; target += db_base;
|
||||
dis_sprintf(" (0x%08x)", target);
|
||||
}
|
||||
}
|
152
Externals/Bochs_disasm/dis_tables.h
vendored
Normal file
152
Externals/Bochs_disasm/dis_tables.h
vendored
Normal file
@ -0,0 +1,152 @@
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// $Id: dis_tables.h,v 1.29 2006/04/27 15:11:45 sshwarts Exp $
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _BX_DISASM_TABLES_
|
||||
#define _BX_DISASM_TABLES_
|
||||
|
||||
// opcode table attributes
|
||||
#define _GROUPN 1
|
||||
#define _SPLIT11B 2
|
||||
#define _GRPFP 3
|
||||
#define _GRP3DNOW 4
|
||||
#define _GRPSSE 5
|
||||
#define _GRPRM 6
|
||||
#define _GRP3BOP 7
|
||||
#define _GRP3BTAB 8
|
||||
|
||||
/* ************************************************************************ */
|
||||
#define GRPSSE(n) _GRPSSE, BxDisasmGroupSSE_##n
|
||||
#define GRPN(n) _GROUPN, BxDisasmGroup##n
|
||||
#define GRPRM(n) _GRPRM, BxDisasmGroupRm##n
|
||||
#define GRPMOD(n) _SPLIT11B, BxDisasmGroupMod##n
|
||||
#define GRPFP(n) _GRPFP, BxDisasmFPGroup##n
|
||||
#define GRP3DNOW _GRP3DNOW, BxDisasm3DNowGroup
|
||||
#define GR3BOP(n) _GRP3BOP, BxDisasm3ByteOp##n
|
||||
#define GR3BTAB(n) _GRP3BTAB, BxDisasm3ByteTable##n
|
||||
/* ************************************************************************ */
|
||||
|
||||
#define Apw &disassembler::Apw
|
||||
#define Apd &disassembler::Apd
|
||||
|
||||
#define AL &disassembler::AL
|
||||
#define CL &disassembler::CL
|
||||
#define AX &disassembler::AX
|
||||
#define DX &disassembler::DX
|
||||
|
||||
#define EAX &disassembler::EAX
|
||||
#define RAX &disassembler::RAX
|
||||
|
||||
#define CS &disassembler::CS
|
||||
#define DS &disassembler::DS
|
||||
#define ES &disassembler::ES
|
||||
#define SS &disassembler::SS
|
||||
#define FS &disassembler::FS
|
||||
#define GS &disassembler::GS
|
||||
|
||||
#define Sw &disassembler::Sw
|
||||
|
||||
#define Td &disassembler::Td
|
||||
|
||||
#define Cd &disassembler::Cd
|
||||
#define Cq &disassembler::Cq
|
||||
|
||||
#define Dd &disassembler::Dd
|
||||
#define Dq &disassembler::Dq
|
||||
|
||||
#define R8 &disassembler::R8
|
||||
#define RX &disassembler::RX
|
||||
#define ERX &disassembler::ERX
|
||||
#define RRX &disassembler::RRX
|
||||
|
||||
#define Eb &disassembler::Eb
|
||||
#define Ew &disassembler::Ew
|
||||
#define Ed &disassembler::Ed
|
||||
#define Eq &disassembler::Eq
|
||||
|
||||
#define Gb &disassembler::Gb
|
||||
#define Gw &disassembler::Gw
|
||||
#define Gd &disassembler::Gd
|
||||
#define Gq &disassembler::Gq
|
||||
|
||||
#define I1 &disassembler::I1
|
||||
#define Ib &disassembler::Ib
|
||||
#define Iw &disassembler::Iw
|
||||
#define Id &disassembler::Id
|
||||
#define Iq &disassembler::Iq
|
||||
|
||||
#define IwIb &disassembler::IwIb
|
||||
|
||||
#define sIbw &disassembler::sIbw
|
||||
#define sIbd &disassembler::sIbd
|
||||
#define sIbq &disassembler::sIbq
|
||||
#define sIdq &disassembler::sIdq
|
||||
|
||||
#define ST0 &disassembler::ST0
|
||||
#define STi &disassembler::STi
|
||||
|
||||
#define Rw &disassembler::Rw
|
||||
#define Rd &disassembler::Rd
|
||||
#define Rq &disassembler::Rq
|
||||
|
||||
#define Pq &disassembler::Pq
|
||||
#define Qd &disassembler::Qd
|
||||
#define Qq &disassembler::Qq
|
||||
#define Nq &disassembler::Nq
|
||||
|
||||
#define Vq &disassembler::Vq
|
||||
#define Vdq &disassembler::Vdq
|
||||
#define Vss &disassembler::Vss
|
||||
#define Vsd &disassembler::Vsd
|
||||
#define Vps &disassembler::Vps
|
||||
#define Vpd &disassembler::Vpd
|
||||
#define Udq &disassembler::Udq
|
||||
|
||||
#define Wq &disassembler::Wq
|
||||
#define Wdq &disassembler::Wdq
|
||||
#define Wss &disassembler::Wss
|
||||
#define Wsd &disassembler::Wsd
|
||||
#define Wps &disassembler::Wps
|
||||
#define Wpd &disassembler::Wpd
|
||||
|
||||
#define Ob &disassembler::Ob
|
||||
#define Ow &disassembler::Ow
|
||||
#define Od &disassembler::Od
|
||||
#define Oq &disassembler::Oq
|
||||
|
||||
#define Ma &disassembler::Ma
|
||||
#define Mp &disassembler::Mp
|
||||
#define Ms &disassembler::Ms
|
||||
#define Mx &disassembler::Mx
|
||||
#define Mb &disassembler::Mb
|
||||
#define Mw &disassembler::Mw
|
||||
#define Md &disassembler::Md
|
||||
#define Mq &disassembler::Mq
|
||||
#define Mt &disassembler::Mt
|
||||
#define Mdq &disassembler::Mdq
|
||||
#define Mps &disassembler::Mps
|
||||
#define Mpd &disassembler::Mpd
|
||||
|
||||
#define Xb &disassembler::Xb
|
||||
#define Xw &disassembler::Xw
|
||||
#define Xd &disassembler::Xd
|
||||
#define Xq &disassembler::Xq
|
||||
|
||||
#define Yb &disassembler::Yb
|
||||
#define Yw &disassembler::Yw
|
||||
#define Yd &disassembler::Yd
|
||||
#define Yq &disassembler::Yq
|
||||
|
||||
#define Jb &disassembler::Jb
|
||||
#define Jw &disassembler::Jw
|
||||
#define Jd &disassembler::Jd
|
||||
|
||||
#define XX 0
|
||||
|
||||
const struct BxDisasmOpcodeInfo_t
|
||||
#include "opcodes.inl"
|
||||
#include "dis_tables.inl"
|
||||
|
||||
#undef XX
|
||||
|
||||
#endif
|
5081
Externals/Bochs_disasm/dis_tables.inl
vendored
Normal file
5081
Externals/Bochs_disasm/dis_tables.inl
vendored
Normal file
File diff suppressed because it is too large
Load Diff
508
Externals/Bochs_disasm/disasm.h
vendored
Normal file
508
Externals/Bochs_disasm/disasm.h
vendored
Normal file
@ -0,0 +1,508 @@
|
||||
#ifndef _BX_DISASM_H_
|
||||
#define _BX_DISASM_H_
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#define BX_DECODE_MODRM(modrm_byte, mod, opcode, rm) { \
|
||||
mod = (modrm_byte >> 6) & 0x03; \
|
||||
opcode = (modrm_byte >> 3) & 0x07; \
|
||||
rm = modrm_byte & 0x07; \
|
||||
}
|
||||
|
||||
#define BX_DECODE_SIB(sib_byte, scale, index, base) { \
|
||||
scale = sib_byte >> 6; \
|
||||
index = (sib_byte >> 3) & 0x07; \
|
||||
base = sib_byte & 0x07; \
|
||||
}
|
||||
|
||||
// will be used in future
|
||||
#define IA_286 0x00000001 /* 286+ instruction */
|
||||
#define IA_386 0x00000002 /* 386+ instruction */
|
||||
#define IA_486 0x00000004 /* 486+ instruction */
|
||||
#define IA_PENTIUM 0x00000008 /* Pentium+ instruction */
|
||||
#define IA_P6 0x00000010 /* P6 new instruction */
|
||||
#define IA_SYSTEM 0x00000020 /* system instruction (require CPL=0) */
|
||||
#define IA_LEGACY 0x00000040 /* legacy instruction */
|
||||
#define IA_X87 0x00000080 /* FPU (X87) instruction */
|
||||
#define IA_MMX 0x00000100 /* MMX instruction */
|
||||
#define IA_3DNOW 0x00000200 /* 3DNow! instruction */
|
||||
#define IA_PREFETCH 0x00000400 /* Prefetch instruction */
|
||||
#define IA_SSE 0x00000800 /* SSE instruction */
|
||||
#define IA_SSE2 0x00001000 /* SSE2 instruction */
|
||||
#define IA_SSE3 0x00002000 /* SSE3 instruction */
|
||||
#define IA_SSE4 0x00004000 /* SSE4 instruction */
|
||||
#define IA_X86_64 0x00008000 /* x86-64 instruction */
|
||||
|
||||
/* general purpose bit register */
|
||||
enum {
|
||||
rAX_REG,
|
||||
rCX_REG,
|
||||
rDX_REG,
|
||||
rBX_REG,
|
||||
rSP_REG,
|
||||
rBP_REG,
|
||||
rSI_REG,
|
||||
rDI_REG
|
||||
};
|
||||
|
||||
/* segment register */
|
||||
enum {
|
||||
ES_REG,
|
||||
CS_REG,
|
||||
SS_REG,
|
||||
DS_REG,
|
||||
FS_REG,
|
||||
GS_REG,
|
||||
INVALID_SEG1,
|
||||
INVALID_SEG2
|
||||
};
|
||||
|
||||
class disassembler;
|
||||
struct x86_insn;
|
||||
|
||||
typedef void (disassembler::*BxDisasmPtr_t)(const x86_insn *insn);
|
||||
typedef void (disassembler::*BxDisasmResolveModrmPtr_t)(const x86_insn *insn, unsigned attr);
|
||||
|
||||
struct BxDisasmOpcodeInfo_t
|
||||
{
|
||||
const char *IntelOpcode;
|
||||
const char *AttOpcode;
|
||||
BxDisasmPtr_t Operand1;
|
||||
BxDisasmPtr_t Operand2;
|
||||
BxDisasmPtr_t Operand3;
|
||||
};
|
||||
|
||||
struct BxDisasmOpcodeTable_t
|
||||
{
|
||||
Bit32u Attr;
|
||||
const void *OpcodeInfo;
|
||||
};
|
||||
|
||||
// segment override not used
|
||||
#define NO_SEG_OVERRIDE 0xFF
|
||||
|
||||
// datasize attributes
|
||||
#define X_SIZE 0x0000
|
||||
#define B_SIZE 0x0100
|
||||
#define W_SIZE 0x0200
|
||||
#define D_SIZE 0x0300
|
||||
#define Q_SIZE 0x0400
|
||||
#define Z_SIZE 0x0500
|
||||
#define V_SIZE 0x0600
|
||||
#define O_SIZE 0x0700
|
||||
#define T_SIZE 0x0800
|
||||
#define P_SIZE 0x0900
|
||||
|
||||
// branch hint attribute
|
||||
#define BRANCH_HINT 0x1000
|
||||
|
||||
struct x86_insn
|
||||
{
|
||||
public:
|
||||
x86_insn(bx_bool is32, bx_bool is64);
|
||||
|
||||
bx_bool is_seg_override() const {
|
||||
return (seg_override != NO_SEG_OVERRIDE);
|
||||
}
|
||||
|
||||
public:
|
||||
bx_bool is_32, is_64;
|
||||
bx_bool as_32, as_64;
|
||||
bx_bool os_32, os_64;
|
||||
|
||||
Bit8u extend8b;
|
||||
Bit8u rex_r, rex_x, rex_b;
|
||||
Bit8u seg_override;
|
||||
unsigned b1, prefixes;
|
||||
unsigned ilen;
|
||||
|
||||
Bit8u modrm, mod, nnn, rm;
|
||||
Bit8u sib, scale, index, base;
|
||||
union {
|
||||
Bit16u displ16;
|
||||
Bit32u displ32;
|
||||
} displacement;
|
||||
};
|
||||
|
||||
BX_CPP_INLINE x86_insn::x86_insn(bx_bool is32, bx_bool is64)
|
||||
{
|
||||
is_32 = is32;
|
||||
is_64 = is64;
|
||||
|
||||
if (is_64) {
|
||||
os_64 = 0;
|
||||
as_64 = 1;
|
||||
os_32 = 1;
|
||||
as_32 = 1;
|
||||
}
|
||||
else {
|
||||
os_64 = 0;
|
||||
as_64 = 0;
|
||||
os_32 = is_32;
|
||||
as_32 = is_32;
|
||||
}
|
||||
|
||||
extend8b = 0;
|
||||
rex_r = rex_b = rex_x = 0;
|
||||
seg_override = NO_SEG_OVERRIDE;
|
||||
prefixes = 0;
|
||||
ilen = 0;
|
||||
b1 = 0;
|
||||
|
||||
modrm = mod = nnn = rm = 0;
|
||||
sib = scale = index = base = 0;
|
||||
displacement.displ32 = 0;
|
||||
}
|
||||
|
||||
class disassembler {
|
||||
public:
|
||||
disassembler() { set_syntax_intel(); }
|
||||
|
||||
unsigned disasm(bx_bool is_32, bx_bool is_64, bx_address base, bx_address ip, const Bit8u *instr, char *disbuf);
|
||||
|
||||
unsigned disasm16(bx_address base, bx_address ip, const Bit8u *instr, char *disbuf)
|
||||
{ return disasm(0, 0, base, ip, instr, disbuf); }
|
||||
|
||||
unsigned disasm32(bx_address base, bx_address ip, const Bit8u *instr, char *disbuf)
|
||||
{ return disasm(1, 0, base, ip, instr, disbuf); }
|
||||
|
||||
unsigned disasm64(bx_address base, bx_address ip, const Bit8u *instr, char *disbuf)
|
||||
{ return disasm(1, 1, base, ip, instr, disbuf); }
|
||||
|
||||
x86_insn decode(bx_bool is_32, bx_bool is_64, bx_address base, bx_address ip, const Bit8u *instr, char *disbuf);
|
||||
|
||||
x86_insn decode16(bx_address base, bx_address ip, const Bit8u *instr, char *disbuf)
|
||||
{ return decode(0, 0, base, ip, instr, disbuf); }
|
||||
|
||||
x86_insn decode32(bx_address base, bx_address ip, const Bit8u *instr, char *disbuf)
|
||||
{ return decode(1, 0, base, ip, instr, disbuf); }
|
||||
|
||||
x86_insn decode64(bx_address base, bx_address ip, const Bit8u *instr, char *disbuf)
|
||||
{ return decode(1, 1, base, ip, instr, disbuf); }
|
||||
|
||||
void set_syntax_intel();
|
||||
void set_syntax_att ();
|
||||
|
||||
void toggle_syntax_mode();
|
||||
|
||||
private:
|
||||
bx_bool intel_mode;
|
||||
|
||||
const char **general_16bit_regname;
|
||||
const char **general_8bit_regname;
|
||||
const char **general_32bit_regname;
|
||||
const char **general_8bit_regname_rex;
|
||||
const char **general_64bit_regname;
|
||||
|
||||
const char **segment_name;
|
||||
const char **index16;
|
||||
|
||||
const char *sreg_mod01or10_rm32[8];
|
||||
const char *sreg_mod00_base32[8];
|
||||
const char *sreg_mod01or10_base32[8];
|
||||
const char *sreg_mod00_rm16[8];
|
||||
const char *sreg_mod01or10_rm16[8];
|
||||
|
||||
private:
|
||||
|
||||
bx_address db_eip, db_base;
|
||||
|
||||
const Bit8u *instruction; // for fetching of next byte of instruction
|
||||
|
||||
char *disbufptr;
|
||||
|
||||
BxDisasmResolveModrmPtr_t resolve_modrm;
|
||||
|
||||
BX_CPP_INLINE Bit8u fetch_byte() {
|
||||
db_eip++;
|
||||
return(*instruction++);
|
||||
};
|
||||
|
||||
BX_CPP_INLINE Bit8u peek_byte() {
|
||||
return(*instruction);
|
||||
};
|
||||
|
||||
BX_CPP_INLINE Bit16u fetch_word() {
|
||||
Bit8u b0 = * (Bit8u *) instruction++;
|
||||
Bit8u b1 = * (Bit8u *) instruction++;
|
||||
Bit16u ret16 = (b1<<8) | b0;
|
||||
db_eip += 2;
|
||||
return(ret16);
|
||||
};
|
||||
|
||||
BX_CPP_INLINE Bit32u fetch_dword() {
|
||||
Bit8u b0 = * (Bit8u *) instruction++;
|
||||
Bit8u b1 = * (Bit8u *) instruction++;
|
||||
Bit8u b2 = * (Bit8u *) instruction++;
|
||||
Bit8u b3 = * (Bit8u *) instruction++;
|
||||
Bit32u ret32 = (b3<<24) | (b2<<16) | (b1<<8) | b0;
|
||||
db_eip += 4;
|
||||
return(ret32);
|
||||
};
|
||||
|
||||
BX_CPP_INLINE Bit64u fetch_qword() {
|
||||
Bit64u d0 = fetch_dword();
|
||||
Bit64u d1 = fetch_dword();
|
||||
Bit64u ret64 = (d1<<32) | d0;
|
||||
return(ret64);
|
||||
};
|
||||
|
||||
void dis_putc(char symbol);
|
||||
void dis_sprintf(const char *fmt, ...);
|
||||
void decode_modrm(x86_insn *insn);
|
||||
|
||||
void resolve16_mod0 (const x86_insn *insn, unsigned mode);
|
||||
void resolve16_mod1or2(const x86_insn *insn, unsigned mode);
|
||||
|
||||
void resolve32_mod0 (const x86_insn *insn, unsigned mode);
|
||||
void resolve32_mod1or2(const x86_insn *insn, unsigned mode);
|
||||
|
||||
void resolve32_mod0_rm4 (const x86_insn *insn, unsigned mode);
|
||||
void resolve32_mod1or2_rm4(const x86_insn *insn, unsigned mode);
|
||||
|
||||
void resolve64_mod0 (const x86_insn *insn, unsigned mode);
|
||||
void resolve64_mod1or2(const x86_insn *insn, unsigned mode);
|
||||
|
||||
void resolve64_mod0_rm4 (const x86_insn *insn, unsigned mode);
|
||||
void resolve64_mod1or2_rm4(const x86_insn *insn, unsigned mode);
|
||||
|
||||
void initialize_modrm_segregs();
|
||||
|
||||
void print_datasize (unsigned mode);
|
||||
|
||||
void print_memory_access16(int datasize,
|
||||
const char *seg, const char *index, Bit16u disp);
|
||||
void print_memory_access (int datasize,
|
||||
const char *seg, const char *base, const char *index, int scale, Bit32u disp);
|
||||
|
||||
void print_disassembly_intel(const x86_insn *insn, const BxDisasmOpcodeInfo_t *entry);
|
||||
void print_disassembly_att (const x86_insn *insn, const BxDisasmOpcodeInfo_t *entry);
|
||||
|
||||
public:
|
||||
|
||||
/*
|
||||
* Codes for Addressing Method:
|
||||
* ---------------------------
|
||||
* A - Direct address. The instruction has no ModR/M byte; the address
|
||||
* of the operand is encoded in the instruction; and no base register,
|
||||
* index register, or scaling factor can be applied.
|
||||
* C - The reg field of the ModR/M byte selects a control register.
|
||||
* D - The reg field of the ModR/M byte selects a debug register.
|
||||
* E - A ModR/M byte follows the opcode and specifies the operand. The
|
||||
* operand is either a general-purpose register or a memory address.
|
||||
* If it is a memory address, the address is computed from a segment
|
||||
* register and any of the following values: a base register, an
|
||||
* index register, a scaling factor, a displacement.
|
||||
* F - Flags Register.
|
||||
* G - The reg field of the ModR/M byte selects a general register.
|
||||
* I - Immediate data. The operand value is encoded in subsequent bytes of
|
||||
* the instruction.
|
||||
* J - The instruction contains a relative offset to be added to the
|
||||
* instruction pointer register.
|
||||
* M - The ModR/M byte may refer only to memory.
|
||||
* N - The R/M field of the ModR/M byte selects a packed-quadword MMX
|
||||
technology register.
|
||||
* O - The instruction has no ModR/M byte; the offset of the operand is
|
||||
* coded as a word or double word (depending on address size attribute)
|
||||
* in the instruction. No base register, index register, or scaling
|
||||
* factor can be applied.
|
||||
* P - The reg field of the ModR/M byte selects a packed quadword MMX
|
||||
* technology register.
|
||||
* Q - A ModR/M byte follows the opcode and specifies the operand. The
|
||||
* operand is either an MMX technology register or a memory address.
|
||||
* If it is a memory address, the address is computed from a segment
|
||||
* register and any of the following values: a base register, an
|
||||
* index register, a scaling factor, and a displacement.
|
||||
* R - The mod field of the ModR/M byte may refer only to a general register.
|
||||
* S - The reg field of the ModR/M byte selects a segment register.
|
||||
* U - The R/M field of the ModR/M byte selects a 128-bit XMM register.
|
||||
* T - The reg field of the ModR/M byte selects a test register.
|
||||
* V - The reg field of the ModR/M byte selects a 128-bit XMM register.
|
||||
* W - A ModR/M byte follows the opcode and specifies the operand. The
|
||||
* operand is either a 128-bit XMM register or a memory address. If
|
||||
* it is a memory address, the address is computed from a segment
|
||||
* register and any of the following values: a base register, an
|
||||
* index register, a scaling factor, and a displacement.
|
||||
* X - Memory addressed by the DS:rSI register pair.
|
||||
* Y - Memory addressed by the ES:rDI register pair.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Codes for Operand Type:
|
||||
* ----------------------
|
||||
* a - Two one-word operands in memory or two double-word operands in
|
||||
* memory, depending on operand-size attribute (used only by the BOUND
|
||||
* instruction).
|
||||
* b - Byte, regardless of operand-size attribute.
|
||||
* d - Doubleword, regardless of operand-size attribute.
|
||||
* dq - Double-quadword, regardless of operand-size attribute.
|
||||
* p - 32-bit or 48-bit pointer, depending on operand-size attribute.
|
||||
* pd - 128-bit packed double-precision floating-point data.
|
||||
* pi - Quadword MMX technology register (packed integer)
|
||||
* ps - 128-bit packed single-precision floating-point data.
|
||||
* q - Quadword, regardless of operand-size attribute.
|
||||
* s - 6-byte or 10-byte pseudo-descriptor.
|
||||
* si - Doubleword integer register (scalar integer)
|
||||
* ss - Scalar element of a 128-bit packed single-precision floating data.
|
||||
* sd - Scalar element of a 128-bit packed double-precision floating data.
|
||||
* v - Word, doubleword or quadword, depending on operand-size attribute.
|
||||
* w - Word, regardless of operand-size attr.
|
||||
*/
|
||||
|
||||
// far call/jmp
|
||||
void Apw(const x86_insn *insn);
|
||||
void Apd(const x86_insn *insn);
|
||||
|
||||
// 8-bit general purpose registers
|
||||
void AL(const x86_insn *insn);
|
||||
void CL(const x86_insn *insn);
|
||||
|
||||
// 16-bit general purpose registers
|
||||
void AX(const x86_insn *insn);
|
||||
void DX(const x86_insn *insn);
|
||||
|
||||
// 32-bit general purpose registers
|
||||
void EAX(const x86_insn *insn);
|
||||
|
||||
// 64-bit general purpose registers
|
||||
void RAX(const x86_insn *insn);
|
||||
|
||||
// segment registers
|
||||
void CS(const x86_insn *insn);
|
||||
void DS(const x86_insn *insn);
|
||||
void ES(const x86_insn *insn);
|
||||
void SS(const x86_insn *insn);
|
||||
void FS(const x86_insn *insn);
|
||||
void GS(const x86_insn *insn);
|
||||
|
||||
// segment registers
|
||||
void Sw(const x86_insn *insn);
|
||||
|
||||
// test registers
|
||||
void Td(const x86_insn *insn);
|
||||
|
||||
// control register
|
||||
void Cd(const x86_insn *insn);
|
||||
void Cq(const x86_insn *insn);
|
||||
|
||||
// debug register
|
||||
void Dd(const x86_insn *insn);
|
||||
void Dq(const x86_insn *insn);
|
||||
|
||||
// 8-bit general purpose register
|
||||
void R8(const x86_insn *insn);
|
||||
|
||||
// 16-bit general purpose register
|
||||
void RX(const x86_insn *insn);
|
||||
|
||||
// 32-bit general purpose register
|
||||
void ERX(const x86_insn *insn);
|
||||
|
||||
// 64-bit general purpose register
|
||||
void RRX(const x86_insn *insn);
|
||||
|
||||
// general purpose register or memory operand
|
||||
void Eb(const x86_insn *insn);
|
||||
void Ew(const x86_insn *insn);
|
||||
void Ed(const x86_insn *insn);
|
||||
void Eq(const x86_insn *insn);
|
||||
|
||||
// general purpose register
|
||||
void Gb(const x86_insn *insn);
|
||||
void Gw(const x86_insn *insn);
|
||||
void Gd(const x86_insn *insn);
|
||||
void Gq(const x86_insn *insn);
|
||||
|
||||
// immediate
|
||||
void I1(const x86_insn *insn);
|
||||
void Ib(const x86_insn *insn);
|
||||
void Iw(const x86_insn *insn);
|
||||
void Id(const x86_insn *insn);
|
||||
void Iq(const x86_insn *insn);
|
||||
|
||||
// two immediates Iw/Ib
|
||||
void IwIb(const x86_insn *insn);
|
||||
|
||||
// sign extended immediate
|
||||
void sIbw(const x86_insn *insn);
|
||||
void sIbd(const x86_insn *insn);
|
||||
void sIbq(const x86_insn *insn);
|
||||
void sIdq(const x86_insn *insn);
|
||||
|
||||
// floating point
|
||||
void ST0(const x86_insn *insn);
|
||||
void STi(const x86_insn *insn);
|
||||
|
||||
// general purpose register
|
||||
void Rw(const x86_insn *insn);
|
||||
void Rd(const x86_insn *insn);
|
||||
void Rq(const x86_insn *insn);
|
||||
|
||||
// mmx register
|
||||
void Pq(const x86_insn *insn);
|
||||
|
||||
// mmx register or memory operand
|
||||
void Qd(const x86_insn *insn);
|
||||
void Qq(const x86_insn *insn);
|
||||
void Vq(const x86_insn *insn);
|
||||
void Nq(const x86_insn *insn);
|
||||
|
||||
// xmm register
|
||||
void Udq(const x86_insn *insn);
|
||||
void Vdq(const x86_insn *insn);
|
||||
void Vss(const x86_insn *insn);
|
||||
void Vsd(const x86_insn *insn);
|
||||
void Vps(const x86_insn *insn);
|
||||
void Vpd(const x86_insn *insn);
|
||||
|
||||
// xmm register or memory operand
|
||||
void Wq(const x86_insn *insn);
|
||||
void Wdq(const x86_insn *insn);
|
||||
void Wss(const x86_insn *insn);
|
||||
void Wsd(const x86_insn *insn);
|
||||
void Wps(const x86_insn *insn);
|
||||
void Wpd(const x86_insn *insn);
|
||||
|
||||
// direct memory access
|
||||
void OP_O(const x86_insn *insn, unsigned size);
|
||||
void Ob(const x86_insn *insn);
|
||||
void Ow(const x86_insn *insn);
|
||||
void Od(const x86_insn *insn);
|
||||
void Oq(const x86_insn *insn);
|
||||
|
||||
// memory operand
|
||||
void OP_M(const x86_insn *insn, unsigned size);
|
||||
void Ma(const x86_insn *insn);
|
||||
void Mp(const x86_insn *insn);
|
||||
void Ms(const x86_insn *insn);
|
||||
void Mx(const x86_insn *insn);
|
||||
void Mb(const x86_insn *insn);
|
||||
void Mw(const x86_insn *insn);
|
||||
void Md(const x86_insn *insn);
|
||||
void Mq(const x86_insn *insn);
|
||||
void Mt(const x86_insn *insn);
|
||||
void Mdq(const x86_insn *insn);
|
||||
void Mps(const x86_insn *insn);
|
||||
void Mpd(const x86_insn *insn);
|
||||
|
||||
// string instructions
|
||||
void OP_X(const x86_insn *insn, unsigned size);
|
||||
void Xb(const x86_insn *insn);
|
||||
void Xw(const x86_insn *insn);
|
||||
void Xd(const x86_insn *insn);
|
||||
void Xq(const x86_insn *insn);
|
||||
|
||||
// string instructions
|
||||
void OP_Y(const x86_insn *insn, unsigned size);
|
||||
void Yb(const x86_insn *insn);
|
||||
void Yw(const x86_insn *insn);
|
||||
void Yd(const x86_insn *insn);
|
||||
void Yq(const x86_insn *insn);
|
||||
|
||||
// jump offset
|
||||
void Jb(const x86_insn *insn);
|
||||
void Jw(const x86_insn *insn);
|
||||
void Jd(const x86_insn *insn);
|
||||
};
|
||||
|
||||
#endif
|
1230
Externals/Bochs_disasm/opcodes.inl
vendored
Normal file
1230
Externals/Bochs_disasm/opcodes.inl
vendored
Normal file
File diff suppressed because it is too large
Load Diff
460
Externals/Bochs_disasm/resolve.cpp
vendored
Normal file
460
Externals/Bochs_disasm/resolve.cpp
vendored
Normal file
@ -0,0 +1,460 @@
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// $Id: resolve.cc,v 1.13 2006/08/11 17:22:43 sshwarts Exp $
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
#include <stdio.h>
|
||||
#include <assert.h>
|
||||
#include "disasm.h"
|
||||
|
||||
void disassembler::decode_modrm(x86_insn *insn)
|
||||
{
|
||||
insn->modrm = fetch_byte();
|
||||
BX_DECODE_MODRM(insn->modrm, insn->mod, insn->nnn, insn->rm);
|
||||
// MOVs with CRx and DRx always use register ops and ignore the mod field.
|
||||
if ((insn->b1 & ~3) == 0x120) insn->mod = 3;
|
||||
insn->nnn |= insn->rex_r;
|
||||
|
||||
if (insn->mod == 3) {
|
||||
/* mod, reg, reg */
|
||||
insn->rm |= insn->rex_b;
|
||||
return;
|
||||
}
|
||||
|
||||
if (insn->as_64)
|
||||
{
|
||||
if (insn->rm != 4) { /* rm != 100b, no s-i-b byte */
|
||||
insn->rm |= insn->rex_b;
|
||||
// one byte modrm
|
||||
switch (insn->mod) {
|
||||
case 0:
|
||||
resolve_modrm = &disassembler::resolve64_mod0;
|
||||
if ((insn->rm & 7) == 5) /* no reg, 32-bit displacement */
|
||||
insn->displacement.displ32 = fetch_dword();
|
||||
break;
|
||||
case 1:
|
||||
/* reg, 8-bit displacement, sign extend */
|
||||
resolve_modrm = &disassembler::resolve64_mod1or2;
|
||||
insn->displacement.displ32 = (Bit8s) fetch_byte();
|
||||
break;
|
||||
case 2:
|
||||
/* reg, 32-bit displacement */
|
||||
resolve_modrm = &disassembler::resolve64_mod1or2;
|
||||
insn->displacement.displ32 = fetch_dword();
|
||||
break;
|
||||
} /* switch (mod) */
|
||||
} /* if (rm != 4) */
|
||||
else { /* rm == 4, s-i-b byte follows */
|
||||
insn->sib = fetch_byte();
|
||||
BX_DECODE_SIB(insn->sib, insn->scale, insn->index, insn->base);
|
||||
insn->base |= insn->rex_b;
|
||||
insn->index |= insn->rex_x;
|
||||
|
||||
switch (insn->mod) {
|
||||
case 0:
|
||||
resolve_modrm = &disassembler::resolve64_mod0_rm4;
|
||||
if ((insn->base & 7) == 5)
|
||||
insn->displacement.displ32 = fetch_dword();
|
||||
break;
|
||||
case 1:
|
||||
resolve_modrm = &disassembler::resolve64_mod1or2_rm4;
|
||||
insn->displacement.displ32 = (Bit8s) fetch_byte();
|
||||
break;
|
||||
case 2:
|
||||
resolve_modrm = &disassembler::resolve64_mod1or2_rm4;
|
||||
insn->displacement.displ32 = fetch_dword();
|
||||
break;
|
||||
}
|
||||
} /* s-i-b byte follows */
|
||||
}
|
||||
else
|
||||
{
|
||||
if (insn->as_32)
|
||||
{
|
||||
if (insn->rm != 4) { /* rm != 100b, no s-i-b byte */
|
||||
insn->rm |= insn->rex_b;
|
||||
// one byte modrm
|
||||
switch (insn->mod) {
|
||||
case 0:
|
||||
resolve_modrm = &disassembler::resolve32_mod0;
|
||||
if ((insn->rm & 7) == 5) /* no reg, 32-bit displacement */
|
||||
insn->displacement.displ32 = fetch_dword();
|
||||
break;
|
||||
case 1:
|
||||
/* reg, 8-bit displacement, sign extend */
|
||||
resolve_modrm = &disassembler::resolve32_mod1or2;
|
||||
insn->displacement.displ32 = (Bit8s) fetch_byte();
|
||||
break;
|
||||
case 2:
|
||||
/* reg, 32-bit displacement */
|
||||
resolve_modrm = &disassembler::resolve32_mod1or2;
|
||||
insn->displacement.displ32 = fetch_dword();
|
||||
break;
|
||||
} /* switch (mod) */
|
||||
} /* if (rm != 4) */
|
||||
else { /* rm == 4, s-i-b byte follows */
|
||||
insn->sib = fetch_byte();
|
||||
BX_DECODE_SIB(insn->sib, insn->scale, insn->index, insn->base);
|
||||
insn->base |= insn->rex_b;
|
||||
insn->index |= insn->rex_x;
|
||||
|
||||
switch (insn->mod) {
|
||||
case 0:
|
||||
resolve_modrm = &disassembler::resolve32_mod0_rm4;
|
||||
if ((insn->base & 7) == 5)
|
||||
insn->displacement.displ32 = fetch_dword();
|
||||
break;
|
||||
case 1:
|
||||
resolve_modrm = &disassembler::resolve32_mod1or2_rm4;
|
||||
insn->displacement.displ32 = (Bit8s) fetch_byte();
|
||||
break;
|
||||
case 2:
|
||||
resolve_modrm = &disassembler::resolve32_mod1or2_rm4;
|
||||
insn->displacement.displ32 = fetch_dword();
|
||||
break;
|
||||
}
|
||||
} /* s-i-b byte follows */
|
||||
}
|
||||
else {
|
||||
assert(insn->rex_b == 0);
|
||||
assert(insn->rex_x == 0);
|
||||
assert(insn->rex_r == 0);
|
||||
/* 16 bit addressing modes. */
|
||||
switch (insn->mod) {
|
||||
case 0:
|
||||
resolve_modrm = &disassembler::resolve16_mod0;
|
||||
if(insn->rm == 6)
|
||||
insn->displacement.displ16 = fetch_word();
|
||||
break;
|
||||
case 1:
|
||||
/* reg, 8-bit displacement, sign extend */
|
||||
resolve_modrm = &disassembler::resolve16_mod1or2;
|
||||
insn->displacement.displ16 = (Bit8s) fetch_byte();
|
||||
break;
|
||||
case 2:
|
||||
resolve_modrm = &disassembler::resolve16_mod1or2;
|
||||
insn->displacement.displ16 = fetch_word();
|
||||
break;
|
||||
} /* switch (mod) ... */
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void disassembler::resolve16_mod0(const x86_insn *insn, unsigned mode)
|
||||
{
|
||||
const char *seg;
|
||||
|
||||
if (insn->is_seg_override())
|
||||
seg = segment_name[insn->seg_override];
|
||||
else
|
||||
seg = sreg_mod00_rm16[insn->rm];
|
||||
|
||||
if(insn->rm == 6)
|
||||
print_memory_access16(mode, seg, NULL, insn->displacement.displ16);
|
||||
else
|
||||
print_memory_access16(mode, seg, index16[insn->rm], 0);
|
||||
}
|
||||
|
||||
void disassembler::resolve16_mod1or2(const x86_insn *insn, unsigned mode)
|
||||
{
|
||||
const char *seg;
|
||||
|
||||
if (insn->is_seg_override())
|
||||
seg = segment_name[insn->seg_override];
|
||||
else
|
||||
seg = sreg_mod01or10_rm16[insn->rm];
|
||||
|
||||
print_memory_access16(mode, seg, index16[insn->rm], insn->displacement.displ16);
|
||||
}
|
||||
|
||||
void disassembler::resolve32_mod0(const x86_insn *insn, unsigned mode)
|
||||
{
|
||||
const char *seg;
|
||||
|
||||
if (insn->is_seg_override())
|
||||
seg = segment_name[insn->seg_override];
|
||||
else
|
||||
seg = segment_name[DS_REG];
|
||||
|
||||
if ((insn->rm & 7) == 5) /* no reg, 32-bit displacement */
|
||||
print_memory_access(mode, seg, NULL, NULL, 0, insn->displacement.displ32);
|
||||
else
|
||||
print_memory_access(mode, seg, general_32bit_regname[insn->rm], NULL, 0, 0);
|
||||
}
|
||||
|
||||
void disassembler::resolve32_mod1or2(const x86_insn *insn, unsigned mode)
|
||||
{
|
||||
const char *seg;
|
||||
|
||||
if (insn->is_seg_override())
|
||||
seg = segment_name[insn->seg_override];
|
||||
else
|
||||
seg = sreg_mod01or10_rm32[insn->rm];
|
||||
|
||||
print_memory_access(mode, seg,
|
||||
general_32bit_regname[insn->rm], NULL, 0, insn->displacement.displ32);
|
||||
}
|
||||
|
||||
void disassembler::resolve32_mod0_rm4(const x86_insn *insn, unsigned mode)
|
||||
{
|
||||
const char *seg, *base = NULL, *index = NULL;
|
||||
Bit32u disp32 = 0;
|
||||
|
||||
if (insn->is_seg_override())
|
||||
seg = segment_name[insn->seg_override];
|
||||
else
|
||||
seg = sreg_mod00_base32[insn->base];
|
||||
|
||||
if ((insn->base & 7) != 5)
|
||||
base = general_32bit_regname[insn->base];
|
||||
else
|
||||
disp32 = insn->displacement.displ32;
|
||||
|
||||
if (insn->index != 4)
|
||||
index = general_32bit_regname[insn->index];
|
||||
|
||||
print_memory_access(mode, seg, base, index, insn->scale, disp32);
|
||||
}
|
||||
|
||||
void disassembler::resolve32_mod1or2_rm4(const x86_insn *insn, unsigned mode)
|
||||
{
|
||||
const char *seg, *index = NULL;
|
||||
|
||||
if (insn->is_seg_override())
|
||||
seg = segment_name[insn->seg_override];
|
||||
else
|
||||
seg = sreg_mod01or10_base32[insn->base];
|
||||
|
||||
if (insn->index != 4)
|
||||
index = general_32bit_regname[insn->index];
|
||||
|
||||
print_memory_access(mode, seg,
|
||||
general_32bit_regname[insn->base], index, insn->scale, insn->displacement.displ32);
|
||||
}
|
||||
|
||||
void disassembler::resolve64_mod0(const x86_insn *insn, unsigned mode)
|
||||
{
|
||||
const char *seg, *rip_regname;
|
||||
|
||||
if (insn->is_seg_override())
|
||||
seg = segment_name[insn->seg_override];
|
||||
else
|
||||
seg = segment_name[DS_REG];
|
||||
|
||||
if (intel_mode) rip_regname = "rip";
|
||||
else rip_regname = "%rip";
|
||||
|
||||
if ((insn->rm & 7) == 5) /* no reg, 32-bit displacement */
|
||||
print_memory_access(mode, seg, rip_regname, NULL, 0, insn->displacement.displ32);
|
||||
else
|
||||
print_memory_access(mode, seg, general_64bit_regname[insn->rm], NULL, 0, 0);
|
||||
}
|
||||
|
||||
void disassembler::resolve64_mod1or2(const x86_insn *insn, unsigned mode)
|
||||
{
|
||||
const char *seg;
|
||||
|
||||
if (insn->is_seg_override())
|
||||
seg = segment_name[insn->seg_override];
|
||||
else
|
||||
seg = sreg_mod01or10_rm32[insn->rm];
|
||||
|
||||
print_memory_access(mode, seg,
|
||||
general_64bit_regname[insn->rm], NULL, 0, insn->displacement.displ32);
|
||||
}
|
||||
|
||||
void disassembler::resolve64_mod0_rm4(const x86_insn *insn, unsigned mode)
|
||||
{
|
||||
const char *seg, *base = NULL, *index = NULL;
|
||||
Bit32u disp32 = 0;
|
||||
|
||||
if (insn->is_seg_override())
|
||||
seg = segment_name[insn->seg_override];
|
||||
else
|
||||
seg = sreg_mod00_base32[insn->base];
|
||||
|
||||
if ((insn->base & 7) != 5)
|
||||
base = general_64bit_regname[insn->base];
|
||||
else
|
||||
disp32 = insn->displacement.displ32;
|
||||
|
||||
if (insn->index != 4)
|
||||
index = general_64bit_regname[insn->index];
|
||||
|
||||
print_memory_access(mode, seg, base, index, insn->scale, disp32);
|
||||
}
|
||||
|
||||
void disassembler::resolve64_mod1or2_rm4(const x86_insn *insn, unsigned mode)
|
||||
{
|
||||
const char *seg, *index = NULL;
|
||||
|
||||
if (insn->is_seg_override())
|
||||
seg = segment_name[insn->seg_override];
|
||||
else
|
||||
seg = sreg_mod01or10_base32[insn->base];
|
||||
|
||||
if (insn->index != 4)
|
||||
index = general_64bit_regname[insn->index];
|
||||
|
||||
print_memory_access(mode, seg,
|
||||
general_64bit_regname[insn->base], index, insn->scale, insn->displacement.displ32);
|
||||
}
|
||||
|
||||
void disassembler::print_datasize(unsigned size)
|
||||
{
|
||||
if (!intel_mode) return;
|
||||
|
||||
switch(size)
|
||||
{
|
||||
case B_SIZE:
|
||||
dis_sprintf("byte ptr ");
|
||||
break;
|
||||
case W_SIZE:
|
||||
dis_sprintf("word ptr ");
|
||||
break;
|
||||
case D_SIZE:
|
||||
dis_sprintf("dword ptr ");
|
||||
break;
|
||||
case Q_SIZE:
|
||||
dis_sprintf("qword ptr ");
|
||||
break;
|
||||
case O_SIZE:
|
||||
dis_sprintf("dqword ptr ");
|
||||
break;
|
||||
case T_SIZE:
|
||||
dis_sprintf("tbyte ptr ");
|
||||
break;
|
||||
case P_SIZE:
|
||||
break;
|
||||
case X_SIZE:
|
||||
break;
|
||||
};
|
||||
}
|
||||
|
||||
void disassembler::print_memory_access16(int datasize,
|
||||
const char *seg, const char *index, Bit16u disp)
|
||||
{
|
||||
print_datasize(datasize);
|
||||
|
||||
if (intel_mode)
|
||||
{
|
||||
if (index == NULL)
|
||||
{
|
||||
dis_sprintf("%s:0x%x", seg, (unsigned) disp);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (disp != 0)
|
||||
dis_sprintf("%s:[%s+0x%x]", seg, index, (unsigned) disp);
|
||||
else
|
||||
dis_sprintf("%s:[%s]", seg, index);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (index == NULL)
|
||||
{
|
||||
dis_sprintf("%s:0x%x", seg, (unsigned) disp);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (disp != 0)
|
||||
dis_sprintf("%s:0x%x(%s,1)", seg, (unsigned) disp, index);
|
||||
else
|
||||
dis_sprintf("%s:(%s,1)", seg, index);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void disassembler::print_memory_access(int datasize,
|
||||
const char *seg, const char *base, const char *index, int scale, Bit32u disp)
|
||||
{
|
||||
print_datasize(datasize);
|
||||
|
||||
if (intel_mode)
|
||||
{
|
||||
if (base == NULL)
|
||||
{
|
||||
if (index == NULL)
|
||||
{
|
||||
dis_sprintf("%s:0x%x", seg, (unsigned) disp);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (scale != 0)
|
||||
{
|
||||
if (disp != 0)
|
||||
dis_sprintf("%s:[%s*%d+0x%x]", seg, index, 1<<scale, (unsigned) disp);
|
||||
else
|
||||
dis_sprintf("%s:[%s*%d]", seg, index, 1<<scale);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (disp != 0)
|
||||
dis_sprintf("%s:[%s+0x%x]", seg, index, (unsigned) disp);
|
||||
else
|
||||
dis_sprintf("%s:[%s]", seg, index);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (index == NULL)
|
||||
{
|
||||
if (disp != 0)
|
||||
dis_sprintf("%s:[%s+0x%x]", seg, base, (unsigned) disp);
|
||||
else
|
||||
dis_sprintf("%s:[%s]", seg, base);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (scale != 0)
|
||||
{
|
||||
if (disp != 0)
|
||||
dis_sprintf("%s:[%s+%s*%d+0x%x]", seg, base, index, 1<<scale, (unsigned) disp);
|
||||
else
|
||||
dis_sprintf("%s:[%s+%s*%d]", seg, base, index, 1<<scale);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (disp != 0)
|
||||
dis_sprintf("%s:[%s+%s+0x%x]", seg, base, index, (unsigned) disp);
|
||||
else
|
||||
dis_sprintf("%s:[%s+%s]", seg, base, index);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (base == NULL)
|
||||
{
|
||||
if (index == NULL)
|
||||
{
|
||||
dis_sprintf("%s:0x%x", seg, (unsigned) disp);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (disp != 0)
|
||||
dis_sprintf("%s:0x%x(,%s,%d)", seg, (unsigned) disp, index, 1<<scale);
|
||||
else
|
||||
dis_sprintf("%s:(,%s,%d)", seg, index, 1<<scale);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (index == NULL)
|
||||
{
|
||||
if (disp != 0)
|
||||
dis_sprintf("%s:0x%x(%s)", seg, (unsigned) disp, base);
|
||||
else
|
||||
dis_sprintf("%s:(%s)", seg, base);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (disp != 0)
|
||||
dis_sprintf("%s:0x%x(%s,%s,%d)", seg, (unsigned) disp, base, index, 1<<scale);
|
||||
else
|
||||
dis_sprintf("%s:(%s,%s,%d)", seg, base, index, 1<<scale);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
8
Externals/Bochs_disasm/stdafx.cpp
vendored
Normal file
8
Externals/Bochs_disasm/stdafx.cpp
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
// stdafx.cpp : source file that includes just the standard includes
|
||||
// Bochs_disasm.pch will be the pre-compiled header
|
||||
// stdafx.obj will contain the pre-compiled type information
|
||||
|
||||
#include "stdafx.h"
|
||||
|
||||
// TODO: reference any additional headers you need in STDAFX.H
|
||||
// and not in this file
|
18
Externals/Bochs_disasm/stdafx.h
vendored
Normal file
18
Externals/Bochs_disasm/stdafx.h
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
// stdafx.h : include file for standard system include files,
|
||||
// or project specific include files that are used frequently, but
|
||||
// are changed infrequently
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
|
||||
#define _CRT_SECURE_NO_DEPRECATE 1
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdarg.h>
|
||||
#include <string.h>
|
||||
|
||||
|
||||
|
||||
// TODO: reference additional headers your program requires here
|
254
Externals/Bochs_disasm/syntax.cpp
vendored
Normal file
254
Externals/Bochs_disasm/syntax.cpp
vendored
Normal file
@ -0,0 +1,254 @@
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// $Id: syntax.cc,v 1.10 2006/04/27 15:11:45 sshwarts Exp $
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
#include <stdio.h>
|
||||
#include "disasm.h"
|
||||
|
||||
//////////////////
|
||||
// Intel STYLE
|
||||
//////////////////
|
||||
|
||||
#define BX_DISASM_SUPPORT_X86_64
|
||||
|
||||
#ifdef BX_DISASM_SUPPORT_X86_64
|
||||
|
||||
static const char *intel_general_16bit_regname[16] = {
|
||||
"ax", "cx", "dx", "bx", "sp", "bp", "si", "di",
|
||||
"r8w", "r9w", "r10w", "r11w", "r12w", "r13w", "r14w", "r15w"
|
||||
};
|
||||
|
||||
static const char *intel_general_32bit_regname[16] = {
|
||||
"eax", "ecx", "edx", "ebx", "esp", "ebp", "esi", "edi",
|
||||
"r8d", "r9d", "r10d", "r11d", "r12d", "r13d", "r14d", "r15d"
|
||||
};
|
||||
|
||||
static const char *intel_general_64bit_regname[16] = {
|
||||
"rax", "rcx", "rdx", "rbx", "rsp", "rbp", "rsi", "rdi",
|
||||
"r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15"
|
||||
};
|
||||
|
||||
static const char *intel_general_8bit_regname_rex[16] = {
|
||||
"al", "cl", "dl", "bl", "spl", "bpl", "sil", "dil",
|
||||
"r8b", "r9b", "r10b", "r11b", "r12b", "r13b", "r14b", "r15b"
|
||||
};
|
||||
|
||||
#else
|
||||
|
||||
static const char *intel_general_16bit_regname[8] = {
|
||||
"ax", "cx", "dx", "bx", "sp", "bp", "si", "di"
|
||||
};
|
||||
|
||||
static const char *intel_general_32bit_regname[8] = {
|
||||
"eax", "ecx", "edx", "ebx", "esp", "ebp", "esi", "edi"
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
static const char *intel_general_8bit_regname[8] = {
|
||||
"al", "cl", "dl", "bl", "ah", "ch", "dh", "bh"
|
||||
};
|
||||
|
||||
static const char *intel_segment_name[8] = {
|
||||
"es", "cs", "ss", "ds", "fs", "gs", "??", "??"
|
||||
};
|
||||
|
||||
static const char *intel_index16[8] = {
|
||||
"bx+si",
|
||||
"bx+di",
|
||||
"bp+si",
|
||||
"bp+di",
|
||||
"si",
|
||||
"di",
|
||||
"bp",
|
||||
"bx"
|
||||
};
|
||||
|
||||
|
||||
//////////////////
|
||||
// AT&T STYLE
|
||||
//////////////////
|
||||
|
||||
#ifdef BX_DISASM_SUPPORT_X86_64
|
||||
|
||||
static const char *att_general_16bit_regname[16] = {
|
||||
"%ax", "%cx", "%dx", "%bx", "%sp", "%bp", "%si", "%di",
|
||||
"%r8w", "%r9w", "%r10w", "%r11w", "%r12w", "%r13w", "%r14w", "%r15w"
|
||||
};
|
||||
|
||||
static const char *att_general_32bit_regname[16] = {
|
||||
"%eax", "%ecx", "%edx", "%ebx", "%esp", "%ebp", "%esi", "%edi",
|
||||
"%r8d", "%r9d", "%r10d", "%r11d", "%r12d", "%r13d", "%r14d", "%r15d"
|
||||
};
|
||||
|
||||
static const char *att_general_64bit_regname[16] = {
|
||||
"%rax", "%rcx", "%rdx", "%rbx", "%rsp", "%rbp", "%rsi", "%rdi",
|
||||
"%r8", "%r9", "%r10", "%r11", "%r12", "%r13", "%r14", "%r15"
|
||||
};
|
||||
|
||||
static const char *att_general_8bit_regname_rex[16] = {
|
||||
"%al", "%cl", "%dl", "%bl", "%spl", "%bpl", "%sil", "%dil",
|
||||
"%r8b", "%r9b", "%r10b", "%r11b", "%r12b", "%r13b", "%r14b", "%r15b"
|
||||
};
|
||||
|
||||
#else
|
||||
|
||||
static const char *att_general_16bit_regname[8] = {
|
||||
"%ax", "%cx", "%dx", "%bx", "%sp", "%bp", "%si", "%di"
|
||||
};
|
||||
|
||||
static const char *att_general_32bit_regname[8] = {
|
||||
"%eax", "%ecx", "%edx", "%ebx", "%esp", "%ebp", "%esi", "%edi"
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
static const char *att_general_8bit_regname[8] = {
|
||||
"%al", "%cl", "%dl", "%bl", "%ah", "%ch", "%dh", "%bh"
|
||||
};
|
||||
|
||||
static const char *att_segment_name[8] = {
|
||||
"%es", "%cs", "%ss", "%ds", "%fs", "%gs", "%??", "%??"
|
||||
};
|
||||
|
||||
static const char *att_index16[8] = {
|
||||
"%bx, %si",
|
||||
"%bx, %di",
|
||||
"%bp, %si",
|
||||
"%bp, %di",
|
||||
"%si",
|
||||
"%di",
|
||||
"%bp",
|
||||
"%bx"
|
||||
};
|
||||
|
||||
#define NULL_SEGMENT_REGISTER 7
|
||||
|
||||
void disassembler::initialize_modrm_segregs()
|
||||
{
|
||||
sreg_mod00_rm16[0] = segment_name[DS_REG];
|
||||
sreg_mod00_rm16[1] = segment_name[DS_REG];
|
||||
sreg_mod00_rm16[2] = segment_name[SS_REG];
|
||||
sreg_mod00_rm16[3] = segment_name[SS_REG];
|
||||
sreg_mod00_rm16[4] = segment_name[DS_REG];
|
||||
sreg_mod00_rm16[5] = segment_name[DS_REG];
|
||||
sreg_mod00_rm16[6] = segment_name[DS_REG];
|
||||
sreg_mod00_rm16[7] = segment_name[DS_REG];
|
||||
|
||||
sreg_mod01or10_rm16[0] = segment_name[DS_REG];
|
||||
sreg_mod01or10_rm16[1] = segment_name[DS_REG];
|
||||
sreg_mod01or10_rm16[2] = segment_name[SS_REG];
|
||||
sreg_mod01or10_rm16[3] = segment_name[SS_REG];
|
||||
sreg_mod01or10_rm16[4] = segment_name[DS_REG];
|
||||
sreg_mod01or10_rm16[5] = segment_name[DS_REG];
|
||||
sreg_mod01or10_rm16[6] = segment_name[SS_REG];
|
||||
sreg_mod01or10_rm16[7] = segment_name[DS_REG];
|
||||
|
||||
sreg_mod01or10_rm32[0] = segment_name[DS_REG];
|
||||
sreg_mod01or10_rm32[1] = segment_name[DS_REG];
|
||||
sreg_mod01or10_rm32[2] = segment_name[DS_REG];
|
||||
sreg_mod01or10_rm32[3] = segment_name[DS_REG];
|
||||
sreg_mod01or10_rm32[4] = segment_name[NULL_SEGMENT_REGISTER];
|
||||
sreg_mod01or10_rm32[5] = segment_name[SS_REG];
|
||||
sreg_mod01or10_rm32[6] = segment_name[DS_REG];
|
||||
sreg_mod01or10_rm32[7] = segment_name[DS_REG];
|
||||
|
||||
sreg_mod00_base32[0] = segment_name[DS_REG];
|
||||
sreg_mod00_base32[1] = segment_name[DS_REG];
|
||||
sreg_mod00_base32[2] = segment_name[DS_REG];
|
||||
sreg_mod00_base32[3] = segment_name[DS_REG];
|
||||
sreg_mod00_base32[4] = segment_name[SS_REG];
|
||||
sreg_mod00_base32[5] = segment_name[DS_REG];
|
||||
sreg_mod00_base32[6] = segment_name[DS_REG];
|
||||
sreg_mod00_base32[7] = segment_name[DS_REG];
|
||||
|
||||
sreg_mod01or10_base32[0] = segment_name[DS_REG];
|
||||
sreg_mod01or10_base32[1] = segment_name[DS_REG];
|
||||
sreg_mod01or10_base32[2] = segment_name[DS_REG];
|
||||
sreg_mod01or10_base32[3] = segment_name[DS_REG];
|
||||
sreg_mod01or10_base32[4] = segment_name[SS_REG];
|
||||
sreg_mod01or10_base32[5] = segment_name[SS_REG];
|
||||
sreg_mod01or10_base32[6] = segment_name[DS_REG];
|
||||
sreg_mod01or10_base32[7] = segment_name[DS_REG];
|
||||
}
|
||||
|
||||
//////////////////
|
||||
// Intel STYLE
|
||||
//////////////////
|
||||
|
||||
void disassembler::set_syntax_intel()
|
||||
{
|
||||
intel_mode = 1;
|
||||
|
||||
general_16bit_regname = intel_general_16bit_regname;
|
||||
general_8bit_regname = intel_general_8bit_regname;
|
||||
general_32bit_regname = intel_general_32bit_regname;
|
||||
general_8bit_regname_rex = intel_general_8bit_regname_rex;
|
||||
general_64bit_regname = intel_general_64bit_regname;
|
||||
|
||||
segment_name = intel_segment_name;
|
||||
index16 = intel_index16;
|
||||
|
||||
initialize_modrm_segregs();
|
||||
}
|
||||
|
||||
void disassembler::print_disassembly_intel(const x86_insn *insn, const BxDisasmOpcodeInfo_t *entry)
|
||||
{
|
||||
// print opcode
|
||||
dis_sprintf("%s ", entry->IntelOpcode);
|
||||
|
||||
if (entry->Operand1) {
|
||||
(this->*entry->Operand1)(insn);
|
||||
}
|
||||
if (entry->Operand2) {
|
||||
dis_sprintf(", ");
|
||||
(this->*entry->Operand2)(insn);
|
||||
}
|
||||
if (entry->Operand3) {
|
||||
dis_sprintf(", ");
|
||||
(this->*entry->Operand3)(insn);
|
||||
}
|
||||
}
|
||||
|
||||
//////////////////
|
||||
// AT&T STYLE
|
||||
//////////////////
|
||||
|
||||
void disassembler::set_syntax_att()
|
||||
{
|
||||
intel_mode = 0;
|
||||
|
||||
general_16bit_regname = att_general_16bit_regname;
|
||||
general_8bit_regname = att_general_8bit_regname;
|
||||
general_32bit_regname = att_general_32bit_regname;
|
||||
general_8bit_regname_rex = att_general_8bit_regname_rex;
|
||||
general_64bit_regname = att_general_64bit_regname;
|
||||
|
||||
segment_name = att_segment_name;
|
||||
index16 = att_index16;
|
||||
|
||||
initialize_modrm_segregs();
|
||||
}
|
||||
|
||||
void disassembler::toggle_syntax_mode()
|
||||
{
|
||||
if (intel_mode) set_syntax_att();
|
||||
else set_syntax_intel();
|
||||
}
|
||||
|
||||
void disassembler::print_disassembly_att(const x86_insn *insn, const BxDisasmOpcodeInfo_t *entry)
|
||||
{
|
||||
// print opcode
|
||||
dis_sprintf("%s ", entry->AttOpcode);
|
||||
|
||||
if (entry->Operand3) {
|
||||
(this->*entry->Operand3)(insn);
|
||||
dis_sprintf(", ");
|
||||
}
|
||||
if (entry->Operand2) {
|
||||
(this->*entry->Operand2)(insn);
|
||||
dis_sprintf(", ");
|
||||
}
|
||||
if (entry->Operand1) {
|
||||
(this->*entry->Operand1)(insn);
|
||||
}
|
||||
}
|
705
Externals/Cg/cg.h
vendored
Normal file
705
Externals/Cg/cg.h
vendored
Normal file
@ -0,0 +1,705 @@
|
||||
/*
|
||||
*
|
||||
* Copyright (c) 2002-2007, NVIDIA Corporation.
|
||||
*
|
||||
*
|
||||
*
|
||||
* NVIDIA Corporation("NVIDIA") supplies this software to you in consideration
|
||||
* of your agreement to the following terms, and your use, installation,
|
||||
* modification or redistribution of this NVIDIA software constitutes
|
||||
* acceptance of these terms. If you do not agree with these terms, please do
|
||||
* not use, install, modify or redistribute this NVIDIA software.
|
||||
*
|
||||
*
|
||||
*
|
||||
* In consideration of your agreement to abide by the following terms, and
|
||||
* subject to these terms, NVIDIA grants you a personal, non-exclusive license,
|
||||
* under NVIDIA's copyrights in this original NVIDIA software (the "NVIDIA
|
||||
* Software"), to use, reproduce, modify and redistribute the NVIDIA
|
||||
* Software, with or without modifications, in source and/or binary forms;
|
||||
* provided that if you redistribute the NVIDIA Software, you must retain the
|
||||
* copyright notice of NVIDIA, this notice and the following text and
|
||||
* disclaimers in all such redistributions of the NVIDIA Software. Neither the
|
||||
* name, trademarks, service marks nor logos of NVIDIA Corporation may be used
|
||||
* to endorse or promote products derived from the NVIDIA Software without
|
||||
* specific prior written permission from NVIDIA. Except as expressly stated
|
||||
* in this notice, no other rights or licenses express or implied, are granted
|
||||
* by NVIDIA herein, including but not limited to any patent rights that may be
|
||||
* infringed by your derivative works or by other works in which the NVIDIA
|
||||
* Software may be incorporated. No hardware is licensed hereunder.
|
||||
*
|
||||
*
|
||||
*
|
||||
* THE NVIDIA SOFTWARE IS BEING PROVIDED ON AN "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING
|
||||
* WITHOUT LIMITATION, WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR ITS USE AND OPERATION
|
||||
* EITHER ALONE OR IN COMBINATION WITH OTHER PRODUCTS.
|
||||
*
|
||||
*
|
||||
*
|
||||
* IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL,
|
||||
* EXEMPLARY, CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, LOST
|
||||
* PROFITS; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
* PROFITS; OR BUSINESS INTERRUPTION) OR ARISING IN ANY WAY OUT OF THE USE,
|
||||
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE NVIDIA SOFTWARE,
|
||||
* HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING
|
||||
* NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF NVIDIA HAS BEEN ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#ifndef _cg_h
|
||||
#define _cg_h
|
||||
|
||||
/*************************************************************************/
|
||||
/*** CG Run-Time Library API ***/
|
||||
/*************************************************************************/
|
||||
|
||||
#define CG_VERSION_NUM 2000
|
||||
|
||||
#ifdef _WIN32
|
||||
# ifndef APIENTRY /* From Win32's <windef.h> */
|
||||
# define CG_APIENTRY_DEFINED
|
||||
# if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) || defined(__BORLANDC__) || defined(__LCC__)
|
||||
# define APIENTRY __stdcall
|
||||
# else
|
||||
# define APIENTRY
|
||||
# endif
|
||||
# endif
|
||||
# ifndef WINGDIAPI /* From Win32's <wingdi.h> and <winnt.h> */
|
||||
# define CG_WINGDIAPI_DEFINED
|
||||
# define WINGDIAPI __declspec(dllimport)
|
||||
# endif
|
||||
#endif /* _WIN32 */
|
||||
|
||||
/* Set up for either Win32 import/export/lib. */
|
||||
#ifndef CG_API
|
||||
# ifdef _WIN32
|
||||
# ifdef CG_EXPORTS
|
||||
# define CG_API __declspec(dllexport)
|
||||
# elif defined (CG_LIB)
|
||||
# define CG_API
|
||||
# else
|
||||
# define CG_API __declspec(dllimport)
|
||||
# endif
|
||||
# else
|
||||
# define CG_API
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef CGENTRY
|
||||
# ifdef _WIN32
|
||||
# define CGENTRY __cdecl
|
||||
# else
|
||||
# define CGENTRY
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/*************************************************************************/
|
||||
/*** Data types and enumerants ***/
|
||||
/*************************************************************************/
|
||||
|
||||
typedef int CGbool;
|
||||
|
||||
#define CG_FALSE ((CGbool)0)
|
||||
#define CG_TRUE ((CGbool)1)
|
||||
|
||||
typedef struct _CGcontext *CGcontext;
|
||||
typedef struct _CGprogram *CGprogram;
|
||||
typedef struct _CGparameter *CGparameter;
|
||||
typedef struct _CGobj *CGobj;
|
||||
typedef struct _CGbuffer *CGbuffer;
|
||||
typedef struct _CGeffect *CGeffect;
|
||||
typedef struct _CGtechnique *CGtechnique;
|
||||
typedef struct _CGpass *CGpass;
|
||||
typedef struct _CGstate *CGstate;
|
||||
typedef struct _CGstateassignment *CGstateassignment;
|
||||
typedef struct _CGannotation *CGannotation;
|
||||
typedef void *CGhandle;
|
||||
|
||||
|
||||
//!!! PREPROCESS BEGIN
|
||||
|
||||
typedef enum
|
||||
{
|
||||
CG_UNKNOWN_TYPE,
|
||||
CG_STRUCT,
|
||||
CG_ARRAY,
|
||||
CG_TYPELESS_STRUCT,
|
||||
|
||||
CG_TYPE_START_ENUM = 1024,
|
||||
# define CG_DATATYPE_MACRO(name, compiler_name, enum_name, base_name, ncols, nrows, pc) \
|
||||
enum_name ,
|
||||
|
||||
#include <Cg/cg_datatypes.h>
|
||||
|
||||
# undef CG_DATATYPE_MACRO
|
||||
|
||||
|
||||
|
||||
} CGtype;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
# define CG_BINDLOCATION_MACRO(name,enum_name,compiler_name,\
|
||||
enum_int,addressable,param_type) \
|
||||
enum_name = enum_int,
|
||||
|
||||
#include <Cg/cg_bindlocations.h>
|
||||
|
||||
CG_UNDEFINED = 3256,
|
||||
|
||||
} CGresource;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
CG_PROFILE_START = 6144,
|
||||
CG_PROFILE_UNKNOWN,
|
||||
|
||||
# define CG_PROFILE_MACRO(name, compiler_id, compiler_id_caps, compiler_opt,int_id,vertex_profile) \
|
||||
CG_PROFILE_##compiler_id_caps = int_id,
|
||||
|
||||
#include <Cg/cg_profiles.h>
|
||||
|
||||
CG_PROFILE_MAX = 7100,
|
||||
} CGprofile;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
# define CG_ERROR_MACRO(code, enum_name, message) \
|
||||
enum_name = code,
|
||||
# include <Cg/cg_errors.h>
|
||||
} CGerror;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
# define CG_ENUM_MACRO(enum_name, enum_val) \
|
||||
enum_name = enum_val,
|
||||
# include <Cg/cg_enums.h>
|
||||
} CGenum;
|
||||
|
||||
//!!! PREPROCESS END
|
||||
|
||||
typedef enum
|
||||
{
|
||||
CG_PARAMETERCLASS_UNKNOWN = 0,
|
||||
CG_PARAMETERCLASS_SCALAR,
|
||||
CG_PARAMETERCLASS_VECTOR,
|
||||
CG_PARAMETERCLASS_MATRIX,
|
||||
CG_PARAMETERCLASS_STRUCT,
|
||||
CG_PARAMETERCLASS_ARRAY,
|
||||
CG_PARAMETERCLASS_SAMPLER,
|
||||
CG_PARAMETERCLASS_OBJECT
|
||||
} CGparameterclass;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
CG_UNKNOWN_DOMAIN = 0,
|
||||
CG_FIRST_DOMAIN = 1,
|
||||
CG_VERTEX_DOMAIN = 1,
|
||||
CG_FRAGMENT_DOMAIN,
|
||||
CG_GEOMETRY_DOMAIN,
|
||||
CG_NUMBER_OF_DOMAINS
|
||||
} CGdomain;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
CG_MAP_READ = 0,
|
||||
CG_MAP_WRITE,
|
||||
CG_MAP_READ_WRITE,
|
||||
CG_MAP_WRITE_DISCARD,
|
||||
CG_MAP_WRITE_NO_OVERWRITE
|
||||
} CGbufferaccess;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
CG_BUFFER_USAGE_STREAM_DRAW = 0,
|
||||
CG_BUFFER_USAGE_STREAM_READ,
|
||||
CG_BUFFER_USAGE_STREAM_COPY,
|
||||
CG_BUFFER_USAGE_STATIC_DRAW,
|
||||
CG_BUFFER_USAGE_STATIC_READ,
|
||||
CG_BUFFER_USAGE_STATIC_COPY,
|
||||
CG_BUFFER_USAGE_DYNAMIC_DRAW,
|
||||
CG_BUFFER_USAGE_DYNAMIC_READ,
|
||||
CG_BUFFER_USAGE_DYNAMIC_COPY
|
||||
} CGbufferusage;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef CGbool (CGENTRY * CGstatecallback)(CGstateassignment);
|
||||
typedef void (CGENTRY * CGerrorCallbackFunc)(void);
|
||||
typedef void (CGENTRY * CGerrorHandlerFunc)(CGcontext ctx, CGerror err, void *data);
|
||||
|
||||
/*************************************************************************/
|
||||
/*** Functions ***/
|
||||
/*************************************************************************/
|
||||
|
||||
#ifndef CG_EXPLICIT
|
||||
|
||||
/*** Library policy functions ***/
|
||||
|
||||
CG_API CGenum CGENTRY cgSetLockingPolicy(CGenum lockingPolicy);
|
||||
CG_API CGenum CGENTRY cgGetLockingPolicy(void);
|
||||
CG_API CGenum CGENTRY cgSetSemanticCasePolicy(CGenum casePolicy);
|
||||
CG_API CGenum CGENTRY cgGetSemanticCasePolicy(void);
|
||||
|
||||
/*** Context functions ***/
|
||||
|
||||
CG_API CGcontext CGENTRY cgCreateContext(void);
|
||||
CG_API void CGENTRY cgDestroyContext(CGcontext ctx);
|
||||
CG_API CGbool CGENTRY cgIsContext(CGcontext ctx);
|
||||
CG_API const char * CGENTRY cgGetLastListing(CGcontext ctx);
|
||||
CG_API void CGENTRY cgSetLastListing(CGhandle handle, const char *listing);
|
||||
CG_API void CGENTRY cgSetAutoCompile(CGcontext ctx, CGenum flag);
|
||||
CG_API CGenum CGENTRY cgGetAutoCompile(CGcontext ctx);
|
||||
CG_API void CGENTRY cgSetParameterSettingMode(CGcontext ctx, CGenum parameterSettingMode);
|
||||
CG_API CGenum CGENTRY cgGetParameterSettingMode(CGcontext ctx);
|
||||
|
||||
/*** Program functions ***/
|
||||
|
||||
CG_API CGprogram CGENTRY cgCreateProgram(CGcontext ctx,
|
||||
CGenum program_type,
|
||||
const char *program,
|
||||
CGprofile profile,
|
||||
const char *entry,
|
||||
const char **args);
|
||||
CG_API CGprogram CGENTRY cgCreateProgramFromFile(CGcontext ctx,
|
||||
CGenum program_type,
|
||||
const char *program_file,
|
||||
CGprofile profile,
|
||||
const char *entry,
|
||||
const char **args);
|
||||
CG_API CGprogram CGENTRY cgCopyProgram(CGprogram program);
|
||||
CG_API void CGENTRY cgDestroyProgram(CGprogram program);
|
||||
|
||||
CG_API CGprogram CGENTRY cgGetFirstProgram(CGcontext ctx);
|
||||
CG_API CGprogram CGENTRY cgGetNextProgram(CGprogram current);
|
||||
CG_API CGcontext CGENTRY cgGetProgramContext(CGprogram prog);
|
||||
CG_API CGbool CGENTRY cgIsProgram(CGprogram program);
|
||||
|
||||
CG_API void CGENTRY cgCompileProgram(CGprogram program);
|
||||
CG_API CGbool CGENTRY cgIsProgramCompiled(CGprogram program);
|
||||
CG_API const char * CGENTRY cgGetProgramString(CGprogram prog, CGenum pname);
|
||||
CG_API CGprofile CGENTRY cgGetProgramProfile(CGprogram prog);
|
||||
CG_API char const * const * CGENTRY cgGetProgramOptions(CGprogram prog);
|
||||
CG_API void CGENTRY cgSetProgramProfile(CGprogram prog, CGprofile profile);
|
||||
CG_API CGenum CGENTRY cgGetProgramInput(CGprogram program);
|
||||
CG_API CGenum CGENTRY cgGetProgramOutput(CGprogram program);
|
||||
CG_API void CGENTRY cgSetPassProgramParameters(CGprogram);
|
||||
CG_API void CGENTRY cgUpdateProgramParameters(CGprogram program);
|
||||
|
||||
/*** Parameter functions ***/
|
||||
|
||||
CG_API CGparameter CGENTRY cgCreateParameter(CGcontext ctx, CGtype type);
|
||||
CG_API CGparameter CGENTRY cgCreateParameterArray(CGcontext ctx,
|
||||
CGtype type,
|
||||
int length);
|
||||
CG_API CGparameter CGENTRY cgCreateParameterMultiDimArray(CGcontext ctx,
|
||||
CGtype type,
|
||||
int dim,
|
||||
const int *lengths);
|
||||
CG_API void CGENTRY cgDestroyParameter(CGparameter param);
|
||||
CG_API void CGENTRY cgConnectParameter(CGparameter from, CGparameter to);
|
||||
CG_API void CGENTRY cgDisconnectParameter(CGparameter param);
|
||||
CG_API CGparameter CGENTRY cgGetConnectedParameter(CGparameter param);
|
||||
|
||||
CG_API int CGENTRY cgGetNumConnectedToParameters(CGparameter param);
|
||||
CG_API CGparameter CGENTRY cgGetConnectedToParameter(CGparameter param, int index);
|
||||
|
||||
CG_API CGparameter CGENTRY cgGetNamedParameter(CGprogram prog, const char *name);
|
||||
CG_API CGparameter CGENTRY cgGetNamedProgramParameter(CGprogram prog,
|
||||
CGenum name_space,
|
||||
const char *name);
|
||||
|
||||
CG_API CGparameter CGENTRY cgGetFirstParameter(CGprogram prog, CGenum name_space);
|
||||
CG_API CGparameter CGENTRY cgGetNextParameter(CGparameter current);
|
||||
CG_API CGparameter CGENTRY cgGetFirstLeafParameter(CGprogram prog, CGenum name_space);
|
||||
CG_API CGparameter CGENTRY cgGetNextLeafParameter(CGparameter current);
|
||||
|
||||
CG_API CGparameter CGENTRY cgGetFirstStructParameter(CGparameter param);
|
||||
CG_API CGparameter CGENTRY cgGetNamedStructParameter(CGparameter param,
|
||||
const char *name);
|
||||
|
||||
CG_API CGparameter CGENTRY cgGetFirstDependentParameter(CGparameter param);
|
||||
|
||||
CG_API CGparameter CGENTRY cgGetArrayParameter(CGparameter aparam, int index);
|
||||
CG_API int CGENTRY cgGetArrayDimension(CGparameter param);
|
||||
CG_API CGtype CGENTRY cgGetArrayType(CGparameter param);
|
||||
CG_API int CGENTRY cgGetArraySize(CGparameter param, int dimension);
|
||||
CG_API int CGENTRY cgGetArrayTotalSize(CGparameter param);
|
||||
CG_API void CGENTRY cgSetArraySize(CGparameter param, int size);
|
||||
CG_API void CGENTRY cgSetMultiDimArraySize(CGparameter param, const int *sizes);
|
||||
|
||||
CG_API CGprogram CGENTRY cgGetParameterProgram(CGparameter param);
|
||||
CG_API CGcontext CGENTRY cgGetParameterContext(CGparameter param);
|
||||
CG_API CGbool CGENTRY cgIsParameter(CGparameter param);
|
||||
CG_API const char * CGENTRY cgGetParameterName(CGparameter param);
|
||||
CG_API CGtype CGENTRY cgGetParameterType(CGparameter param);
|
||||
CG_API CGtype CGENTRY cgGetParameterBaseType(CGparameter param);
|
||||
CG_API CGparameterclass CGENTRY cgGetParameterClass(CGparameter param);
|
||||
CG_API int CGENTRY cgGetParameterRows(CGparameter param);
|
||||
CG_API int CGENTRY cgGetParameterColumns(CGparameter param);
|
||||
CG_API CGtype CGENTRY cgGetParameterNamedType(CGparameter param);
|
||||
CG_API const char * CGENTRY cgGetParameterSemantic(CGparameter param);
|
||||
CG_API CGresource CGENTRY cgGetParameterResource(CGparameter param);
|
||||
CG_API CGresource CGENTRY cgGetParameterBaseResource(CGparameter param);
|
||||
CG_API unsigned long CGENTRY cgGetParameterResourceIndex(CGparameter param);
|
||||
CG_API CGenum CGENTRY cgGetParameterVariability(CGparameter param);
|
||||
CG_API CGenum CGENTRY cgGetParameterDirection(CGparameter param);
|
||||
CG_API CGbool CGENTRY cgIsParameterReferenced(CGparameter param);
|
||||
CG_API CGbool CGENTRY cgIsParameterUsed(CGparameter param, CGhandle handle);
|
||||
CG_API const double * CGENTRY cgGetParameterValues(CGparameter param,
|
||||
CGenum value_type,
|
||||
int *nvalues);
|
||||
CG_API void CGENTRY cgSetParameterValuedr(CGparameter param, int n, const double *vals);
|
||||
CG_API void CGENTRY cgSetParameterValuedc(CGparameter param, int n, const double *vals);
|
||||
CG_API void CGENTRY cgSetParameterValuefr(CGparameter param, int n, const float *vals);
|
||||
CG_API void CGENTRY cgSetParameterValuefc(CGparameter param, int n, const float *vals);
|
||||
CG_API void CGENTRY cgSetParameterValueir(CGparameter param, int n, const int *vals);
|
||||
CG_API void CGENTRY cgSetParameterValueic(CGparameter param, int n, const int *vals);
|
||||
CG_API int CGENTRY cgGetParameterValuedr(CGparameter param, int n, double *vals);
|
||||
CG_API int CGENTRY cgGetParameterValuedc(CGparameter param, int n, double *vals);
|
||||
CG_API int CGENTRY cgGetParameterValuefr(CGparameter param, int n, float *vals);
|
||||
CG_API int CGENTRY cgGetParameterValuefc(CGparameter param, int n, float *vals);
|
||||
CG_API int CGENTRY cgGetParameterValueir(CGparameter param, int n, int *vals);
|
||||
CG_API int CGENTRY cgGetParameterValueic(CGparameter param, int n, int *vals);
|
||||
CG_API const char * CGENTRY cgGetStringParameterValue(CGparameter param);
|
||||
CG_API void CGENTRY cgSetStringParameterValue(CGparameter param, const char *str);
|
||||
|
||||
CG_API int CGENTRY cgGetParameterOrdinalNumber(CGparameter param);
|
||||
CG_API CGbool CGENTRY cgIsParameterGlobal(CGparameter param);
|
||||
CG_API int CGENTRY cgGetParameterIndex(CGparameter param);
|
||||
|
||||
CG_API void CGENTRY cgSetParameterVariability(CGparameter param, CGenum vary);
|
||||
CG_API void CGENTRY cgSetParameterSemantic(CGparameter param, const char *semantic);
|
||||
|
||||
CG_API void CGENTRY cgSetParameter1f(CGparameter param, float x);
|
||||
CG_API void CGENTRY cgSetParameter2f(CGparameter param, float x, float y);
|
||||
CG_API void CGENTRY cgSetParameter3f(CGparameter param, float x, float y, float z);
|
||||
CG_API void CGENTRY cgSetParameter4f(CGparameter param,
|
||||
float x,
|
||||
float y,
|
||||
float z,
|
||||
float w);
|
||||
CG_API void CGENTRY cgSetParameter1d(CGparameter param, double x);
|
||||
CG_API void CGENTRY cgSetParameter2d(CGparameter param, double x, double y);
|
||||
CG_API void CGENTRY cgSetParameter3d(CGparameter param,
|
||||
double x,
|
||||
double y,
|
||||
double z);
|
||||
CG_API void CGENTRY cgSetParameter4d(CGparameter param,
|
||||
double x,
|
||||
double y,
|
||||
double z,
|
||||
double w);
|
||||
CG_API void CGENTRY cgSetParameter1i(CGparameter param, int x);
|
||||
CG_API void CGENTRY cgSetParameter2i(CGparameter param, int x, int y);
|
||||
CG_API void CGENTRY cgSetParameter3i(CGparameter param, int x, int y, int z);
|
||||
CG_API void CGENTRY cgSetParameter4i(CGparameter param,
|
||||
int x,
|
||||
int y,
|
||||
int z,
|
||||
int w);
|
||||
|
||||
CG_API void CGENTRY cgSetParameter1iv(CGparameter param, const int *v);
|
||||
CG_API void CGENTRY cgSetParameter2iv(CGparameter param, const int *v);
|
||||
CG_API void CGENTRY cgSetParameter3iv(CGparameter param, const int *v);
|
||||
CG_API void CGENTRY cgSetParameter4iv(CGparameter param, const int *v);
|
||||
CG_API void CGENTRY cgSetParameter1fv(CGparameter param, const float *v);
|
||||
CG_API void CGENTRY cgSetParameter2fv(CGparameter param, const float *v);
|
||||
CG_API void CGENTRY cgSetParameter3fv(CGparameter param, const float *v);
|
||||
CG_API void CGENTRY cgSetParameter4fv(CGparameter param, const float *v);
|
||||
CG_API void CGENTRY cgSetParameter1dv(CGparameter param, const double *v);
|
||||
CG_API void CGENTRY cgSetParameter2dv(CGparameter param, const double *v);
|
||||
CG_API void CGENTRY cgSetParameter3dv(CGparameter param, const double *v);
|
||||
CG_API void CGENTRY cgSetParameter4dv(CGparameter param, const double *v);
|
||||
|
||||
CG_API void CGENTRY cgSetMatrixParameterir(CGparameter param, const int *matrix);
|
||||
CG_API void CGENTRY cgSetMatrixParameterdr(CGparameter param, const double *matrix);
|
||||
CG_API void CGENTRY cgSetMatrixParameterfr(CGparameter param, const float *matrix);
|
||||
CG_API void CGENTRY cgSetMatrixParameteric(CGparameter param, const int *matrix);
|
||||
CG_API void CGENTRY cgSetMatrixParameterdc(CGparameter param, const double *matrix);
|
||||
CG_API void CGENTRY cgSetMatrixParameterfc(CGparameter param, const float *matrix);
|
||||
|
||||
CG_API void CGENTRY cgGetMatrixParameterir(CGparameter param, int *matrix);
|
||||
CG_API void CGENTRY cgGetMatrixParameterdr(CGparameter param, double *matrix);
|
||||
CG_API void CGENTRY cgGetMatrixParameterfr(CGparameter param, float *matrix);
|
||||
CG_API void CGENTRY cgGetMatrixParameteric(CGparameter param, int *matrix);
|
||||
CG_API void CGENTRY cgGetMatrixParameterdc(CGparameter param, double *matrix);
|
||||
CG_API void CGENTRY cgGetMatrixParameterfc(CGparameter param, float *matrix);
|
||||
|
||||
CG_API CGparameter CGENTRY cgGetNamedSubParameter(CGparameter param, const char *name);
|
||||
|
||||
/*** Type Functions ***/
|
||||
|
||||
CG_API const char * CGENTRY cgGetTypeString(CGtype type);
|
||||
CG_API CGtype CGENTRY cgGetType(const char *type_string);
|
||||
|
||||
CG_API CGtype CGENTRY cgGetNamedUserType(CGhandle handle, const char *name);
|
||||
|
||||
CG_API int CGENTRY cgGetNumUserTypes(CGhandle handle);
|
||||
CG_API CGtype CGENTRY cgGetUserType(CGhandle handle, int index);
|
||||
|
||||
CG_API int CGENTRY cgGetNumParentTypes(CGtype type);
|
||||
CG_API CGtype CGENTRY cgGetParentType(CGtype type, int index);
|
||||
|
||||
CG_API CGbool CGENTRY cgIsParentType(CGtype parent, CGtype child);
|
||||
CG_API CGbool CGENTRY cgIsInterfaceType(CGtype type);
|
||||
|
||||
/*** Resource Functions ***/
|
||||
|
||||
CG_API const char * CGENTRY cgGetResourceString(CGresource resource);
|
||||
CG_API CGresource CGENTRY cgGetResource(const char *resource_string);
|
||||
|
||||
/*** Enum Functions ***/
|
||||
|
||||
CG_API const char * CGENTRY cgGetEnumString(CGenum en);
|
||||
CG_API CGenum CGENTRY cgGetEnum(const char *enum_string);
|
||||
|
||||
/*** Profile Functions ***/
|
||||
|
||||
CG_API const char * CGENTRY cgGetProfileString(CGprofile profile);
|
||||
CG_API CGprofile CGENTRY cgGetProfile(const char *profile_string);
|
||||
|
||||
/*** Error Functions ***/
|
||||
|
||||
CG_API CGerror CGENTRY cgGetError(void);
|
||||
CG_API CGerror CGENTRY cgGetFirstError(void);
|
||||
CG_API const char * CGENTRY cgGetErrorString(CGerror error);
|
||||
CG_API const char * CGENTRY cgGetLastErrorString(CGerror *error);
|
||||
CG_API void CGENTRY cgSetErrorCallback(CGerrorCallbackFunc func);
|
||||
CG_API CGerrorCallbackFunc CGENTRY cgGetErrorCallback(void);
|
||||
CG_API void CGENTRY cgSetErrorHandler(CGerrorHandlerFunc func, void *data);
|
||||
CG_API CGerrorHandlerFunc CGENTRY cgGetErrorHandler(void **data);
|
||||
|
||||
/*** Misc Functions ***/
|
||||
|
||||
CG_API const char * CGENTRY cgGetString(CGenum sname);
|
||||
|
||||
|
||||
/*** CgFX Functions ***/
|
||||
|
||||
CG_API CGeffect CGENTRY cgCreateEffect(CGcontext, const char *code, const char **args);
|
||||
CG_API CGeffect CGENTRY cgCreateEffectFromFile(CGcontext, const char *filename,
|
||||
const char **args);
|
||||
CG_API CGeffect CGENTRY cgCopyEffect(CGeffect effect);
|
||||
CG_API void CGENTRY cgDestroyEffect(CGeffect);
|
||||
CG_API CGcontext CGENTRY cgGetEffectContext(CGeffect);
|
||||
CG_API CGbool CGENTRY cgIsEffect(CGeffect effect);
|
||||
|
||||
CG_API CGeffect CGENTRY cgGetFirstEffect(CGcontext);
|
||||
CG_API CGeffect CGENTRY cgGetNextEffect(CGeffect);
|
||||
|
||||
CG_API CGprogram CGENTRY cgCreateProgramFromEffect(CGeffect effect,
|
||||
CGprofile profile,
|
||||
const char *entry,
|
||||
const char **args);
|
||||
|
||||
CG_API CGtechnique CGENTRY cgGetFirstTechnique(CGeffect);
|
||||
CG_API CGtechnique CGENTRY cgGetNextTechnique(CGtechnique);
|
||||
CG_API CGtechnique CGENTRY cgGetNamedTechnique(CGeffect, const char *name);
|
||||
CG_API const char * CGENTRY cgGetTechniqueName(CGtechnique);
|
||||
CG_API CGbool CGENTRY cgIsTechnique(CGtechnique);
|
||||
CG_API CGbool CGENTRY cgValidateTechnique(CGtechnique);
|
||||
CG_API CGbool CGENTRY cgIsTechniqueValidated(CGtechnique);
|
||||
CG_API CGeffect CGENTRY cgGetTechniqueEffect(CGtechnique);
|
||||
|
||||
CG_API CGpass CGENTRY cgGetFirstPass(CGtechnique);
|
||||
CG_API CGpass CGENTRY cgGetNamedPass(CGtechnique, const char *name);
|
||||
CG_API CGpass CGENTRY cgGetNextPass(CGpass);
|
||||
CG_API CGbool CGENTRY cgIsPass(CGpass);
|
||||
CG_API const char * CGENTRY cgGetPassName(CGpass);
|
||||
CG_API CGtechnique CGENTRY cgGetPassTechnique(CGpass);
|
||||
|
||||
CG_API void CGENTRY cgSetPassState(CGpass);
|
||||
CG_API void CGENTRY cgResetPassState(CGpass);
|
||||
|
||||
CG_API CGstateassignment CGENTRY cgGetFirstStateAssignment(CGpass);
|
||||
CG_API CGstateassignment CGENTRY cgGetNamedStateAssignment(CGpass, const char *name);
|
||||
CG_API CGstateassignment CGENTRY cgGetNextStateAssignment(CGstateassignment);
|
||||
CG_API CGbool CGENTRY cgIsStateAssignment(CGstateassignment);
|
||||
CG_API CGbool CGENTRY cgCallStateSetCallback(CGstateassignment);
|
||||
CG_API CGbool CGENTRY cgCallStateValidateCallback(CGstateassignment);
|
||||
CG_API CGbool CGENTRY cgCallStateResetCallback(CGstateassignment);
|
||||
CG_API CGpass CGENTRY cgGetStateAssignmentPass(CGstateassignment);
|
||||
CG_API CGparameter CGENTRY cgGetSamplerStateAssignmentParameter(CGstateassignment);
|
||||
|
||||
CG_API const float * CGENTRY cgGetFloatStateAssignmentValues(CGstateassignment, int *nVals);
|
||||
CG_API const int * CGENTRY cgGetIntStateAssignmentValues(CGstateassignment, int *nVals);
|
||||
CG_API const CGbool * CGENTRY cgGetBoolStateAssignmentValues(CGstateassignment, int *nVals);
|
||||
CG_API const char * CGENTRY cgGetStringStateAssignmentValue(CGstateassignment);
|
||||
CG_API CGprogram CGENTRY cgGetProgramStateAssignmentValue(CGstateassignment);
|
||||
CG_API CGparameter CGENTRY cgGetTextureStateAssignmentValue(CGstateassignment);
|
||||
CG_API CGparameter CGENTRY cgGetSamplerStateAssignmentValue(CGstateassignment);
|
||||
CG_API int CGENTRY cgGetStateAssignmentIndex(CGstateassignment);
|
||||
|
||||
CG_API int CGENTRY cgGetNumDependentStateAssignmentParameters(CGstateassignment);
|
||||
CG_API CGparameter CGENTRY cgGetDependentStateAssignmentParameter(CGstateassignment, int index);
|
||||
|
||||
CG_API CGparameter CGENTRY cgGetConnectedStateAssignmentParameter(CGstateassignment);
|
||||
|
||||
CG_API CGstate CGENTRY cgGetStateAssignmentState(CGstateassignment);
|
||||
CG_API CGstate CGENTRY cgGetSamplerStateAssignmentState(CGstateassignment);
|
||||
|
||||
CG_API CGstate CGENTRY cgCreateState(CGcontext, const char *name, CGtype);
|
||||
CG_API CGstate CGENTRY cgCreateArrayState(CGcontext, const char *name, CGtype, int nelems);
|
||||
CG_API void CGENTRY cgSetStateCallbacks(CGstate, CGstatecallback set, CGstatecallback reset,
|
||||
CGstatecallback validate);
|
||||
CG_API CGstatecallback CGENTRY cgGetStateSetCallback(CGstate);
|
||||
CG_API CGstatecallback CGENTRY cgGetStateResetCallback(CGstate);
|
||||
CG_API CGstatecallback CGENTRY cgGetStateValidateCallback(CGstate);
|
||||
CG_API CGcontext CGENTRY cgGetStateContext(CGstate);
|
||||
CG_API CGtype CGENTRY cgGetStateType(CGstate);
|
||||
CG_API const char * CGENTRY cgGetStateName(CGstate);
|
||||
CG_API CGstate CGENTRY cgGetNamedState(CGcontext, const char *name);
|
||||
CG_API CGstate CGENTRY cgGetFirstState(CGcontext);
|
||||
CG_API CGstate CGENTRY cgGetNextState(CGstate);
|
||||
CG_API CGbool CGENTRY cgIsState(CGstate);
|
||||
CG_API void CGENTRY cgAddStateEnumerant(CGstate, const char *name, int value);
|
||||
|
||||
CG_API CGstate CGENTRY cgCreateSamplerState(CGcontext, const char *name, CGtype);
|
||||
CG_API CGstate CGENTRY cgCreateArraySamplerState(CGcontext, const char *name, CGtype, int nelems);
|
||||
CG_API CGstate CGENTRY cgGetNamedSamplerState(CGcontext, const char *name);
|
||||
CG_API CGstate CGENTRY cgGetFirstSamplerState(CGcontext);
|
||||
|
||||
CG_API CGstateassignment CGENTRY cgGetFirstSamplerStateAssignment(CGparameter);
|
||||
CG_API CGstateassignment CGENTRY cgGetNamedSamplerStateAssignment(CGparameter, const char *);
|
||||
CG_API void CGENTRY cgSetSamplerState(CGparameter);
|
||||
|
||||
CG_API CGparameter CGENTRY cgGetNamedEffectParameter(CGeffect, const char *);
|
||||
CG_API CGparameter CGENTRY cgGetFirstLeafEffectParameter(CGeffect);
|
||||
CG_API CGparameter CGENTRY cgGetFirstEffectParameter(CGeffect);
|
||||
CG_API CGparameter CGENTRY cgGetEffectParameterBySemantic(CGeffect, const char *);
|
||||
|
||||
CG_API CGannotation CGENTRY cgGetFirstTechniqueAnnotation(CGtechnique);
|
||||
CG_API CGannotation CGENTRY cgGetFirstPassAnnotation(CGpass);
|
||||
CG_API CGannotation CGENTRY cgGetFirstParameterAnnotation(CGparameter);
|
||||
CG_API CGannotation CGENTRY cgGetFirstProgramAnnotation(CGprogram);
|
||||
CG_API CGannotation CGENTRY cgGetFirstEffectAnnotation(CGeffect);
|
||||
CG_API CGannotation CGENTRY cgGetNextAnnotation(CGannotation);
|
||||
|
||||
CG_API CGannotation CGENTRY cgGetNamedTechniqueAnnotation(CGtechnique, const char *);
|
||||
CG_API CGannotation CGENTRY cgGetNamedPassAnnotation(CGpass, const char *);
|
||||
CG_API CGannotation CGENTRY cgGetNamedParameterAnnotation(CGparameter, const char *);
|
||||
CG_API CGannotation CGENTRY cgGetNamedProgramAnnotation(CGprogram, const char *);
|
||||
CG_API CGannotation CGENTRY cgGetNamedEffectAnnotation(CGeffect, const char *);
|
||||
|
||||
CG_API CGbool CGENTRY cgIsAnnotation(CGannotation);
|
||||
|
||||
CG_API const char * CGENTRY cgGetAnnotationName(CGannotation);
|
||||
CG_API CGtype CGENTRY cgGetAnnotationType(CGannotation);
|
||||
|
||||
CG_API const float * CGENTRY cgGetFloatAnnotationValues(CGannotation, int *nvalues);
|
||||
CG_API const int * CGENTRY cgGetIntAnnotationValues(CGannotation, int *nvalues);
|
||||
CG_API const char * CGENTRY cgGetStringAnnotationValue(CGannotation);
|
||||
CG_API const char * const * CGENTRY cgGetStringAnnotationValues(CGannotation, int *nvalues);
|
||||
CG_API const CGbool * CGENTRY cgGetBoolAnnotationValues(CGannotation, int *nvalues);
|
||||
CG_API const int * CGENTRY cgGetBooleanAnnotationValues(CGannotation, int *nvalues);
|
||||
|
||||
CG_API int CGENTRY cgGetNumDependentAnnotationParameters(CGannotation);
|
||||
CG_API CGparameter CGENTRY cgGetDependentAnnotationParameter(CGannotation, int index);
|
||||
|
||||
CG_API void CGENTRY cgEvaluateProgram(CGprogram, float *, int ncomps, int nx, int ny, int nz);
|
||||
|
||||
/*** Cg 1.5 Additions ***/
|
||||
|
||||
CG_API CGbool CGENTRY cgSetEffectName(CGeffect, const char *name);
|
||||
CG_API const char * CGENTRY cgGetEffectName(CGeffect);
|
||||
CG_API CGeffect CGENTRY cgGetNamedEffect(CGcontext, const char *name);
|
||||
CG_API CGparameter CGENTRY cgCreateEffectParameter(CGeffect, const char *name, CGtype);
|
||||
|
||||
CG_API CGtechnique CGENTRY cgCreateTechnique(CGeffect, const char *name);
|
||||
|
||||
CG_API CGparameter CGENTRY cgCreateEffectParameterArray(CGeffect, const char *name, CGtype type, int length);
|
||||
CG_API CGparameter CGENTRY cgCreateEffectParameterMultiDimArray(CGeffect, const char *name, CGtype type, int dim, const int *lengths);
|
||||
|
||||
CG_API CGpass CGENTRY cgCreatePass(CGtechnique, const char *name);
|
||||
|
||||
CG_API CGstateassignment CGENTRY cgCreateStateAssignment(CGpass, CGstate);
|
||||
CG_API CGstateassignment CGENTRY cgCreateStateAssignmentIndex(CGpass, CGstate, int index);
|
||||
CG_API CGstateassignment CGENTRY cgCreateSamplerStateAssignment(CGparameter, CGstate);
|
||||
|
||||
CG_API CGbool CGENTRY cgSetFloatStateAssignment(CGstateassignment, float);
|
||||
CG_API CGbool CGENTRY cgSetIntStateAssignment(CGstateassignment, int);
|
||||
CG_API CGbool CGENTRY cgSetBoolStateAssignment(CGstateassignment, CGbool);
|
||||
CG_API CGbool CGENTRY cgSetStringStateAssignment(CGstateassignment, const char *);
|
||||
CG_API CGbool CGENTRY cgSetProgramStateAssignment(CGstateassignment, CGprogram);
|
||||
CG_API CGbool CGENTRY cgSetSamplerStateAssignment(CGstateassignment, CGparameter);
|
||||
CG_API CGbool CGENTRY cgSetTextureStateAssignment(CGstateassignment, CGparameter);
|
||||
|
||||
CG_API CGbool CGENTRY cgSetFloatArrayStateAssignment(CGstateassignment, const float *vals);
|
||||
CG_API CGbool CGENTRY cgSetIntArrayStateAssignment(CGstateassignment, const int *vals);
|
||||
CG_API CGbool CGENTRY cgSetBoolArrayStateAssignment(CGstateassignment, const CGbool *vals);
|
||||
|
||||
CG_API CGannotation CGENTRY cgCreateTechniqueAnnotation(CGtechnique, const char *name, CGtype);
|
||||
CG_API CGannotation CGENTRY cgCreatePassAnnotation(CGpass, const char *name, CGtype);
|
||||
CG_API CGannotation CGENTRY cgCreateParameterAnnotation(CGparameter, const char *name, CGtype);
|
||||
CG_API CGannotation CGENTRY cgCreateProgramAnnotation(CGprogram, const char *name, CGtype);
|
||||
CG_API CGannotation CGENTRY cgCreateEffectAnnotation(CGeffect, const char *name, CGtype);
|
||||
|
||||
CG_API CGbool CGENTRY cgSetIntAnnotation(CGannotation, int value);
|
||||
CG_API CGbool CGENTRY cgSetFloatAnnotation(CGannotation, float value);
|
||||
CG_API CGbool CGENTRY cgSetBoolAnnotation(CGannotation, CGbool value);
|
||||
CG_API CGbool CGENTRY cgSetStringAnnotation(CGannotation, const char *value);
|
||||
|
||||
CG_API const char * CGENTRY cgGetStateEnumerantName(CGstate, int value);
|
||||
CG_API int CGENTRY cgGetStateEnumerantValue(CGstate, const char *name);
|
||||
|
||||
CG_API CGeffect CGENTRY cgGetParameterEffect(CGparameter param);
|
||||
|
||||
CG_API CGparameterclass CGENTRY cgGetTypeClass(CGtype type);
|
||||
CG_API CGtype CGENTRY cgGetTypeBase(CGtype type);
|
||||
CG_API CGbool CGENTRY cgGetTypeSizes(CGtype type, int *nrows, int *ncols);
|
||||
CG_API void CGENTRY cgGetMatrixSize(CGtype type, int *nrows, int *ncols);
|
||||
|
||||
CG_API int CGENTRY cgGetNumProgramDomains( CGprogram program );
|
||||
CG_API CGdomain CGENTRY cgGetProfileDomain( CGprofile profile );
|
||||
CG_API CGprogram CGENTRY cgCombinePrograms( int n, const CGprogram *exeList );
|
||||
CG_API CGprogram CGENTRY cgCombinePrograms2( const CGprogram exe1, const CGprogram exe2 );
|
||||
CG_API CGprogram CGENTRY cgCombinePrograms3( const CGprogram exe1, const CGprogram exe2, const CGprogram exe3 );
|
||||
CG_API CGprofile CGENTRY cgGetProgramDomainProfile(CGprogram program, int index);
|
||||
|
||||
/*** CGobj Functions ***/
|
||||
CG_API CGobj CGENTRY cgCreateObj( CGcontext context, CGenum program_type, const char *source, CGprofile profile, const char **args );
|
||||
CG_API CGobj CGENTRY cgCreateObjFromFile( CGcontext context, CGenum program_type, const char *source_file, CGprofile profile, const char **args );
|
||||
CG_API void CGENTRY cgDestroyObj( CGobj obj );
|
||||
|
||||
CG_API long CGENTRY cgGetParameterResourceSize(CGparameter);
|
||||
CG_API CGtype CGENTRY cgGetParameterResourceType(CGparameter);
|
||||
CG_API int CGENTRY cgGetParameterBufferIndex(CGparameter);
|
||||
CG_API int CGENTRY cgGetParameterBufferOffset(CGparameter);
|
||||
|
||||
CG_API CGbuffer CGENTRY cgCreateBuffer(CGcontext, int size, const void *data, CGbufferusage bufferUsage);
|
||||
CG_API void CGENTRY cgSetBufferData(CGbuffer, int size, const void *data);
|
||||
CG_API void CGENTRY cgSetBufferSubData(CGbuffer, int offset, int size, const void *data);
|
||||
CG_API void CGENTRY cgSetProgramBuffer(CGprogram program, int bufferIndex, CGbuffer buffer);
|
||||
|
||||
CG_API void * CGENTRY cgMapBuffer(CGbuffer buffer, CGbufferaccess access);
|
||||
CG_API void CGENTRY cgUnmapBuffer(CGbuffer buffer);
|
||||
CG_API void CGENTRY cgDestroyBuffer(CGbuffer buffer);
|
||||
CG_API CGbuffer CGENTRY cgGetProgramBuffer(CGprogram, int bufferIndex);
|
||||
CG_API int CGENTRY cgGetBufferSize(CGbuffer);
|
||||
CG_API int CGENTRY cgGetProgramBufferMaxSize(CGprofile profile);
|
||||
CG_API int CGENTRY cgGetProgramBufferMaxIndex(CGprofile profile);
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CG_APIENTRY_DEFINED
|
||||
# undef CG_APIENTRY_DEFINED
|
||||
# undef APIENTRY
|
||||
#endif
|
||||
|
||||
#ifdef CG_WINGDIAPI_DEFINED
|
||||
# undef CG_WINGDIAPI_DEFINED
|
||||
# undef WINGDIAPI
|
||||
#endif
|
||||
|
||||
#endif
|
BIN
Externals/Cg/cg.lib
vendored
Normal file
BIN
Externals/Cg/cg.lib
vendored
Normal file
Binary file not shown.
423
Externals/Cg/cgGL.h
vendored
Normal file
423
Externals/Cg/cgGL.h
vendored
Normal file
@ -0,0 +1,423 @@
|
||||
/*
|
||||
*
|
||||
* Copyright (c) 2002-2007, NVIDIA Corporation.
|
||||
*
|
||||
*
|
||||
*
|
||||
* NVIDIA Corporation("NVIDIA") supplies this software to you in consideration
|
||||
* of your agreement to the following terms, and your use, installation,
|
||||
* modification or redistribution of this NVIDIA software constitutes
|
||||
* acceptance of these terms. If you do not agree with these terms, please do
|
||||
* not use, install, modify or redistribute this NVIDIA software.
|
||||
*
|
||||
*
|
||||
*
|
||||
* In consideration of your agreement to abide by the following terms, and
|
||||
* subject to these terms, NVIDIA grants you a personal, non-exclusive license,
|
||||
* under NVIDIA's copyrights in this original NVIDIA software (the "NVIDIA
|
||||
* Software"), to use, reproduce, modify and redistribute the NVIDIA
|
||||
* Software, with or without modifications, in source and/or binary forms;
|
||||
* provided that if you redistribute the NVIDIA Software, you must retain the
|
||||
* copyright notice of NVIDIA, this notice and the following text and
|
||||
* disclaimers in all such redistributions of the NVIDIA Software. Neither the
|
||||
* name, trademarks, service marks nor logos of NVIDIA Corporation may be used
|
||||
* to endorse or promote products derived from the NVIDIA Software without
|
||||
* specific prior written permission from NVIDIA. Except as expressly stated
|
||||
* in this notice, no other rights or licenses express or implied, are granted
|
||||
* by NVIDIA herein, including but not limited to any patent rights that may be
|
||||
* infringed by your derivative works or by other works in which the NVIDIA
|
||||
* Software may be incorporated. No hardware is licensed hereunder.
|
||||
*
|
||||
*
|
||||
*
|
||||
* THE NVIDIA SOFTWARE IS BEING PROVIDED ON AN "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING
|
||||
* WITHOUT LIMITATION, WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR ITS USE AND OPERATION
|
||||
* EITHER ALONE OR IN COMBINATION WITH OTHER PRODUCTS.
|
||||
*
|
||||
*
|
||||
*
|
||||
* IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL,
|
||||
* EXEMPLARY, CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, LOST
|
||||
* PROFITS; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
* PROFITS; OR BUSINESS INTERRUPTION) OR ARISING IN ANY WAY OUT OF THE USE,
|
||||
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE NVIDIA SOFTWARE,
|
||||
* HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING
|
||||
* NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF NVIDIA HAS BEEN ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _cggl_h
|
||||
#define _cggl_h
|
||||
|
||||
#include <Cg/cg.h>
|
||||
|
||||
#ifdef _WIN32
|
||||
# ifndef APIENTRY /* From Win32's <windef.h> */
|
||||
# define CGGL_APIENTRY_DEFINED
|
||||
# if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) || defined(__BORLANDC__) || defined(__LCC__)
|
||||
# define APIENTRY __stdcall
|
||||
# else
|
||||
# define APIENTRY
|
||||
# endif
|
||||
# endif
|
||||
# ifndef WINGDIAPI /* From Win32's <wingdi.h> and <winnt.h> */
|
||||
# define CGGL_WINGDIAPI_DEFINED
|
||||
# define WINGDIAPI __declspec(dllimport)
|
||||
# endif
|
||||
#endif /* _WIN32 */
|
||||
|
||||
/* Set up for either Win32 import/export/lib. */
|
||||
#ifndef CGGL_API
|
||||
# ifdef _WIN32
|
||||
# ifdef CGGL_EXPORTS
|
||||
# define CGGL_API __declspec(dllexport)
|
||||
# elif defined (CG_LIB)
|
||||
# define CGGL_API
|
||||
# else
|
||||
# define CGGL_API __declspec(dllimport)
|
||||
# endif
|
||||
# else
|
||||
# define CGGL_API
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef CGGLENTRY
|
||||
# ifdef _WIN32
|
||||
# define CGGLENTRY __cdecl
|
||||
# else
|
||||
# define CGGLENTRY
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef __APPLE__
|
||||
#include <OpenGL/gl.h>
|
||||
#else
|
||||
#include <GL/gl.h>
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*****************************************************************************/
|
||||
/*** cgGL Type Definitions ***/
|
||||
/*****************************************************************************/
|
||||
|
||||
typedef enum
|
||||
{
|
||||
CG_GL_MATRIX_IDENTITY = 0,
|
||||
CG_GL_MATRIX_TRANSPOSE = 1,
|
||||
CG_GL_MATRIX_INVERSE = 2,
|
||||
CG_GL_MATRIX_INVERSE_TRANSPOSE = 3,
|
||||
|
||||
CG_GL_MODELVIEW_MATRIX,
|
||||
CG_GL_PROJECTION_MATRIX,
|
||||
CG_GL_TEXTURE_MATRIX,
|
||||
CG_GL_MODELVIEW_PROJECTION_MATRIX,
|
||||
|
||||
CG_GL_VERTEX,
|
||||
CG_GL_FRAGMENT,
|
||||
CG_GL_GEOMETRY
|
||||
|
||||
} CGGLenum;
|
||||
|
||||
|
||||
#ifndef CGGL_EXPLICIT
|
||||
|
||||
/******************************************************************************
|
||||
*** Profile Functions
|
||||
*****************************************************************************/
|
||||
|
||||
CGGL_API CGbool CGGLENTRY cgGLIsProfileSupported(CGprofile profile);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLEnableProfile(CGprofile profile);
|
||||
CGGL_API void CGGLENTRY cgGLDisableProfile(CGprofile profile);
|
||||
|
||||
CGGL_API CGprofile CGGLENTRY cgGLGetLatestProfile(CGGLenum profile_type);
|
||||
CGGL_API void CGGLENTRY cgGLSetOptimalOptions(CGprofile profile);
|
||||
|
||||
/******************************************************************************
|
||||
*** Program Managment Functions
|
||||
*****************************************************************************/
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLLoadProgram(CGprogram program);
|
||||
CGGL_API CGbool CGGLENTRY cgGLIsProgramLoaded(CGprogram program);
|
||||
CGGL_API void CGGLENTRY cgGLBindProgram(CGprogram program);
|
||||
CGGL_API void CGGLENTRY cgGLUnbindProgram(CGprofile profile);
|
||||
CGGL_API GLuint CGGLENTRY cgGLGetProgramID(CGprogram program);
|
||||
|
||||
/******************************************************************************
|
||||
*** Parameter Managment Functions
|
||||
*****************************************************************************/
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLSetParameter1f(CGparameter param,
|
||||
float x);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLSetParameter2f(CGparameter param,
|
||||
float x,
|
||||
float y);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLSetParameter3f(CGparameter param,
|
||||
float x,
|
||||
float y,
|
||||
float z);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLSetParameter4f(CGparameter param,
|
||||
float x,
|
||||
float y,
|
||||
float z,
|
||||
float w);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLSetParameter1fv(CGparameter param, const float *v);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLSetParameter2fv(CGparameter param, const float *v);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLSetParameter3fv(CGparameter param, const float *v);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLSetParameter4fv(CGparameter param, const float *v);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLSetParameter1d(CGparameter param,
|
||||
double x);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLSetParameter2d(CGparameter param,
|
||||
double x,
|
||||
double y);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLSetParameter3d(CGparameter param,
|
||||
double x,
|
||||
double y,
|
||||
double z);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLSetParameter4d(CGparameter param,
|
||||
double x,
|
||||
double y,
|
||||
double z,
|
||||
double w);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLSetParameter1dv(CGparameter param, const double *v);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLSetParameter2dv(CGparameter param, const double *v);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLSetParameter3dv(CGparameter param, const double *v);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLSetParameter4dv(CGparameter param, const double *v);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLGetParameter1f(CGparameter param, float *v);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLGetParameter2f(CGparameter param, float *v);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLGetParameter3f(CGparameter param, float *v);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLGetParameter4f(CGparameter param, float *v);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLGetParameter1d(CGparameter param, double *v);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLGetParameter2d(CGparameter param, double *v);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLGetParameter3d(CGparameter param, double *v);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLGetParameter4d(CGparameter param, double *v);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLSetParameterArray1f(CGparameter param,
|
||||
long offset,
|
||||
long nelements,
|
||||
const float *v);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLSetParameterArray2f(CGparameter param,
|
||||
long offset,
|
||||
long nelements,
|
||||
const float *v);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLSetParameterArray3f(CGparameter param,
|
||||
long offset,
|
||||
long nelements,
|
||||
const float *v);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLSetParameterArray4f(CGparameter param,
|
||||
long offset,
|
||||
long nelements,
|
||||
const float *v);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLSetParameterArray1d(CGparameter param,
|
||||
long offset,
|
||||
long nelements,
|
||||
const double *v);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLSetParameterArray2d(CGparameter param,
|
||||
long offset,
|
||||
long nelements,
|
||||
const double *v);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLSetParameterArray3d(CGparameter param,
|
||||
long offset,
|
||||
long nelements,
|
||||
const double *v);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLSetParameterArray4d(CGparameter param,
|
||||
long offset,
|
||||
long nelements,
|
||||
const double *v);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLGetParameterArray1f(CGparameter param,
|
||||
long offset,
|
||||
long nelements,
|
||||
float *v);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLGetParameterArray2f(CGparameter param,
|
||||
long offset,
|
||||
long nelements,
|
||||
float *v);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLGetParameterArray3f(CGparameter param,
|
||||
long offset,
|
||||
long nelements,
|
||||
float *v);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLGetParameterArray4f(CGparameter param,
|
||||
long offset,
|
||||
long nelements,
|
||||
float *v);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLGetParameterArray1d(CGparameter param,
|
||||
long offset,
|
||||
long nelements,
|
||||
double *v);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLGetParameterArray2d(CGparameter param,
|
||||
long offset,
|
||||
long nelements,
|
||||
double *v);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLGetParameterArray3d(CGparameter param,
|
||||
long offset,
|
||||
long nelements,
|
||||
double *v);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLGetParameterArray4d(CGparameter param,
|
||||
long offset,
|
||||
long nelements,
|
||||
double *v);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLSetParameterPointer(CGparameter param,
|
||||
GLint fsize,
|
||||
GLenum type,
|
||||
GLsizei stride,
|
||||
const GLvoid *pointer);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLEnableClientState(CGparameter param);
|
||||
CGGL_API void CGGLENTRY cgGLDisableClientState(CGparameter param);
|
||||
|
||||
/******************************************************************************
|
||||
*** Matrix Parameter Managment Functions
|
||||
*****************************************************************************/
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLSetMatrixParameterdr(CGparameter param,
|
||||
const double *matrix);
|
||||
CGGL_API void CGGLENTRY cgGLSetMatrixParameterfr(CGparameter param,
|
||||
const float *matrix);
|
||||
CGGL_API void CGGLENTRY cgGLSetMatrixParameterdc(CGparameter param,
|
||||
const double *matrix);
|
||||
CGGL_API void CGGLENTRY cgGLSetMatrixParameterfc(CGparameter param,
|
||||
const float *matrix);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLGetMatrixParameterdr(CGparameter param, double *matrix);
|
||||
CGGL_API void CGGLENTRY cgGLGetMatrixParameterfr(CGparameter param, float *matrix);
|
||||
CGGL_API void CGGLENTRY cgGLGetMatrixParameterdc(CGparameter param, double *matrix);
|
||||
CGGL_API void CGGLENTRY cgGLGetMatrixParameterfc(CGparameter param, float *matrix);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLSetStateMatrixParameter(CGparameter param,
|
||||
CGGLenum matrix,
|
||||
CGGLenum transform);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLSetMatrixParameterArrayfc(CGparameter param,
|
||||
long offset,
|
||||
long nelements,
|
||||
const float *matrices);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLSetMatrixParameterArrayfr(CGparameter param,
|
||||
long offset,
|
||||
long nelements,
|
||||
const float *matrices);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLSetMatrixParameterArraydc(CGparameter param,
|
||||
long offset,
|
||||
long nelements,
|
||||
const double *matrices);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLSetMatrixParameterArraydr(CGparameter param,
|
||||
long offset,
|
||||
long nelements,
|
||||
const double *matrices);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLGetMatrixParameterArrayfc(CGparameter param,
|
||||
long offset,
|
||||
long nelements,
|
||||
float *matrices);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLGetMatrixParameterArrayfr(CGparameter param,
|
||||
long offset,
|
||||
long nelements,
|
||||
float *matrices);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLGetMatrixParameterArraydc(CGparameter param,
|
||||
long offset,
|
||||
long nelements,
|
||||
double *matrices);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLGetMatrixParameterArraydr(CGparameter param,
|
||||
long offset,
|
||||
long nelements,
|
||||
double *matrices);
|
||||
|
||||
/******************************************************************************
|
||||
*** Texture Parameter Managment Functions
|
||||
*****************************************************************************/
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLSetTextureParameter(CGparameter param, GLuint texobj);
|
||||
CGGL_API GLuint CGGLENTRY cgGLGetTextureParameter(CGparameter param);
|
||||
CGGL_API void CGGLENTRY cgGLEnableTextureParameter(CGparameter param);
|
||||
CGGL_API void CGGLENTRY cgGLDisableTextureParameter(CGparameter param);
|
||||
CGGL_API GLenum CGGLENTRY cgGLGetTextureEnum(CGparameter param);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLSetManageTextureParameters(CGcontext ctx, CGbool flag);
|
||||
CGGL_API CGbool CGGLENTRY cgGLGetManageTextureParameters(CGcontext ctx);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLSetupSampler(CGparameter param, GLuint texobj);
|
||||
CGGL_API void CGGLENTRY cgGLRegisterStates(CGcontext);
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLEnableProgramProfiles( CGprogram program );
|
||||
CGGL_API void CGGLENTRY cgGLDisableProgramProfiles( CGprogram program );
|
||||
|
||||
/******************************************************************************
|
||||
*** Misc Functions
|
||||
*****************************************************************************/
|
||||
|
||||
CGGL_API void CGGLENTRY cgGLSetDebugMode( CGbool debug );
|
||||
|
||||
/******************************************************************************
|
||||
*** Buffer Functions
|
||||
*****************************************************************************/
|
||||
|
||||
CGGL_API CGbuffer CGGLENTRY cgGLCreateBuffer(CGcontext context, int size, const void *data, GLenum bufferUsage);
|
||||
CGGL_API GLuint CGGLENTRY cgGLGetBufferObject(CGbuffer buffer);
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CGGL_APIENTRY_DEFINED
|
||||
# undef CGGL_APIENTRY_DEFINED
|
||||
# undef APIENTRY
|
||||
#endif
|
||||
|
||||
#ifdef CGGL_WINGDIAPI_DEFINED
|
||||
# undef CGGL_WINGDIAPI_DEFINED
|
||||
# undef WINGDIAPI
|
||||
#endif
|
||||
|
||||
#endif
|
BIN
Externals/Cg/cgGL.lib
vendored
Normal file
BIN
Externals/Cg/cgGL.lib
vendored
Normal file
Binary file not shown.
70
Externals/Cg/cgGL_profiles.h
vendored
Normal file
70
Externals/Cg/cgGL_profiles.h
vendored
Normal file
@ -0,0 +1,70 @@
|
||||
/*
|
||||
*
|
||||
* Copyright (c) 2002-2007, NVIDIA Corporation.
|
||||
*
|
||||
*
|
||||
*
|
||||
* NVIDIA Corporation("NVIDIA") supplies this software to you in consideration
|
||||
* of your agreement to the following terms, and your use, installation,
|
||||
* modification or redistribution of this NVIDIA software constitutes
|
||||
* acceptance of these terms. If you do not agree with these terms, please do
|
||||
* not use, install, modify or redistribute this NVIDIA software.
|
||||
*
|
||||
*
|
||||
*
|
||||
* In consideration of your agreement to abide by the following terms, and
|
||||
* subject to these terms, NVIDIA grants you a personal, non-exclusive license,
|
||||
* under NVIDIA's copyrights in this original NVIDIA software (the "NVIDIA
|
||||
* Software"), to use, reproduce, modify and redistribute the NVIDIA
|
||||
* Software, with or without modifications, in source and/or binary forms;
|
||||
* provided that if you redistribute the NVIDIA Software, you must retain the
|
||||
* copyright notice of NVIDIA, this notice and the following text and
|
||||
* disclaimers in all such redistributions of the NVIDIA Software. Neither the
|
||||
* name, trademarks, service marks nor logos of NVIDIA Corporation may be used
|
||||
* to endorse or promote products derived from the NVIDIA Software without
|
||||
* specific prior written permission from NVIDIA. Except as expressly stated
|
||||
* in this notice, no other rights or licenses express or implied, are granted
|
||||
* by NVIDIA herein, including but not limited to any patent rights that may be
|
||||
* infringed by your derivative works or by other works in which the NVIDIA
|
||||
* Software may be incorporated. No hardware is licensed hereunder.
|
||||
*
|
||||
*
|
||||
*
|
||||
* THE NVIDIA SOFTWARE IS BEING PROVIDED ON AN "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING
|
||||
* WITHOUT LIMITATION, WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR ITS USE AND OPERATION
|
||||
* EITHER ALONE OR IN COMBINATION WITH OTHER PRODUCTS.
|
||||
*
|
||||
*
|
||||
*
|
||||
* IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL,
|
||||
* EXEMPLARY, CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, LOST
|
||||
* PROFITS; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
* PROFITS; OR BUSINESS INTERRUPTION) OR ARISING IN ANY WAY OUT OF THE USE,
|
||||
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE NVIDIA SOFTWARE,
|
||||
* HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING
|
||||
* NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF NVIDIA HAS BEEN ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
CG_PROFILE_MACRO(Vertex,vp20,VP20,"vp20",6146,1)
|
||||
CG_PROFILE_MACRO(Fragment20,fp20,FP20,"fp20",6147,0)
|
||||
CG_PROFILE_MACRO(Vertex30,vp30,VP30,"vp30",6148,1)
|
||||
CG_PROFILE_MACRO(Fragment,fp30,FP30,"fp30",6149,0)
|
||||
CG_PROFILE_MACRO(ARBVertex,arbvp1,ARBVP1,"arbvp1",6150,1)
|
||||
CG_PROFILE_MACRO(Fragment40,fp40,FP40,"fp40",6151,0)
|
||||
CG_PROFILE_MACRO(ARBFragment,arbfp1,ARBFP1,"arbfp1",7000,0)
|
||||
CG_PROFILE_MACRO(Vertex40,vp40,VP40,"vp40",7001,1)
|
||||
CG_PROFILE_MACRO(GLSLVertex,glslv,GLSLV,"glslv",7007,1)
|
||||
CG_PROFILE_MACRO(GLSLFragment,glslf,GLSLF,"glslf",7008,0)
|
||||
CG_PROFILE_MACRO(GLSLCombined, glslc, GLSLC, "glslc", 7009, 0)
|
||||
CG_PROFILE_MACRO(GPUFragment,gpu_fp,GPU_FP,"gp4fp",7010,0)
|
||||
CG_PROFILE_MACRO(GPUVertex,gpu_vp,GPU_VP,"gp4vp",7011,1)
|
||||
CG_PROFILE_MACRO(GPUGeometry,gpu_gp,GPU_GP,"gp4gp",7012,0)
|
||||
|
||||
#ifndef CG_IN_PROFILES_INCLUDE
|
||||
# undef CG_PROFILE_MACRO
|
||||
#endif
|
382
Externals/Cg/cg_bindlocations.h
vendored
Normal file
382
Externals/Cg/cg_bindlocations.h
vendored
Normal file
@ -0,0 +1,382 @@
|
||||
|
||||
|
||||
/*
|
||||
*
|
||||
* Copyright (c) 2002-2007, NVIDIA Corporation.
|
||||
*
|
||||
*
|
||||
*
|
||||
* NVIDIA Corporation("NVIDIA") supplies this software to you in consideration
|
||||
* of your agreement to the following terms, and your use, installation,
|
||||
* modification or redistribution of this NVIDIA software constitutes
|
||||
* acceptance of these terms. If you do not agree with these terms, please do
|
||||
* not use, install, modify or redistribute this NVIDIA software.
|
||||
*
|
||||
*
|
||||
*
|
||||
* In consideration of your agreement to abide by the following terms, and
|
||||
* subject to these terms, NVIDIA grants you a personal, non-exclusive license,
|
||||
* under NVIDIA's copyrights in this original NVIDIA software (the "NVIDIA
|
||||
* Software"), to use, reproduce, modify and redistribute the NVIDIA
|
||||
* Software, with or without modifications, in source and/or binary forms;
|
||||
* provided that if you redistribute the NVIDIA Software, you must retain the
|
||||
* copyright notice of NVIDIA, this notice and the following text and
|
||||
* disclaimers in all such redistributions of the NVIDIA Software. Neither the
|
||||
* name, trademarks, service marks nor logos of NVIDIA Corporation may be used
|
||||
* to endorse or promote products derived from the NVIDIA Software without
|
||||
* specific prior written permission from NVIDIA. Except as expressly stated
|
||||
* in this notice, no other rights or licenses express or implied, are granted
|
||||
* by NVIDIA herein, including but not limited to any patent rights that may be
|
||||
* infringed by your derivative works or by other works in which the NVIDIA
|
||||
* Software may be incorporated. No hardware is licensed hereunder.
|
||||
*
|
||||
*
|
||||
*
|
||||
* THE NVIDIA SOFTWARE IS BEING PROVIDED ON AN "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING
|
||||
* WITHOUT LIMITATION, WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR ITS USE AND OPERATION
|
||||
* EITHER ALONE OR IN COMBINATION WITH OTHER PRODUCTS.
|
||||
*
|
||||
*
|
||||
*
|
||||
* IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL,
|
||||
* EXEMPLARY, CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, LOST
|
||||
* PROFITS; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
* PROFITS; OR BUSINESS INTERRUPTION) OR ARISING IN ANY WAY OUT OF THE USE,
|
||||
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE NVIDIA SOFTWARE,
|
||||
* HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING
|
||||
* NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF NVIDIA HAS BEEN ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* The following macro invocations define the supported CG basic hardware
|
||||
* bind locations.
|
||||
*
|
||||
* The macros have the form :
|
||||
*
|
||||
* CG_BINDLOCATION_MACRO(name, compiler_name, enum_int)
|
||||
*
|
||||
* name : The name of the location.
|
||||
* enum_name : The C enumerant.
|
||||
* compiler_name : The name of the location within the compiler syntax.
|
||||
* int_id : Integer enumerant associated with this bind location.
|
||||
* (3256 is reservered for CG_UNDEFINED)
|
||||
* addressable : The bind location must have an integer address
|
||||
* associated with it.
|
||||
* ParamType : the cgParamType of this register.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
CG_BINDLOCATION_MACRO(TexUnit0,CG_TEXUNIT0,"texunit 0",2048,0,CG_TEXOBJ_PARAM)
|
||||
CG_BINDLOCATION_MACRO(TexUnit1,CG_TEXUNIT1,"texunit 1",2049,0,CG_TEXOBJ_PARAM)
|
||||
CG_BINDLOCATION_MACRO(TexUnit2,CG_TEXUNIT2,"texunit 2",2050,0,CG_TEXOBJ_PARAM)
|
||||
CG_BINDLOCATION_MACRO(TexUnit3,CG_TEXUNIT3,"texunit 3",2051,0,CG_TEXOBJ_PARAM)
|
||||
CG_BINDLOCATION_MACRO(TexUnit4,CG_TEXUNIT4,"texunit 4",2052,0,CG_TEXOBJ_PARAM)
|
||||
CG_BINDLOCATION_MACRO(TexUnit5,CG_TEXUNIT5,"texunit 5",2053,0,CG_TEXOBJ_PARAM)
|
||||
CG_BINDLOCATION_MACRO(TexUnit6,CG_TEXUNIT6,"texunit 6",2054,0,CG_TEXOBJ_PARAM)
|
||||
CG_BINDLOCATION_MACRO(TexUnit7,CG_TEXUNIT7,"texunit 7",2055,0,CG_TEXOBJ_PARAM)
|
||||
CG_BINDLOCATION_MACRO(TexUnit8,CG_TEXUNIT8,"texunit 8",2056,0,CG_TEXOBJ_PARAM)
|
||||
CG_BINDLOCATION_MACRO(TexUnit9,CG_TEXUNIT9,"texunit 9",2057,0,CG_TEXOBJ_PARAM)
|
||||
CG_BINDLOCATION_MACRO(TexUnit10,CG_TEXUNIT10,"texunit 10",2058,0,CG_TEXOBJ_PARAM)
|
||||
CG_BINDLOCATION_MACRO(TexUnit11,CG_TEXUNIT11,"texunit 11",2059,0,CG_TEXOBJ_PARAM)
|
||||
CG_BINDLOCATION_MACRO(TexUnit12,CG_TEXUNIT12,"texunit 12",2060,0,CG_TEXOBJ_PARAM)
|
||||
CG_BINDLOCATION_MACRO(TexUnit13,CG_TEXUNIT13,"texunit 13",2061,0,CG_TEXOBJ_PARAM)
|
||||
CG_BINDLOCATION_MACRO(TexUnit14,CG_TEXUNIT14,"texunit 14",2062,0,CG_TEXOBJ_PARAM)
|
||||
CG_BINDLOCATION_MACRO(TexUnit15,CG_TEXUNIT15,"texunit 15",2063,0,CG_TEXOBJ_PARAM)
|
||||
|
||||
CG_BINDLOCATION_MACRO(Buffer0, CG_BUFFER0, "buffer[0]", 2064, 1, CGI_UNIFORM_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Buffer1, CG_BUFFER1, "buffer[1]", 2065, 1, CGI_UNIFORM_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Buffer2, CG_BUFFER2, "buffer[2]", 2066, 1, CGI_UNIFORM_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Buffer3, CG_BUFFER3, "buffer[3]", 2067, 1, CGI_UNIFORM_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Buffer4, CG_BUFFER4, "buffer[4]", 2068, 1, CGI_UNIFORM_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Buffer5, CG_BUFFER5, "buffer[5]", 2069, 1, CGI_UNIFORM_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Buffer6, CG_BUFFER6, "buffer[6]", 2070, 1, CGI_UNIFORM_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Buffer7, CG_BUFFER7, "buffer[7]", 2071, 1, CGI_UNIFORM_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Buffer8, CG_BUFFER8, "buffer[8]", 2072, 1, CGI_UNIFORM_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Buffer9, CG_BUFFER9, "buffer[9]", 2073, 1, CGI_UNIFORM_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Buffer10, CG_BUFFER10, "buffer[10]", 2074, 1, CGI_UNIFORM_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Buffer11, CG_BUFFER11, "buffer[11]", 2075, 1, CGI_UNIFORM_PARAM)
|
||||
|
||||
CG_BINDLOCATION_MACRO(Attr0,CG_ATTR0,"ATTR0",2113,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Attr1,CG_ATTR1,"ATTR1",2114,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Attr2,CG_ATTR2,"ATTR2",2115,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Attr3,CG_ATTR3,"ATTR3",2116,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Attr4,CG_ATTR4,"ATTR4",2117,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Attr5,CG_ATTR5,"ATTR5",2118,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Attr6,CG_ATTR6,"ATTR6",2119,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Attr7,CG_ATTR7,"ATTR7",2120,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Attr8,CG_ATTR8,"ATTR8",2121,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Attr9,CG_ATTR9,"ATTR9",2122,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Attr10,CG_ATTR10,"ATTR10",2123,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Attr11,CG_ATTR11,"ATTR11",2124,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Attr12,CG_ATTR12,"ATTR12",2125,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Attr13,CG_ATTR13,"ATTR13",2126,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Attr14,CG_ATTR14,"ATTR14",2127,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Attr15,CG_ATTR15,"ATTR15",2128,0,CG_VARYING_PARAM)
|
||||
|
||||
CG_BINDLOCATION_MACRO(VertUniform,CG_C,"c",2178,1,CGI_UNIFORM_PARAM)
|
||||
|
||||
CG_BINDLOCATION_MACRO(Tex0,CG_TEX0,"TEX0",2179,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Tex1,CG_TEX1,"TEX1",2180,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Tex2,CG_TEX2,"TEX2",2181,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Tex3,CG_TEX3,"TEX3",2192,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Tex4,CG_TEX4,"TEX4",2193,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Tex5,CG_TEX5,"TEX5",2194,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Tex6,CG_TEX6,"TEX6",2195,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Tex7,CG_TEX7,"TEX7",2196,0,CG_VARYING_PARAM)
|
||||
|
||||
CG_BINDLOCATION_MACRO(HPos,CG_HPOS,"HPOS",2243,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Col0,CG_COL0,"COL0",2245,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Col1,CG_COL1,"COL1",2246,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Col2,CG_COL2,"COL2",2247,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Col3,CG_COL3,"COL3",2248,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(PSiz,CG_PSIZ,"PSIZ",2309,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Clp0,CG_CLP0,"CLP0",2310,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Clp1,CG_CLP1,"CLP1",2311,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Clp2,CG_CLP2,"CLP2",2312,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Clp3,CG_CLP3,"CLP3",2313,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Clp4,CG_CLP4,"CLP4",2314,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Clp5,CG_CLP5,"CLP5",2315,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(WPos,CG_WPOS,"WPOS",2373,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(PointCoord,CG_POINTCOORD,"POINTCOORD",2374,0,CG_VARYING_PARAM)
|
||||
|
||||
CG_BINDLOCATION_MACRO(Position0,CG_POSITION0,"POSITION0",2437,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Position1,CG_POSITION1,"POSITION1",2438,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Position2,CG_POSITION2,"POSITION2",2439,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Position3,CG_POSITION3,"POSITION3",2440,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Position4,CG_POSITION4,"POSITION4",2441,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Position5,CG_POSITION5,"POSITION5",2442,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Position6,CG_POSITION6,"POSITION6",2443,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Position7,CG_POSITION7,"POSITION7",2444,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Position8,CG_POSITION8,"POSITION8",2445,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Position9,CG_POSITION9,"POSITION9",2446,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Position10,CG_POSITION10,"POSITION10",2447,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Position11,CG_POSITION11,"POSITION11",2448,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Position12,CG_POSITION12,"POSITION12",2449,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Position13,CG_POSITION13,"POSITION13",2450,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Position14,CG_POSITION14,"POSITION14",2451,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Position15,CG_POSITION15,"POSITION15",2452,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Diffuse0,CG_DIFFUSE0,"DIFFUSE0",2501,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Tangent0,CG_TANGENT0,"TANGENT0",2565,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Tangent1,CG_TANGENT1,"TANGENT1",2566,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Tangent2,CG_TANGENT2,"TANGENT2",2567,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Tangent3,CG_TANGENT3,"TANGENT3",2568,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Tangent4,CG_TANGENT4,"TANGENT4",2569,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Tangent5,CG_TANGENT5,"TANGENT5",2570,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Tangent6,CG_TANGENT6,"TANGENT6",2571,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Tangent7,CG_TANGENT7,"TANGENT7",2572,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Tangent8,CG_TANGENT8,"TANGENT8",2573,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Tangent9,CG_TANGENT9,"TANGENT9",2574,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Tangent10,CG_TANGENT10,"TANGENT10",2575,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Tangent11,CG_TANGENT11,"TANGENT11",2576,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Tangent12,CG_TANGENT12,"TANGENT12",2577,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Tangent13,CG_TANGENT13,"TANGENT13",2578,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Tangent14,CG_TANGENT14,"TANGENT14",2579,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Tangent15,CG_TANGENT15,"TANGENT15",2580,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Specular0,CG_SPECULAR0,"SPECULAR0",2629,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BlendIndices0,CG_BLENDINDICES0,"BLENDINDICES0",2693,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BlendIndices1,CG_BLENDINDICES1,"BLENDINDICES1",2694,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BlendIndices2,CG_BLENDINDICES2,"BLENDINDICES2",2695,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BlendIndices3,CG_BLENDINDICES3,"BLENDINDICES3",2696,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BlendIndices4,CG_BLENDINDICES4,"BLENDINDICES4",2697,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BlendIndices5,CG_BLENDINDICES5,"BLENDINDICES5",2698,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BlendIndices6,CG_BLENDINDICES6,"BLENDINDICES6",2699,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BlendIndices7,CG_BLENDINDICES7,"BLENDINDICES7",2700,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BlendIndices8,CG_BLENDINDICES8,"BLENDINDICES8",2701,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BlendIndices9,CG_BLENDINDICES9,"BLENDINDICES9",2702,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BlendIndices10,CG_BLENDINDICES10,"BLENDINDICES10",2703,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BlendIndices11,CG_BLENDINDICES11,"BLENDINDICES11",2704,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BlendIndices12,CG_BLENDINDICES12,"BLENDINDICES12",2705,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BlendIndices13,CG_BLENDINDICES13,"BLENDINDICES13",2706,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BlendIndices14,CG_BLENDINDICES14,"BLENDINDICES14",2707,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BlendIndices15,CG_BLENDINDICES15,"BLENDINDICES15",2708,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Color0,CG_COLOR0,"COLOR0",2757,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Color1,CG_COLOR1,"COLOR1",2758,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Color2,CG_COLOR2,"COLOR2",2759,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Color3,CG_COLOR3,"COLOR3",2760,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Color4,CG_COLOR4,"COLOR4",2761,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Color5,CG_COLOR5,"COLOR5",2762,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Color6,CG_COLOR6,"COLOR6",2763,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Color7,CG_COLOR7,"COLOR7",2764,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Color8,CG_COLOR8,"COLOR8",2765,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Color9,CG_COLOR9,"COLOR9",2766,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Color10,CG_COLOR10,"COLOR10",2767,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Color11,CG_COLOR11,"COLOR11",2768,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Color12,CG_COLOR12,"COLOR12",2769,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Color13,CG_COLOR13,"COLOR13",2770,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Color14,CG_COLOR14,"COLOR14",2771,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Color15,CG_COLOR15,"COLOR15",2772,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(PSize0,CG_PSIZE0,"PSIZE0",2821,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(PSize1,CG_PSIZE1,"PSIZE1",2822,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(PSize2,CG_PSIZE2,"PSIZE2",2823,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(PSize3,CG_PSIZE3,"PSIZE3",2824,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(PSize4,CG_PSIZE4,"PSIZE4",2825,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(PSize5,CG_PSIZE5,"PSIZE5",2826,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(PSize6,CG_PSIZE6,"PSIZE6",2827,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(PSize7,CG_PSIZE7,"PSIZE7",2828,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(PSize8,CG_PSIZE8,"PSIZE8",2829,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(PSize9,CG_PSIZE9,"PSIZE9",2830,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(PSize10,CG_PSIZE10,"PSIZE10",2831,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(PSize11,CG_PSIZE11,"PSIZE11",2832,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(PSize12,CG_PSIZE12,"PSIZE12",2833,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(PSize13,CG_PSIZE13,"PSIZE13",2834,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(PSize14,CG_PSIZE14,"PSIZE14",2835,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(PSize15,CG_PSIZE15,"PSIZE15",2836,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BiNormal0,CG_BINORMAL0,"BINORMAL0",2885,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BiNormal1,CG_BINORMAL1,"BINORMAL1",2886,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BiNormal2,CG_BINORMAL2,"BINORMAL2",2887,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BiNormal3,CG_BINORMAL3,"BINORMAL3",2888,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BiNormal4,CG_BINORMAL4,"BINORMAL4",2889,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BiNormal5,CG_BINORMAL5,"BINORMAL5",2890,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BiNormal6,CG_BINORMAL6,"BINORMAL6",2891,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BiNormal7,CG_BINORMAL7,"BINORMAL7",2892,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BiNormal8,CG_BINORMAL8,"BINORMAL8",2893,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BiNormal9,CG_BINORMAL9,"BINORMAL9",2894,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BiNormal10,CG_BINORMAL10,"BINORMAL10",2895,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BiNormal11,CG_BINORMAL11,"BINORMAL11",2896,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BiNormal12,CG_BINORMAL12,"BINORMAL12",2897,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BiNormal13,CG_BINORMAL13,"BINORMAL13",2898,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BiNormal14,CG_BINORMAL14,"BINORMAL14",2899,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BiNormal15,CG_BINORMAL15,"BINORMAL15",2900,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(FOG0,CG_FOG0,"FOG0",2917,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(FOG1,CG_FOG1,"FOG1",2918,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(FOG2,CG_FOG2,"FOG2",2919,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(FOG3,CG_FOG3,"FOG3",2920,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(FOG4,CG_FOG4,"FOG4",2921,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(FOG5,CG_FOG5,"FOG5",2922,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(FOG6,CG_FOG6,"FOG6",2923,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(FOG7,CG_FOG7,"FOG7",2924,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(FOG8,CG_FOG8,"FOG8",2925,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(FOG9,CG_FOG9,"FOG9",2926,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(FOG10,CG_FOG10,"FOG10",2927,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(FOG11,CG_FOG11,"FOG11",2928,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(FOG12,CG_FOG12,"FOG12",2929,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(FOG13,CG_FOG13,"FOG13",2930,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(FOG14,CG_FOG14,"FOG14",2931,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(FOG15,CG_FOG15,"FOG15",2932,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(DEPTH0,CG_DEPTH0,"DEPTH0",2933,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(DEPTH1,CG_DEPTH1,"DEPTH1",2934,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(DEPTH2,CG_DEPTH2,"DEPTH2",2935,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(DEPTH3,CG_DEPTH3,"DEPTH3",2936,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(DEPTH4,CG_DEPTH4,"DEPTH4",2937,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(DEPTH5,CG_DEPTH5,"DEPTH5",2938,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(DEPTH6,CG_DEPTH6,"DEPTH6",2939,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(DEPTH7,CG_DEPTH7,"DEPTH7",2940,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(DEPTH8,CG_DEPTH8,"DEPTH8",2941,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(DEPTH9,CG_DEPTH9,"DEPTH9",2942,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(DEPTH10,CG_DEPTH10,"DEPTH10",2943,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(DEPTH11,CG_DEPTH11,"DEPTH11",2944,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(DEPTH12,CG_DEPTH12,"DEPTH12",2945,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(DEPTH13,CG_DEPTH13,"DEPTH13",2946,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(DEPTH14,CG_DEPTH14,"DEPTH14",2947,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(DEPTH15,CG_DEPTH15,"DEPTH15",2948,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(SAMPLE0,CG_SAMPLE0,"SAMPLE0",2949,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(SAMPLE1,CG_SAMPLE1,"SAMPLE1",2950,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(SAMPLE2,CG_SAMPLE2,"SAMPLE2",2951,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(SAMPLE3,CG_SAMPLE3,"SAMPLE3",2952,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(SAMPLE4,CG_SAMPLE4,"SAMPLE4",2953,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(SAMPLE5,CG_SAMPLE5,"SAMPLE5",2954,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(SAMPLE6,CG_SAMPLE6,"SAMPLE6",2955,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(SAMPLE7,CG_SAMPLE7,"SAMPLE7",2956,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(SAMPLE8,CG_SAMPLE8,"SAMPLE8",2957,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(SAMPLE9,CG_SAMPLE9,"SAMPLE9",2958,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(SAMPLE10,CG_SAMPLE10,"SAMPLE10",2959,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(SAMPLE11,CG_SAMPLE11,"SAMPLE11",2960,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(SAMPLE12,CG_SAMPLE12,"SAMPLE12",2961,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(SAMPLE13,CG_SAMPLE13,"SAMPLE13",2962,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(SAMPLE14,CG_SAMPLE14,"SAMPLE14",2963,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(SAMPLE15,CG_SAMPLE15,"SAMPLE15",2964,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BlendWeight0,CG_BLENDWEIGHT0,"BLENDWEIGHT0",3028,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BlendWeight1,CG_BLENDWEIGHT1,"BLENDWEIGHT1",3029,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BlendWeight2,CG_BLENDWEIGHT2,"BLENDWEIGHT2",3030,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BlendWeight3,CG_BLENDWEIGHT3,"BLENDWEIGHT3",3031,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BlendWeight4,CG_BLENDWEIGHT4,"BLENDWEIGHT4",3032,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BlendWeight5,CG_BLENDWEIGHT5,"BLENDWEIGHT5",3033,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BlendWeight6,CG_BLENDWEIGHT6,"BLENDWEIGHT6",3034,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BlendWeight7,CG_BLENDWEIGHT7,"BLENDWEIGHT7",3035,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BlendWeight8,CG_BLENDWEIGHT8,"BLENDWEIGHT8",3036,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BlendWeight9,CG_BLENDWEIGHT9,"BLENDWEIGHT9",3037,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BlendWeight10,CG_BLENDWEIGHT10,"BLENDWEIGHT10",3038,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BlendWeight11,CG_BLENDWEIGHT11,"BLENDWEIGHT11",3039,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BlendWeight12,CG_BLENDWEIGHT12,"BLENDWEIGHT12",3040,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BlendWeight13,CG_BLENDWEIGHT13,"BLENDWEIGHT13",3041,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BlendWeight14,CG_BLENDWEIGHT14,"BLENDWEIGHT14",3042,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(BlendWeight15,CG_BLENDWEIGHT15,"BLENDWEIGHT15",3043,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Normal0,CG_NORMAL0,"NORMAL0",3092,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Normal1,CG_NORMAL1,"NORMAL1",3093,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Normal2,CG_NORMAL2,"NORMAL2",3094,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Normal3,CG_NORMAL3,"NORMAL3",3095,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Normal4,CG_NORMAL4,"NORMAL4",3096,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Normal5,CG_NORMAL5,"NORMAL5",3097,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Normal6,CG_NORMAL6,"NORMAL6",3098,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Normal7,CG_NORMAL7,"NORMAL7",3099,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Normal8,CG_NORMAL8,"NORMAL8",3100,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Normal9,CG_NORMAL9,"NORMAL9",3101,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Normal10,CG_NORMAL10,"NORMAL10",3102,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Normal11,CG_NORMAL11,"NORMAL11",3103,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Normal12,CG_NORMAL12,"NORMAL12",3104,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Normal13,CG_NORMAL13,"NORMAL13",3105,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Normal14,CG_NORMAL14,"NORMAL14",3106,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Normal15,CG_NORMAL15,"NORMAL15",3107,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(FogCoord,CG_FOGCOORD,"FOGCOORD",3156,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(TexCoord0,CG_TEXCOORD0,"TEXCOORD0",3220,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(TexCoord1,CG_TEXCOORD1,"TEXCOORD1",3221,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(TexCoord2,CG_TEXCOORD2,"TEXCOORD2",3222,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(TexCoord3,CG_TEXCOORD3,"TEXCOORD3",3223,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(TexCoord4,CG_TEXCOORD4,"TEXCOORD4",3224,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(TexCoord5,CG_TEXCOORD5,"TEXCOORD5",3225,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(TexCoord6,CG_TEXCOORD6,"TEXCOORD6",3226,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(TexCoord7,CG_TEXCOORD7,"TEXCOORD7",3227,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(TexCoord8,CG_TEXCOORD8,"TEXCOORD8",3228,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(TexCoord9,CG_TEXCOORD9,"TEXCOORD9",3229,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(TexCoord10,CG_TEXCOORD10,"TEXCOORD10",3230,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(TexCoord11,CG_TEXCOORD11,"TEXCOORD11",3231,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(TexCoord12,CG_TEXCOORD12,"TEXCOORD12",3232,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(TexCoord13,CG_TEXCOORD13,"TEXCOORD13",3233,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(TexCoord14,CG_TEXCOORD14,"TEXCOORD14",3234,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(TexCoord15,CG_TEXCOORD15,"TEXCOORD15",3235,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(CombinerConst0,CG_COMBINER_CONST0,"COMBINER_CONST0",3284,0,CGI_UNIFORM_PARAM)
|
||||
CG_BINDLOCATION_MACRO(CombinerConst1,CG_COMBINER_CONST1,"COMBINER_CONST1",3285,0,CGI_UNIFORM_PARAM)
|
||||
CG_BINDLOCATION_MACRO(CombinerStageConst0,CG_COMBINER_STAGE_CONST0,"COMBINER_STAGE_CONST0",3286,1,CGI_UNIFORM_PARAM)
|
||||
CG_BINDLOCATION_MACRO(CombinerStageConst1,CG_COMBINER_STAGE_CONST1,"COMBINER_STAGE_CONST1",3287,1,CGI_UNIFORM_PARAM)
|
||||
CG_BINDLOCATION_MACRO(OffsetTextureMatrix,CG_OFFSET_TEXTURE_MATRIX,"OFFSET_TEXTURE_MATRIX",3288,0,CGI_UNIFORM_PARAM)
|
||||
CG_BINDLOCATION_MACRO(OffsetTextureScale,CG_OFFSET_TEXTURE_SCALE,"OFFSET_TEXTURE_SCALE",3289,0,CGI_UNIFORM_PARAM)
|
||||
CG_BINDLOCATION_MACRO(OffsetTextureBias,CG_OFFSET_TEXTURE_BIAS,"OFFSET_TEXTURE_BIAS",3290,0,CGI_UNIFORM_PARAM)
|
||||
CG_BINDLOCATION_MACRO(ConstEye,CG_CONST_EYE,"CONST_EYE",3291,0,CGI_UNIFORM_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Coverage, CG_COVERAGE, "COVERAGE", 3292, 0, CG_VARYING_PARAM)
|
||||
|
||||
CG_BINDLOCATION_MACRO(TessFactor,CG_TESSFACTOR,"TESSFACTOR",3255,0,CG_VARYING_PARAM)
|
||||
|
||||
CG_BINDLOCATION_MACRO(GLSLUniform,CG_GLSL_UNIFORM,"glsl_uniform",3300,1,CGI_UNIFORM_PARAM)
|
||||
CG_BINDLOCATION_MACRO(GLSLAttrib,CG_GLSL_ATTRIB,"glsl_attrib",3301,1,CG_VARYING_PARAM)
|
||||
|
||||
CG_BINDLOCATION_MACRO(Env,CG_ENV,"ENV",3302,1,CG_VARYING_PARAM)
|
||||
|
||||
CG_BINDLOCATION_MACRO(HLSLUniform,CG_HLSL_UNIFORM,"hlsl_uniform",3559,1,CGI_UNIFORM_PARAM)
|
||||
CG_BINDLOCATION_MACRO(HLSLAttrib,CG_HLSL_VARYING,"hlsl_attrib",3560,1,CG_VARYING_PARAM)
|
||||
|
||||
CG_BINDLOCATION_MACRO(SamplerResource,CG_SAMPLER_RES, "SAMPLER_RES", 3561, 1, CGI_UNIFORM_PARAM)
|
||||
|
||||
CG_BINDLOCATION_MACRO(LastColor0, CG_LASTCOL0, "LASTCOL0", 4400, 0, CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(LastColor1, CG_LASTCOL1, "LASTCOL1", 4401, 0, CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(LastColor2, CG_LASTCOL2, "LASTCOL2", 4402, 0, CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(LastColor3, CG_LASTCOL3, "LASTCOL3", 4403, 0, CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(LastColor4, CG_LASTCOL4, "LASTCOL4", 4404, 0, CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(LastColor5, CG_LASTCOL5, "LASTCOL5", 4405, 0, CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(LastColor6, CG_LASTCOL6, "LASTCOL6", 4406, 0, CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(LastColor7, CG_LASTCOL7, "LASTCOL7", 4407, 0, CG_VARYING_PARAM)
|
||||
|
||||
CG_BINDLOCATION_MACRO(Face,CG_FACE,"FACE",4410,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(PrimitiveId,CG_PRIMITIVEID,"PRIMITIVEID",4411,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(InstanceId,CG_INSTANCEID,"INSTANCEID",4412,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(SampleId,CG_SAMPLEID,"SAMPLEID",4413,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(VertexId,CG_VERTEXID,"VERTEXID",4414,0,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(Layer,CG_LAYER,"LAYER",4415,1,CG_VARYING_PARAM)
|
||||
CG_BINDLOCATION_MACRO(SampleMask,CG_SAMPLEMASK,"SAMPLEMASK",4416,0,CG_VARYING_PARAM)
|
||||
|
||||
#undef CG_BINDLOCATION_MACRO
|
191
Externals/Cg/cg_datatypes.h
vendored
Normal file
191
Externals/Cg/cg_datatypes.h
vendored
Normal file
@ -0,0 +1,191 @@
|
||||
/*
|
||||
*
|
||||
* Copyright (c) 2002-2007, NVIDIA Corporation.
|
||||
*
|
||||
*
|
||||
*
|
||||
* NVIDIA Corporation("NVIDIA") supplies this software to you in consideration
|
||||
* of your agreement to the following terms, and your use, installation,
|
||||
* modification or redistribution of this NVIDIA software constitutes
|
||||
* acceptance of these terms. If you do not agree with these terms, please do
|
||||
* not use, install, modify or redistribute this NVIDIA software.
|
||||
*
|
||||
*
|
||||
*
|
||||
* In consideration of your agreement to abide by the following terms, and
|
||||
* subject to these terms, NVIDIA grants you a personal, non-exclusive license,
|
||||
* under NVIDIA's copyrights in this original NVIDIA software (the "NVIDIA
|
||||
* Software"), to use, reproduce, modify and redistribute the NVIDIA
|
||||
* Software, with or without modifications, in source and/or binary forms;
|
||||
* provided that if you redistribute the NVIDIA Software, you must retain the
|
||||
* copyright notice of NVIDIA, this notice and the following text and
|
||||
* disclaimers in all such redistributions of the NVIDIA Software. Neither the
|
||||
* name, trademarks, service marks nor logos of NVIDIA Corporation may be used
|
||||
* to endorse or promote products derived from the NVIDIA Software without
|
||||
* specific prior written permission from NVIDIA. Except as expressly stated
|
||||
* in this notice, no other rights or licenses express or implied, are granted
|
||||
* by NVIDIA herein, including but not limited to any patent rights that may be
|
||||
* infringed by your derivative works or by other works in which the NVIDIA
|
||||
* Software may be incorporated. No hardware is licensed hereunder.
|
||||
*
|
||||
*
|
||||
*
|
||||
* THE NVIDIA SOFTWARE IS BEING PROVIDED ON AN "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING
|
||||
* WITHOUT LIMITATION, WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR ITS USE AND OPERATION
|
||||
* EITHER ALONE OR IN COMBINATION WITH OTHER PRODUCTS.
|
||||
*
|
||||
*
|
||||
*
|
||||
* IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL,
|
||||
* EXEMPLARY, CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, LOST
|
||||
* PROFITS; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
* PROFITS; OR BUSINESS INTERRUPTION) OR ARISING IN ANY WAY OUT OF THE USE,
|
||||
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE NVIDIA SOFTWARE,
|
||||
* HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING
|
||||
* NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF NVIDIA HAS BEEN ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* The following macro invocations define the supported CG basic data types.
|
||||
*
|
||||
* The macros have the form :
|
||||
*
|
||||
* CG_DATATYPE_MACRO(name, compiler_name, enum_name, base_name, nrows, ncols, pc_name)
|
||||
*
|
||||
* name : The name of the data type.
|
||||
* compiler_name : The name of the data type within the compiler syntax.
|
||||
* enum_name : The C enumerant.
|
||||
* base_name : The C enumerant of the base type.
|
||||
* nrows : Number of rows for matrix types. Should be 0 other-wise.
|
||||
* ncols : Number of columns for scalar, vector, and matrix types.
|
||||
* pc_name : The C enumerant of the parameter class.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
|
||||
CG_DATATYPE_MACRO(Half,half,CG_HALF,CG_HALF,0,1,CG_PARAMETERCLASS_SCALAR)
|
||||
CG_DATATYPE_MACRO(Half2,half2,CG_HALF2,CG_HALF,0,2,CG_PARAMETERCLASS_VECTOR)
|
||||
CG_DATATYPE_MACRO(Half3,half3,CG_HALF3,CG_HALF,0,3,CG_PARAMETERCLASS_VECTOR)
|
||||
CG_DATATYPE_MACRO(Half4,half4,CG_HALF4,CG_HALF,0,4,CG_PARAMETERCLASS_VECTOR)
|
||||
CG_DATATYPE_MACRO(Half1x1,half1x1,CG_HALF1x1,CG_HALF,1,1,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Half1x2,half1x2,CG_HALF1x2,CG_HALF,1,2,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Half1x3,half1x3,CG_HALF1x3,CG_HALF,1,3,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Half1x4,half1x4,CG_HALF1x4,CG_HALF,1,4,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Half2x1,half2x1,CG_HALF2x1,CG_HALF,2,1,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Half2x2,half2x2,CG_HALF2x2,CG_HALF,2,2,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Half2x3,half2x3,CG_HALF2x3,CG_HALF,2,3,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Half2x4,half2x4,CG_HALF2x4,CG_HALF,2,4,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Half3x1,half3x1,CG_HALF3x1,CG_HALF,3,1,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Half3x2,half3x2,CG_HALF3x2,CG_HALF,3,2,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Half3x3,half3x3,CG_HALF3x3,CG_HALF,3,3,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Half3x4,half3x4,CG_HALF3x4,CG_HALF,3,4,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Half4x1,half4x1,CG_HALF4x1,CG_HALF,4,1,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Half4x2,half4x2,CG_HALF4x2,CG_HALF,4,2,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Half4x3,half4x3,CG_HALF4x3,CG_HALF,4,3,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Half4x4,half4x4,CG_HALF4x4,CG_HALF,4,4,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Float,float,CG_FLOAT,CG_FLOAT,0,1,CG_PARAMETERCLASS_SCALAR)
|
||||
CG_DATATYPE_MACRO(Float2,float2,CG_FLOAT2,CG_FLOAT,0,2,CG_PARAMETERCLASS_VECTOR)
|
||||
CG_DATATYPE_MACRO(Float3,float3,CG_FLOAT3,CG_FLOAT,0,3,CG_PARAMETERCLASS_VECTOR)
|
||||
CG_DATATYPE_MACRO(Float4,float4,CG_FLOAT4,CG_FLOAT,0,4,CG_PARAMETERCLASS_VECTOR)
|
||||
CG_DATATYPE_MACRO(Float1x1,float1x1,CG_FLOAT1x1,CG_FLOAT,1,1,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Float1x2,float1x2,CG_FLOAT1x2,CG_FLOAT,1,2,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Float1x3,float1x3,CG_FLOAT1x3,CG_FLOAT,1,3,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Float1x4,float1x4,CG_FLOAT1x4,CG_FLOAT,1,4,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Float2x1,float2x1,CG_FLOAT2x1,CG_FLOAT,2,1,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Float2x2,float2x2,CG_FLOAT2x2,CG_FLOAT,2,2,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Float2x3,float2x3,CG_FLOAT2x3,CG_FLOAT,2,3,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Float2x4,float2x4,CG_FLOAT2x4,CG_FLOAT,2,4,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Float3x1,float3x1,CG_FLOAT3x1,CG_FLOAT,3,1,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Float3x2,float3x2,CG_FLOAT3x2,CG_FLOAT,3,2,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Float3x3,float3x3,CG_FLOAT3x3,CG_FLOAT,3,3,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Float3x4,float3x4,CG_FLOAT3x4,CG_FLOAT,3,4,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Float4x1,float4x1,CG_FLOAT4x1,CG_FLOAT,4,1,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Float4x2,float4x2,CG_FLOAT4x2,CG_FLOAT,4,2,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Float4x3,float4x3,CG_FLOAT4x3,CG_FLOAT,4,3,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Float4x4,float4x4,CG_FLOAT4x4,CG_FLOAT,4,4,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Sampler1D,sampler1D,CG_SAMPLER1D,CG_SAMPLER1D,0,0,CG_PARAMETERCLASS_SAMPLER)
|
||||
CG_DATATYPE_MACRO(Sampler2D,sampler2D,CG_SAMPLER2D,CG_SAMPLER2D,0,0,CG_PARAMETERCLASS_SAMPLER)
|
||||
CG_DATATYPE_MACRO(Sampler3D,sampler3D,CG_SAMPLER3D,CG_SAMPLER3D,0,0,CG_PARAMETERCLASS_SAMPLER)
|
||||
CG_DATATYPE_MACRO(SamplerRECT,samplerRECT,CG_SAMPLERRECT,CG_SAMPLERRECT,0,0,CG_PARAMETERCLASS_SAMPLER)
|
||||
CG_DATATYPE_MACRO(SamplerCUBE,samplerCUBE,CG_SAMPLERCUBE,CG_SAMPLERCUBE,0,0,CG_PARAMETERCLASS_SAMPLER)
|
||||
CG_DATATYPE_MACRO(Fixed,fixed,CG_FIXED,CG_FIXED,0,1,CG_PARAMETERCLASS_SCALAR)
|
||||
CG_DATATYPE_MACRO(Fixed2,fixed2,CG_FIXED2,CG_FIXED,0,2,CG_PARAMETERCLASS_VECTOR)
|
||||
CG_DATATYPE_MACRO(Fixed3,fixed3,CG_FIXED3,CG_FIXED,0,3,CG_PARAMETERCLASS_VECTOR)
|
||||
CG_DATATYPE_MACRO(Fixed4,fixed4,CG_FIXED4,CG_FIXED,0,4,CG_PARAMETERCLASS_VECTOR)
|
||||
CG_DATATYPE_MACRO(Fixed1x1,fixed1x1,CG_FIXED1x1,CG_FIXED,1,1,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Fixed1x2,fixed1x2,CG_FIXED1x2,CG_FIXED,1,2,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Fixed1x3,fixed1x3,CG_FIXED1x3,CG_FIXED,1,3,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Fixed1x4,fixed1x4,CG_FIXED1x4,CG_FIXED,1,4,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Fixed2x1,fixed2x1,CG_FIXED2x1,CG_FIXED,2,1,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Fixed2x2,fixed2x2,CG_FIXED2x2,CG_FIXED,2,2,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Fixed2x3,fixed2x3,CG_FIXED2x3,CG_FIXED,2,3,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Fixed2x4,fixed2x4,CG_FIXED2x4,CG_FIXED,2,4,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Fixed3x1,fixed3x1,CG_FIXED3x1,CG_FIXED,3,1,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Fixed3x2,fixed3x2,CG_FIXED3x2,CG_FIXED,3,2,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Fixed3x3,fixed3x3,CG_FIXED3x3,CG_FIXED,3,3,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Fixed3x4,fixed3x4,CG_FIXED3x4,CG_FIXED,3,4,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Fixed4x1,fixed4x1,CG_FIXED4x1,CG_FIXED,4,1,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Fixed4x2,fixed4x2,CG_FIXED4x2,CG_FIXED,4,2,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Fixed4x3,fixed4x3,CG_FIXED4x3,CG_FIXED,4,3,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Fixed4x4,fixed4x4,CG_FIXED4x4,CG_FIXED,4,4,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Half1,half1,CG_HALF1,CG_HALF,0,1,CG_PARAMETERCLASS_VECTOR)
|
||||
CG_DATATYPE_MACRO(Float1,float1,CG_FLOAT1,CG_FLOAT,0,1,CG_PARAMETERCLASS_VECTOR)
|
||||
CG_DATATYPE_MACRO(Fixed1,fixed1,CG_FIXED1,CG_FIXED,0,1,CG_PARAMETERCLASS_VECTOR)
|
||||
CG_DATATYPE_MACRO(Int,int,CG_INT,CG_INT,0,1,CG_PARAMETERCLASS_SCALAR)
|
||||
CG_DATATYPE_MACRO(Int1,int1,CG_INT1,CG_INT,0,1,CG_PARAMETERCLASS_VECTOR)
|
||||
CG_DATATYPE_MACRO(Int2,int2,CG_INT2,CG_INT,0,2,CG_PARAMETERCLASS_VECTOR)
|
||||
CG_DATATYPE_MACRO(Int3,int3,CG_INT3,CG_INT,0,3,CG_PARAMETERCLASS_VECTOR)
|
||||
CG_DATATYPE_MACRO(Int4,int4,CG_INT4,CG_INT,0,4,CG_PARAMETERCLASS_VECTOR)
|
||||
CG_DATATYPE_MACRO(Int1x1,int1x1,CG_INT1x1,CG_INT,1,1,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Int1x2,int1x2,CG_INT1x2,CG_INT,1,2,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Int1x3,int1x3,CG_INT1x3,CG_INT,1,3,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Int1x4,int1x4,CG_INT1x4,CG_INT,1,4,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Int2x1,int2x1,CG_INT2x1,CG_INT,2,1,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Int2x2,int2x2,CG_INT2x2,CG_INT,2,2,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Int2x3,int2x3,CG_INT2x3,CG_INT,2,3,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Int2x4,int2x4,CG_INT2x4,CG_INT,2,4,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Int3x1,int3x1,CG_INT3x1,CG_INT,3,1,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Int3x2,int3x2,CG_INT3x2,CG_INT,3,2,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Int3x3,int3x3,CG_INT3x3,CG_INT,3,3,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Int3x4,int3x4,CG_INT3x4,CG_INT,3,4,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Int4x1,int4x1,CG_INT4x1,CG_INT,4,1,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Int4x2,int4x2,CG_INT4x2,CG_INT,4,2,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Int4x3,int4x3,CG_INT4x3,CG_INT,4,3,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Int4x4,int4x4,CG_INT4x4,CG_INT,4,4,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Bool,bool,CG_BOOL,CG_BOOL,0,1,CG_PARAMETERCLASS_SCALAR)
|
||||
CG_DATATYPE_MACRO(Bool1,bool1,CG_BOOL1,CG_BOOL,0,1,CG_PARAMETERCLASS_VECTOR)
|
||||
CG_DATATYPE_MACRO(Bool2,bool2,CG_BOOL2,CG_BOOL,0,2,CG_PARAMETERCLASS_VECTOR)
|
||||
CG_DATATYPE_MACRO(Bool3,bool3,CG_BOOL3,CG_BOOL,0,3,CG_PARAMETERCLASS_VECTOR)
|
||||
CG_DATATYPE_MACRO(Bool4,bool4,CG_BOOL4,CG_BOOL,0,4,CG_PARAMETERCLASS_VECTOR)
|
||||
CG_DATATYPE_MACRO(Bool1x1,bool1x1,CG_BOOL1x1,CG_BOOL,1,1,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Bool1x2,bool1x2,CG_BOOL1x2,CG_BOOL,1,2,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Bool1x3,bool1x3,CG_BOOL1x3,CG_BOOL,1,3,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Bool1x4,bool1x4,CG_BOOL1x4,CG_BOOL,1,4,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Bool2x1,bool2x1,CG_BOOL2x1,CG_BOOL,2,1,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Bool2x2,bool2x2,CG_BOOL2x2,CG_BOOL,2,2,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Bool2x3,bool2x3,CG_BOOL2x3,CG_BOOL,2,3,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Bool2x4,bool2x4,CG_BOOL2x4,CG_BOOL,2,4,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Bool3x1,bool3x1,CG_BOOL3x1,CG_BOOL,3,1,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Bool3x2,bool3x2,CG_BOOL3x2,CG_BOOL,3,2,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Bool3x3,bool3x3,CG_BOOL3x3,CG_BOOL,3,3,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Bool3x4,bool3x4,CG_BOOL3x4,CG_BOOL,3,4,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Bool4x1,bool4x1,CG_BOOL4x1,CG_BOOL,4,1,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Bool4x2,bool4x2,CG_BOOL4x2,CG_BOOL,4,2,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Bool4x3,bool4x3,CG_BOOL4x3,CG_BOOL,4,3,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(Bool4x4,bool4x4,CG_BOOL4x4,CG_BOOL,4,4,CG_PARAMETERCLASS_MATRIX)
|
||||
CG_DATATYPE_MACRO(String,string,CG_STRING,CG_STRING,0,1,CG_PARAMETERCLASS_OBJECT)
|
||||
CG_DATATYPE_MACRO(Program,program,CG_PROGRAM_TYPE,CG_PROGRAM_TYPE,0,0,CG_PARAMETERCLASS_OBJECT)
|
||||
CG_DATATYPE_MACRO(Texture,texture,CG_TEXTURE,CG_TEXTURE,0,0,CG_PARAMETERCLASS_OBJECT)
|
||||
CG_DATATYPE_MACRO(Sampler1DARRAY,sampler1DARRAY,CG_SAMPLER1DARRAY,CG_SAMPLER1DARRAY,0,0,CG_PARAMETERCLASS_SAMPLER)
|
||||
CG_DATATYPE_MACRO(Sampler2DARRAY,sampler2DARRAY,CG_SAMPLER2DARRAY,CG_SAMPLER2DARRAY,0,0,CG_PARAMETERCLASS_SAMPLER)
|
||||
CG_DATATYPE_MACRO(SamplerCUBEARRAY,samplerCUBEARRAY,CG_SAMPLERCUBEARRAY,CG_SAMPLERCUBEARRAY,0,0,CG_PARAMETERCLASS_SAMPLER)
|
||||
CG_DATATYPE_MACRO(VertexShader, vertexshader, CG_VERTEXSHADER_TYPE, CG_VERTEXSHADER_TYPE, 0, 0, CG_PARAMETERCLASS_OBJECT)
|
||||
CG_DATATYPE_MACRO(PixelShader, pixelshader, CG_PIXELSHADER_TYPE, CG_PIXELSHADER_TYPE, 0, 0, CG_PARAMETERCLASS_OBJECT)
|
||||
CG_DATATYPE_MACRO(Sampler, sampler, CG_SAMPLER, CG_SAMPLER, 0, 0, CG_PARAMETERCLASS_SAMPLER)
|
||||
#undef CG_DATATYPE_MACRO
|
112
Externals/Cg/cg_enums.h
vendored
Normal file
112
Externals/Cg/cg_enums.h
vendored
Normal file
@ -0,0 +1,112 @@
|
||||
|
||||
/*
|
||||
*
|
||||
* Copyright (c) 2002-2007, NVIDIA Corporation.
|
||||
*
|
||||
*
|
||||
*
|
||||
* NVIDIA Corporation("NVIDIA") supplies this software to you in consideration
|
||||
* of your agreement to the following terms, and your use, installation,
|
||||
* modification or redistribution of this NVIDIA software constitutes
|
||||
* acceptance of these terms. If you do not agree with these terms, please do
|
||||
* not use, install, modify or redistribute this NVIDIA software.
|
||||
*
|
||||
*
|
||||
*
|
||||
* In consideration of your agreement to abide by the following terms, and
|
||||
* subject to these terms, NVIDIA grants you a personal, non-exclusive license,
|
||||
* under NVIDIA's copyrights in this original NVIDIA software (the "NVIDIA
|
||||
* Software"), to use, reproduce, modify and redistribute the NVIDIA
|
||||
* Software, with or without modifications, in source and/or binary forms;
|
||||
* provided that if you redistribute the NVIDIA Software, you must retain the
|
||||
* copyright notice of NVIDIA, this notice and the following text and
|
||||
* disclaimers in all such redistributions of the NVIDIA Software. Neither the
|
||||
* name, trademarks, service marks nor logos of NVIDIA Corporation may be used
|
||||
* to endorse or promote products derived from the NVIDIA Software without
|
||||
* specific prior written permission from NVIDIA. Except as expressly stated
|
||||
* in this notice, no other rights or licenses express or implied, are granted
|
||||
* by NVIDIA herein, including but not limited to any patent rights that may be
|
||||
* infringed by your derivative works or by other works in which the NVIDIA
|
||||
* Software may be incorporated. No hardware is licensed hereunder.
|
||||
*
|
||||
*
|
||||
*
|
||||
* THE NVIDIA SOFTWARE IS BEING PROVIDED ON AN "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING
|
||||
* WITHOUT LIMITATION, WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR ITS USE AND OPERATION
|
||||
* EITHER ALONE OR IN COMBINATION WITH OTHER PRODUCTS.
|
||||
*
|
||||
*
|
||||
*
|
||||
* IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL,
|
||||
* EXEMPLARY, CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, LOST
|
||||
* PROFITS; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
* PROFITS; OR BUSINESS INTERRUPTION) OR ARISING IN ANY WAY OUT OF THE USE,
|
||||
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE NVIDIA SOFTWARE,
|
||||
* HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING
|
||||
* NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF NVIDIA HAS BEEN ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* The following macro invocations define the supported CG basic data types.
|
||||
*
|
||||
* The macros have the form :
|
||||
*
|
||||
* CG_ENUM_MACRO(enum_name, enum_val)
|
||||
*
|
||||
* enum_name : The C enumerant name.
|
||||
* enum_val : The enumerant value.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
|
||||
CG_ENUM_MACRO(CG_UNKNOWN, 4096)
|
||||
CG_ENUM_MACRO(CG_IN, 4097)
|
||||
CG_ENUM_MACRO(CG_OUT, 4098)
|
||||
CG_ENUM_MACRO(CG_INOUT, 4099)
|
||||
CG_ENUM_MACRO(CG_MIXED, 4100)
|
||||
CG_ENUM_MACRO(CG_VARYING, 4101)
|
||||
CG_ENUM_MACRO(CG_UNIFORM, 4102)
|
||||
CG_ENUM_MACRO(CG_CONSTANT, 4103)
|
||||
CG_ENUM_MACRO(CG_PROGRAM_SOURCE, 4104)
|
||||
CG_ENUM_MACRO(CG_PROGRAM_ENTRY, 4105)
|
||||
CG_ENUM_MACRO(CG_COMPILED_PROGRAM, 4106)
|
||||
CG_ENUM_MACRO(CG_PROGRAM_PROFILE, 4107)
|
||||
CG_ENUM_MACRO(CG_GLOBAL, 4108)
|
||||
CG_ENUM_MACRO(CG_PROGRAM, 4109)
|
||||
CG_ENUM_MACRO(CG_DEFAULT, 4110)
|
||||
CG_ENUM_MACRO(CG_ERROR, 4111)
|
||||
CG_ENUM_MACRO(CG_SOURCE, 4112)
|
||||
CG_ENUM_MACRO(CG_OBJECT, 4113)
|
||||
CG_ENUM_MACRO(CG_COMPILE_MANUAL, 4114)
|
||||
CG_ENUM_MACRO(CG_COMPILE_IMMEDIATE, 4115)
|
||||
CG_ENUM_MACRO(CG_COMPILE_LAZY, 4116)
|
||||
CG_ENUM_MACRO(CG_CURRENT, 4117)
|
||||
CG_ENUM_MACRO(CG_LITERAL, 4118)
|
||||
CG_ENUM_MACRO(CG_VERSION, 4119)
|
||||
CG_ENUM_MACRO(CG_ROW_MAJOR, 4120)
|
||||
CG_ENUM_MACRO(CG_COLUMN_MAJOR, 4121)
|
||||
CG_ENUM_MACRO(CG_FRAGMENT, 4122)
|
||||
CG_ENUM_MACRO(CG_VERTEX, 4123)
|
||||
CG_ENUM_MACRO(CG_POINT, 4124)
|
||||
CG_ENUM_MACRO(CG_LINE, 4125)
|
||||
CG_ENUM_MACRO(CG_LINE_ADJ, 4126)
|
||||
CG_ENUM_MACRO(CG_TRIANGLE, 4127)
|
||||
CG_ENUM_MACRO(CG_TRIANGLE_ADJ, 4128)
|
||||
CG_ENUM_MACRO(CG_POINT_OUT, 4129)
|
||||
CG_ENUM_MACRO(CG_LINE_OUT, 4130)
|
||||
CG_ENUM_MACRO(CG_TRIANGLE_OUT, 4131)
|
||||
CG_ENUM_MACRO(CG_IMMEDIATE_PARAMETER_SETTING, 4132)
|
||||
CG_ENUM_MACRO(CG_DEFERRED_PARAMETER_SETTING, 4133)
|
||||
CG_ENUM_MACRO(CG_NO_LOCKS_POLICY, 4134)
|
||||
CG_ENUM_MACRO(CG_THREAD_SAFE_POLICY, 4135)
|
||||
CG_ENUM_MACRO(CG_FORCE_UPPER_CASE_POLICY, 4136)
|
||||
CG_ENUM_MACRO(CG_UNCHANGED_CASE_POLICY, 4137)
|
||||
#undef CG_ENUM_MACRO
|
||||
|
||||
|
320
Externals/Cg/cg_errors.h
vendored
Normal file
320
Externals/Cg/cg_errors.h
vendored
Normal file
@ -0,0 +1,320 @@
|
||||
/*
|
||||
*
|
||||
* Copyright (c) 2002-2007, NVIDIA Corporation.
|
||||
*
|
||||
*
|
||||
*
|
||||
* NVIDIA Corporation("NVIDIA") supplies this software to you in consideration
|
||||
* of your agreement to the following terms, and your use, installation,
|
||||
* modification or redistribution of this NVIDIA software constitutes
|
||||
* acceptance of these terms. If you do not agree with these terms, please do
|
||||
* not use, install, modify or redistribute this NVIDIA software.
|
||||
*
|
||||
*
|
||||
*
|
||||
* In consideration of your agreement to abide by the following terms, and
|
||||
* subject to these terms, NVIDIA grants you a personal, non-exclusive license,
|
||||
* under NVIDIA's copyrights in this original NVIDIA software (the "NVIDIA
|
||||
* Software"), to use, reproduce, modify and redistribute the NVIDIA
|
||||
* Software, with or without modifications, in source and/or binary forms;
|
||||
* provided that if you redistribute the NVIDIA Software, you must retain the
|
||||
* copyright notice of NVIDIA, this notice and the following text and
|
||||
* disclaimers in all such redistributions of the NVIDIA Software. Neither the
|
||||
* name, trademarks, service marks nor logos of NVIDIA Corporation may be used
|
||||
* to endorse or promote products derived from the NVIDIA Software without
|
||||
* specific prior written permission from NVIDIA. Except as expressly stated
|
||||
* in this notice, no other rights or licenses express or implied, are granted
|
||||
* by NVIDIA herein, including but not limited to any patent rights that may be
|
||||
* infringed by your derivative works or by other works in which the NVIDIA
|
||||
* Software may be incorporated. No hardware is licensed hereunder.
|
||||
*
|
||||
*
|
||||
*
|
||||
* THE NVIDIA SOFTWARE IS BEING PROVIDED ON AN "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING
|
||||
* WITHOUT LIMITATION, WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR ITS USE AND OPERATION
|
||||
* EITHER ALONE OR IN COMBINATION WITH OTHER PRODUCTS.
|
||||
*
|
||||
*
|
||||
*
|
||||
* IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL,
|
||||
* EXEMPLARY, CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, LOST
|
||||
* PROFITS; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
* PROFITS; OR BUSINESS INTERRUPTION) OR ARISING IN ANY WAY OUT OF THE USE,
|
||||
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE NVIDIA SOFTWARE,
|
||||
* HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING
|
||||
* NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF NVIDIA HAS BEEN ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
* The following macro invocations define error codes returned by various cg
|
||||
* API functions.
|
||||
*
|
||||
* The macros have the form :
|
||||
*
|
||||
* CG_ERROR_MACRO(code, enum_name, message)
|
||||
*
|
||||
* code : The integer error code associated with the error.
|
||||
* enum_name : The name of enumerant of the error code in the API.
|
||||
* message : A description string associated with the error.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
CG_ERROR_MACRO(0,
|
||||
CG_NO_ERROR,
|
||||
"No error has occurred.")
|
||||
|
||||
CG_ERROR_MACRO(1,
|
||||
CG_COMPILER_ERROR,
|
||||
"The compile returned an error.")
|
||||
|
||||
CG_ERROR_MACRO(2,
|
||||
CG_INVALID_PARAMETER_ERROR,
|
||||
"The parameter used is invalid.")
|
||||
|
||||
CG_ERROR_MACRO(3,
|
||||
CG_INVALID_PROFILE_ERROR,
|
||||
"The profile is not supported.")
|
||||
|
||||
CG_ERROR_MACRO(4,
|
||||
CG_PROGRAM_LOAD_ERROR,
|
||||
"The program could not load.")
|
||||
|
||||
CG_ERROR_MACRO(5,
|
||||
CG_PROGRAM_BIND_ERROR,
|
||||
"The program could not bind.")
|
||||
|
||||
CG_ERROR_MACRO(6,
|
||||
CG_PROGRAM_NOT_LOADED_ERROR,
|
||||
"The program must be loaded before this operation may be used.")
|
||||
|
||||
CG_ERROR_MACRO(7,
|
||||
CG_UNSUPPORTED_GL_EXTENSION_ERROR,
|
||||
"An unsupported GL extension was required to perform this operation.")
|
||||
|
||||
CG_ERROR_MACRO(8,
|
||||
CG_INVALID_VALUE_TYPE_ERROR,
|
||||
"An unknown value type was assigned to a parameter.")
|
||||
|
||||
CG_ERROR_MACRO(9,
|
||||
CG_NOT_MATRIX_PARAM_ERROR,
|
||||
"The parameter is not of matrix type.")
|
||||
|
||||
CG_ERROR_MACRO(10,
|
||||
CG_INVALID_ENUMERANT_ERROR,
|
||||
"The enumerant parameter has an invalid value.")
|
||||
|
||||
CG_ERROR_MACRO(11,
|
||||
CG_NOT_4x4_MATRIX_ERROR,
|
||||
"The parameter must be a 4x4 matrix type.")
|
||||
|
||||
CG_ERROR_MACRO(12,
|
||||
CG_FILE_READ_ERROR,
|
||||
"The file could not be read.")
|
||||
|
||||
CG_ERROR_MACRO(13,
|
||||
CG_FILE_WRITE_ERROR,
|
||||
"The file could not be written.")
|
||||
|
||||
CG_ERROR_MACRO(14,
|
||||
CG_NVPARSE_ERROR,
|
||||
"nvparse could not successfully parse the output from the Cg "
|
||||
"compiler backend.")
|
||||
|
||||
CG_ERROR_MACRO(15,
|
||||
CG_MEMORY_ALLOC_ERROR,
|
||||
"Memory allocation failed.")
|
||||
|
||||
CG_ERROR_MACRO(16,
|
||||
CG_INVALID_CONTEXT_HANDLE_ERROR,
|
||||
"Invalid context handle.")
|
||||
|
||||
CG_ERROR_MACRO(17,
|
||||
CG_INVALID_PROGRAM_HANDLE_ERROR,
|
||||
"Invalid program handle.")
|
||||
|
||||
CG_ERROR_MACRO(18,
|
||||
CG_INVALID_PARAM_HANDLE_ERROR,
|
||||
"Invalid parameter handle.")
|
||||
|
||||
CG_ERROR_MACRO(19,
|
||||
CG_UNKNOWN_PROFILE_ERROR,
|
||||
"The specified profile is unknown.")
|
||||
|
||||
CG_ERROR_MACRO(20,
|
||||
CG_VAR_ARG_ERROR,
|
||||
"The variable arguments were specified incorrectly.")
|
||||
|
||||
CG_ERROR_MACRO(21,
|
||||
CG_INVALID_DIMENSION_ERROR,
|
||||
"The dimension value is invalid.")
|
||||
|
||||
CG_ERROR_MACRO(22,
|
||||
CG_ARRAY_PARAM_ERROR,
|
||||
"The parameter must be an array.")
|
||||
|
||||
CG_ERROR_MACRO(23,
|
||||
CG_OUT_OF_ARRAY_BOUNDS_ERROR,
|
||||
"Index into the array is out of bounds.")
|
||||
|
||||
CG_ERROR_MACRO(24,
|
||||
CG_CONFLICTING_TYPES_ERROR,
|
||||
"A type being added to the context conflicts with an "
|
||||
"existing type.")
|
||||
|
||||
CG_ERROR_MACRO(25,
|
||||
CG_CONFLICTING_PARAMETER_TYPES_ERROR,
|
||||
"The parameters being bound have conflicting types.")
|
||||
|
||||
CG_ERROR_MACRO(26,
|
||||
CG_PARAMETER_IS_NOT_SHARED_ERROR,
|
||||
"The parameter must be global.")
|
||||
|
||||
CG_ERROR_MACRO(27,
|
||||
CG_INVALID_PARAMETER_VARIABILITY_ERROR,
|
||||
"The parameter could not be changed to the given variability.")
|
||||
|
||||
CG_ERROR_MACRO(28,
|
||||
CG_CANNOT_DESTROY_PARAMETER_ERROR,
|
||||
"Cannot destroy the parameter. It is bound to other parameters "
|
||||
"or is not a root parameter.")
|
||||
|
||||
|
||||
CG_ERROR_MACRO(29,
|
||||
CG_NOT_ROOT_PARAMETER_ERROR,
|
||||
"The parameter is not a root parameter.")
|
||||
|
||||
CG_ERROR_MACRO(30,
|
||||
CG_PARAMETERS_DO_NOT_MATCH_ERROR,
|
||||
"The two parameters being bound do not match.")
|
||||
|
||||
CG_ERROR_MACRO(31,
|
||||
CG_IS_NOT_PROGRAM_PARAMETER_ERROR,
|
||||
"The parameter is not a program parameter.")
|
||||
|
||||
CG_ERROR_MACRO(32,
|
||||
CG_INVALID_PARAMETER_TYPE_ERROR,
|
||||
"The type of the parameter is invalid.")
|
||||
|
||||
CG_ERROR_MACRO(33,
|
||||
CG_PARAMETER_IS_NOT_RESIZABLE_ARRAY_ERROR,
|
||||
"The parameter must be a resizable array.")
|
||||
|
||||
CG_ERROR_MACRO(34,
|
||||
CG_INVALID_SIZE_ERROR,
|
||||
"The size value is invalid.")
|
||||
|
||||
CG_ERROR_MACRO(35,
|
||||
CG_BIND_CREATES_CYCLE_ERROR,
|
||||
"Cannot bind the given parameters. Binding will form a cycle.")
|
||||
|
||||
CG_ERROR_MACRO(36,
|
||||
CG_ARRAY_TYPES_DO_NOT_MATCH_ERROR,
|
||||
"Cannot bind the given parameters. Array types do not match.")
|
||||
|
||||
CG_ERROR_MACRO(37,
|
||||
CG_ARRAY_DIMENSIONS_DO_NOT_MATCH_ERROR,
|
||||
"Cannot bind the given parameters. "
|
||||
"Array dimensions do not match.")
|
||||
|
||||
CG_ERROR_MACRO(38,
|
||||
CG_ARRAY_HAS_WRONG_DIMENSION_ERROR,
|
||||
"The array has the wrong dimension.")
|
||||
|
||||
CG_ERROR_MACRO(39,
|
||||
CG_TYPE_IS_NOT_DEFINED_IN_PROGRAM_ERROR,
|
||||
"Connecting the parameters failed because The type of the "
|
||||
"source parameter is not defined within the given program "
|
||||
"or does not match the type with the same name in the program.")
|
||||
|
||||
CG_ERROR_MACRO(40,
|
||||
CG_INVALID_EFFECT_HANDLE_ERROR,
|
||||
"Invalid effect handle.")
|
||||
|
||||
CG_ERROR_MACRO(41,
|
||||
CG_INVALID_STATE_HANDLE_ERROR,
|
||||
"Invalid state handle.")
|
||||
|
||||
CG_ERROR_MACRO(42,
|
||||
CG_INVALID_STATE_ASSIGNMENT_HANDLE_ERROR,
|
||||
"Invalid stateassignment handle.")
|
||||
|
||||
CG_ERROR_MACRO(43,
|
||||
CG_INVALID_PASS_HANDLE_ERROR,
|
||||
"Invalid pass handle.")
|
||||
|
||||
CG_ERROR_MACRO(44,
|
||||
CG_INVALID_ANNOTATION_HANDLE_ERROR,
|
||||
"Invalid annotation handle.")
|
||||
|
||||
CG_ERROR_MACRO(45,
|
||||
CG_INVALID_TECHNIQUE_HANDLE_ERROR,
|
||||
"Invalid technique handle.")
|
||||
|
||||
// Do not use this! Use CG_INVALID_PARAM_HANDLE_ERROR instead.
|
||||
CG_ERROR_MACRO(46,
|
||||
CG_INVALID_PARAMETER_HANDLE_ERROR,
|
||||
"Invalid parameter handle.")
|
||||
|
||||
CG_ERROR_MACRO(47,
|
||||
CG_STATE_ASSIGNMENT_TYPE_MISMATCH_ERROR,
|
||||
"Operation is not valid for this type of stateassignment.")
|
||||
|
||||
CG_ERROR_MACRO(48,
|
||||
CG_INVALID_FUNCTION_HANDLE_ERROR,
|
||||
"Invalid function handle.")
|
||||
|
||||
CG_ERROR_MACRO(49,
|
||||
CG_INVALID_TECHNIQUE_ERROR,
|
||||
"Technique did not pass validation.")
|
||||
|
||||
CG_ERROR_MACRO(50,
|
||||
CG_INVALID_POINTER_ERROR,
|
||||
"The supplied pointer is NULL.")
|
||||
|
||||
CG_ERROR_MACRO(51,
|
||||
CG_NOT_ENOUGH_DATA_ERROR,
|
||||
"Not enough data was provided.")
|
||||
|
||||
CG_ERROR_MACRO(52,
|
||||
CG_NON_NUMERIC_PARAMETER_ERROR,
|
||||
"The parameter is not of a numeric type.")
|
||||
|
||||
CG_ERROR_MACRO(53,
|
||||
CG_ARRAY_SIZE_MISMATCH_ERROR,
|
||||
"The specified array sizes are not compatible with the given array.")
|
||||
|
||||
CG_ERROR_MACRO(54,
|
||||
CG_CANNOT_SET_NON_UNIFORM_PARAMETER_ERROR,
|
||||
"Cannot set the value of a non-uniform parameter.")
|
||||
|
||||
CG_ERROR_MACRO(55,
|
||||
CG_DUPLICATE_NAME_ERROR,
|
||||
"This name is already in use.")
|
||||
|
||||
CG_ERROR_MACRO(56,
|
||||
CG_INVALID_OBJ_HANDLE_ERROR,
|
||||
"Invalid object handle.")
|
||||
|
||||
CG_ERROR_MACRO(57,
|
||||
CG_INVALID_BUFFER_HANDLE_ERROR,
|
||||
"Invalid buffer handle.")
|
||||
|
||||
CG_ERROR_MACRO(58,
|
||||
CG_BUFFER_INDEX_OUT_OF_RANGE_ERROR,
|
||||
"Buffer index is out of bounds.")
|
||||
|
||||
CG_ERROR_MACRO(59,
|
||||
CG_BUFFER_ALREADY_MAPPED_ERROR,
|
||||
"The buffer is already mapped.")
|
||||
|
||||
CG_ERROR_MACRO(60,
|
||||
CG_BUFFER_UPDATE_NOT_ALLOWED_ERROR,
|
||||
"The buffer cannot be updated.")
|
||||
|
||||
#undef CG_ERROR_MACRO
|
||||
|
95
Externals/Cg/cg_profiles.h
vendored
Normal file
95
Externals/Cg/cg_profiles.h
vendored
Normal file
@ -0,0 +1,95 @@
|
||||
/*
|
||||
*
|
||||
* Copyright (c) 2002-2007, NVIDIA Corporation.
|
||||
*
|
||||
*
|
||||
*
|
||||
* NVIDIA Corporation("NVIDIA") supplies this software to you in consideration
|
||||
* of your agreement to the following terms, and your use, installation,
|
||||
* modification or redistribution of this NVIDIA software constitutes
|
||||
* acceptance of these terms. If you do not agree with these terms, please do
|
||||
* not use, install, modify or redistribute this NVIDIA software.
|
||||
*
|
||||
*
|
||||
*
|
||||
* In consideration of your agreement to abide by the following terms, and
|
||||
* subject to these terms, NVIDIA grants you a personal, non-exclusive license,
|
||||
* under NVIDIA's copyrights in this original NVIDIA software (the "NVIDIA
|
||||
* Software"), to use, reproduce, modify and redistribute the NVIDIA
|
||||
* Software, with or without modifications, in source and/or binary forms;
|
||||
* provided that if you redistribute the NVIDIA Software, you must retain the
|
||||
* copyright notice of NVIDIA, this notice and the following text and
|
||||
* disclaimers in all such redistributions of the NVIDIA Software. Neither the
|
||||
* name, trademarks, service marks nor logos of NVIDIA Corporation may be used
|
||||
* to endorse or promote products derived from the NVIDIA Software without
|
||||
* specific prior written permission from NVIDIA. Except as expressly stated
|
||||
* in this notice, no other rights or licenses express or implied, are granted
|
||||
* by NVIDIA herein, including but not limited to any patent rights that may be
|
||||
* infringed by your derivative works or by other works in which the NVIDIA
|
||||
* Software may be incorporated. No hardware is licensed hereunder.
|
||||
*
|
||||
*
|
||||
*
|
||||
* THE NVIDIA SOFTWARE IS BEING PROVIDED ON AN "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING
|
||||
* WITHOUT LIMITATION, WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR ITS USE AND OPERATION
|
||||
* EITHER ALONE OR IN COMBINATION WITH OTHER PRODUCTS.
|
||||
*
|
||||
*
|
||||
*
|
||||
* IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL,
|
||||
* EXEMPLARY, CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, LOST
|
||||
* PROFITS; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
* PROFITS; OR BUSINESS INTERRUPTION) OR ARISING IN ANY WAY OUT OF THE USE,
|
||||
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE NVIDIA SOFTWARE,
|
||||
* HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING
|
||||
* NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF NVIDIA HAS BEEN ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
* The following macro invocations define the supported CG profiles.
|
||||
*
|
||||
* The macros have the form :
|
||||
*
|
||||
* CG_PROFILE_MACRO(name, compiler_id, compiler_opt)
|
||||
*
|
||||
* name : The name of the profile. Used consistently with the API.
|
||||
* compiler_id : The identifier string for the profile used by the compiler.
|
||||
* compiler_id_caps : compiler_id in caps.
|
||||
* compiler_opt : The command-line switch used to force compilation into
|
||||
* the profile.
|
||||
* int_id : Integer enumerant associated with this bind location.
|
||||
* vertex_profile : Non-zero if this is a vertex profile, otherwise it
|
||||
* is considered to be a fragment profile.
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
#define CG_IN_PROFILES_INCLUDE
|
||||
|
||||
#include <Cg/cgGL_profiles.h>
|
||||
|
||||
|
||||
CG_PROFILE_MACRO(DX9Vertex11,vs_1_1,VS_1_1,"vs_1_1",6153,1)
|
||||
CG_PROFILE_MACRO(DX9Vertex20,vs_2_0,VS_2_0,"vs_2_0",6154,1)
|
||||
CG_PROFILE_MACRO(DX9Vertex2x,vs_2_x,VS_2_X,"vs_2_x",6155,1)
|
||||
CG_PROFILE_MACRO(DX9Vertex2sw,vs_2_sw,VS_2_SW,"vs_2_sw",6156,1)
|
||||
CG_PROFILE_MACRO(DX9Vertex30,vs_3_0,VS_3_0,"vs_3_0",6157,1)
|
||||
CG_PROFILE_MACRO(DX9VertexHLSL,hlslv, HLSLV,"hlslv",6158,1)
|
||||
|
||||
CG_PROFILE_MACRO(DX9Pixel11,ps_1_1,PS_1_1,"ps_1_1",6159,0)
|
||||
CG_PROFILE_MACRO(DX9Pixel12,ps_1_2,PS_1_2,"ps_1_2",6160,0)
|
||||
CG_PROFILE_MACRO(DX9Pixel13,ps_1_3,PS_1_3,"ps_1_3",6161,0)
|
||||
CG_PROFILE_MACRO(DX9Pixel20,ps_2_0,PS_2_0,"ps_2_0",6162,0)
|
||||
CG_PROFILE_MACRO(DX9Pixel2x,ps_2_x,PS_2_X,"ps_2_x",6163,0)
|
||||
CG_PROFILE_MACRO(DX9Pixel2sw,ps_2_sw,PS_2_SW,"ps_2_sw",6164,0)
|
||||
CG_PROFILE_MACRO(DX9Pixel30,ps_3_0,PS_3_0,"ps_3_0",6165,0)
|
||||
CG_PROFILE_MACRO(DX9PixelHLSL,hlslf,HLSLF,"hlslf",6166,0)
|
||||
|
||||
CG_PROFILE_MACRO(Generic, generic, GENERIC, "generic", 7002,0)
|
||||
|
||||
#undef CG_PROFILE_MACRO
|
||||
#undef CG_IN_PROFILES_INCLUDE
|
BIN
Externals/Cg64/cg.lib
vendored
Normal file
BIN
Externals/Cg64/cg.lib
vendored
Normal file
Binary file not shown.
BIN
Externals/Cg64/cgGL.lib
vendored
Normal file
BIN
Externals/Cg64/cgGL.lib
vendored
Normal file
Binary file not shown.
1688
Externals/WTL80/atlapp.h
vendored
Normal file
1688
Externals/WTL80/atlapp.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2380
Externals/WTL80/atlcrack.h
vendored
Normal file
2380
Externals/WTL80/atlcrack.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
10039
Externals/WTL80/atlctrls.h
vendored
Normal file
10039
Externals/WTL80/atlctrls.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
4161
Externals/WTL80/atlctrlw.h
vendored
Normal file
4161
Externals/WTL80/atlctrlw.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
4827
Externals/WTL80/atlctrlx.h
vendored
Normal file
4827
Externals/WTL80/atlctrlx.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
624
Externals/WTL80/atlddx.h
vendored
Normal file
624
Externals/WTL80/atlddx.h
vendored
Normal file
@ -0,0 +1,624 @@
|
||||
// Windows Template Library - WTL version 8.0
|
||||
// Copyright (C) Microsoft Corporation. All rights reserved.
|
||||
//
|
||||
// This file is a part of the Windows Template Library.
|
||||
// The use and distribution terms for this software are covered by the
|
||||
// Common Public License 1.0 (http://opensource.org/osi3.0/licenses/cpl1.0.php)
|
||||
// which can be found in the file CPL.TXT at the root of this distribution.
|
||||
// By using this software in any fashion, you are agreeing to be bound by
|
||||
// the terms of this license. You must not remove this notice, or
|
||||
// any other, from this software.
|
||||
|
||||
#ifndef __ATLDDX_H__
|
||||
#define __ATLDDX_H__
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef __cplusplus
|
||||
#error ATL requires C++ compilation (use a .cpp suffix)
|
||||
#endif
|
||||
|
||||
#ifndef __ATLAPP_H__
|
||||
#error atlddx.h requires atlapp.h to be included first
|
||||
#endif
|
||||
|
||||
#if defined(_ATL_USE_DDX_FLOAT) && defined(_ATL_MIN_CRT)
|
||||
#error Cannot use floating point DDX with _ATL_MIN_CRT defined
|
||||
#endif // defined(_ATL_USE_DDX_FLOAT) && defined(_ATL_MIN_CRT)
|
||||
|
||||
#ifdef _ATL_USE_DDX_FLOAT
|
||||
#include <float.h>
|
||||
#endif // _ATL_USE_DDX_FLOAT
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Classes in this file:
|
||||
//
|
||||
// CWinDataExchange<T>
|
||||
|
||||
|
||||
namespace WTL
|
||||
{
|
||||
|
||||
// Constants
|
||||
#define DDX_LOAD FALSE
|
||||
#define DDX_SAVE TRUE
|
||||
|
||||
// DDX map macros
|
||||
#define BEGIN_DDX_MAP(thisClass) \
|
||||
BOOL DoDataExchange(BOOL bSaveAndValidate = FALSE, UINT nCtlID = (UINT)-1) \
|
||||
{ \
|
||||
bSaveAndValidate; \
|
||||
nCtlID;
|
||||
|
||||
#define DDX_TEXT(nID, var) \
|
||||
if(nCtlID == (UINT)-1 || nCtlID == nID) \
|
||||
{ \
|
||||
if(!DDX_Text(nID, var, sizeof(var), bSaveAndValidate)) \
|
||||
return FALSE; \
|
||||
}
|
||||
|
||||
#define DDX_TEXT_LEN(nID, var, len) \
|
||||
if(nCtlID == (UINT)-1 || nCtlID == nID) \
|
||||
{ \
|
||||
if(!DDX_Text(nID, var, sizeof(var), bSaveAndValidate, TRUE, len)) \
|
||||
return FALSE; \
|
||||
}
|
||||
|
||||
#define DDX_INT(nID, var) \
|
||||
if(nCtlID == (UINT)-1 || nCtlID == nID) \
|
||||
{ \
|
||||
if(!DDX_Int(nID, var, TRUE, bSaveAndValidate)) \
|
||||
return FALSE; \
|
||||
}
|
||||
|
||||
#define DDX_INT_RANGE(nID, var, min, max) \
|
||||
if(nCtlID == (UINT)-1 || nCtlID == nID) \
|
||||
{ \
|
||||
if(!DDX_Int(nID, var, TRUE, bSaveAndValidate, TRUE, min, max)) \
|
||||
return FALSE; \
|
||||
}
|
||||
|
||||
#define DDX_UINT(nID, var) \
|
||||
if(nCtlID == (UINT)-1 || nCtlID == nID) \
|
||||
{ \
|
||||
if(!DDX_Int(nID, var, FALSE, bSaveAndValidate)) \
|
||||
return FALSE; \
|
||||
}
|
||||
|
||||
#define DDX_UINT_RANGE(nID, var, min, max) \
|
||||
if(nCtlID == (UINT)-1 || nCtlID == nID) \
|
||||
{ \
|
||||
if(!DDX_Int(nID, var, FALSE, bSaveAndValidate, TRUE, min, max)) \
|
||||
return FALSE; \
|
||||
}
|
||||
|
||||
#ifdef _ATL_USE_DDX_FLOAT
|
||||
#define DDX_FLOAT(nID, var) \
|
||||
if(nCtlID == (UINT)-1 || nCtlID == nID) \
|
||||
{ \
|
||||
if(!DDX_Float(nID, var, bSaveAndValidate)) \
|
||||
return FALSE; \
|
||||
}
|
||||
|
||||
#define DDX_FLOAT_RANGE(nID, var, min, max) \
|
||||
if(nCtlID == (UINT)-1 || nCtlID == nID) \
|
||||
{ \
|
||||
if(!DDX_Float(nID, var, bSaveAndValidate, TRUE, min, max)) \
|
||||
return FALSE; \
|
||||
}
|
||||
#define DDX_FLOAT_P(nID, var, precision) \
|
||||
if(nCtlID == (UINT)-1 || nCtlID == nID) \
|
||||
{ \
|
||||
if(!DDX_Float(nID, var, bSaveAndValidate, FALSE, 0, 0, precision)) \
|
||||
return FALSE; \
|
||||
}
|
||||
|
||||
#define DDX_FLOAT_P_RANGE(nID, var, min, max, precision) \
|
||||
if(nCtlID == (UINT)-1 || nCtlID == nID) \
|
||||
{ \
|
||||
if(!DDX_Float(nID, var, bSaveAndValidate, TRUE, min, max, precision)) \
|
||||
return FALSE; \
|
||||
}
|
||||
#endif // _ATL_USE_DDX_FLOAT
|
||||
|
||||
#define DDX_CONTROL(nID, obj) \
|
||||
if(nCtlID == (UINT)-1 || nCtlID == nID) \
|
||||
DDX_Control(nID, obj, bSaveAndValidate);
|
||||
|
||||
#define DDX_CONTROL_HANDLE(nID, obj) \
|
||||
if(nCtlID == (UINT)-1 || nCtlID == nID) \
|
||||
DDX_Control_Handle(nID, obj, bSaveAndValidate);
|
||||
|
||||
#define DDX_CHECK(nID, var) \
|
||||
if(nCtlID == (UINT)-1 || nCtlID == nID) \
|
||||
DDX_Check(nID, var, bSaveAndValidate);
|
||||
|
||||
#define DDX_RADIO(nID, var) \
|
||||
if(nCtlID == (UINT)-1 || nCtlID == nID) \
|
||||
DDX_Radio(nID, var, bSaveAndValidate);
|
||||
|
||||
#define END_DDX_MAP() \
|
||||
return TRUE; \
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// CWinDataExchange - provides support for DDX
|
||||
|
||||
template <class T>
|
||||
class CWinDataExchange
|
||||
{
|
||||
public:
|
||||
// Data exchange method - override in your derived class
|
||||
BOOL DoDataExchange(BOOL /*bSaveAndValidate*/ = FALSE, UINT /*nCtlID*/ = (UINT)-1)
|
||||
{
|
||||
// this one should never be called, override it in
|
||||
// your derived class by implementing DDX map
|
||||
ATLASSERT(FALSE);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// Helpers for validation error reporting
|
||||
enum _XDataType
|
||||
{
|
||||
ddxDataNull = 0,
|
||||
ddxDataText = 1,
|
||||
ddxDataInt = 2,
|
||||
ddxDataFloat = 3,
|
||||
ddxDataDouble = 4
|
||||
};
|
||||
|
||||
struct _XTextData
|
||||
{
|
||||
int nLength;
|
||||
int nMaxLength;
|
||||
};
|
||||
|
||||
struct _XIntData
|
||||
{
|
||||
long nVal;
|
||||
long nMin;
|
||||
long nMax;
|
||||
};
|
||||
|
||||
struct _XFloatData
|
||||
{
|
||||
double nVal;
|
||||
double nMin;
|
||||
double nMax;
|
||||
};
|
||||
|
||||
struct _XData
|
||||
{
|
||||
_XDataType nDataType;
|
||||
union
|
||||
{
|
||||
_XTextData textData;
|
||||
_XIntData intData;
|
||||
_XFloatData floatData;
|
||||
};
|
||||
};
|
||||
|
||||
// Text exchange
|
||||
BOOL DDX_Text(UINT nID, LPTSTR lpstrText, int cbSize, BOOL bSave, BOOL bValidate = FALSE, int nLength = 0)
|
||||
{
|
||||
T* pT = static_cast<T*>(this);
|
||||
BOOL bSuccess = TRUE;
|
||||
|
||||
if(bSave)
|
||||
{
|
||||
HWND hWndCtrl = pT->GetDlgItem(nID);
|
||||
int nRetLen = ::GetWindowText(hWndCtrl, lpstrText, cbSize / sizeof(TCHAR));
|
||||
if(nRetLen < ::GetWindowTextLength(hWndCtrl))
|
||||
bSuccess = FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
ATLASSERT(!bValidate || lstrlen(lpstrText) <= nLength);
|
||||
bSuccess = pT->SetDlgItemText(nID, lpstrText);
|
||||
}
|
||||
|
||||
if(!bSuccess)
|
||||
{
|
||||
pT->OnDataExchangeError(nID, bSave);
|
||||
}
|
||||
else if(bSave && bValidate) // validation
|
||||
{
|
||||
ATLASSERT(nLength > 0);
|
||||
if(lstrlen(lpstrText) > nLength)
|
||||
{
|
||||
_XData data = { ddxDataText };
|
||||
data.textData.nLength = lstrlen(lpstrText);
|
||||
data.textData.nMaxLength = nLength;
|
||||
pT->OnDataValidateError(nID, bSave, data);
|
||||
bSuccess = FALSE;
|
||||
}
|
||||
}
|
||||
return bSuccess;
|
||||
}
|
||||
|
||||
BOOL DDX_Text(UINT nID, BSTR& bstrText, int /*cbSize*/, BOOL bSave, BOOL bValidate = FALSE, int nLength = 0)
|
||||
{
|
||||
T* pT = static_cast<T*>(this);
|
||||
BOOL bSuccess = TRUE;
|
||||
|
||||
if(bSave)
|
||||
{
|
||||
bSuccess = pT->GetDlgItemText(nID, bstrText);
|
||||
}
|
||||
else
|
||||
{
|
||||
USES_CONVERSION;
|
||||
LPTSTR lpstrText = OLE2T(bstrText);
|
||||
ATLASSERT(!bValidate || lstrlen(lpstrText) <= nLength);
|
||||
bSuccess = pT->SetDlgItemText(nID, lpstrText);
|
||||
}
|
||||
|
||||
if(!bSuccess)
|
||||
{
|
||||
pT->OnDataExchangeError(nID, bSave);
|
||||
}
|
||||
else if(bSave && bValidate) // validation
|
||||
{
|
||||
ATLASSERT(nLength > 0);
|
||||
if((int)::SysStringLen(bstrText) > nLength)
|
||||
{
|
||||
_XData data = { ddxDataText };
|
||||
data.textData.nLength = (int)::SysStringLen(bstrText);
|
||||
data.textData.nMaxLength = nLength;
|
||||
pT->OnDataValidateError(nID, bSave, data);
|
||||
bSuccess = FALSE;
|
||||
}
|
||||
}
|
||||
return bSuccess;
|
||||
}
|
||||
|
||||
BOOL DDX_Text(UINT nID, ATL::CComBSTR& bstrText, int /*cbSize*/, BOOL bSave, BOOL bValidate = FALSE, int nLength = 0)
|
||||
{
|
||||
T* pT = static_cast<T*>(this);
|
||||
BOOL bSuccess = TRUE;
|
||||
|
||||
if(bSave)
|
||||
{
|
||||
bSuccess = pT->GetDlgItemText(nID, (BSTR&)bstrText);
|
||||
}
|
||||
else
|
||||
{
|
||||
USES_CONVERSION;
|
||||
LPTSTR lpstrText = OLE2T(bstrText);
|
||||
ATLASSERT(!bValidate || lstrlen(lpstrText) <= nLength);
|
||||
bSuccess = pT->SetDlgItemText(nID, lpstrText);
|
||||
}
|
||||
|
||||
if(!bSuccess)
|
||||
{
|
||||
pT->OnDataExchangeError(nID, bSave);
|
||||
}
|
||||
else if(bSave && bValidate) // validation
|
||||
{
|
||||
ATLASSERT(nLength > 0);
|
||||
if((int)bstrText.Length() > nLength)
|
||||
{
|
||||
_XData data = { ddxDataText };
|
||||
data.textData.nLength = (int)bstrText.Length();
|
||||
data.textData.nMaxLength = nLength;
|
||||
pT->OnDataValidateError(nID, bSave, data);
|
||||
bSuccess = FALSE;
|
||||
}
|
||||
}
|
||||
return bSuccess;
|
||||
}
|
||||
|
||||
#if defined(_WTL_USE_CSTRING) || defined(__ATLSTR_H__)
|
||||
BOOL DDX_Text(UINT nID, _CSTRING_NS::CString& strText, int /*cbSize*/, BOOL bSave, BOOL bValidate = FALSE, int nLength = 0)
|
||||
{
|
||||
T* pT = static_cast<T*>(this);
|
||||
BOOL bSuccess = TRUE;
|
||||
|
||||
if(bSave)
|
||||
{
|
||||
HWND hWndCtrl = pT->GetDlgItem(nID);
|
||||
int nLen = ::GetWindowTextLength(hWndCtrl);
|
||||
int nRetLen = -1;
|
||||
LPTSTR lpstr = strText.GetBufferSetLength(nLen);
|
||||
if(lpstr != NULL)
|
||||
{
|
||||
nRetLen = ::GetWindowText(hWndCtrl, lpstr, nLen + 1);
|
||||
strText.ReleaseBuffer();
|
||||
}
|
||||
if(nRetLen < nLen)
|
||||
bSuccess = FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
bSuccess = pT->SetDlgItemText(nID, strText);
|
||||
}
|
||||
|
||||
if(!bSuccess)
|
||||
{
|
||||
pT->OnDataExchangeError(nID, bSave);
|
||||
}
|
||||
else if(bSave && bValidate) // validation
|
||||
{
|
||||
ATLASSERT(nLength > 0);
|
||||
if(strText.GetLength() > nLength)
|
||||
{
|
||||
_XData data = { ddxDataText };
|
||||
data.textData.nLength = strText.GetLength();
|
||||
data.textData.nMaxLength = nLength;
|
||||
pT->OnDataValidateError(nID, bSave, data);
|
||||
bSuccess = FALSE;
|
||||
}
|
||||
}
|
||||
return bSuccess;
|
||||
}
|
||||
#endif // defined(_WTL_USE_CSTRING) || defined(__ATLSTR_H__)
|
||||
|
||||
// Numeric exchange
|
||||
template <class Type>
|
||||
BOOL DDX_Int(UINT nID, Type& nVal, BOOL bSigned, BOOL bSave, BOOL bValidate = FALSE, Type nMin = 0, Type nMax = 0)
|
||||
{
|
||||
T* pT = static_cast<T*>(this);
|
||||
BOOL bSuccess = TRUE;
|
||||
|
||||
if(bSave)
|
||||
{
|
||||
nVal = (Type)pT->GetDlgItemInt(nID, &bSuccess, bSigned);
|
||||
}
|
||||
else
|
||||
{
|
||||
ATLASSERT(!bValidate || nVal >= nMin && nVal <= nMax);
|
||||
bSuccess = pT->SetDlgItemInt(nID, nVal, bSigned);
|
||||
}
|
||||
|
||||
if(!bSuccess)
|
||||
{
|
||||
pT->OnDataExchangeError(nID, bSave);
|
||||
}
|
||||
else if(bSave && bValidate) // validation
|
||||
{
|
||||
ATLASSERT(nMin != nMax);
|
||||
if(nVal < nMin || nVal > nMax)
|
||||
{
|
||||
_XData data = { ddxDataInt };
|
||||
data.intData.nVal = (long)nVal;
|
||||
data.intData.nMin = (long)nMin;
|
||||
data.intData.nMax = (long)nMax;
|
||||
pT->OnDataValidateError(nID, bSave, data);
|
||||
bSuccess = FALSE;
|
||||
}
|
||||
}
|
||||
return bSuccess;
|
||||
}
|
||||
|
||||
// Float exchange
|
||||
#ifdef _ATL_USE_DDX_FLOAT
|
||||
static BOOL _AtlSimpleFloatParse(LPCTSTR lpszText, double& d)
|
||||
{
|
||||
ATLASSERT(lpszText != NULL);
|
||||
while (*lpszText == _T(' ') || *lpszText == _T('\t'))
|
||||
lpszText++;
|
||||
|
||||
TCHAR chFirst = lpszText[0];
|
||||
d = _tcstod(lpszText, (LPTSTR*)&lpszText);
|
||||
if (d == 0.0 && chFirst != _T('0'))
|
||||
return FALSE; // could not convert
|
||||
while (*lpszText == _T(' ') || *lpszText == _T('\t'))
|
||||
lpszText++;
|
||||
|
||||
if (*lpszText != _T('\0'))
|
||||
return FALSE; // not terminated properly
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL DDX_Float(UINT nID, float& nVal, BOOL bSave, BOOL bValidate = FALSE, float nMin = 0.F, float nMax = 0.F, int nPrecision = FLT_DIG)
|
||||
{
|
||||
T* pT = static_cast<T*>(this);
|
||||
BOOL bSuccess = TRUE;
|
||||
const int cchBuff = 32;
|
||||
TCHAR szBuff[cchBuff] = { 0 };
|
||||
|
||||
if(bSave)
|
||||
{
|
||||
pT->GetDlgItemText(nID, szBuff, cchBuff);
|
||||
double d = 0;
|
||||
if(_AtlSimpleFloatParse(szBuff, d))
|
||||
nVal = (float)d;
|
||||
else
|
||||
bSuccess = FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
ATLASSERT(!bValidate || nVal >= nMin && nVal <= nMax);
|
||||
SecureHelper::sprintf_x(szBuff, cchBuff, _T("%.*g"), nPrecision, nVal);
|
||||
bSuccess = pT->SetDlgItemText(nID, szBuff);
|
||||
}
|
||||
|
||||
if(!bSuccess)
|
||||
{
|
||||
pT->OnDataExchangeError(nID, bSave);
|
||||
}
|
||||
else if(bSave && bValidate) // validation
|
||||
{
|
||||
ATLASSERT(nMin != nMax);
|
||||
if(nVal < nMin || nVal > nMax)
|
||||
{
|
||||
_XData data = { ddxDataFloat };
|
||||
data.floatData.nVal = (double)nVal;
|
||||
data.floatData.nMin = (double)nMin;
|
||||
data.floatData.nMax = (double)nMax;
|
||||
pT->OnDataValidateError(nID, bSave, data);
|
||||
bSuccess = FALSE;
|
||||
}
|
||||
}
|
||||
return bSuccess;
|
||||
}
|
||||
|
||||
BOOL DDX_Float(UINT nID, double& nVal, BOOL bSave, BOOL bValidate = FALSE, double nMin = 0., double nMax = 0., int nPrecision = DBL_DIG)
|
||||
{
|
||||
T* pT = static_cast<T*>(this);
|
||||
BOOL bSuccess = TRUE;
|
||||
const int cchBuff = 32;
|
||||
TCHAR szBuff[cchBuff] = { 0 };
|
||||
|
||||
if(bSave)
|
||||
{
|
||||
pT->GetDlgItemText(nID, szBuff, cchBuff);
|
||||
double d = 0;
|
||||
if(_AtlSimpleFloatParse(szBuff, d))
|
||||
nVal = d;
|
||||
else
|
||||
bSuccess = FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
ATLASSERT(!bValidate || nVal >= nMin && nVal <= nMax);
|
||||
SecureHelper::sprintf_x(szBuff, cchBuff, _T("%.*g"), nPrecision, nVal);
|
||||
bSuccess = pT->SetDlgItemText(nID, szBuff);
|
||||
}
|
||||
|
||||
if(!bSuccess)
|
||||
{
|
||||
pT->OnDataExchangeError(nID, bSave);
|
||||
}
|
||||
else if(bSave && bValidate) // validation
|
||||
{
|
||||
ATLASSERT(nMin != nMax);
|
||||
if(nVal < nMin || nVal > nMax)
|
||||
{
|
||||
_XData data = { ddxDataFloat };
|
||||
data.floatData.nVal = nVal;
|
||||
data.floatData.nMin = nMin;
|
||||
data.floatData.nMax = nMax;
|
||||
pT->OnDataValidateError(nID, bSave, data);
|
||||
bSuccess = FALSE;
|
||||
}
|
||||
}
|
||||
return bSuccess;
|
||||
}
|
||||
#endif // _ATL_USE_DDX_FLOAT
|
||||
|
||||
// Full control subclassing (for CWindowImpl derived controls)
|
||||
template <class TControl>
|
||||
void DDX_Control(UINT nID, TControl& ctrl, BOOL bSave)
|
||||
{
|
||||
if(!bSave && ctrl.m_hWnd == NULL)
|
||||
{
|
||||
T* pT = static_cast<T*>(this);
|
||||
ctrl.SubclassWindow(pT->GetDlgItem(nID));
|
||||
}
|
||||
}
|
||||
|
||||
// Simple control attaching (for HWND wrapper controls)
|
||||
template <class TControl>
|
||||
void DDX_Control_Handle(UINT nID, TControl& ctrl, BOOL bSave)
|
||||
{
|
||||
if(!bSave && ctrl.m_hWnd == NULL)
|
||||
{
|
||||
T* pT = static_cast<T*>(this);
|
||||
ctrl = pT->GetDlgItem(nID);
|
||||
}
|
||||
}
|
||||
|
||||
// Control state
|
||||
void DDX_Check(UINT nID, int& nValue, BOOL bSave)
|
||||
{
|
||||
T* pT = static_cast<T*>(this);
|
||||
HWND hWndCtrl = pT->GetDlgItem(nID);
|
||||
if(bSave)
|
||||
{
|
||||
nValue = (int)::SendMessage(hWndCtrl, BM_GETCHECK, 0, 0L);
|
||||
ATLASSERT(nValue >= 0 && nValue <= 2);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(nValue < 0 || nValue > 2)
|
||||
{
|
||||
ATLTRACE2(atlTraceUI, 0, _T("ATL: Warning - dialog data checkbox value (%d) out of range.\n"), nValue);
|
||||
nValue = 0; // default to off
|
||||
}
|
||||
::SendMessage(hWndCtrl, BM_SETCHECK, nValue, 0L);
|
||||
}
|
||||
}
|
||||
|
||||
// variant that supports bool (checked/not-checked, no intermediate state)
|
||||
void DDX_Check(UINT nID, bool& bCheck, BOOL bSave)
|
||||
{
|
||||
int nValue = bCheck ? 1 : 0;
|
||||
DDX_Check(nID, nValue, bSave);
|
||||
|
||||
if(bSave)
|
||||
{
|
||||
if(nValue == 2)
|
||||
ATLTRACE2(atlTraceUI, 0, _T("ATL: Warning - checkbox state (%d) out of supported range.\n"), nValue);
|
||||
bCheck = (nValue == 1);
|
||||
}
|
||||
}
|
||||
|
||||
void DDX_Radio(UINT nID, int& nValue, BOOL bSave)
|
||||
{
|
||||
T* pT = static_cast<T*>(this);
|
||||
HWND hWndCtrl = pT->GetDlgItem(nID);
|
||||
ATLASSERT(hWndCtrl != NULL);
|
||||
|
||||
// must be first in a group of auto radio buttons
|
||||
ATLASSERT(::GetWindowLong(hWndCtrl, GWL_STYLE) & WS_GROUP);
|
||||
ATLASSERT(::SendMessage(hWndCtrl, WM_GETDLGCODE, 0, 0L) & DLGC_RADIOBUTTON);
|
||||
|
||||
if(bSave)
|
||||
nValue = -1; // value if none found
|
||||
|
||||
// walk all children in group
|
||||
int nButton = 0;
|
||||
do
|
||||
{
|
||||
if(::SendMessage(hWndCtrl, WM_GETDLGCODE, 0, 0L) & DLGC_RADIOBUTTON)
|
||||
{
|
||||
// control in group is a radio button
|
||||
if(bSave)
|
||||
{
|
||||
if(::SendMessage(hWndCtrl, BM_GETCHECK, 0, 0L) != 0)
|
||||
{
|
||||
ATLASSERT(nValue == -1); // only set once
|
||||
nValue = nButton;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// select button
|
||||
::SendMessage(hWndCtrl, BM_SETCHECK, (nButton == nValue), 0L);
|
||||
}
|
||||
nButton++;
|
||||
}
|
||||
else
|
||||
{
|
||||
ATLTRACE2(atlTraceUI, 0, _T("ATL: Warning - skipping non-radio button in group.\n"));
|
||||
}
|
||||
hWndCtrl = ::GetWindow(hWndCtrl, GW_HWNDNEXT);
|
||||
}
|
||||
while (hWndCtrl != NULL && !(GetWindowLong(hWndCtrl, GWL_STYLE) & WS_GROUP));
|
||||
}
|
||||
|
||||
// Overrideables
|
||||
void OnDataExchangeError(UINT nCtrlID, BOOL /*bSave*/)
|
||||
{
|
||||
// Override to display an error message
|
||||
::MessageBeep((UINT)-1);
|
||||
T* pT = static_cast<T*>(this);
|
||||
::SetFocus(pT->GetDlgItem(nCtrlID));
|
||||
}
|
||||
|
||||
void OnDataValidateError(UINT nCtrlID, BOOL /*bSave*/, _XData& /*data*/)
|
||||
{
|
||||
// Override to display an error message
|
||||
::MessageBeep((UINT)-1);
|
||||
T* pT = static_cast<T*>(this);
|
||||
::SetFocus(pT->GetDlgItem(nCtrlID));
|
||||
}
|
||||
};
|
||||
|
||||
}; // namespace WTL
|
||||
|
||||
#endif // __ATLDDX_H__
|
6212
Externals/WTL80/atldlgs.h
vendored
Normal file
6212
Externals/WTL80/atldlgs.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1036
Externals/WTL80/atlfind.h
vendored
Normal file
1036
Externals/WTL80/atlfind.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
3465
Externals/WTL80/atlframe.h
vendored
Normal file
3465
Externals/WTL80/atlframe.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
3850
Externals/WTL80/atlgdi.h
vendored
Normal file
3850
Externals/WTL80/atlgdi.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
4021
Externals/WTL80/atlmisc.h
vendored
Normal file
4021
Externals/WTL80/atlmisc.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1113
Externals/WTL80/atlprint.h
vendored
Normal file
1113
Externals/WTL80/atlprint.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
262
Externals/WTL80/atlres.h
vendored
Normal file
262
Externals/WTL80/atlres.h
vendored
Normal file
@ -0,0 +1,262 @@
|
||||
// Windows Template Library - WTL version 8.0
|
||||
// Copyright (C) Microsoft Corporation. All rights reserved.
|
||||
//
|
||||
// This file is a part of the Windows Template Library.
|
||||
// The use and distribution terms for this software are covered by the
|
||||
// Common Public License 1.0 (http://opensource.org/osi3.0/licenses/cpl1.0.php)
|
||||
// which can be found in the file CPL.TXT at the root of this distribution.
|
||||
// By using this software in any fashion, you are agreeing to be bound by
|
||||
// the terms of this license. You must not remove this notice, or
|
||||
// any other, from this software.
|
||||
|
||||
#ifndef __ATLRES_H__
|
||||
#define __ATLRES_H__
|
||||
|
||||
#pragma once
|
||||
|
||||
#if defined(_WIN32_WCE) && !defined(__ATLRESCE_H__)
|
||||
#error Use atlresCE.h instead of atlres.h for Windows CE
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef RC_INVOKED
|
||||
#ifndef _INC_WINDOWS
|
||||
|
||||
#define _INC_WINDOWS
|
||||
|
||||
#ifndef _WIN32_WCE
|
||||
#define VS_VERSION_INFO 1
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#define APSTUDIO_HIDDEN_SYMBOLS // Ignore following symbols
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
#ifndef WINVER
|
||||
#define WINVER 0x0400 // default to Windows Version 4.0
|
||||
#endif // !WINVER
|
||||
|
||||
#include <winresrc.h>
|
||||
|
||||
// operation messages sent to DLGINIT
|
||||
#define LB_ADDSTRING (WM_USER+1)
|
||||
#define CB_ADDSTRING (WM_USER+3)
|
||||
#endif // !_WIN32_WCE
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#undef APSTUDIO_HIDDEN_SYMBOLS
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
#ifdef IDC_STATIC
|
||||
#undef IDC_STATIC
|
||||
#endif // IDC_STATIC
|
||||
#define IDC_STATIC (-1)
|
||||
|
||||
#endif // !_INC_WINDOWS
|
||||
#endif // RC_INVOKED
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#define APSTUDIO_HIDDEN_SYMBOLS
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// ATL resource types
|
||||
|
||||
#ifndef RC_INVOKED
|
||||
#define RT_DLGINIT MAKEINTRESOURCE(240)
|
||||
#define RT_TOOLBAR MAKEINTRESOURCE(241)
|
||||
#endif // RC_INVOKED
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#undef APSTUDIO_HIDDEN_SYMBOLS
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Standard window components
|
||||
|
||||
#define ID_SEPARATOR 0 // special separator value
|
||||
#define ID_DEFAULT_PANE 0 // default status bar pane
|
||||
|
||||
#ifndef RC_INVOKED // code only
|
||||
// standard control bars (IDW = window ID)
|
||||
#define ATL_IDW_TOOLBAR 0xE800 // main Toolbar for window
|
||||
#define ATL_IDW_STATUS_BAR 0xE801 // Status bar window
|
||||
#define ATL_IDW_COMMAND_BAR 0xE802 // Command bar window
|
||||
|
||||
// parts of a frame window
|
||||
#define ATL_IDW_CLIENT 0xE900
|
||||
#define ATL_IDW_PANE_FIRST 0xE900 // first pane (256 max)
|
||||
#define ATL_IDW_PANE_LAST 0xE9FF
|
||||
#define ATL_IDW_HSCROLL_FIRST 0xEA00 // first Horz scrollbar (16 max)
|
||||
#define ATL_IDW_VSCROLL_FIRST 0xEA10 // first Vert scrollbar (16 max)
|
||||
|
||||
#define ATL_IDW_SIZE_BOX 0xEA20 // size box for splitters
|
||||
#define ATL_IDW_PANE_SAVE 0xEA21 // to shift ATL_IDW_PANE_FIRST
|
||||
|
||||
// bands for a rebar
|
||||
#define ATL_IDW_BAND_FIRST 0xEB00
|
||||
#define ATL_IDW_BAND_LAST 0xEBFF
|
||||
#endif // !RC_INVOKED
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Standard Commands
|
||||
|
||||
// File commands
|
||||
#define ID_FILE_NEW 0xE100
|
||||
#define ID_FILE_OPEN 0xE101
|
||||
#define ID_FILE_CLOSE 0xE102
|
||||
#define ID_FILE_SAVE 0xE103
|
||||
#define ID_FILE_SAVE_AS 0xE104
|
||||
#define ID_FILE_PAGE_SETUP 0xE105
|
||||
#define ID_FILE_PRINT_SETUP 0xE106
|
||||
#define ID_FILE_PRINT 0xE107
|
||||
#define ID_FILE_PRINT_DIRECT 0xE108
|
||||
#define ID_FILE_PRINT_PREVIEW 0xE109
|
||||
#define ID_FILE_UPDATE 0xE10A
|
||||
#define ID_FILE_SAVE_COPY_AS 0xE10B
|
||||
#define ID_FILE_SEND_MAIL 0xE10C
|
||||
|
||||
#define ID_FILE_MRU_FIRST 0xE110
|
||||
#define ID_FILE_MRU_FILE1 0xE110 // range - 16 max
|
||||
#define ID_FILE_MRU_FILE2 0xE111
|
||||
#define ID_FILE_MRU_FILE3 0xE112
|
||||
#define ID_FILE_MRU_FILE4 0xE113
|
||||
#define ID_FILE_MRU_FILE5 0xE114
|
||||
#define ID_FILE_MRU_FILE6 0xE115
|
||||
#define ID_FILE_MRU_FILE7 0xE116
|
||||
#define ID_FILE_MRU_FILE8 0xE117
|
||||
#define ID_FILE_MRU_FILE9 0xE118
|
||||
#define ID_FILE_MRU_FILE10 0xE119
|
||||
#define ID_FILE_MRU_FILE11 0xE11A
|
||||
#define ID_FILE_MRU_FILE12 0xE11B
|
||||
#define ID_FILE_MRU_FILE13 0xE11C
|
||||
#define ID_FILE_MRU_FILE14 0xE11D
|
||||
#define ID_FILE_MRU_FILE15 0xE11E
|
||||
#define ID_FILE_MRU_FILE16 0xE11F
|
||||
#define ID_FILE_MRU_LAST 0xE11F
|
||||
|
||||
// Edit commands
|
||||
#define ID_EDIT_CLEAR 0xE120
|
||||
#define ID_EDIT_CLEAR_ALL 0xE121
|
||||
#define ID_EDIT_COPY 0xE122
|
||||
#define ID_EDIT_CUT 0xE123
|
||||
#define ID_EDIT_FIND 0xE124
|
||||
#define ID_EDIT_PASTE 0xE125
|
||||
#define ID_EDIT_PASTE_LINK 0xE126
|
||||
#define ID_EDIT_PASTE_SPECIAL 0xE127
|
||||
#define ID_EDIT_REPEAT 0xE128
|
||||
#define ID_EDIT_REPLACE 0xE129
|
||||
#define ID_EDIT_SELECT_ALL 0xE12A
|
||||
#define ID_EDIT_UNDO 0xE12B
|
||||
#define ID_EDIT_REDO 0xE12C
|
||||
|
||||
// Window commands
|
||||
#define ID_WINDOW_NEW 0xE130
|
||||
#define ID_WINDOW_ARRANGE 0xE131
|
||||
#define ID_WINDOW_CASCADE 0xE132
|
||||
#define ID_WINDOW_TILE_HORZ 0xE133
|
||||
#define ID_WINDOW_TILE_VERT 0xE134
|
||||
#define ID_WINDOW_SPLIT 0xE135
|
||||
#ifndef RC_INVOKED // code only
|
||||
#define ATL_IDM_WINDOW_FIRST 0xE130
|
||||
#define ATL_IDM_WINDOW_LAST 0xE13F
|
||||
#define ATL_IDM_FIRST_MDICHILD 0xFF00 // window list starts here
|
||||
#define ATL_IDM_LAST_MDICHILD 0xFFFD
|
||||
#endif // !RC_INVOKED
|
||||
// TabView
|
||||
#define ID_WINDOW_TABFIRST 0xFF00 // = ATL_IDM_FIRST_MDICHILD
|
||||
#define ID_WINDOW_TABLAST 0xFFFD
|
||||
#define ID_WINDOW_SHOWTABLIST 0xFFFE
|
||||
|
||||
// Help and App commands
|
||||
#define ID_APP_ABOUT 0xE140
|
||||
#define ID_APP_EXIT 0xE141
|
||||
#define ID_HELP_INDEX 0xE142
|
||||
#define ID_HELP_FINDER 0xE143
|
||||
#define ID_HELP_USING 0xE144
|
||||
#define ID_CONTEXT_HELP 0xE145 // shift-F1
|
||||
// special commands for processing help
|
||||
#define ID_HELP 0xE146 // first attempt for F1
|
||||
#define ID_DEFAULT_HELP 0xE147 // last attempt
|
||||
|
||||
// Misc
|
||||
#define ID_NEXT_PANE 0xE150
|
||||
#define ID_PREV_PANE 0xE151
|
||||
#define ID_PANE_CLOSE 0xE152
|
||||
|
||||
// Format
|
||||
#define ID_FORMAT_FONT 0xE160
|
||||
|
||||
// Scroll
|
||||
#define ID_SCROLL_UP 0xE170
|
||||
#define ID_SCROLL_DOWN 0xE171
|
||||
#define ID_SCROLL_PAGE_UP 0xE172
|
||||
#define ID_SCROLL_PAGE_DOWN 0xE173
|
||||
#define ID_SCROLL_TOP 0xE174
|
||||
#define ID_SCROLL_BOTTOM 0xE175
|
||||
#define ID_SCROLL_LEFT 0xE176
|
||||
#define ID_SCROLL_RIGHT 0xE177
|
||||
#define ID_SCROLL_PAGE_LEFT 0xE178
|
||||
#define ID_SCROLL_PAGE_RIGHT 0xE179
|
||||
#define ID_SCROLL_ALL_LEFT 0xE17A
|
||||
#define ID_SCROLL_ALL_RIGHT 0xE17B
|
||||
|
||||
// OLE commands
|
||||
#define ID_OLE_INSERT_NEW 0xE200
|
||||
#define ID_OLE_EDIT_LINKS 0xE201
|
||||
#define ID_OLE_EDIT_CONVERT 0xE202
|
||||
#define ID_OLE_EDIT_CHANGE_ICON 0xE203
|
||||
#define ID_OLE_EDIT_PROPERTIES 0xE204
|
||||
#define ID_OLE_VERB_FIRST 0xE210 // range - 16 max
|
||||
#ifndef RC_INVOKED // code only
|
||||
#define ID_OLE_VERB_LAST 0xE21F
|
||||
#endif // !RC_INVOKED
|
||||
|
||||
// View commands (same number used as IDW used for toolbar and status bar)
|
||||
#define ID_VIEW_TOOLBAR 0xE800
|
||||
#define ID_VIEW_STATUS_BAR 0xE801
|
||||
#define ID_VIEW_REFRESH 0xE803
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Standard control IDs
|
||||
|
||||
#ifdef IDC_STATIC
|
||||
#undef IDC_STATIC
|
||||
#endif // IDC_STATIC
|
||||
#define IDC_STATIC (-1) // all static controls
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Standard string error/warnings
|
||||
|
||||
// idle status bar message
|
||||
#define ATL_IDS_IDLEMESSAGE 0xE001
|
||||
|
||||
#ifndef RC_INVOKED // code only
|
||||
#define ATL_IDS_SCFIRST 0xEF00
|
||||
#endif // !RC_INVOKED
|
||||
|
||||
#define ATL_IDS_SCSIZE 0xEF00
|
||||
#define ATL_IDS_SCMOVE 0xEF01
|
||||
#define ATL_IDS_SCMINIMIZE 0xEF02
|
||||
#define ATL_IDS_SCMAXIMIZE 0xEF03
|
||||
#define ATL_IDS_SCNEXTWINDOW 0xEF04
|
||||
#define ATL_IDS_SCPREVWINDOW 0xEF05
|
||||
#define ATL_IDS_SCCLOSE 0xEF06
|
||||
#define ATL_IDS_SCRESTORE 0xEF12
|
||||
#define ATL_IDS_SCTASKLIST 0xEF13
|
||||
|
||||
#define ATL_IDS_MDICHILD 0xEF1F
|
||||
#define ATL_IDS_MRU_FILE 0xEFDA
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Misc. control IDs
|
||||
|
||||
// Property Sheet control id's (determined with Spy++)
|
||||
#define ID_APPLY_NOW 0x3021
|
||||
#define ID_WIZBACK 0x3023
|
||||
#define ID_WIZNEXT 0x3024
|
||||
#define ID_WIZFINISH 0x3025
|
||||
#define ATL_IDC_TAB_CONTROL 0x3020
|
||||
|
||||
#endif // __ATLRES_H__
|
93
Externals/WTL80/atlresce.h
vendored
Normal file
93
Externals/WTL80/atlresce.h
vendored
Normal file
@ -0,0 +1,93 @@
|
||||
// Windows Template Library - WTL version 8.0
|
||||
// Copyright (C) Microsoft Corporation. All rights reserved.
|
||||
//
|
||||
// This file is a part of the Windows Template Library.
|
||||
// The use and distribution terms for this software are covered by the
|
||||
// Common Public License 1.0 (http://opensource.org/osi3.0/licenses/cpl1.0.php)
|
||||
// which can be found in the file CPL.TXT at the root of this distribution.
|
||||
// By using this software in any fashion, you are agreeing to be bound by
|
||||
// the terms of this license. You must not remove this notice, or
|
||||
// any other, from this software.
|
||||
|
||||
#ifndef __ATLRESCE_H__
|
||||
#define __ATLRESCE_H__
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef _WIN32_WCE
|
||||
#error atlresCE.h is only for Windows CE
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef RC_INVOKED
|
||||
#ifndef _INC_WINDOWS
|
||||
|
||||
#define VS_VERSION_INFO 1
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#define APSTUDIO_HIDDEN_SYMBOLS // Ignore following symbols
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
#ifndef WINVER
|
||||
#define WINVER 0x0400 // default to Windows Version 4.0
|
||||
#endif // !WINVER
|
||||
|
||||
#if !defined(WCEOLE_ENABLE_DIALOGEX)
|
||||
#define DIALOGEX DIALOG DISCARDABLE
|
||||
#endif
|
||||
|
||||
#include <commctrl.h>
|
||||
#define SHMENUBAR RCDATA
|
||||
|
||||
#if defined(SHELLSDK_MODULES_AYGSHELL)
|
||||
#include <aygshell.h>
|
||||
#else
|
||||
#define NOMENU 0xFFFF
|
||||
#define IDS_SHNEW 1
|
||||
#define IDM_SHAREDNEW 10
|
||||
#define IDM_SHAREDNEWDEFAULT 11
|
||||
#endif
|
||||
#ifndef I_IMAGENONE
|
||||
#define I_IMAGENONE (-2)
|
||||
#endif
|
||||
|
||||
#include <windows.h>
|
||||
|
||||
#endif // !_INC_WINDOWS
|
||||
#endif // RC_INVOKED
|
||||
|
||||
#include "atlres.h"
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#undef APSTUDIO_HIDDEN_SYMBOLS
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
// Visual Studio dialog editor bug fix
|
||||
#ifndef DS_FIXEDSYS
|
||||
#define DS_FIXEDSYS 0
|
||||
#endif
|
||||
|
||||
#define IDC_INFOSTATIC 0xFFFE // == IDC_STATIC -1
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Smartphone and PPC 2005 Resource IDs
|
||||
|
||||
// Command and associated string resource IDs
|
||||
#define ID_MENU_OK 0xE790
|
||||
#define ID_MENU_CANCEL 0xE791
|
||||
#define ID_MENU 0xE792
|
||||
#define ID_ACTION 0xE793
|
||||
#define ID_VIEW_FULLSCREEN 0xE802
|
||||
|
||||
// MenuBar resource IDs
|
||||
#define ATL_IDM_MENU_DONE 0xE701
|
||||
#define ATL_IDM_MENU_CANCEL 0xE702
|
||||
#define ATL_IDM_MENU_DONECANCEL 0xE703
|
||||
|
||||
// Default device MenuBar control ID and MenuBar resource ID
|
||||
#define ATL_IDW_MENU_BAR 0xE802
|
||||
|
||||
// SmartPhone spinned controls ID offset for CSpinCtrl
|
||||
#define ATL_IDW_SPIN_ID 9999
|
||||
|
||||
#endif // __ATLRESCE_H__
|
2015
Externals/WTL80/atlscrl.h
vendored
Normal file
2015
Externals/WTL80/atlscrl.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
892
Externals/WTL80/atlsplit.h
vendored
Normal file
892
Externals/WTL80/atlsplit.h
vendored
Normal file
@ -0,0 +1,892 @@
|
||||
// Windows Template Library - WTL version 8.0
|
||||
// Copyright (C) Microsoft Corporation. All rights reserved.
|
||||
//
|
||||
// This file is a part of the Windows Template Library.
|
||||
// The use and distribution terms for this software are covered by the
|
||||
// Common Public License 1.0 (http://opensource.org/osi3.0/licenses/cpl1.0.php)
|
||||
// which can be found in the file CPL.TXT at the root of this distribution.
|
||||
// By using this software in any fashion, you are agreeing to be bound by
|
||||
// the terms of this license. You must not remove this notice, or
|
||||
// any other, from this software.
|
||||
|
||||
#ifndef __ATLSPLIT_H__
|
||||
#define __ATLSPLIT_H__
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef __cplusplus
|
||||
#error ATL requires C++ compilation (use a .cpp suffix)
|
||||
#endif
|
||||
|
||||
#ifndef __ATLAPP_H__
|
||||
#error atlsplit.h requires atlapp.h to be included first
|
||||
#endif
|
||||
|
||||
#ifndef __ATLWIN_H__
|
||||
#error atlsplit.h requires atlwin.h to be included first
|
||||
#endif
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Classes in this file:
|
||||
//
|
||||
// CSplitterImpl<T, t_bVertical>
|
||||
// CSplitterWindowImpl<T, t_bVertical, TBase, TWinTraits>
|
||||
// CSplitterWindowT<t_bVertical>
|
||||
|
||||
|
||||
namespace WTL
|
||||
{
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// CSplitterImpl - Provides splitter support to any window
|
||||
|
||||
// Splitter panes constants
|
||||
#define SPLIT_PANE_LEFT 0
|
||||
#define SPLIT_PANE_RIGHT 1
|
||||
#define SPLIT_PANE_TOP SPLIT_PANE_LEFT
|
||||
#define SPLIT_PANE_BOTTOM SPLIT_PANE_RIGHT
|
||||
#define SPLIT_PANE_NONE -1
|
||||
|
||||
// Splitter extended styles
|
||||
#define SPLIT_PROPORTIONAL 0x00000001
|
||||
#define SPLIT_NONINTERACTIVE 0x00000002
|
||||
#define SPLIT_RIGHTALIGNED 0x00000004
|
||||
#define SPLIT_BOTTOMALIGNED SPLIT_RIGHTALIGNED
|
||||
|
||||
// Note: SPLIT_PROPORTIONAL and SPLIT_RIGHTALIGNED/SPLIT_BOTTOMALIGNED are
|
||||
// mutually exclusive. If both are set, splitter defaults to SPLIT_PROPORTIONAL
|
||||
|
||||
|
||||
template <class T, bool t_bVertical = true>
|
||||
class CSplitterImpl
|
||||
{
|
||||
public:
|
||||
enum { m_nPanesCount = 2, m_nPropMax = 10000 };
|
||||
|
||||
HWND m_hWndPane[m_nPanesCount];
|
||||
RECT m_rcSplitter;
|
||||
int m_xySplitterPos;
|
||||
int m_nDefActivePane;
|
||||
int m_cxySplitBar; // splitter bar width/height
|
||||
static HCURSOR m_hCursor;
|
||||
int m_cxyMin; // minimum pane size
|
||||
int m_cxyBarEdge; // splitter bar edge
|
||||
bool m_bFullDrag;
|
||||
int m_cxyDragOffset;
|
||||
int m_nProportionalPos;
|
||||
bool m_bUpdateProportionalPos;
|
||||
DWORD m_dwExtendedStyle; // splitter specific extended styles
|
||||
int m_nSinglePane; // single pane mode
|
||||
|
||||
// Constructor
|
||||
CSplitterImpl() :
|
||||
m_xySplitterPos(-1), m_nDefActivePane(SPLIT_PANE_NONE),
|
||||
m_cxySplitBar(0), m_cxyMin(0), m_cxyBarEdge(0), m_bFullDrag(true),
|
||||
m_cxyDragOffset(0), m_nProportionalPos(0), m_bUpdateProportionalPos(true),
|
||||
m_dwExtendedStyle(SPLIT_PROPORTIONAL),
|
||||
m_nSinglePane(SPLIT_PANE_NONE)
|
||||
{
|
||||
m_hWndPane[SPLIT_PANE_LEFT] = NULL;
|
||||
m_hWndPane[SPLIT_PANE_RIGHT] = NULL;
|
||||
|
||||
::SetRectEmpty(&m_rcSplitter);
|
||||
|
||||
if(m_hCursor == NULL)
|
||||
{
|
||||
CStaticDataInitCriticalSectionLock lock;
|
||||
if(FAILED(lock.Lock()))
|
||||
{
|
||||
ATLTRACE2(atlTraceUI, 0, _T("ERROR : Unable to lock critical section in CSplitterImpl::CSplitterImpl.\n"));
|
||||
ATLASSERT(FALSE);
|
||||
return;
|
||||
}
|
||||
|
||||
if(m_hCursor == NULL)
|
||||
m_hCursor = ::LoadCursor(NULL, t_bVertical ? IDC_SIZEWE : IDC_SIZENS);
|
||||
|
||||
lock.Unlock();
|
||||
}
|
||||
}
|
||||
|
||||
// Attributes
|
||||
void SetSplitterRect(LPRECT lpRect = NULL, bool bUpdate = true)
|
||||
{
|
||||
if(lpRect == NULL)
|
||||
{
|
||||
T* pT = static_cast<T*>(this);
|
||||
pT->GetClientRect(&m_rcSplitter);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_rcSplitter = *lpRect;
|
||||
}
|
||||
|
||||
if(IsProportional())
|
||||
UpdateProportionalPos();
|
||||
else if(IsRightAligned())
|
||||
UpdateRightAlignPos();
|
||||
|
||||
if(bUpdate)
|
||||
UpdateSplitterLayout();
|
||||
}
|
||||
|
||||
void GetSplitterRect(LPRECT lpRect) const
|
||||
{
|
||||
ATLASSERT(lpRect != NULL);
|
||||
*lpRect = m_rcSplitter;
|
||||
}
|
||||
|
||||
bool SetSplitterPos(int xyPos = -1, bool bUpdate = true)
|
||||
{
|
||||
if(xyPos == -1) // -1 == middle
|
||||
{
|
||||
if(t_bVertical)
|
||||
xyPos = (m_rcSplitter.right - m_rcSplitter.left - m_cxySplitBar - m_cxyBarEdge) / 2;
|
||||
else
|
||||
xyPos = (m_rcSplitter.bottom - m_rcSplitter.top - m_cxySplitBar - m_cxyBarEdge) / 2;
|
||||
}
|
||||
|
||||
// Adjust if out of valid range
|
||||
int cxyMax = 0;
|
||||
if(t_bVertical)
|
||||
cxyMax = m_rcSplitter.right - m_rcSplitter.left;
|
||||
else
|
||||
cxyMax = m_rcSplitter.bottom - m_rcSplitter.top;
|
||||
|
||||
if(xyPos < m_cxyMin + m_cxyBarEdge)
|
||||
xyPos = m_cxyMin;
|
||||
else if(xyPos > (cxyMax - m_cxySplitBar - m_cxyBarEdge - m_cxyMin))
|
||||
xyPos = cxyMax - m_cxySplitBar - m_cxyBarEdge - m_cxyMin;
|
||||
|
||||
// Set new position and update if requested
|
||||
bool bRet = (m_xySplitterPos != xyPos);
|
||||
m_xySplitterPos = xyPos;
|
||||
|
||||
if(m_bUpdateProportionalPos)
|
||||
{
|
||||
if(IsProportional())
|
||||
StoreProportionalPos();
|
||||
else if(IsRightAligned())
|
||||
StoreRightAlignPos();
|
||||
}
|
||||
else
|
||||
{
|
||||
m_bUpdateProportionalPos = true;
|
||||
}
|
||||
|
||||
if(bUpdate && bRet)
|
||||
UpdateSplitterLayout();
|
||||
|
||||
return bRet;
|
||||
}
|
||||
|
||||
void SetSplitterPosPct(int nPct, bool bUpdate = true)
|
||||
{
|
||||
ATLASSERT(nPct >= 0 && nPct <= 100);
|
||||
|
||||
m_nProportionalPos = ::MulDiv(nPct, m_nPropMax, 100);
|
||||
UpdateProportionalPos();
|
||||
|
||||
if(bUpdate)
|
||||
UpdateSplitterLayout();
|
||||
}
|
||||
|
||||
int GetSplitterPos() const
|
||||
{
|
||||
return m_xySplitterPos;
|
||||
}
|
||||
|
||||
bool SetSinglePaneMode(int nPane = SPLIT_PANE_NONE)
|
||||
{
|
||||
ATLASSERT(nPane == SPLIT_PANE_LEFT || nPane == SPLIT_PANE_RIGHT || nPane == SPLIT_PANE_NONE);
|
||||
if(!(nPane == SPLIT_PANE_LEFT || nPane == SPLIT_PANE_RIGHT || nPane == SPLIT_PANE_NONE))
|
||||
return false;
|
||||
|
||||
if(nPane != SPLIT_PANE_NONE)
|
||||
{
|
||||
if(!::IsWindowVisible(m_hWndPane[nPane]))
|
||||
::ShowWindow(m_hWndPane[nPane], SW_SHOW);
|
||||
int nOtherPane = (nPane == SPLIT_PANE_LEFT) ? SPLIT_PANE_RIGHT : SPLIT_PANE_LEFT;
|
||||
::ShowWindow(m_hWndPane[nOtherPane], SW_HIDE);
|
||||
if(m_nDefActivePane != nPane)
|
||||
m_nDefActivePane = nPane;
|
||||
}
|
||||
else if(m_nSinglePane != SPLIT_PANE_NONE)
|
||||
{
|
||||
int nOtherPane = (m_nSinglePane == SPLIT_PANE_LEFT) ? SPLIT_PANE_RIGHT : SPLIT_PANE_LEFT;
|
||||
::ShowWindow(m_hWndPane[nOtherPane], SW_SHOW);
|
||||
}
|
||||
|
||||
m_nSinglePane = nPane;
|
||||
UpdateSplitterLayout();
|
||||
return true;
|
||||
}
|
||||
|
||||
int GetSinglePaneMode() const
|
||||
{
|
||||
return m_nSinglePane;
|
||||
}
|
||||
|
||||
DWORD GetSplitterExtendedStyle() const
|
||||
{
|
||||
return m_dwExtendedStyle;
|
||||
}
|
||||
|
||||
DWORD SetSplitterExtendedStyle(DWORD dwExtendedStyle, DWORD dwMask = 0)
|
||||
{
|
||||
DWORD dwPrevStyle = m_dwExtendedStyle;
|
||||
if(dwMask == 0)
|
||||
m_dwExtendedStyle = dwExtendedStyle;
|
||||
else
|
||||
m_dwExtendedStyle = (m_dwExtendedStyle & ~dwMask) | (dwExtendedStyle & dwMask);
|
||||
#ifdef _DEBUG
|
||||
if(IsProportional() && IsRightAligned())
|
||||
ATLTRACE2(atlTraceUI, 0, _T("CSplitterImpl::SetSplitterExtendedStyle - SPLIT_PROPORTIONAL and SPLIT_RIGHTALIGNED are mutually exclusive, defaulting to SPLIT_PROPORTIONAL.\n"));
|
||||
#endif // _DEBUG
|
||||
return dwPrevStyle;
|
||||
}
|
||||
|
||||
// Splitter operations
|
||||
void SetSplitterPanes(HWND hWndLeftTop, HWND hWndRightBottom, bool bUpdate = true)
|
||||
{
|
||||
m_hWndPane[SPLIT_PANE_LEFT] = hWndLeftTop;
|
||||
m_hWndPane[SPLIT_PANE_RIGHT] = hWndRightBottom;
|
||||
ATLASSERT(m_hWndPane[SPLIT_PANE_LEFT] == NULL || m_hWndPane[SPLIT_PANE_RIGHT] == NULL || m_hWndPane[SPLIT_PANE_LEFT] != m_hWndPane[SPLIT_PANE_RIGHT]);
|
||||
if(bUpdate)
|
||||
UpdateSplitterLayout();
|
||||
}
|
||||
|
||||
bool SetSplitterPane(int nPane, HWND hWnd, bool bUpdate = true)
|
||||
{
|
||||
ATLASSERT(nPane == SPLIT_PANE_LEFT || nPane == SPLIT_PANE_RIGHT);
|
||||
|
||||
if(nPane != SPLIT_PANE_LEFT && nPane != SPLIT_PANE_RIGHT)
|
||||
return false;
|
||||
m_hWndPane[nPane] = hWnd;
|
||||
ATLASSERT(m_hWndPane[SPLIT_PANE_LEFT] == NULL || m_hWndPane[SPLIT_PANE_RIGHT] == NULL || m_hWndPane[SPLIT_PANE_LEFT] != m_hWndPane[SPLIT_PANE_RIGHT]);
|
||||
if(bUpdate)
|
||||
UpdateSplitterLayout();
|
||||
return true;
|
||||
}
|
||||
|
||||
HWND GetSplitterPane(int nPane) const
|
||||
{
|
||||
ATLASSERT(nPane == SPLIT_PANE_LEFT || nPane == SPLIT_PANE_RIGHT);
|
||||
|
||||
if(nPane != SPLIT_PANE_LEFT && nPane != SPLIT_PANE_RIGHT)
|
||||
return false;
|
||||
return m_hWndPane[nPane];
|
||||
}
|
||||
|
||||
bool SetActivePane(int nPane)
|
||||
{
|
||||
ATLASSERT(nPane == SPLIT_PANE_LEFT || nPane == SPLIT_PANE_RIGHT);
|
||||
|
||||
if(nPane != SPLIT_PANE_LEFT && nPane != SPLIT_PANE_RIGHT)
|
||||
return false;
|
||||
if(m_nSinglePane != SPLIT_PANE_NONE && nPane != m_nSinglePane)
|
||||
return false;
|
||||
::SetFocus(m_hWndPane[nPane]);
|
||||
m_nDefActivePane = nPane;
|
||||
return true;
|
||||
}
|
||||
|
||||
int GetActivePane() const
|
||||
{
|
||||
int nRet = SPLIT_PANE_NONE;
|
||||
HWND hWndFocus = ::GetFocus();
|
||||
if(hWndFocus != NULL)
|
||||
{
|
||||
for(int nPane = 0; nPane < m_nPanesCount; nPane++)
|
||||
{
|
||||
if(hWndFocus == m_hWndPane[nPane] || ::IsChild(m_hWndPane[nPane], hWndFocus))
|
||||
{
|
||||
nRet = nPane;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return nRet;
|
||||
}
|
||||
|
||||
bool ActivateNextPane(bool bNext = true)
|
||||
{
|
||||
int nPane = m_nSinglePane;
|
||||
if(nPane == SPLIT_PANE_NONE)
|
||||
{
|
||||
switch(GetActivePane())
|
||||
{
|
||||
case SPLIT_PANE_LEFT:
|
||||
nPane = SPLIT_PANE_RIGHT;
|
||||
break;
|
||||
case SPLIT_PANE_RIGHT:
|
||||
nPane = SPLIT_PANE_LEFT;
|
||||
break;
|
||||
default:
|
||||
nPane = bNext ? SPLIT_PANE_LEFT : SPLIT_PANE_RIGHT;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return SetActivePane(nPane);
|
||||
}
|
||||
|
||||
bool SetDefaultActivePane(int nPane)
|
||||
{
|
||||
ATLASSERT(nPane == SPLIT_PANE_LEFT || nPane == SPLIT_PANE_RIGHT);
|
||||
|
||||
if(nPane != SPLIT_PANE_LEFT && nPane != SPLIT_PANE_RIGHT)
|
||||
return false;
|
||||
m_nDefActivePane = nPane;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool SetDefaultActivePane(HWND hWnd)
|
||||
{
|
||||
for(int nPane = 0; nPane < m_nPanesCount; nPane++)
|
||||
{
|
||||
if(hWnd == m_hWndPane[nPane])
|
||||
{
|
||||
m_nDefActivePane = nPane;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false; // not found
|
||||
}
|
||||
|
||||
int GetDefaultActivePane() const
|
||||
{
|
||||
return m_nDefActivePane;
|
||||
}
|
||||
|
||||
void DrawSplitter(CDCHandle dc)
|
||||
{
|
||||
ATLASSERT(dc.m_hDC != NULL);
|
||||
if(m_nSinglePane == SPLIT_PANE_NONE && m_xySplitterPos == -1)
|
||||
return;
|
||||
|
||||
T* pT = static_cast<T*>(this);
|
||||
if(m_nSinglePane == SPLIT_PANE_NONE)
|
||||
{
|
||||
pT->DrawSplitterBar(dc);
|
||||
|
||||
for(int nPane = 0; nPane < m_nPanesCount; nPane++)
|
||||
{
|
||||
if(m_hWndPane[nPane] == NULL)
|
||||
pT->DrawSplitterPane(dc, nPane);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(m_hWndPane[m_nSinglePane] == NULL)
|
||||
pT->DrawSplitterPane(dc, m_nSinglePane);
|
||||
}
|
||||
}
|
||||
|
||||
// Overrideables
|
||||
void DrawSplitterBar(CDCHandle dc)
|
||||
{
|
||||
RECT rect;
|
||||
if(GetSplitterBarRect(&rect))
|
||||
{
|
||||
dc.FillRect(&rect, COLOR_3DFACE);
|
||||
// draw 3D edge if needed
|
||||
T* pT = static_cast<T*>(this);
|
||||
if((pT->GetExStyle() & WS_EX_CLIENTEDGE) != 0)
|
||||
dc.DrawEdge(&rect, EDGE_RAISED, t_bVertical ? (BF_LEFT | BF_RIGHT) : (BF_TOP | BF_BOTTOM));
|
||||
}
|
||||
}
|
||||
|
||||
// called only if pane is empty
|
||||
void DrawSplitterPane(CDCHandle dc, int nPane)
|
||||
{
|
||||
RECT rect;
|
||||
if(GetSplitterPaneRect(nPane, &rect))
|
||||
{
|
||||
T* pT = static_cast<T*>(this);
|
||||
if((pT->GetExStyle() & WS_EX_CLIENTEDGE) == 0)
|
||||
dc.DrawEdge(&rect, EDGE_SUNKEN, BF_RECT | BF_ADJUST);
|
||||
dc.FillRect(&rect, COLOR_APPWORKSPACE);
|
||||
}
|
||||
}
|
||||
|
||||
// Message map and handlers
|
||||
BEGIN_MSG_MAP(CSplitterImpl)
|
||||
MESSAGE_HANDLER(WM_CREATE, OnCreate)
|
||||
MESSAGE_HANDLER(WM_PAINT, OnPaint)
|
||||
#ifndef _WIN32_WCE
|
||||
MESSAGE_HANDLER(WM_PRINTCLIENT, OnPaint)
|
||||
#endif // !_WIN32_WCE
|
||||
if(IsInteractive())
|
||||
{
|
||||
MESSAGE_HANDLER(WM_SETCURSOR, OnSetCursor)
|
||||
MESSAGE_HANDLER(WM_MOUSEMOVE, OnMouseMove)
|
||||
MESSAGE_HANDLER(WM_LBUTTONDOWN, OnLButtonDown)
|
||||
MESSAGE_HANDLER(WM_LBUTTONUP, OnLButtonUp)
|
||||
MESSAGE_HANDLER(WM_LBUTTONDBLCLK, OnLButtonDoubleClick)
|
||||
MESSAGE_HANDLER(WM_CAPTURECHANGED, OnCaptureChanged)
|
||||
}
|
||||
MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
|
||||
#ifndef _WIN32_WCE
|
||||
MESSAGE_HANDLER(WM_MOUSEACTIVATE, OnMouseActivate)
|
||||
#endif // !_WIN32_WCE
|
||||
MESSAGE_HANDLER(WM_SETTINGCHANGE, OnSettingChange)
|
||||
END_MSG_MAP()
|
||||
|
||||
LRESULT OnCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled)
|
||||
{
|
||||
GetSystemSettings(false);
|
||||
bHandled = FALSE;
|
||||
return 1;
|
||||
}
|
||||
|
||||
LRESULT OnPaint(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
|
||||
{
|
||||
T* pT = static_cast<T*>(this);
|
||||
// try setting position if not set
|
||||
if(m_nSinglePane == SPLIT_PANE_NONE && m_xySplitterPos == -1)
|
||||
pT->SetSplitterPos();
|
||||
// do painting
|
||||
CPaintDC dc(pT->m_hWnd);
|
||||
pT->DrawSplitter(dc.m_hDC);
|
||||
return 0;
|
||||
}
|
||||
|
||||
LRESULT OnSetCursor(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
|
||||
{
|
||||
T* pT = static_cast<T*>(this);
|
||||
if((HWND)wParam == pT->m_hWnd && LOWORD(lParam) == HTCLIENT)
|
||||
{
|
||||
DWORD dwPos = ::GetMessagePos();
|
||||
POINT ptPos = { GET_X_LPARAM(dwPos), GET_Y_LPARAM(dwPos) };
|
||||
pT->ScreenToClient(&ptPos);
|
||||
if(IsOverSplitterBar(ptPos.x, ptPos.y))
|
||||
return 1;
|
||||
}
|
||||
|
||||
bHandled = FALSE;
|
||||
return 0;
|
||||
}
|
||||
|
||||
LRESULT OnMouseMove(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
|
||||
{
|
||||
T* pT = static_cast<T*>(this);
|
||||
int xPos = GET_X_LPARAM(lParam);
|
||||
int yPos = GET_Y_LPARAM(lParam);
|
||||
if((wParam & MK_LBUTTON) && ::GetCapture() == pT->m_hWnd)
|
||||
{
|
||||
int xyNewSplitPos = 0;
|
||||
if(t_bVertical)
|
||||
xyNewSplitPos = xPos - m_rcSplitter.left - m_cxyDragOffset;
|
||||
else
|
||||
xyNewSplitPos = yPos - m_rcSplitter.top - m_cxyDragOffset;
|
||||
|
||||
if(xyNewSplitPos == -1) // avoid -1, that means middle
|
||||
xyNewSplitPos = -2;
|
||||
|
||||
if(m_xySplitterPos != xyNewSplitPos)
|
||||
{
|
||||
if(m_bFullDrag)
|
||||
{
|
||||
if(pT->SetSplitterPos(xyNewSplitPos, true))
|
||||
pT->UpdateWindow();
|
||||
}
|
||||
else
|
||||
{
|
||||
DrawGhostBar();
|
||||
pT->SetSplitterPos(xyNewSplitPos, false);
|
||||
DrawGhostBar();
|
||||
}
|
||||
}
|
||||
}
|
||||
else // not dragging, just set cursor
|
||||
{
|
||||
if(IsOverSplitterBar(xPos, yPos))
|
||||
::SetCursor(m_hCursor);
|
||||
bHandled = FALSE;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
LRESULT OnLButtonDown(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& bHandled)
|
||||
{
|
||||
int xPos = GET_X_LPARAM(lParam);
|
||||
int yPos = GET_Y_LPARAM(lParam);
|
||||
if(IsOverSplitterBar(xPos, yPos))
|
||||
{
|
||||
T* pT = static_cast<T*>(this);
|
||||
pT->SetCapture();
|
||||
::SetCursor(m_hCursor);
|
||||
if(!m_bFullDrag)
|
||||
DrawGhostBar();
|
||||
if(t_bVertical)
|
||||
m_cxyDragOffset = xPos - m_rcSplitter.left - m_xySplitterPos;
|
||||
else
|
||||
m_cxyDragOffset = yPos - m_rcSplitter.top - m_xySplitterPos;
|
||||
}
|
||||
bHandled = FALSE;
|
||||
return 1;
|
||||
}
|
||||
|
||||
LRESULT OnLButtonUp(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled)
|
||||
{
|
||||
::ReleaseCapture();
|
||||
bHandled = FALSE;
|
||||
return 1;
|
||||
}
|
||||
|
||||
LRESULT OnLButtonDoubleClick(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
|
||||
{
|
||||
T* pT = static_cast<T*>(this);
|
||||
pT->SetSplitterPos(); // middle
|
||||
return 0;
|
||||
}
|
||||
|
||||
LRESULT OnCaptureChanged(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
|
||||
{
|
||||
if(!m_bFullDrag)
|
||||
{
|
||||
DrawGhostBar();
|
||||
UpdateSplitterLayout();
|
||||
T* pT = static_cast<T*>(this);
|
||||
pT->UpdateWindow();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
LRESULT OnSetFocus(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM, BOOL& bHandled)
|
||||
{
|
||||
if(m_nSinglePane == SPLIT_PANE_NONE)
|
||||
{
|
||||
if(m_nDefActivePane == SPLIT_PANE_LEFT || m_nDefActivePane == SPLIT_PANE_RIGHT)
|
||||
::SetFocus(m_hWndPane[m_nDefActivePane]);
|
||||
}
|
||||
else
|
||||
{
|
||||
::SetFocus(m_hWndPane[m_nSinglePane]);
|
||||
}
|
||||
bHandled = FALSE;
|
||||
return 1;
|
||||
}
|
||||
|
||||
#ifndef _WIN32_WCE
|
||||
LRESULT OnMouseActivate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& /*bHandled*/)
|
||||
{
|
||||
T* pT = static_cast<T*>(this);
|
||||
LRESULT lRet = pT->DefWindowProc(uMsg, wParam, lParam);
|
||||
if(lRet == MA_ACTIVATE || lRet == MA_ACTIVATEANDEAT)
|
||||
{
|
||||
DWORD dwPos = ::GetMessagePos();
|
||||
POINT pt = { GET_X_LPARAM(dwPos), GET_Y_LPARAM(dwPos) };
|
||||
pT->ScreenToClient(&pt);
|
||||
RECT rcPane;
|
||||
for(int nPane = 0; nPane < m_nPanesCount; nPane++)
|
||||
{
|
||||
if(GetSplitterPaneRect(nPane, &rcPane) && ::PtInRect(&rcPane, pt))
|
||||
{
|
||||
m_nDefActivePane = nPane;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return lRet;
|
||||
}
|
||||
#endif // !_WIN32_WCE
|
||||
|
||||
LRESULT OnSettingChange(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
|
||||
{
|
||||
GetSystemSettings(true);
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Implementation - internal helpers
|
||||
void UpdateSplitterLayout()
|
||||
{
|
||||
if(m_nSinglePane == SPLIT_PANE_NONE && m_xySplitterPos == -1)
|
||||
return;
|
||||
|
||||
T* pT = static_cast<T*>(this);
|
||||
RECT rect = { 0, 0, 0, 0 };
|
||||
if(m_nSinglePane == SPLIT_PANE_NONE)
|
||||
{
|
||||
if(GetSplitterBarRect(&rect))
|
||||
pT->InvalidateRect(&rect);
|
||||
|
||||
for(int nPane = 0; nPane < m_nPanesCount; nPane++)
|
||||
{
|
||||
if(GetSplitterPaneRect(nPane, &rect))
|
||||
{
|
||||
if(m_hWndPane[nPane] != NULL)
|
||||
::SetWindowPos(m_hWndPane[nPane], NULL, rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, SWP_NOZORDER);
|
||||
else
|
||||
pT->InvalidateRect(&rect);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(GetSplitterPaneRect(m_nSinglePane, &rect))
|
||||
{
|
||||
if(m_hWndPane[m_nSinglePane] != NULL)
|
||||
::SetWindowPos(m_hWndPane[m_nSinglePane], NULL, rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, SWP_NOZORDER);
|
||||
else
|
||||
pT->InvalidateRect(&rect);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool GetSplitterBarRect(LPRECT lpRect) const
|
||||
{
|
||||
ATLASSERT(lpRect != NULL);
|
||||
if(m_nSinglePane != SPLIT_PANE_NONE || m_xySplitterPos == -1)
|
||||
return false;
|
||||
|
||||
if(t_bVertical)
|
||||
{
|
||||
lpRect->left = m_rcSplitter.left + m_xySplitterPos;
|
||||
lpRect->top = m_rcSplitter.top;
|
||||
lpRect->right = m_rcSplitter.left + m_xySplitterPos + m_cxySplitBar + m_cxyBarEdge;
|
||||
lpRect->bottom = m_rcSplitter.bottom;
|
||||
}
|
||||
else
|
||||
{
|
||||
lpRect->left = m_rcSplitter.left;
|
||||
lpRect->top = m_rcSplitter.top + m_xySplitterPos;
|
||||
lpRect->right = m_rcSplitter.right;
|
||||
lpRect->bottom = m_rcSplitter.top + m_xySplitterPos + m_cxySplitBar + m_cxyBarEdge;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GetSplitterPaneRect(int nPane, LPRECT lpRect) const
|
||||
{
|
||||
ATLASSERT(nPane == SPLIT_PANE_LEFT || nPane == SPLIT_PANE_RIGHT);
|
||||
ATLASSERT(lpRect != NULL);
|
||||
bool bRet = true;
|
||||
if(m_nSinglePane != SPLIT_PANE_NONE)
|
||||
{
|
||||
if(nPane == m_nSinglePane)
|
||||
*lpRect = m_rcSplitter;
|
||||
else
|
||||
bRet = false;
|
||||
}
|
||||
else if(nPane == SPLIT_PANE_LEFT)
|
||||
{
|
||||
if(t_bVertical)
|
||||
{
|
||||
lpRect->left = m_rcSplitter.left;
|
||||
lpRect->top = m_rcSplitter.top;
|
||||
lpRect->right = m_rcSplitter.left + m_xySplitterPos;
|
||||
lpRect->bottom = m_rcSplitter.bottom;
|
||||
}
|
||||
else
|
||||
{
|
||||
lpRect->left = m_rcSplitter.left;
|
||||
lpRect->top = m_rcSplitter.top;
|
||||
lpRect->right = m_rcSplitter.right;
|
||||
lpRect->bottom = m_rcSplitter.top + m_xySplitterPos;
|
||||
}
|
||||
}
|
||||
else if(nPane == SPLIT_PANE_RIGHT)
|
||||
{
|
||||
if(t_bVertical)
|
||||
{
|
||||
lpRect->left = m_rcSplitter.left + m_xySplitterPos + m_cxySplitBar + m_cxyBarEdge;
|
||||
lpRect->top = m_rcSplitter.top;
|
||||
lpRect->right = m_rcSplitter.right;
|
||||
lpRect->bottom = m_rcSplitter.bottom;
|
||||
}
|
||||
else
|
||||
{
|
||||
lpRect->left = m_rcSplitter.left;
|
||||
lpRect->top = m_rcSplitter.top + m_xySplitterPos + m_cxySplitBar + m_cxyBarEdge;
|
||||
lpRect->right = m_rcSplitter.right;
|
||||
lpRect->bottom = m_rcSplitter.bottom;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
bRet = false;
|
||||
}
|
||||
return bRet;
|
||||
}
|
||||
|
||||
bool IsOverSplitterRect(int x, int y) const
|
||||
{
|
||||
// -1 == don't check
|
||||
return ((x == -1 || (x >= m_rcSplitter.left && x <= m_rcSplitter.right)) &&
|
||||
(y == -1 || (y >= m_rcSplitter.top && y <= m_rcSplitter.bottom)));
|
||||
}
|
||||
|
||||
bool IsOverSplitterBar(int x, int y) const
|
||||
{
|
||||
if(m_nSinglePane != SPLIT_PANE_NONE)
|
||||
return false;
|
||||
if(m_xySplitterPos == -1 || !IsOverSplitterRect(x, y))
|
||||
return false;
|
||||
int xy = t_bVertical ? x : y;
|
||||
int xyOff = t_bVertical ? m_rcSplitter.left : m_rcSplitter.top;
|
||||
return ((xy >= (xyOff + m_xySplitterPos)) && (xy < xyOff + m_xySplitterPos + m_cxySplitBar + m_cxyBarEdge));
|
||||
}
|
||||
|
||||
void DrawGhostBar()
|
||||
{
|
||||
RECT rect = { 0, 0, 0, 0 };
|
||||
if(GetSplitterBarRect(&rect))
|
||||
{
|
||||
// invert the brush pattern (looks just like frame window sizing)
|
||||
T* pT = static_cast<T*>(this);
|
||||
CWindowDC dc(pT->m_hWnd);
|
||||
CBrush brush = CDCHandle::GetHalftoneBrush();
|
||||
if(brush.m_hBrush != NULL)
|
||||
{
|
||||
CBrushHandle brushOld = dc.SelectBrush(brush);
|
||||
dc.PatBlt(rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, PATINVERT);
|
||||
dc.SelectBrush(brushOld);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void GetSystemSettings(bool bUpdate)
|
||||
{
|
||||
#ifndef _WIN32_WCE
|
||||
m_cxySplitBar = ::GetSystemMetrics(t_bVertical ? SM_CXSIZEFRAME : SM_CYSIZEFRAME);
|
||||
#else // CE specific
|
||||
m_cxySplitBar = 2 * ::GetSystemMetrics(t_bVertical ? SM_CXEDGE : SM_CYEDGE);
|
||||
#endif // _WIN32_WCE
|
||||
|
||||
T* pT = static_cast<T*>(this);
|
||||
if((pT->GetExStyle() & WS_EX_CLIENTEDGE))
|
||||
{
|
||||
m_cxyBarEdge = 2 * ::GetSystemMetrics(t_bVertical ? SM_CXEDGE : SM_CYEDGE);
|
||||
m_cxyMin = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_cxyBarEdge = 0;
|
||||
m_cxyMin = 2 * ::GetSystemMetrics(t_bVertical ? SM_CXEDGE : SM_CYEDGE);
|
||||
}
|
||||
|
||||
#ifndef _WIN32_WCE
|
||||
::SystemParametersInfo(SPI_GETDRAGFULLWINDOWS, 0, &m_bFullDrag, 0);
|
||||
#endif // !_WIN32_WCE
|
||||
|
||||
if(bUpdate)
|
||||
UpdateSplitterLayout();
|
||||
}
|
||||
|
||||
bool IsProportional() const
|
||||
{
|
||||
return ((m_dwExtendedStyle & SPLIT_PROPORTIONAL) != 0);
|
||||
}
|
||||
|
||||
void StoreProportionalPos()
|
||||
{
|
||||
int cxyTotal = t_bVertical ? (m_rcSplitter.right - m_rcSplitter.left - m_cxySplitBar - m_cxyBarEdge) : (m_rcSplitter.bottom - m_rcSplitter.top - m_cxySplitBar - m_cxyBarEdge);
|
||||
if(cxyTotal > 0)
|
||||
m_nProportionalPos = ::MulDiv(m_xySplitterPos, m_nPropMax, cxyTotal);
|
||||
else
|
||||
m_nProportionalPos = 0;
|
||||
ATLTRACE2(atlTraceUI, 0, _T("CSplitterImpl::StoreProportionalPos - %i\n"), m_nProportionalPos);
|
||||
}
|
||||
|
||||
void UpdateProportionalPos()
|
||||
{
|
||||
int cxyTotal = t_bVertical ? (m_rcSplitter.right - m_rcSplitter.left - m_cxySplitBar - m_cxyBarEdge) : (m_rcSplitter.bottom - m_rcSplitter.top - m_cxySplitBar - m_cxyBarEdge);
|
||||
if(cxyTotal > 0)
|
||||
{
|
||||
int xyNewPos = ::MulDiv(m_nProportionalPos, cxyTotal, m_nPropMax);
|
||||
m_bUpdateProportionalPos = false;
|
||||
T* pT = static_cast<T*>(this);
|
||||
pT->SetSplitterPos(xyNewPos, false);
|
||||
}
|
||||
}
|
||||
|
||||
bool IsRightAligned() const
|
||||
{
|
||||
return ((m_dwExtendedStyle & SPLIT_RIGHTALIGNED) != 0);
|
||||
}
|
||||
|
||||
void StoreRightAlignPos()
|
||||
{
|
||||
int cxyTotal = t_bVertical ? (m_rcSplitter.right - m_rcSplitter.left - m_cxySplitBar - m_cxyBarEdge) : (m_rcSplitter.bottom - m_rcSplitter.top - m_cxySplitBar - m_cxyBarEdge);
|
||||
if(cxyTotal > 0)
|
||||
m_nProportionalPos = cxyTotal - m_xySplitterPos;
|
||||
else
|
||||
m_nProportionalPos = 0;
|
||||
ATLTRACE2(atlTraceUI, 0, _T("CSplitterImpl::StoreRightAlignPos - %i\n"), m_nProportionalPos);
|
||||
}
|
||||
|
||||
void UpdateRightAlignPos()
|
||||
{
|
||||
int cxyTotal = t_bVertical ? (m_rcSplitter.right - m_rcSplitter.left - m_cxySplitBar - m_cxyBarEdge) : (m_rcSplitter.bottom - m_rcSplitter.top - m_cxySplitBar - m_cxyBarEdge);
|
||||
if(cxyTotal > 0)
|
||||
{
|
||||
m_bUpdateProportionalPos = false;
|
||||
T* pT = static_cast<T*>(this);
|
||||
pT->SetSplitterPos(cxyTotal - m_nProportionalPos, false);
|
||||
}
|
||||
}
|
||||
|
||||
bool IsInteractive() const
|
||||
{
|
||||
return ((m_dwExtendedStyle & SPLIT_NONINTERACTIVE) == 0);
|
||||
}
|
||||
};
|
||||
|
||||
template <class T, bool t_bVertical> HCURSOR CSplitterImpl< T, t_bVertical>::m_hCursor = NULL;
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// CSplitterWindowImpl - Implements a splitter window
|
||||
|
||||
template <class T, bool t_bVertical = true, class TBase = ATL::CWindow, class TWinTraits = ATL::CControlWinTraits>
|
||||
class ATL_NO_VTABLE CSplitterWindowImpl : public ATL::CWindowImpl< T, TBase, TWinTraits >, public CSplitterImpl< T , t_bVertical >
|
||||
{
|
||||
public:
|
||||
DECLARE_WND_CLASS_EX(NULL, CS_DBLCLKS, COLOR_WINDOW)
|
||||
|
||||
typedef CSplitterImpl< T , t_bVertical > _baseClass;
|
||||
|
||||
BEGIN_MSG_MAP(CSplitterWindowImpl)
|
||||
MESSAGE_HANDLER(WM_ERASEBKGND, OnEraseBackground)
|
||||
MESSAGE_HANDLER(WM_SIZE, OnSize)
|
||||
CHAIN_MSG_MAP(_baseClass)
|
||||
FORWARD_NOTIFICATIONS()
|
||||
END_MSG_MAP()
|
||||
|
||||
LRESULT OnEraseBackground(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
|
||||
{
|
||||
// handled, no background painting needed
|
||||
return 1;
|
||||
}
|
||||
|
||||
LRESULT OnSize(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL& bHandled)
|
||||
{
|
||||
if(wParam != SIZE_MINIMIZED)
|
||||
SetSplitterRect();
|
||||
|
||||
bHandled = FALSE;
|
||||
return 1;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// CSplitterWindow - Implements a splitter window to be used as is
|
||||
|
||||
template <bool t_bVertical = true>
|
||||
class CSplitterWindowT : public CSplitterWindowImpl<CSplitterWindowT<t_bVertical>, t_bVertical>
|
||||
{
|
||||
public:
|
||||
DECLARE_WND_CLASS_EX(_T("WTL_SplitterWindow"), CS_DBLCLKS, COLOR_WINDOW)
|
||||
};
|
||||
|
||||
typedef CSplitterWindowT<true> CSplitterWindow;
|
||||
typedef CSplitterWindowT<false> CHorSplitterWindow;
|
||||
|
||||
}; // namespace WTL
|
||||
|
||||
#endif // __ATLSPLIT_H__
|
1218
Externals/WTL80/atltheme.h
vendored
Normal file
1218
Externals/WTL80/atltheme.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1162
Externals/WTL80/atluser.h
vendored
Normal file
1162
Externals/WTL80/atluser.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
3010
Externals/WTL80/atlwince.h
vendored
Normal file
3010
Externals/WTL80/atlwince.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
529
Externals/WTL80/atlwinx.h
vendored
Normal file
529
Externals/WTL80/atlwinx.h
vendored
Normal file
@ -0,0 +1,529 @@
|
||||
// Windows Template Library - WTL version 8.0
|
||||
// Copyright (C) Microsoft Corporation. All rights reserved.
|
||||
//
|
||||
// This file is a part of the Windows Template Library.
|
||||
// The use and distribution terms for this software are covered by the
|
||||
// Common Public License 1.0 (http://opensource.org/osi3.0/licenses/cpl1.0.php)
|
||||
// which can be found in the file CPL.TXT at the root of this distribution.
|
||||
// By using this software in any fashion, you are agreeing to be bound by
|
||||
// the terms of this license. You must not remove this notice, or
|
||||
// any other, from this software.
|
||||
|
||||
#ifndef __ATLWINX_H__
|
||||
#define __ATLWINX_H__
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef __cplusplus
|
||||
#error ATL requires C++ compilation (use a .cpp suffix)
|
||||
#endif
|
||||
|
||||
#ifndef __ATLAPP_H__
|
||||
#error atlwinx.h requires atlapp.h to be included first
|
||||
#endif
|
||||
|
||||
#if (_ATL_VER >= 0x0700)
|
||||
#include <atlwin.h>
|
||||
#endif // (_ATL_VER >= 0x0700)
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Classes in this file:
|
||||
//
|
||||
// _U_RECT
|
||||
// _U_MENUorID
|
||||
// _U_STRINGorID
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Command Chaining Macros
|
||||
|
||||
#define CHAIN_COMMANDS(theChainClass) \
|
||||
if(uMsg == WM_COMMAND) \
|
||||
CHAIN_MSG_MAP(theChainClass)
|
||||
|
||||
#define CHAIN_COMMANDS_ALT(theChainClass, msgMapID) \
|
||||
if(uMsg == WM_COMMAND) \
|
||||
CHAIN_MSG_MAP_ALT(theChainClass, msgMapID)
|
||||
|
||||
#define CHAIN_COMMANDS_MEMBER(theChainMember) \
|
||||
if(uMsg == WM_COMMAND) \
|
||||
CHAIN_MSG_MAP_MEMBER(theChainMember)
|
||||
|
||||
#define CHAIN_COMMANDS_ALT_MEMBER(theChainMember, msgMapID) \
|
||||
if(uMsg == WM_COMMAND) \
|
||||
CHAIN_MSG_MAP_ALT_MEMBER(theChainMember, msgMapID)
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Macros for parent message map to selectively reflect control messages
|
||||
|
||||
// NOTE: ReflectNotifications is a member of ATL's CWindowImplRoot
|
||||
// (and overridden in 2 cases - CContainedWindowT and CAxHostWindow)
|
||||
// Since we can't modify ATL, we'll provide the needed additions
|
||||
// in a separate function (that is not a member of CWindowImplRoot)
|
||||
|
||||
namespace WTL
|
||||
{
|
||||
|
||||
inline LRESULT WtlReflectNotificationsFiltered(HWND hWndParent, UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled,
|
||||
UINT uMsgFilter = WM_NULL, UINT_PTR idFromFilter = 0, HWND hWndChildFilter = NULL)
|
||||
{
|
||||
if((uMsgFilter != WM_NULL) && (uMsgFilter != uMsg))
|
||||
{
|
||||
// The notification message doesn't match the filter.
|
||||
bHandled = FALSE;
|
||||
return 1;
|
||||
}
|
||||
|
||||
HWND hWndChild = NULL;
|
||||
UINT_PTR idFrom = 0;
|
||||
|
||||
switch(uMsg)
|
||||
{
|
||||
case WM_COMMAND:
|
||||
if(lParam != NULL) // not from a menu
|
||||
{
|
||||
hWndChild = (HWND)lParam;
|
||||
idFrom = (UINT_PTR)LOWORD(wParam);
|
||||
}
|
||||
break;
|
||||
case WM_NOTIFY:
|
||||
hWndChild = ((LPNMHDR)lParam)->hwndFrom;
|
||||
idFrom = ((LPNMHDR)lParam)->idFrom;
|
||||
break;
|
||||
#ifndef _WIN32_WCE
|
||||
case WM_PARENTNOTIFY:
|
||||
switch(LOWORD(wParam))
|
||||
{
|
||||
case WM_CREATE:
|
||||
case WM_DESTROY:
|
||||
hWndChild = (HWND)lParam;
|
||||
idFrom = (UINT_PTR)HIWORD(wParam);
|
||||
break;
|
||||
default:
|
||||
hWndChild = ::GetDlgItem(hWndParent, HIWORD(wParam));
|
||||
idFrom = (UINT_PTR)::GetDlgCtrlID(hWndChild);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
#endif // !_WIN32_WCE
|
||||
case WM_DRAWITEM:
|
||||
if(wParam) // not from a menu
|
||||
{
|
||||
hWndChild = ((LPDRAWITEMSTRUCT)lParam)->hwndItem;
|
||||
idFrom = (UINT_PTR)wParam;
|
||||
}
|
||||
break;
|
||||
case WM_MEASUREITEM:
|
||||
if(wParam) // not from a menu
|
||||
{
|
||||
hWndChild = ::GetDlgItem(hWndParent, ((LPMEASUREITEMSTRUCT)lParam)->CtlID);
|
||||
idFrom = (UINT_PTR)wParam;
|
||||
}
|
||||
break;
|
||||
case WM_COMPAREITEM:
|
||||
if(wParam) // not from a menu
|
||||
{
|
||||
hWndChild = ((LPCOMPAREITEMSTRUCT)lParam)->hwndItem;
|
||||
idFrom = (UINT_PTR)wParam;
|
||||
}
|
||||
break;
|
||||
case WM_DELETEITEM:
|
||||
if(wParam) // not from a menu
|
||||
{
|
||||
hWndChild = ((LPDELETEITEMSTRUCT)lParam)->hwndItem;
|
||||
idFrom = (UINT_PTR)wParam;
|
||||
}
|
||||
break;
|
||||
case WM_VKEYTOITEM:
|
||||
case WM_CHARTOITEM:
|
||||
case WM_HSCROLL:
|
||||
case WM_VSCROLL:
|
||||
hWndChild = (HWND)lParam;
|
||||
idFrom = (UINT_PTR)::GetDlgCtrlID(hWndChild);
|
||||
break;
|
||||
case WM_CTLCOLORBTN:
|
||||
case WM_CTLCOLORDLG:
|
||||
case WM_CTLCOLOREDIT:
|
||||
case WM_CTLCOLORLISTBOX:
|
||||
case WM_CTLCOLORMSGBOX:
|
||||
case WM_CTLCOLORSCROLLBAR:
|
||||
case WM_CTLCOLORSTATIC:
|
||||
hWndChild = (HWND)lParam;
|
||||
idFrom = (UINT_PTR)::GetDlgCtrlID(hWndChild);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if((hWndChild == NULL) ||
|
||||
((hWndChildFilter != NULL) && (hWndChildFilter != hWndChild)))
|
||||
{
|
||||
// Either hWndChild isn't valid, or
|
||||
// hWndChild doesn't match the filter.
|
||||
bHandled = FALSE;
|
||||
return 1;
|
||||
}
|
||||
|
||||
if((idFromFilter != 0) && (idFromFilter != idFrom))
|
||||
{
|
||||
// The dialog control id doesn't match the filter.
|
||||
bHandled = FALSE;
|
||||
return 1;
|
||||
}
|
||||
|
||||
ATLASSERT(::IsWindow(hWndChild));
|
||||
LRESULT lResult = ::SendMessage(hWndChild, OCM__BASE + uMsg, wParam, lParam);
|
||||
if((lResult == 0) && (uMsg >= WM_CTLCOLORMSGBOX) && (uMsg <= WM_CTLCOLORSTATIC))
|
||||
{
|
||||
// Try to prevent problems with WM_CTLCOLOR* messages when
|
||||
// the message wasn't really handled
|
||||
bHandled = FALSE;
|
||||
}
|
||||
|
||||
return lResult;
|
||||
}
|
||||
|
||||
}; // namespace WTL
|
||||
|
||||
// Try to prevent problems with WM_CTLCOLOR* messages when
|
||||
// the message wasn't really handled
|
||||
#define REFLECT_NOTIFICATIONS_EX() \
|
||||
{ \
|
||||
bHandled = TRUE; \
|
||||
lResult = ReflectNotifications(uMsg, wParam, lParam, bHandled); \
|
||||
if((lResult == 0) && (uMsg >= WM_CTLCOLORMSGBOX) && (uMsg <= WM_CTLCOLORSTATIC)) \
|
||||
bHandled = FALSE; \
|
||||
if(bHandled) \
|
||||
return TRUE; \
|
||||
}
|
||||
|
||||
#define REFLECT_NOTIFICATIONS_MSG_FILTERED(uMsgFilter) \
|
||||
{ \
|
||||
bHandled = TRUE; \
|
||||
lResult = WTL::WtlReflectNotificationsFiltered(m_hWnd, uMsg, wParam, lParam, bHandled, uMsgFilter, 0, NULL); \
|
||||
if(bHandled) \
|
||||
return TRUE; \
|
||||
}
|
||||
|
||||
#define REFLECT_NOTIFICATIONS_ID_FILTERED(idFromFilter) \
|
||||
{ \
|
||||
bHandled = TRUE; \
|
||||
lResult = WTL::WtlReflectNotificationsFiltered(m_hWnd, uMsg, wParam, lParam, bHandled, WM_NULL, idFromFilter, NULL); \
|
||||
if(bHandled) \
|
||||
return TRUE; \
|
||||
}
|
||||
|
||||
#define REFLECT_NOTIFICATIONS_HWND_FILTERED(hWndChildFilter) \
|
||||
{ \
|
||||
bHandled = TRUE; \
|
||||
lResult = WTL::WtlReflectNotificationsFiltered(m_hWnd, uMsg, wParam, lParam, bHandled, WM_NULL, 0, hWndChildFilter); \
|
||||
if(bHandled) \
|
||||
return TRUE; \
|
||||
}
|
||||
|
||||
#define REFLECT_NOTIFICATIONS_MSG_ID_FILTERED(uMsgFilter, idFromFilter) \
|
||||
{ \
|
||||
bHandled = TRUE; \
|
||||
lResult = WTL::WtlReflectNotificationsFiltered(m_hWnd, uMsg, wParam, lParam, bHandled, uMsgFilter, idFromFilter, NULL); \
|
||||
if(bHandled) \
|
||||
return TRUE; \
|
||||
}
|
||||
|
||||
#define REFLECT_NOTIFICATIONS_MSG_HWND_FILTERED(uMsgFilter, hWndChildFilter) \
|
||||
{ \
|
||||
bHandled = TRUE; \
|
||||
lResult = WTL::WtlReflectNotificationsFiltered(m_hWnd, uMsg, wParam, lParam, bHandled, uMsgFilter, 0, hWndChildFilter); \
|
||||
if(bHandled) \
|
||||
return TRUE; \
|
||||
}
|
||||
|
||||
#define REFLECT_COMMAND(id, code) \
|
||||
if(uMsg == WM_COMMAND && id == LOWORD(wParam) && code == HIWORD(wParam)) \
|
||||
{ \
|
||||
bHandled = TRUE; \
|
||||
lResult = ReflectNotifications(uMsg, wParam, lParam, bHandled); \
|
||||
if(bHandled) \
|
||||
return TRUE; \
|
||||
}
|
||||
|
||||
#define REFLECT_COMMAND_ID(id) \
|
||||
if(uMsg == WM_COMMAND && id == LOWORD(wParam)) \
|
||||
{ \
|
||||
bHandled = TRUE; \
|
||||
lResult = ReflectNotifications(uMsg, wParam, lParam, bHandled); \
|
||||
if(bHandled) \
|
||||
return TRUE; \
|
||||
}
|
||||
|
||||
#define REFLECT_COMMAND_CODE(code) \
|
||||
if(uMsg == WM_COMMAND && code == HIWORD(wParam)) \
|
||||
{ \
|
||||
bHandled = TRUE; \
|
||||
lResult = ReflectNotifications(uMsg, wParam, lParam, bHandled); \
|
||||
if(bHandled) \
|
||||
return TRUE; \
|
||||
}
|
||||
|
||||
#define REFLECT_COMMAND_RANGE(idFirst, idLast) \
|
||||
if(uMsg == WM_COMMAND && LOWORD(wParam) >= idFirst && LOWORD(wParam) <= idLast) \
|
||||
{ \
|
||||
bHandled = TRUE; \
|
||||
lResult = ReflectNotifications(uMsg, wParam, lParam, bHandled); \
|
||||
if(bHandled) \
|
||||
return TRUE; \
|
||||
}
|
||||
|
||||
#define REFLECT_COMMAND_RANGE_CODE(idFirst, idLast, code) \
|
||||
if(uMsg == WM_COMMAND && code == HIWORD(wParam) && LOWORD(wParam) >= idFirst && LOWORD(wParam) <= idLast) \
|
||||
{ \
|
||||
bHandled = TRUE; \
|
||||
lResult = ReflectNotifications(uMsg, wParam, lParam, bHandled); \
|
||||
if(bHandled) \
|
||||
return TRUE; \
|
||||
}
|
||||
|
||||
#define REFLECT_NOTIFY(id, cd) \
|
||||
if(uMsg == WM_NOTIFY && id == ((LPNMHDR)lParam)->idFrom && cd == ((LPNMHDR)lParam)->code) \
|
||||
{ \
|
||||
bHandled = TRUE; \
|
||||
lResult = ReflectNotifications(uMsg, wParam, lParam, bHandled); \
|
||||
if(bHandled) \
|
||||
return TRUE; \
|
||||
}
|
||||
|
||||
#define REFLECT_NOTIFY_ID(id) \
|
||||
if(uMsg == WM_NOTIFY && id == ((LPNMHDR)lParam)->idFrom) \
|
||||
{ \
|
||||
bHandled = TRUE; \
|
||||
lResult = ReflectNotifications(uMsg, wParam, lParam, bHandled); \
|
||||
if(bHandled) \
|
||||
return TRUE; \
|
||||
}
|
||||
|
||||
#define REFLECT_NOTIFY_CODE(cd) \
|
||||
if(uMsg == WM_NOTIFY && cd == ((LPNMHDR)lParam)->code) \
|
||||
{ \
|
||||
bHandled = TRUE; \
|
||||
lResult = ReflectNotifications(uMsg, wParam, lParam, bHandled); \
|
||||
if(bHandled) \
|
||||
return TRUE; \
|
||||
}
|
||||
|
||||
#define REFLECT_NOTIFY_RANGE(idFirst, idLast) \
|
||||
if(uMsg == WM_NOTIFY && ((LPNMHDR)lParam)->idFrom >= idFirst && ((LPNMHDR)lParam)->idFrom <= idLast) \
|
||||
{ \
|
||||
bHandled = TRUE; \
|
||||
lResult = ReflectNotifications(uMsg, wParam, lParam, bHandled); \
|
||||
if(bHandled) \
|
||||
return TRUE; \
|
||||
}
|
||||
|
||||
#define REFLECT_NOTIFY_RANGE_CODE(idFirst, idLast, cd) \
|
||||
if(uMsg == WM_NOTIFY && cd == ((LPNMHDR)lParam)->code && ((LPNMHDR)lParam)->idFrom >= idFirst && ((LPNMHDR)lParam)->idFrom <= idLast) \
|
||||
{ \
|
||||
bHandled = TRUE; \
|
||||
lResult = ReflectNotifications(uMsg, wParam, lParam, bHandled); \
|
||||
if(bHandled) \
|
||||
return TRUE; \
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Reflected message handler macros for message maps (for ATL 3.0)
|
||||
|
||||
#if (_ATL_VER < 0x0700)
|
||||
|
||||
#define REFLECTED_COMMAND_HANDLER(id, code, func) \
|
||||
if(uMsg == OCM_COMMAND && id == LOWORD(wParam) && code == HIWORD(wParam)) \
|
||||
{ \
|
||||
bHandled = TRUE; \
|
||||
lResult = func(HIWORD(wParam), LOWORD(wParam), (HWND)lParam, bHandled); \
|
||||
if(bHandled) \
|
||||
return TRUE; \
|
||||
}
|
||||
|
||||
#define REFLECTED_COMMAND_ID_HANDLER(id, func) \
|
||||
if(uMsg == OCM_COMMAND && id == LOWORD(wParam)) \
|
||||
{ \
|
||||
bHandled = TRUE; \
|
||||
lResult = func(HIWORD(wParam), LOWORD(wParam), (HWND)lParam, bHandled); \
|
||||
if(bHandled) \
|
||||
return TRUE; \
|
||||
}
|
||||
|
||||
#define REFLECTED_COMMAND_CODE_HANDLER(code, func) \
|
||||
if(uMsg == OCM_COMMAND && code == HIWORD(wParam)) \
|
||||
{ \
|
||||
bHandled = TRUE; \
|
||||
lResult = func(HIWORD(wParam), LOWORD(wParam), (HWND)lParam, bHandled); \
|
||||
if(bHandled) \
|
||||
return TRUE; \
|
||||
}
|
||||
|
||||
#define REFLECTED_COMMAND_RANGE_HANDLER(idFirst, idLast, func) \
|
||||
if(uMsg == OCM_COMMAND && LOWORD(wParam) >= idFirst && LOWORD(wParam) <= idLast) \
|
||||
{ \
|
||||
bHandled = TRUE; \
|
||||
lResult = func(HIWORD(wParam), LOWORD(wParam), (HWND)lParam, bHandled); \
|
||||
if(bHandled) \
|
||||
return TRUE; \
|
||||
}
|
||||
|
||||
#define REFLECTED_COMMAND_RANGE_CODE_HANDLER(idFirst, idLast, code, func) \
|
||||
if(uMsg == OCM_COMMAND && code == HIWORD(wParam) && LOWORD(wParam) >= idFirst && LOWORD(wParam) <= idLast) \
|
||||
{ \
|
||||
bHandled = TRUE; \
|
||||
lResult = func(HIWORD(wParam), LOWORD(wParam), (HWND)lParam, bHandled); \
|
||||
if(bHandled) \
|
||||
return TRUE; \
|
||||
}
|
||||
|
||||
#define REFLECTED_NOTIFY_HANDLER(id, cd, func) \
|
||||
if(uMsg == OCM_NOTIFY && id == ((LPNMHDR)lParam)->idFrom && cd == ((LPNMHDR)lParam)->code) \
|
||||
{ \
|
||||
bHandled = TRUE; \
|
||||
lResult = func((int)wParam, (LPNMHDR)lParam, bHandled); \
|
||||
if(bHandled) \
|
||||
return TRUE; \
|
||||
}
|
||||
|
||||
#define REFLECTED_NOTIFY_ID_HANDLER(id, func) \
|
||||
if(uMsg == OCM_NOTIFY && id == ((LPNMHDR)lParam)->idFrom) \
|
||||
{ \
|
||||
bHandled = TRUE; \
|
||||
lResult = func((int)wParam, (LPNMHDR)lParam, bHandled); \
|
||||
if(bHandled) \
|
||||
return TRUE; \
|
||||
}
|
||||
|
||||
#define REFLECTED_NOTIFY_CODE_HANDLER(cd, func) \
|
||||
if(uMsg == OCM_NOTIFY && cd == ((LPNMHDR)lParam)->code) \
|
||||
{ \
|
||||
bHandled = TRUE; \
|
||||
lResult = func((int)wParam, (LPNMHDR)lParam, bHandled); \
|
||||
if(bHandled) \
|
||||
return TRUE; \
|
||||
}
|
||||
|
||||
#define REFLECTED_NOTIFY_RANGE_HANDLER(idFirst, idLast, func) \
|
||||
if(uMsg == OCM_NOTIFY && ((LPNMHDR)lParam)->idFrom >= idFirst && ((LPNMHDR)lParam)->idFrom <= idLast) \
|
||||
{ \
|
||||
bHandled = TRUE; \
|
||||
lResult = func((int)wParam, (LPNMHDR)lParam, bHandled); \
|
||||
if(bHandled) \
|
||||
return TRUE; \
|
||||
}
|
||||
|
||||
#define REFLECTED_NOTIFY_RANGE_CODE_HANDLER(idFirst, idLast, cd, func) \
|
||||
if(uMsg == OCM_NOTIFY && cd == ((LPNMHDR)lParam)->code && ((LPNMHDR)lParam)->idFrom >= idFirst && ((LPNMHDR)lParam)->idFrom <= idLast) \
|
||||
{ \
|
||||
bHandled = TRUE; \
|
||||
lResult = func((int)wParam, (LPNMHDR)lParam, bHandled); \
|
||||
if(bHandled) \
|
||||
return TRUE; \
|
||||
}
|
||||
|
||||
#endif // (_ATL_VER < 0x0700)
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Dual argument helper classes (for ATL 3.0)
|
||||
|
||||
#if (_ATL_VER < 0x0700)
|
||||
|
||||
namespace ATL
|
||||
{
|
||||
|
||||
class _U_RECT
|
||||
{
|
||||
public:
|
||||
_U_RECT(LPRECT lpRect) : m_lpRect(lpRect)
|
||||
{ }
|
||||
_U_RECT(RECT& rc) : m_lpRect(&rc)
|
||||
{ }
|
||||
LPRECT m_lpRect;
|
||||
};
|
||||
|
||||
class _U_MENUorID
|
||||
{
|
||||
public:
|
||||
_U_MENUorID(HMENU hMenu) : m_hMenu(hMenu)
|
||||
{ }
|
||||
_U_MENUorID(UINT nID) : m_hMenu((HMENU)LongToHandle(nID))
|
||||
{ }
|
||||
HMENU m_hMenu;
|
||||
};
|
||||
|
||||
class _U_STRINGorID
|
||||
{
|
||||
public:
|
||||
_U_STRINGorID(LPCTSTR lpString) : m_lpstr(lpString)
|
||||
{ }
|
||||
_U_STRINGorID(UINT nID) : m_lpstr(MAKEINTRESOURCE(nID))
|
||||
{ }
|
||||
LPCTSTR m_lpstr;
|
||||
};
|
||||
|
||||
}; // namespace ATL
|
||||
|
||||
#endif // (_ATL_VER < 0x0700)
|
||||
|
||||
|
||||
namespace WTL
|
||||
{
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Forward notifications support for message maps (for ATL 3.0)
|
||||
|
||||
#if (_ATL_VER < 0x0700)
|
||||
|
||||
// forward notifications support
|
||||
#define FORWARD_NOTIFICATIONS() \
|
||||
{ \
|
||||
bHandled = TRUE; \
|
||||
lResult = WTL::Atl3ForwardNotifications(m_hWnd, uMsg, wParam, lParam, bHandled); \
|
||||
if(bHandled) \
|
||||
return TRUE; \
|
||||
}
|
||||
|
||||
static LRESULT Atl3ForwardNotifications(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
|
||||
{
|
||||
LRESULT lResult = 0;
|
||||
switch(uMsg)
|
||||
{
|
||||
case WM_COMMAND:
|
||||
case WM_NOTIFY:
|
||||
#ifndef _WIN32_WCE
|
||||
case WM_PARENTNOTIFY:
|
||||
#endif // !_WIN32_WCE
|
||||
case WM_DRAWITEM:
|
||||
case WM_MEASUREITEM:
|
||||
case WM_COMPAREITEM:
|
||||
case WM_DELETEITEM:
|
||||
case WM_VKEYTOITEM:
|
||||
case WM_CHARTOITEM:
|
||||
case WM_HSCROLL:
|
||||
case WM_VSCROLL:
|
||||
case WM_CTLCOLORBTN:
|
||||
case WM_CTLCOLORDLG:
|
||||
case WM_CTLCOLOREDIT:
|
||||
case WM_CTLCOLORLISTBOX:
|
||||
case WM_CTLCOLORMSGBOX:
|
||||
case WM_CTLCOLORSCROLLBAR:
|
||||
case WM_CTLCOLORSTATIC:
|
||||
lResult = ::SendMessage(::GetParent(hWnd), uMsg, wParam, lParam);
|
||||
break;
|
||||
default:
|
||||
bHandled = FALSE;
|
||||
break;
|
||||
}
|
||||
return lResult;
|
||||
}
|
||||
|
||||
#endif // (_ATL_VER < 0x0700)
|
||||
|
||||
}; // namespace WTL
|
||||
|
||||
#endif // __ATLWINX_H__
|
24
Externals/wxWidgets/art/addbookm.xpm
vendored
Normal file
24
Externals/wxWidgets/art/addbookm.xpm
vendored
Normal file
@ -0,0 +1,24 @@
|
||||
/* XPM */
|
||||
static char *addbookm_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"16 15 3 1",
|
||||
". c Black",
|
||||
"X c #00C000",
|
||||
" c None",
|
||||
/* pixels */
|
||||
" ....... ",
|
||||
" .XXXXX. ",
|
||||
" .. .XXXXX. ",
|
||||
" .. .XXXXX. ",
|
||||
" ...... .XXXXX. ",
|
||||
" ...... .XXXXX. ",
|
||||
" .. .XXXXX. ",
|
||||
" .. .XXXXX. ",
|
||||
" .XXXXX. ",
|
||||
" .XXXXX. ",
|
||||
" .XXXXX. ",
|
||||
" .XXXXX. ",
|
||||
" .XX.XX. ",
|
||||
" .X. .X. ",
|
||||
" .. .. "
|
||||
};
|
21
Externals/wxWidgets/art/back.xpm
vendored
Normal file
21
Externals/wxWidgets/art/back.xpm
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
/* XPM */
|
||||
static char * back_xpm[] = {
|
||||
"16 15 3 1",
|
||||
" c None",
|
||||
". c Black",
|
||||
"X c Gray100",
|
||||
" ",
|
||||
" ",
|
||||
" . ",
|
||||
" .. ",
|
||||
" .X. ",
|
||||
" .XX........ ",
|
||||
" .XXXXXXXXXX. ",
|
||||
" .XXXXXXXXXXX. ",
|
||||
" .XXXXXXXXXXX. ",
|
||||
" .XXXXXXXXXX. ",
|
||||
" .XX........ ",
|
||||
" .X. ",
|
||||
" .. ",
|
||||
" . ",
|
||||
" "};
|
57
Externals/wxWidgets/art/cdrom.xpm
vendored
Normal file
57
Externals/wxWidgets/art/cdrom.xpm
vendored
Normal file
@ -0,0 +1,57 @@
|
||||
/* XPM */
|
||||
static char *cdrom_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"16 15 36 1",
|
||||
"= c #9BACC2",
|
||||
"y c #547B99",
|
||||
"$ c #FFFFFF",
|
||||
"@ c #839CB5",
|
||||
"o c #547897",
|
||||
"4 c #4D7492",
|
||||
"% c #F1F4F7",
|
||||
"X c #5A809C",
|
||||
"< c #8497A5",
|
||||
"0 c #7898AD",
|
||||
"+ c #CAD2DC",
|
||||
"r c #ACAEB2",
|
||||
"2 c #BECAD9",
|
||||
"* c #65839D",
|
||||
"e c #DCE2EA",
|
||||
"- c #ADBED2",
|
||||
"t c #597B9A",
|
||||
" c None",
|
||||
"1 c #467291",
|
||||
"9 c #D6DFE7",
|
||||
"O c #7393AB",
|
||||
"u c #49708B",
|
||||
"5 c #A0BACB",
|
||||
"& c #AABFCD",
|
||||
"8 c #B9CBD5",
|
||||
"; c #B4C4D3",
|
||||
": c #6F90A6",
|
||||
"3 c #A8B6CA",
|
||||
"# c #ADBACE",
|
||||
"w c #E4E9ED",
|
||||
". c #8EA9BC",
|
||||
"> c #B3BFD1",
|
||||
", c #C2CBDB",
|
||||
"6 c #C0D1DC",
|
||||
"7 c #A2B3C5",
|
||||
"q c #5D7C93",
|
||||
/* pixels */
|
||||
" .XooOo+ ",
|
||||
" X@#$$$%o& ",
|
||||
" *=-;$$$$$o+ ",
|
||||
" +O#;-$$$$$$: ",
|
||||
" o=>,-<1<$2-o ",
|
||||
" o3>--1$122-* ",
|
||||
" o=--$<4<22-X ",
|
||||
" o5$$$$$26;7* ",
|
||||
" X%$$$$2;-X8 ",
|
||||
" 90*9$$$-7Xqo ",
|
||||
" wXwe@O44X4<r<o ",
|
||||
" X8628>22222<<*4",
|
||||
" ttyyyoo4441uuuo",
|
||||
" t>$$$$$$$$$$$>o",
|
||||
" XXXtyyyoo44411u"
|
||||
};
|
44
Externals/wxWidgets/art/copy.xpm
vendored
Normal file
44
Externals/wxWidgets/art/copy.xpm
vendored
Normal file
@ -0,0 +1,44 @@
|
||||
/* XPM */
|
||||
static char *copy_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"16 15 23 1",
|
||||
"o c #97C4E7",
|
||||
"* c #FFFFFF",
|
||||
"@ c #60A9DA",
|
||||
"= c #D1E5F5",
|
||||
"& c #C3DDF1",
|
||||
". c #7EA6C0",
|
||||
" c None",
|
||||
"X c #2F93CD",
|
||||
"O c #85BBE2",
|
||||
", c #EFF6FC",
|
||||
"; c #DEEDF8",
|
||||
"+ c #72B2DD",
|
||||
"3 c #F7FBFD",
|
||||
"4 c #FAFCFE",
|
||||
": c #DAEAF7",
|
||||
"< c #E9F3FA",
|
||||
"1 c #E2EFF8",
|
||||
"- c #FDFDFE",
|
||||
"% c #B6D5EE",
|
||||
"$ c #A5CCEA",
|
||||
"> c #E5F0F9",
|
||||
"# c #AFD1EC",
|
||||
"2 c #F4F9FD",
|
||||
/* pixels */
|
||||
" .....XX ",
|
||||
" .oO+@X#X ",
|
||||
" .$oO+X##X ",
|
||||
" .%$o........ ",
|
||||
" .&%$.*=&#o.-. ",
|
||||
" .=&%.*;=&#.--. ",
|
||||
" .:=&.*>;=&.... ",
|
||||
" .>:=.*,>;=&#o. ",
|
||||
" .<1:.*2,>:=&#. ",
|
||||
" .2<1.*32,>:=&. ",
|
||||
" .32<.*432,>:=. ",
|
||||
" .32<.*-432,>:. ",
|
||||
" .....**-432,>. ",
|
||||
" .***-432,. ",
|
||||
" .......... "
|
||||
};
|
17
Externals/wxWidgets/art/cross.xpm
vendored
Normal file
17
Externals/wxWidgets/art/cross.xpm
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
/* XPM */
|
||||
static char *cross_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"10 10 2 1",
|
||||
" c Gray0",
|
||||
"# c None",
|
||||
/* pixels */
|
||||
" ######## ",
|
||||
" #### ",
|
||||
"# ## #",
|
||||
"## ##",
|
||||
"### ###",
|
||||
"### ###",
|
||||
"## ##",
|
||||
"# ## #",
|
||||
" #### ",
|
||||
" ###### "};
|
46
Externals/wxWidgets/art/cut.xpm
vendored
Normal file
46
Externals/wxWidgets/art/cut.xpm
vendored
Normal file
@ -0,0 +1,46 @@
|
||||
/* XPM */
|
||||
static char *cut_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"16 15 25 1",
|
||||
"6 c #D8BDC0",
|
||||
": c #C3C3C4",
|
||||
"- c #FFFFFF",
|
||||
". c #6C6D70",
|
||||
"2 c #AD3A45",
|
||||
"o c #DBDBDB",
|
||||
"# c #939495",
|
||||
"< c #E42234",
|
||||
"& c #C3C5C8",
|
||||
"; c #C6CCD3",
|
||||
"% c #B7B7B8",
|
||||
" c None",
|
||||
"* c #DFE0E2",
|
||||
"5 c #B69596",
|
||||
"3 c #9C2A35",
|
||||
"1 c #CFCFD0",
|
||||
", c #AB5C64",
|
||||
"+ c #D2D3D4",
|
||||
"$ c #BCBDBE",
|
||||
"@ c #C6C8CA",
|
||||
"> c #CDC0C1",
|
||||
"O c #826F72",
|
||||
"X c #979BA0",
|
||||
"4 c #9B8687",
|
||||
"= c #9FA0A0",
|
||||
/* pixels */
|
||||
" .X .o ",
|
||||
" O.+ @. ",
|
||||
" O. .. ",
|
||||
" O#$ %.& ",
|
||||
" O.*.. ",
|
||||
" #%#.. ",
|
||||
" O=-.. ",
|
||||
" #%#;. ",
|
||||
" OO:=O ",
|
||||
" >,,<, ,<,,1 ",
|
||||
" ><23<1 1<32<1 ",
|
||||
" ,2 4< <5 2, ",
|
||||
" <, ,2 2, ,< ",
|
||||
" 23,<5 5<,32 ",
|
||||
" 6225 522> "
|
||||
};
|
54
Externals/wxWidgets/art/deffile.xpm
vendored
Normal file
54
Externals/wxWidgets/art/deffile.xpm
vendored
Normal file
@ -0,0 +1,54 @@
|
||||
/* XPM */
|
||||
static char *deffile_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"16 16 32 1",
|
||||
"= c #97C4E7",
|
||||
": c #72A8D2",
|
||||
"1 c #FFFFFF",
|
||||
"w c #839CB5",
|
||||
"X c #6B98B8",
|
||||
". c #5A89A6",
|
||||
"@ c #3A749C",
|
||||
", c #D1E5F5",
|
||||
"< c #67A1CF",
|
||||
"> c #F1F4F7",
|
||||
"e c #85A7BC",
|
||||
"% c #C3DDF1",
|
||||
"0 c #749BB4",
|
||||
"2 c #7EA6C0",
|
||||
"; c #5F9BC8",
|
||||
" c None",
|
||||
"O c #538DB3",
|
||||
"- c #85BBE2",
|
||||
"$ c #D6DFE7",
|
||||
"9 c #EFF6FC",
|
||||
"o c #6591AE",
|
||||
"4 c #F7FBFD",
|
||||
"8 c #FAFCFE",
|
||||
"6 c #DAEAF7",
|
||||
"7 c #E9F3FA",
|
||||
"q c #FDFDFE",
|
||||
"3 c #E2EFF8",
|
||||
"# c #8EA9BC",
|
||||
"& c #B6D5EE",
|
||||
"* c #A5CCEA",
|
||||
"5 c #F4F9FD",
|
||||
"+ c #4581AA",
|
||||
/* pixels */
|
||||
" ..XooO+@#$ ",
|
||||
" .%%&*=-;:;> ",
|
||||
" .,,%&*=<1=X> ",
|
||||
" #%%%%&*211=X ",
|
||||
" #3-----<oXoO ",
|
||||
" #3456,%&*=-O ",
|
||||
" #3--------=O ",
|
||||
" #355736,%&*o ",
|
||||
" #3--------&o ",
|
||||
" #38459736,%X ",
|
||||
" #3--------,0 ",
|
||||
" #31q84597360 ",
|
||||
" #3--------3w ",
|
||||
" #3111q84597e ",
|
||||
" ##########e# ",
|
||||
" "
|
||||
};
|
24
Externals/wxWidgets/art/delbookm.xpm
vendored
Normal file
24
Externals/wxWidgets/art/delbookm.xpm
vendored
Normal file
@ -0,0 +1,24 @@
|
||||
/* XPM */
|
||||
static char *delbookm_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"16 15 3 1",
|
||||
". c Black",
|
||||
" c None",
|
||||
"X c #FF4040",
|
||||
/* pixels */
|
||||
" ....... ",
|
||||
" .XXXXX. ",
|
||||
" . . .XXXXX. ",
|
||||
" .. .. .XXXXX. ",
|
||||
" ... .XXXXX. ",
|
||||
" . .XXXXX. ",
|
||||
" ... .XXXXX. ",
|
||||
" .. .. .XXXXX. ",
|
||||
" . . .XXXXX. ",
|
||||
" .XXXXX. ",
|
||||
" .XXXXX. ",
|
||||
" .XXXXX. ",
|
||||
" .XX.XX. ",
|
||||
" .X. .X. ",
|
||||
" .. .. "
|
||||
};
|
42
Externals/wxWidgets/art/delete.xpm
vendored
Normal file
42
Externals/wxWidgets/art/delete.xpm
vendored
Normal file
@ -0,0 +1,42 @@
|
||||
/* XPM */
|
||||
static char *delete_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"16 15 21 1",
|
||||
"2 c #A5AEBD",
|
||||
"* c #5478B4",
|
||||
"< c #95A3BB",
|
||||
"O c #9AA7BC",
|
||||
"; c #758EB7",
|
||||
"$ c #6986B6",
|
||||
"# c #4971B2",
|
||||
"& c #8A9CBA",
|
||||
"X c #8598B9",
|
||||
" c None",
|
||||
"o c #ABB2BE",
|
||||
"- c #7F95B9",
|
||||
"= c #4E74B3",
|
||||
"1 c #A0ABBC",
|
||||
"+ c #6F8AB7",
|
||||
". c #B5B9BF",
|
||||
"@ c #3E69B1",
|
||||
", c #90A0BA",
|
||||
": c #6483B5",
|
||||
"> c #5A7BB4",
|
||||
"% c #5F7FB5",
|
||||
/* pixels */
|
||||
" ",
|
||||
" .Xo OO ",
|
||||
" +@#. $@% ",
|
||||
" &@@X .*@*o ",
|
||||
" =@= .*@*. ",
|
||||
" -@@X*@*. ",
|
||||
" .#@@@$. ",
|
||||
" ;@@: ",
|
||||
" ;@@@+ ",
|
||||
" .>@#%@@. ",
|
||||
" o*@*oO@@, ",
|
||||
" <#@*. .@@= ",
|
||||
"&@@$ :@@1 ",
|
||||
";#& 2#>. ",
|
||||
" "
|
||||
};
|
52
Externals/wxWidgets/art/dir_up.xpm
vendored
Normal file
52
Externals/wxWidgets/art/dir_up.xpm
vendored
Normal file
@ -0,0 +1,52 @@
|
||||
/* XPM */
|
||||
static char *dir_up_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"16 15 31 1",
|
||||
"6 c #9BACC2",
|
||||
"o c #9AEA53",
|
||||
"7 c #94A5BD",
|
||||
"8 c #547897",
|
||||
"5 c #839CB5",
|
||||
"@ c #376485",
|
||||
"$ c #5A809C",
|
||||
"# c #7F99B4",
|
||||
": c #D1D9E5",
|
||||
"< c #EAEDF3",
|
||||
"& c #446A8C",
|
||||
"q c #65839D",
|
||||
"> c #DCE2EA",
|
||||
", c #E1E6EE",
|
||||
"2 c #F5F6F7",
|
||||
"O c #8DA0B9",
|
||||
" c None",
|
||||
"% c #467291",
|
||||
". c #305F81",
|
||||
"X c #7393AB",
|
||||
"+ c #6A89A2",
|
||||
"4 c #A8B6CA",
|
||||
"1 c #EEF1F3",
|
||||
"3 c #F8F9FA",
|
||||
"0 c #215579",
|
||||
"9 c #7F97B0",
|
||||
"* c #B3BFD1",
|
||||
"w c #7A90AC",
|
||||
"- c #C2CBDB",
|
||||
"; c #CAD6E1",
|
||||
"= c #BBC4D6",
|
||||
/* pixels */
|
||||
" .. ",
|
||||
" X.o. ",
|
||||
".... X.ooo. ",
|
||||
".OO+....ooooo. ",
|
||||
".OOOOOO@@ooo.. ",
|
||||
".OOOO#OO@ooo.$ ",
|
||||
".OOOOOOO@ooo.$ ",
|
||||
".O%............&",
|
||||
".O&*=-;:>,<1231.",
|
||||
".+.4*=-;:>,<12$.",
|
||||
"..564*=-;:>,<1. ",
|
||||
".@O764*=-;:>,<. ",
|
||||
".89O764*=-;:>$$ ",
|
||||
"0qw9O764*=-;:. ",
|
||||
"0............. "
|
||||
};
|
21
Externals/wxWidgets/art/down.xpm
vendored
Normal file
21
Externals/wxWidgets/art/down.xpm
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
/* XPM */
|
||||
static char * down_xpm[] = {
|
||||
"16 15 3 1",
|
||||
" c None",
|
||||
". c Black",
|
||||
"X c Gray100",
|
||||
" ",
|
||||
" ...... ",
|
||||
" .XXXX. ",
|
||||
" .XXXX. ",
|
||||
" .XXXX. ",
|
||||
" .XXXX. ",
|
||||
" .XXXX. ",
|
||||
" .XXXX. ",
|
||||
" ....XXXX.... ",
|
||||
" .XXXXXXXX. ",
|
||||
" .XXXXXX. ",
|
||||
" .XXXX. ",
|
||||
" .XX. ",
|
||||
" .. ",
|
||||
" "};
|
73
Externals/wxWidgets/art/exefile.xpm
vendored
Normal file
73
Externals/wxWidgets/art/exefile.xpm
vendored
Normal file
@ -0,0 +1,73 @@
|
||||
/* XPM */
|
||||
static char *exefile_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"16 16 51 1",
|
||||
"% c #E8E8EC",
|
||||
"= c #E8E8ED",
|
||||
"z c #CACAD4",
|
||||
"8 c #D9D9E1",
|
||||
"p c #D2D2DA",
|
||||
"u c #E1E1E7",
|
||||
"a c #D2D2DB",
|
||||
"< c #E9E9ED",
|
||||
"q c #DADAE1",
|
||||
"+ c #F1F1F4",
|
||||
"g c #D3D3DB",
|
||||
"1 c #E2E2E8",
|
||||
"x c #D3D3DC",
|
||||
"5 c #00A5FF",
|
||||
"$ c #EAEAEE",
|
||||
"4 c #DBDBE2",
|
||||
"h c #CCCCD6",
|
||||
"y c #D4D4DC",
|
||||
"r c #E3E3E9",
|
||||
"d c #D4D4DD",
|
||||
"7 c #DCDCE2",
|
||||
": c #EBEBEF",
|
||||
"0 c #DCDCE3",
|
||||
" c None",
|
||||
"O c #F3F3F5",
|
||||
"> c #E4E4E9",
|
||||
"& c #F3F3F6",
|
||||
"j c #D5D5DD",
|
||||
"6 c #E4E4EA",
|
||||
". c #C6C6D5",
|
||||
"# c #ECECF0",
|
||||
"f c #CECED7",
|
||||
"l c #CECED8",
|
||||
"e c #D6D6DE",
|
||||
"; c #EDEDF0",
|
||||
"3 c #DEDEE4",
|
||||
", c #EDEDF1",
|
||||
"c c #CFCFD8",
|
||||
"o c #F5F5F7",
|
||||
"- c #E6E6EB",
|
||||
"w c #D7D7DF",
|
||||
"v c #C8C8D3",
|
||||
"i c #DFDFE5",
|
||||
"@ c #EEEEF2",
|
||||
"s c #D0D0D9",
|
||||
"X c #9494AD",
|
||||
"9 c #D8D8DF",
|
||||
"t c #D8D8E0",
|
||||
"* c #EFEFF2",
|
||||
"2 c #E0E0E6",
|
||||
"k c #D1D1DA",
|
||||
/* pixels */
|
||||
" ........X ",
|
||||
" .oO+@#$%XX ",
|
||||
" .&+*#$=-XXX ",
|
||||
" .+*;:=->XXXX ",
|
||||
" .*,:<->1234X ",
|
||||
" .,5:5612378X ",
|
||||
" 5,5559530qwX ",
|
||||
" 55555550q9eX ",
|
||||
" 5555r5555teyX ",
|
||||
" 55rui559eypX ",
|
||||
" 5555i5555yasX ",
|
||||
" 5555555dasfX ",
|
||||
" 5355595gsfhX ",
|
||||
" .3595jgklhzX ",
|
||||
" .0qwjxkchzvX ",
|
||||
" XXXXXXXXXXXX "
|
||||
};
|
57
Externals/wxWidgets/art/fileopen.xpm
vendored
Normal file
57
Externals/wxWidgets/art/fileopen.xpm
vendored
Normal file
@ -0,0 +1,57 @@
|
||||
/* XPM */
|
||||
static char *fileopen_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"16 15 36 1",
|
||||
"6 c #9BACC2",
|
||||
"< c #9AEA53",
|
||||
"9 c #94A5BD",
|
||||
"5 c #839CB5",
|
||||
"; c #4D7492",
|
||||
". c #376485",
|
||||
"$ c #7F99B4",
|
||||
"r c #D1D9E5",
|
||||
"7 c #EAEDF3",
|
||||
"@ c #CAD2DC",
|
||||
"% c #718BA7",
|
||||
"t c #BECAD9",
|
||||
"& c #65839D",
|
||||
"0 c #DCE2EA",
|
||||
"4 c #F5F6F7",
|
||||
"w c #597B9A",
|
||||
"O c #8DA0B9",
|
||||
" c None",
|
||||
"+ c #467291",
|
||||
"u c #305F81",
|
||||
"= c #B4C4D3",
|
||||
"# c #CAE2AA",
|
||||
"1 c #FAFCFE",
|
||||
"3 c #A8B6CA",
|
||||
"q c #E4E9ED",
|
||||
"8 c #EEF1F3",
|
||||
"X c #215579",
|
||||
"2 c #7F97B0",
|
||||
": c #B3BFD1",
|
||||
"y c #7A90AC",
|
||||
", c #C2CBDB",
|
||||
"- c #ADD668",
|
||||
"* c #B6D791",
|
||||
"e c #CAD6E1",
|
||||
"o c #DFF0D0",
|
||||
"> c #BBC4D6",
|
||||
/* pixels */
|
||||
" ",
|
||||
" .... ",
|
||||
"XXXXX .oo. ",
|
||||
"XOOOO+@.#o. ",
|
||||
"XOOOO$%&.*oXXX ",
|
||||
"XOOOOOOO.*oX=X ",
|
||||
"XOXXXX...-oXXXX;",
|
||||
"XOX:>,.<<<<<oX1;",
|
||||
"X2X3:>,.<<<oX4=;",
|
||||
"XX563:>>.<oX78; ",
|
||||
"XXO963:>>.X0q7; ",
|
||||
"Xw2O963:>>er0t; ",
|
||||
"X&y2O963:>,er; ",
|
||||
"uXXXXXXXXXXXX; ",
|
||||
" "
|
||||
};
|
42
Externals/wxWidgets/art/filesave.xpm
vendored
Normal file
42
Externals/wxWidgets/art/filesave.xpm
vendored
Normal file
@ -0,0 +1,42 @@
|
||||
/* XPM */
|
||||
static char *filesave_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"16 15 21 1",
|
||||
"O c #FFFFFF",
|
||||
"> c #D5D6D8",
|
||||
"; c #446A8C",
|
||||
"1 c #CAD2DC",
|
||||
": c #C0C7D1",
|
||||
" c #5F666D",
|
||||
"% c #A5B0BA",
|
||||
"o c #65839D",
|
||||
", c #DCE2EA",
|
||||
"< c #C3C5C8",
|
||||
"- c #E1E6EE",
|
||||
"* c #C6CCD3",
|
||||
". c None",
|
||||
"$ c #305F81",
|
||||
"2 c #D6DFE7",
|
||||
"= c #D2D9E0",
|
||||
"& c #B7BFC7",
|
||||
"X c #1B4467",
|
||||
"# c #BCBDBE",
|
||||
"@ c #7A90AC",
|
||||
"+ c #5D7C93",
|
||||
/* pixels */
|
||||
" .",
|
||||
" XoOOOOOOOOO+X .",
|
||||
" @oO#######O+@ .",
|
||||
" @oOOOOOOOOO+@ .",
|
||||
" @oO#######O+@ .",
|
||||
" @oOOOOOOOOO+@ .",
|
||||
" @@+++++++++@@ .",
|
||||
" @@@@@@@@@@@@@ .",
|
||||
" @@@$$$$$$$$@@ .",
|
||||
" @@$%%%&*=-O$@ .",
|
||||
" @@$%X;;*=-O$@ .",
|
||||
" @@$%X;;:>,O$@ .",
|
||||
" @@$%X;;<12O$@ .",
|
||||
" @@$<<2OOOOO$@ .",
|
||||
". .."
|
||||
};
|
44
Externals/wxWidgets/art/filesaveas.xpm
vendored
Normal file
44
Externals/wxWidgets/art/filesaveas.xpm
vendored
Normal file
@ -0,0 +1,44 @@
|
||||
/* XPM */
|
||||
static char *filesaveas_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"16 15 23 1",
|
||||
"X c Black",
|
||||
"+ c #FFFFFF",
|
||||
"< c #D5D6D8",
|
||||
"> c #446A8C",
|
||||
"3 c #CAD2DC",
|
||||
", c #C0C7D1",
|
||||
" c #5F666D",
|
||||
"* c #A5B0BA",
|
||||
"O c #65839D",
|
||||
"1 c #DCE2EA",
|
||||
"2 c #C3C5C8",
|
||||
": c #E1E6EE",
|
||||
". c #FFFF00",
|
||||
"- c #C6CCD3",
|
||||
"@ c None",
|
||||
"& c #305F81",
|
||||
"4 c #D6DFE7",
|
||||
"; c #D2D9E0",
|
||||
"= c #B7BFC7",
|
||||
"o c #1B4467",
|
||||
"$ c #BCBDBE",
|
||||
"# c #7A90AC",
|
||||
"% c #5D7C93",
|
||||
/* pixels */
|
||||
" .X .XX.",
|
||||
" oO+++++++.X.X.@",
|
||||
" #O+$$$$$XX...XX",
|
||||
" #O++++++.......",
|
||||
" #O+$$$$$XX...XX",
|
||||
" #O+++++++.X.X.@",
|
||||
" ##%%%%%%.X%.X .",
|
||||
" ############# @",
|
||||
" ###&&&&&&&&## @",
|
||||
" ##&***=-;:+&# @",
|
||||
" ##&*o>>-;:+&# @",
|
||||
" ##&*o>>,<1+&# @",
|
||||
" ##&*o>>234+&# @",
|
||||
" ##&224+++++&# @",
|
||||
"@ @@"
|
||||
};
|
62
Externals/wxWidgets/art/find.xpm
vendored
Normal file
62
Externals/wxWidgets/art/find.xpm
vendored
Normal file
@ -0,0 +1,62 @@
|
||||
/* XPM */
|
||||
static char *find_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"16 15 41 1",
|
||||
"y c #A06959",
|
||||
"9 c #A7DAF2",
|
||||
"$ c #B5CAD7",
|
||||
"> c #35B4E1",
|
||||
"t c #6B98B8",
|
||||
"w c #B6E0F4",
|
||||
"q c #AEC9D7",
|
||||
"1 c #5A89A6",
|
||||
"+ c #98B3C6",
|
||||
"4 c #EAF6FC",
|
||||
"3 c #DEF1FA",
|
||||
"= c #4CBCE3",
|
||||
"d c #DB916B",
|
||||
"X c #85A7BC",
|
||||
"s c #D8BCA4",
|
||||
"o c #749BB4",
|
||||
"e c #BCD9EF",
|
||||
"* c #62B4DD",
|
||||
"< c #91D2EF",
|
||||
"a c #E6DED2",
|
||||
"0 c #E9F4FB",
|
||||
" c None",
|
||||
"@ c #A0BACB",
|
||||
"O c #AABFCD",
|
||||
"i c #6591AE",
|
||||
": c #B9CBD5",
|
||||
"- c #71C5E7",
|
||||
"5 c #D3ECF8",
|
||||
"% c #81A3B9",
|
||||
"6 c #8AD0EE",
|
||||
"8 c #FDFDFE",
|
||||
"p c #8EA9BC",
|
||||
"r c #B6D5EE",
|
||||
", c #81CCEB",
|
||||
". c #ACC4D3",
|
||||
"; c #AFD1DE",
|
||||
"7 c #EFF8FC",
|
||||
"u c #C2CBDB",
|
||||
"# c #C0D1DC",
|
||||
"2 c #CAD6E1",
|
||||
"& c #8FB0C3",
|
||||
/* pixels */
|
||||
" .XooXO ",
|
||||
" +@###$+% ",
|
||||
" .&#*==-;@@ ",
|
||||
" o:*>,<--:X ",
|
||||
" 12>-345-#% ",
|
||||
" 12>678392% ",
|
||||
" %$*,3059q& ",
|
||||
" @Oq,wwer@@ ",
|
||||
" t@q22q&+ ",
|
||||
" yyui+%o%p ",
|
||||
" yasy ",
|
||||
" yasdy ",
|
||||
" yasdy ",
|
||||
" ysdy ",
|
||||
" yy "
|
||||
};
|
63
Externals/wxWidgets/art/findrepl.xpm
vendored
Normal file
63
Externals/wxWidgets/art/findrepl.xpm
vendored
Normal file
@ -0,0 +1,63 @@
|
||||
/* XPM */
|
||||
static char *findrepl_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"16 15 42 1",
|
||||
"y c #A06959",
|
||||
"9 c #A7DAF2",
|
||||
"$ c #B5CAD7",
|
||||
"> c #35B4E1",
|
||||
"t c #6B98B8",
|
||||
"w c #B6E0F4",
|
||||
"q c #AEC9D7",
|
||||
"1 c #5A89A6",
|
||||
"+ c #98B3C6",
|
||||
"4 c #EAF6FC",
|
||||
"d c #008000",
|
||||
"3 c #DEF1FA",
|
||||
"= c #4CBCE3",
|
||||
"f c #DB916B",
|
||||
"X c #85A7BC",
|
||||
"s c #D8BCA4",
|
||||
"o c #749BB4",
|
||||
"e c #BCD9EF",
|
||||
"* c #62B4DD",
|
||||
"< c #91D2EF",
|
||||
"a c #E6DED2",
|
||||
"0 c #E9F4FB",
|
||||
" c None",
|
||||
"@ c #A0BACB",
|
||||
"O c #AABFCD",
|
||||
"i c #6591AE",
|
||||
": c #B9CBD5",
|
||||
"- c #71C5E7",
|
||||
"5 c #D3ECF8",
|
||||
"% c #81A3B9",
|
||||
"6 c #8AD0EE",
|
||||
"8 c #FDFDFE",
|
||||
"p c #8EA9BC",
|
||||
"r c #B6D5EE",
|
||||
", c #81CCEB",
|
||||
". c #ACC4D3",
|
||||
"; c #AFD1DE",
|
||||
"7 c #EFF8FC",
|
||||
"u c #C2CBDB",
|
||||
"# c #C0D1DC",
|
||||
"2 c #CAD6E1",
|
||||
"& c #8FB0C3",
|
||||
/* pixels */
|
||||
" .XooXO ",
|
||||
" +@###$+% ",
|
||||
" .&#*==-;@@ ",
|
||||
" o:*>,<--:X ",
|
||||
" 12>-345-#% ",
|
||||
" 12>678392% ",
|
||||
" %$*,3059q& ",
|
||||
" @Oq,wwer@@ ",
|
||||
" t@q22q&+ ",
|
||||
" yyui+%o%p ",
|
||||
" yasy d d ",
|
||||
" yasfy dd dd ",
|
||||
"yasfy ddddddddd",
|
||||
"ysfy dd dd ",
|
||||
" yy d d "
|
||||
};
|
39
Externals/wxWidgets/art/floppy.xpm
vendored
Normal file
39
Externals/wxWidgets/art/floppy.xpm
vendored
Normal file
@ -0,0 +1,39 @@
|
||||
/* XPM */
|
||||
static char *floppy_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"16 15 18 1",
|
||||
"& c #E3E4E6",
|
||||
"+ c #FFFFFF",
|
||||
". c #446A8C",
|
||||
"o c #697787",
|
||||
"> c #5F666D",
|
||||
"* c #B2B3B3",
|
||||
" c None",
|
||||
", c #4B4C4D",
|
||||
"= c #DCDBDA",
|
||||
"$ c #1B4467",
|
||||
": c #E4E9ED",
|
||||
"@ c #979BA0",
|
||||
"X c #203646",
|
||||
"O c #215579",
|
||||
"- c #545B63",
|
||||
"; c #636465",
|
||||
"# c #CAD6E1",
|
||||
"% c #7F8286",
|
||||
/* pixels */
|
||||
" .XoooooooXO ",
|
||||
" .o+++++++.O ",
|
||||
" .o+OOOOO+.O ",
|
||||
" .o+++++++.O ",
|
||||
" .o@@@@@@@.O ",
|
||||
" ..........O ",
|
||||
" ..#+++++#.O ",
|
||||
" ..+$O+++#.O ",
|
||||
" ..+$O+++#.O ",
|
||||
" %&.........*% ",
|
||||
"%=+++++++++++&% ",
|
||||
"--------------; ",
|
||||
"-:::::::::::::- ",
|
||||
"-:X:XXXXXXXXX:> ",
|
||||
"-*************, "
|
||||
};
|
43
Externals/wxWidgets/art/folder.xpm
vendored
Normal file
43
Externals/wxWidgets/art/folder.xpm
vendored
Normal file
@ -0,0 +1,43 @@
|
||||
/* XPM */
|
||||
static char *folder_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"16 15 22 1",
|
||||
"> c #9BACC2",
|
||||
". c #547897",
|
||||
"1 c #7F99B4",
|
||||
"X c #D1D9E5",
|
||||
"< c #EAEDF3",
|
||||
"+ c #CAD2DC",
|
||||
"3 c #718BA7",
|
||||
"O c #BECAD9",
|
||||
"$ c #E1E6EE",
|
||||
"* c #F5F6F7",
|
||||
", c #8DA0B9",
|
||||
" c None",
|
||||
"# c #D6DFE7",
|
||||
"@ c #D2D9E0",
|
||||
"- c #FAFCFE",
|
||||
"; c #ADBACE",
|
||||
"& c #EEF1F3",
|
||||
"= c #F8F9FA",
|
||||
"o c #B3BFD1",
|
||||
"2 c #7A90AC",
|
||||
": c #A2B3C5",
|
||||
"% c #E5EAF1",
|
||||
/* pixels */
|
||||
" ",
|
||||
" ..... ",
|
||||
" .XXXX. ",
|
||||
" ............. ",
|
||||
" .oO+@#$%&*=-. ",
|
||||
" .oO+@#$%&*=-. ",
|
||||
" .;oO+X#$%&*=. ",
|
||||
" .:;oO+X#$%&*. ",
|
||||
" .>:;oO+X#$%&. ",
|
||||
" .,>:;oO+X#$<. ",
|
||||
" .1,>:;oO+X#$. ",
|
||||
" .21,>:;oO+X#. ",
|
||||
" .321,>:;oO+X. ",
|
||||
" ............. ",
|
||||
" "
|
||||
};
|
52
Externals/wxWidgets/art/folder_open.xpm
vendored
Normal file
52
Externals/wxWidgets/art/folder_open.xpm
vendored
Normal file
@ -0,0 +1,52 @@
|
||||
/* XPM */
|
||||
static char *folder_open_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"16 15 31 1",
|
||||
"6 c #9BACC2",
|
||||
"w c #547B99",
|
||||
"5 c #94A5BD",
|
||||
". c #376485",
|
||||
"; c #F1F4F7",
|
||||
"o c #7F99B4",
|
||||
"2 c #D1D9E5",
|
||||
"- c #EAEDF3",
|
||||
"O c #718BA7",
|
||||
"0 c #65839D",
|
||||
"* c #DCE2EA",
|
||||
": c #F5F6F7",
|
||||
"7 c #597B9A",
|
||||
"X c #8DA0B9",
|
||||
" c None",
|
||||
"+ c #467291",
|
||||
"q c #305F81",
|
||||
"& c #D6DFE7",
|
||||
"3 c #6A89A2",
|
||||
"1 c #A8B6CA",
|
||||
"= c #E4E9ED",
|
||||
"> c #F8F9FA",
|
||||
", c #FDFDFE",
|
||||
"9 c #215579",
|
||||
"8 c #7F97B0",
|
||||
"@ c #B3BFD1",
|
||||
"< c #7A90AC",
|
||||
"$ c #C2CBDB",
|
||||
"4 c #A2B3C5",
|
||||
"% c #CAD6E1",
|
||||
"# c #BBC4D6",
|
||||
/* pixels */
|
||||
" ",
|
||||
"..... ",
|
||||
".XXXo. ",
|
||||
".XXXXO........ ",
|
||||
".XXXXXXXXXXXX. ",
|
||||
".XXXXXXXXXXXX. ",
|
||||
".X++++++++++++++",
|
||||
".X+@#$%&*=-;:>,+",
|
||||
".<.1@#$%2*=-;:23",
|
||||
"..X41@#$%2*=-;3 ",
|
||||
"..X561@#$%2*=-3 ",
|
||||
".78X561@#$%2*%3 ",
|
||||
"90<8X561@#$%23 ",
|
||||
"q++++++++++++w ",
|
||||
" "
|
||||
};
|
21
Externals/wxWidgets/art/forward.xpm
vendored
Normal file
21
Externals/wxWidgets/art/forward.xpm
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
/* XPM */
|
||||
static char * forward_xpm[] = {
|
||||
"16 15 3 1",
|
||||
" c None",
|
||||
". c Black",
|
||||
"X c Gray100",
|
||||
" ",
|
||||
" ",
|
||||
" . ",
|
||||
" .. ",
|
||||
" .X. ",
|
||||
" ........XX. ",
|
||||
" .XXXXXXXXXX. ",
|
||||
" .XXXXXXXXXXX. ",
|
||||
" .XXXXXXXXXXX. ",
|
||||
" .XXXXXXXXXX. ",
|
||||
" ........XX. ",
|
||||
" .X. ",
|
||||
" .. ",
|
||||
" . ",
|
||||
" "};
|
58
Externals/wxWidgets/art/gtk/error.xpm
vendored
Normal file
58
Externals/wxWidgets/art/gtk/error.xpm
vendored
Normal file
@ -0,0 +1,58 @@
|
||||
/* XPM */
|
||||
static char *error_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"48 48 4 1",
|
||||
" c None",
|
||||
"X c #242424",
|
||||
"o c #DCDF00",
|
||||
". c #C00000",
|
||||
/* pixels */
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ..... ",
|
||||
" ............. ",
|
||||
" ................. ",
|
||||
" ................... ",
|
||||
" ....................... ",
|
||||
" ......................... ",
|
||||
" ........................... ",
|
||||
" ...........................X ",
|
||||
" .............................X ",
|
||||
" ............................... ",
|
||||
" ...............................X ",
|
||||
" .................................X ",
|
||||
" .................................X ",
|
||||
" .................................XX ",
|
||||
" ...ooooooooooooooooooooooooooo...XX ",
|
||||
" ....ooooooooooooooooooooooooooo....X ",
|
||||
" ....ooooooooooooooooooooooooooo....X ",
|
||||
" ....ooooooooooooooooooooooooooo....XX ",
|
||||
" ....ooooooooooooooooooooooooooo....XX ",
|
||||
" ....ooooooooooooooooooooooooooo....XX ",
|
||||
" ...ooooooooooooooooooooooooooo...XXX ",
|
||||
" ...ooooooooooooooooooooooooooo...XXX ",
|
||||
" .................................XX ",
|
||||
" .................................XX ",
|
||||
" ...............................XXX ",
|
||||
" ...............................XXX ",
|
||||
" .............................XXX ",
|
||||
" ...........................XXXX ",
|
||||
" ...........................XXX ",
|
||||
" .........................XXX ",
|
||||
" .......................XXXX ",
|
||||
" X...................XXXXX ",
|
||||
" X.................XXXXX ",
|
||||
" X.............XXXXX ",
|
||||
" XXXX.....XXXXXXXX ",
|
||||
" XXXXXXXXXXXXX ",
|
||||
" XXXXX ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" "
|
||||
};
|
63
Externals/wxWidgets/art/gtk/info.xpm
vendored
Normal file
63
Externals/wxWidgets/art/gtk/info.xpm
vendored
Normal file
@ -0,0 +1,63 @@
|
||||
/* XPM */
|
||||
static char *info_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"48 48 9 1",
|
||||
"$ c Black",
|
||||
"O c #FFFFFF",
|
||||
"@ c #808080",
|
||||
"+ c #000080",
|
||||
"o c #E8EB01",
|
||||
" c None",
|
||||
"X c #FFFF40",
|
||||
"# c #C0C0C0",
|
||||
". c #ABAD01",
|
||||
/* pixels */
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ..... ",
|
||||
" ..XXXXX.. ",
|
||||
" ..XXXXXXXXo.. ",
|
||||
" .XXXOXXXXXXXoo. ",
|
||||
" .XOOXXX+XXXXXo. ",
|
||||
" .XOOOXX+++XXXXoo. ",
|
||||
" .XOOXXX+++XXXXXo. ",
|
||||
" .XOOOXXX+++XXXXXXo. ",
|
||||
" .XOOXXXX+++XXXXXXo. ",
|
||||
" .XXXXXXX+++XXXXXXX. ",
|
||||
" .XXXXXXX+++XXXXXXo. ",
|
||||
" .XXXXXXX+++XXXXXoo. ",
|
||||
" .XXXXXX+++XXXXXo. ",
|
||||
" .XXXXXXX+XXXXXXo. ",
|
||||
" .XXXXXXXXXXXXo. ",
|
||||
" .XXXXX+++XXXoo. ",
|
||||
" .XXXX+++XXoo. ",
|
||||
" .XXXXXXXXo. ",
|
||||
" ..XXXXXXo.. ",
|
||||
" .XXXXXo.. ",
|
||||
" @#######@ ",
|
||||
" @@@@@@@@@ ",
|
||||
" @#######@ ",
|
||||
" @@@@@@@@@ ",
|
||||
" @#######@ ",
|
||||
" @@@@@@@ ",
|
||||
" ### ",
|
||||
" $$$ ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" "
|
||||
};
|
75
Externals/wxWidgets/art/gtk/question.xpm
vendored
Normal file
75
Externals/wxWidgets/art/gtk/question.xpm
vendored
Normal file
@ -0,0 +1,75 @@
|
||||
/* XPM */
|
||||
static char *question_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"48 48 21 1",
|
||||
". c Black",
|
||||
"> c #696969",
|
||||
"O c #1F1F00",
|
||||
"+ c #181818",
|
||||
"o c #F6F900",
|
||||
"; c #3F3F00",
|
||||
"$ c #111111",
|
||||
" c None",
|
||||
"& c #202020",
|
||||
"X c #AAAA00",
|
||||
"@ c #949400",
|
||||
": c #303030",
|
||||
"1 c #383838",
|
||||
"% c #2A2A00",
|
||||
", c #404040",
|
||||
"= c #B4B400",
|
||||
"- c #484848",
|
||||
"# c #151500",
|
||||
"< c #9F9F00",
|
||||
"2 c #6A6A00",
|
||||
"* c #353500",
|
||||
/* pixels */
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ......... ",
|
||||
" ...XXXXXXX.. ",
|
||||
" ..XXXXoooooXXXO+ ",
|
||||
" ..XXooooooooooooX@.. ",
|
||||
" ..XoooooooooooooooXX#. ",
|
||||
" $%XoooooooooooooooooXX#. ",
|
||||
" &.XoooooooXXXXXXooooooXX.. ",
|
||||
" .XooooooXX.$...$XXoooooX*. ",
|
||||
" $.XoooooX%.$ .*oooooo=.. ",
|
||||
" .XooooooX.. -.XoooooX.. ",
|
||||
" .XoooooX..+ .XoooooX;. ",
|
||||
" ...XXXX..: .XoooooX;. ",
|
||||
" ........ >.XoooooX;. ",
|
||||
" +.XoooooX.. ",
|
||||
" ,.Xoooooo<.. ",
|
||||
" 1#XooooooXO.. ",
|
||||
" &#XooooooX2.. ",
|
||||
" $%XooooooXX.. ",
|
||||
" $%XooooooXX.. ",
|
||||
" $%XooooooXX.. ",
|
||||
" &.XooooooXX.. ",
|
||||
" .XooooooXX.. ",
|
||||
" &.XoooooXX.. ",
|
||||
" ..XooooXX.. ",
|
||||
" ..XooooX... ",
|
||||
" ..XXooXX..& ",
|
||||
" ...XXXXX.. ",
|
||||
" ........ ",
|
||||
" ",
|
||||
" ",
|
||||
" ....... ",
|
||||
" ..XXXXX.. ",
|
||||
" ..XXoooXX.. ",
|
||||
" ..XoooooX.. ",
|
||||
" ..XoooooX.. ",
|
||||
" ..XXoooXX.. ",
|
||||
" ..XXXXX.. ",
|
||||
" ....... ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" "
|
||||
};
|
63
Externals/wxWidgets/art/gtk/warning.xpm
vendored
Normal file
63
Externals/wxWidgets/art/gtk/warning.xpm
vendored
Normal file
@ -0,0 +1,63 @@
|
||||
/* XPM */
|
||||
static char *warning_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"48 48 9 1",
|
||||
"@ c Black",
|
||||
"o c #A6A800",
|
||||
"+ c #8A8C00",
|
||||
"$ c #B8BA00",
|
||||
" c None",
|
||||
"O c #6E7000",
|
||||
"X c #DCDF00",
|
||||
". c #C00000",
|
||||
"# c #373800",
|
||||
/* pixels */
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" . ",
|
||||
" ... ",
|
||||
" ... ",
|
||||
" ..... ",
|
||||
" ...X.. ",
|
||||
" ..XXX.. ",
|
||||
" ...XXX... ",
|
||||
" ..XXXXX.. ",
|
||||
" ..XXXXXX... ",
|
||||
" ...XXoO+XX.. ",
|
||||
" ..XXXO@#XXX.. ",
|
||||
" ..XXXXO@#XXX... ",
|
||||
" ...XXXXO@#XXXX.. ",
|
||||
" ..XXXXXO@#XXXX... ",
|
||||
" ...XXXXXo@OXXXXX.. ",
|
||||
" ...XXXXXXo@OXXXXXX.. ",
|
||||
" ..XXXXXXX$@OXXXXXX... ",
|
||||
" ...XXXXXXXX@XXXXXXXX.. ",
|
||||
" ...XXXXXXXXXXXXXXXXXX... ",
|
||||
" ..XXXXXXXXXXOXXXXXXXXX.. ",
|
||||
" ...XXXXXXXXXO@#XXXXXXXXX.. ",
|
||||
" ..XXXXXXXXXXX#XXXXXXXXXX... ",
|
||||
" ...XXXXXXXXXXXXXXXXXXXXXXX.. ",
|
||||
" ...XXXXXXXXXXXXXXXXXXXXXXXX... ",
|
||||
" .............................. ",
|
||||
" .............................. ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" "
|
||||
};
|
60
Externals/wxWidgets/art/harddisk.xpm
vendored
Normal file
60
Externals/wxWidgets/art/harddisk.xpm
vendored
Normal file
@ -0,0 +1,60 @@
|
||||
/* XPM */
|
||||
static char *harddisk_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"16 15 39 1",
|
||||
"7 c #E3E4E6",
|
||||
"4 c #FFFFFF",
|
||||
"5 c #839CB5",
|
||||
". c #547897",
|
||||
"1 c #4D7492",
|
||||
"@ c #376485",
|
||||
"o c #7A92A3",
|
||||
"u c #D1D9E5",
|
||||
"y c #446A8C",
|
||||
"i c #51B03D",
|
||||
"> c #CAD2DC",
|
||||
"O c #718BA7",
|
||||
"2 c #65839D",
|
||||
"6 c #DCE2EA",
|
||||
"0 c #C3C5C8",
|
||||
"9 c #F5F6F7",
|
||||
": c #EBEBEC",
|
||||
"< c #597B9A",
|
||||
"t c #C6CCD3",
|
||||
" c None",
|
||||
"* c #DFE0E2",
|
||||
"e c #467291",
|
||||
"a c #526E8B",
|
||||
", c #7393AB",
|
||||
"p c #130A0B",
|
||||
"# c #AABFCD",
|
||||
"r c #B4C4D3",
|
||||
"; c #CFCFD0",
|
||||
"X c #6F90A6",
|
||||
"+ c #6A89A2",
|
||||
"- c #D2D3D4",
|
||||
"= c #DCDBDA",
|
||||
"w c #E4E9ED",
|
||||
"q c #C6C8CA",
|
||||
"% c #215579",
|
||||
"$ c #E7E7E7",
|
||||
"3 c #7F97B0",
|
||||
"8 c #C0D1DC",
|
||||
"& c #5D7C93",
|
||||
/* pixels */
|
||||
" ",
|
||||
" .XoooXO+@ ",
|
||||
" #$$%%%%$$$X ",
|
||||
" &$*==-;$$$& ",
|
||||
" &:>+,<1234o5 ",
|
||||
" ###+67;;78242 ",
|
||||
" &4,49*0q*9we4. ",
|
||||
" &4+49*,,*9wo4. ",
|
||||
"&4%r,67;;782t%4.",
|
||||
"&44468rrrr84444,",
|
||||
"y11111111111111e",
|
||||
"1uu1:::::::::::1",
|
||||
"1uu1::::::::ip:1",
|
||||
"auu&:::::::::::1",
|
||||
"1111111111111111"
|
||||
};
|
44
Externals/wxWidgets/art/helpicon.xpm
vendored
Normal file
44
Externals/wxWidgets/art/helpicon.xpm
vendored
Normal file
@ -0,0 +1,44 @@
|
||||
/* XPM */
|
||||
static char *helpicon_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"32 32 6 1",
|
||||
" c Gray0",
|
||||
". c Blue",
|
||||
"X c #808080808080",
|
||||
"o c #c0c0c0c0c0c0",
|
||||
"O c Gray100",
|
||||
"+ c None",
|
||||
/* pixels */
|
||||
"+++++++++++XXXXXXXX+++++++++++++",
|
||||
"++++++++XXXoOOOOOOoXXX++++++++++",
|
||||
"++++++XXoOOOOOOOOOOOOoXX++++++++",
|
||||
"+++++XoOOOOOOOOOOOOOOOOoX+++++++",
|
||||
"++++XOOOOOOOOOOOOOOOOOOOO ++++++",
|
||||
"+++XOOOOOOOo......oOOOOOOO +++++",
|
||||
"++XOOOOOOOo.oOO....oOOOOOOO ++++",
|
||||
"+XoOOOOOOO..OOOO....OOOOOOOo +++",
|
||||
"+XOOOOOOOO....OO....OOOOOOOO X++",
|
||||
"XoOOOOOOOO....Oo....OOOOOOOOo X+",
|
||||
"XOOOOOOOOOo..oO....OOOOOOOOOO X+",
|
||||
"XOOOOOOOOOOOOOo...OOOOOOOOOOO XX",
|
||||
"XOOOOOOOOOOOOO...OOOOOOOOOOOO XX",
|
||||
"XOOOOOOOOOOOOO..oOOOOOOOOOOOO XX",
|
||||
"XOOOOOOOOOOOOO..OOOOOOOOOOOOO XX",
|
||||
"XoOOOOOOOOOOOOOOOOOOOOOOOOOOo XX",
|
||||
"+XOOOOOOOOOOOo..oOOOOOOOOOOO XXX",
|
||||
"+XoOOOOOOOOOO....OOOOOOOOOOo XXX",
|
||||
"++XOOOOOOOOOO....OOOOOOOOOO XXX+",
|
||||
"+++ OOOOOOOOOo..oOOOOOOOOO XXXX+",
|
||||
"++++ OOOOOOOOOOOOOOOOOOOO XXXX++",
|
||||
"+++++ oOOOOOOOOOOOOOOOOo XXXX+++",
|
||||
"++++++ oOOOOOOOOOOOOo XXXX++++",
|
||||
"+++++++X oOOOOOOo XXXXX+++++",
|
||||
"++++++++XXX oOOO XXXXXXX++++++",
|
||||
"++++++++++XXXX OOO XXXXX++++++++",
|
||||
"+++++++++++++X OOO XX+++++++++++",
|
||||
"+++++++++++++++ OO XX+++++++++++",
|
||||
"++++++++++++++++ O XX+++++++++++",
|
||||
"+++++++++++++++++ XX+++++++++++",
|
||||
"++++++++++++++++++XXX+++++++++++",
|
||||
"+++++++++++++++++++XX+++++++++++"
|
||||
};
|
24
Externals/wxWidgets/art/home.xpm
vendored
Normal file
24
Externals/wxWidgets/art/home.xpm
vendored
Normal file
@ -0,0 +1,24 @@
|
||||
/* XPM */
|
||||
static char *home_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"16 15 3 1",
|
||||
". c Black",
|
||||
"X c #FFFFFF",
|
||||
" c None",
|
||||
/* pixels */
|
||||
" .... ",
|
||||
" .XXXX. ",
|
||||
" .XXXXXX. ",
|
||||
" .XXXXXXXX. ",
|
||||
" .XXXXXXXXXX. ",
|
||||
" .............. ",
|
||||
" .XXXXXXXXXXXX. ",
|
||||
" .XXXXXXXXXXXX. ",
|
||||
" .XXXXXXXXXXXX. ",
|
||||
" .X.....X....X. ",
|
||||
" .X. .X. .X. ",
|
||||
" .X. .X. .X. ",
|
||||
" .X.....X. .X. ",
|
||||
" .XXXXXXX. .X. ",
|
||||
" ......... ... "
|
||||
};
|
25
Externals/wxWidgets/art/htmbook.xpm
vendored
Normal file
25
Externals/wxWidgets/art/htmbook.xpm
vendored
Normal file
@ -0,0 +1,25 @@
|
||||
/* XPM */
|
||||
static char * htmbook_xpm[] = {
|
||||
"16 16 6 1",
|
||||
" c None",
|
||||
". c Black",
|
||||
"X c #000080",
|
||||
"o c #c0c0c0",
|
||||
"O c #808080",
|
||||
"+ c Gray100",
|
||||
" ",
|
||||
" .. ",
|
||||
" ..XX. ",
|
||||
" ..XXXXX. ",
|
||||
" ..XXXXXXXX. ",
|
||||
".oXXXXXXXXXX. ",
|
||||
".XoXXXXXXXXXX. ",
|
||||
".XXoXXXXXXXXXX. ",
|
||||
".XXXoXXXXXXXXX..",
|
||||
".XXXXoXXXXXX..O ",
|
||||
" .XXXXoXXX..O+O ",
|
||||
" .XXXXo..O++o..",
|
||||
" .XXX.O+++o.. ",
|
||||
" .XX.o+o.. ",
|
||||
" .X.o.. ",
|
||||
" ... "};
|
25
Externals/wxWidgets/art/htmfoldr.xpm
vendored
Normal file
25
Externals/wxWidgets/art/htmfoldr.xpm
vendored
Normal file
@ -0,0 +1,25 @@
|
||||
/* XPM */
|
||||
static char * htmfoldr_xpm[] = {
|
||||
"16 16 6 1",
|
||||
" c None",
|
||||
". c Black",
|
||||
"X c #000080",
|
||||
"o c #c0c0c0",
|
||||
"O c #808080",
|
||||
"+ c Gray100",
|
||||
" ",
|
||||
" .. ",
|
||||
" ..XX. ",
|
||||
" ..XXXXX. ",
|
||||
" ..XXXXXXXX. ",
|
||||
".oXXXXXXXXXX. ",
|
||||
".XoXXXXXXXXXX. ",
|
||||
".XXoXXXXXXXXXX. ",
|
||||
".XXXoXXXXXXXXX..",
|
||||
".XXXXoXXXXXX..O ",
|
||||
" .XXXXoXXX..O+O ",
|
||||
" .XXXXo..O++o..",
|
||||
" .XXX.O+++o.. ",
|
||||
" .XX.o+o.. ",
|
||||
" .X.o.. ",
|
||||
" ... "};
|
20
Externals/wxWidgets/art/htmoptns.xpm
vendored
Normal file
20
Externals/wxWidgets/art/htmoptns.xpm
vendored
Normal file
@ -0,0 +1,20 @@
|
||||
/* XPM */
|
||||
static char * htmoptns_xpm[] = {
|
||||
"16 15 2 1",
|
||||
" c None",
|
||||
". c #000000",
|
||||
" ",
|
||||
" .. ",
|
||||
" ... ",
|
||||
" .... ",
|
||||
" . ... ",
|
||||
" .. ... ",
|
||||
" . .. ",
|
||||
" .. ... ",
|
||||
" . .. ",
|
||||
" ......... ",
|
||||
" .. ... ",
|
||||
" . ... ",
|
||||
" .. ... ",
|
||||
" .... ....... ",
|
||||
" "};
|
23
Externals/wxWidgets/art/htmpage.xpm
vendored
Normal file
23
Externals/wxWidgets/art/htmpage.xpm
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
/* XPM */
|
||||
static char * htmpage_xpm[] = {
|
||||
"16 16 4 1",
|
||||
" c None",
|
||||
". c #808080",
|
||||
"X c Gray100",
|
||||
"o c Black",
|
||||
" ",
|
||||
" .......... ",
|
||||
" .XXXXXXXX.. ",
|
||||
" .XXXXXXXXooo ",
|
||||
" .X......XXXo ",
|
||||
" .XXXXXXXXXXo ",
|
||||
" .X........Xo ",
|
||||
" .XXXXXXXXXXo ",
|
||||
" .X........Xo ",
|
||||
" .XXXXXXXXXXo ",
|
||||
" .X........Xo ",
|
||||
" .XXXXXXXXXXo ",
|
||||
" .X........Xo ",
|
||||
" .XXXXXXXXXXo ",
|
||||
" .XXXXXXXXXXo ",
|
||||
" oooooooooooo "};
|
27
Externals/wxWidgets/art/htmsidep.xpm
vendored
Normal file
27
Externals/wxWidgets/art/htmsidep.xpm
vendored
Normal file
@ -0,0 +1,27 @@
|
||||
/* XPM */
|
||||
static char *htmsidep_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"16 15 6 1",
|
||||
". c Black",
|
||||
"X c #FFFFFF",
|
||||
"+ c #808080",
|
||||
" c None",
|
||||
"O c #0000C0",
|
||||
"o c #C0C0C0",
|
||||
/* pixels */
|
||||
" ",
|
||||
" .............. ",
|
||||
" .XXXX.ooooooo. ",
|
||||
" .XOXX.oo...oo. ",
|
||||
" .XXOX.ooooooo. ",
|
||||
" .OOOO.o...+.o. ",
|
||||
" .XXOX.ooooooo. ",
|
||||
" .XOXX.ooooooo. ",
|
||||
" .XXXX.o..+ooo. ",
|
||||
" .XXOX.ooooooo. ",
|
||||
" .XOXX.o...+.o. ",
|
||||
" .OOOO.ooooooo. ",
|
||||
" .XOXX.o.+...o. ",
|
||||
" .XXOX.ooooooo. ",
|
||||
" .............. "
|
||||
};
|
25
Externals/wxWidgets/art/listview.xpm
vendored
Normal file
25
Externals/wxWidgets/art/listview.xpm
vendored
Normal file
@ -0,0 +1,25 @@
|
||||
/* XPM */
|
||||
static char *listview_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"16 15 4 1",
|
||||
" c Black",
|
||||
". c #FFFFFF",
|
||||
"X c #000084",
|
||||
"o c #848484",
|
||||
/* pixels */
|
||||
" ",
|
||||
" .............. ",
|
||||
" .XXX.......... ",
|
||||
" .XXX. o o . ",
|
||||
" .XXX.......... ",
|
||||
" .............. ",
|
||||
" .XXX.......... ",
|
||||
" .XXX. o . ",
|
||||
" .XXX.......... ",
|
||||
" .............. ",
|
||||
" .XXX.......... ",
|
||||
" .XXX. o o . ",
|
||||
" .XXX.......... ",
|
||||
" .............. ",
|
||||
" "
|
||||
};
|
43
Externals/wxWidgets/art/missimg.xpm
vendored
Normal file
43
Externals/wxWidgets/art/missimg.xpm
vendored
Normal file
@ -0,0 +1,43 @@
|
||||
/* XPM */
|
||||
static char *missimg_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"32 32 5 1",
|
||||
"X c Black",
|
||||
"o c #FFFFFF",
|
||||
" c None",
|
||||
". c #C0C0C0",
|
||||
"O c #E0E0E0",
|
||||
/* pixels */
|
||||
" .............................X ",
|
||||
" .ooooooooooooooooooooooooooooX ",
|
||||
" .ooooooooooooooooooooooooooooX ",
|
||||
" .ooOOOOOOOOOOOOOOOOOOOOOOOOooX ",
|
||||
" .ooOOOOOOOOOOOOOOOOOOOOOOOOooX ",
|
||||
" .ooOOOOOOOOOOOOOOOOOOOOOOOOooX ",
|
||||
" .ooOOOOOOOOOOOOOOOOOOOOOOOOooX ",
|
||||
" .ooOOOOOOOOOOOOOOOOOOOOOOOOooX ",
|
||||
" .ooOOOOOOOOOOOOOOOOOOOOOOOOooX ",
|
||||
" .ooOOOOOOOXOOOOOOOOOOOOOOOOooX ",
|
||||
" XXXOOOOOXX XOOOOOOOOOOOOOOOooX ",
|
||||
" XXXXX XOOOOOOOOOOOOOOooX ",
|
||||
" XOOOXXXOOOOOOOooX ",
|
||||
" XXX XXOOOOOooX ",
|
||||
" XOOOOooX ",
|
||||
" . XOOOooX ",
|
||||
" .. XXOooX ",
|
||||
" .o.. XooX ",
|
||||
" .ooO... XXX ",
|
||||
" .ooOOOO.......... ",
|
||||
" .ooOOOOOOOOOOOOOO.. ",
|
||||
" .ooOOOOOOOOOOOOOOOO.. ",
|
||||
" .ooOOOOOOOOOOOOOOOOOO......... ",
|
||||
" .ooOOOOOOOOOOOOOOOOOOOOOOOOooX ",
|
||||
" .ooOOOOOOOOOOOOOOOOOOOOOOOOooX ",
|
||||
" .ooOOOOOOOOOOOOOOOOOOOOOOOOooX ",
|
||||
" .ooOOOOOOOOOOOOOOOOOOOOOOOOooX ",
|
||||
" .ooOOOOOOOOOOOOOOOOOOOOOOOOooX ",
|
||||
" .ooOOOOOOOOOOOOOOOOOOOOOOOOooX ",
|
||||
" .ooooooooooooooooooooooooooooX ",
|
||||
" .ooooooooooooooooooooooooooooX ",
|
||||
" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX "
|
||||
};
|
58
Externals/wxWidgets/art/motif/error.xpm
vendored
Normal file
58
Externals/wxWidgets/art/motif/error.xpm
vendored
Normal file
@ -0,0 +1,58 @@
|
||||
/* XPM */
|
||||
static char *error_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"48 48 4 1",
|
||||
" c None",
|
||||
"X c #242424",
|
||||
"o c #DCDF00",
|
||||
". c #C00000",
|
||||
/* pixels */
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ..... ",
|
||||
" ............. ",
|
||||
" ................. ",
|
||||
" ................... ",
|
||||
" ....................... ",
|
||||
" ......................... ",
|
||||
" ........................... ",
|
||||
" ...........................X ",
|
||||
" .............................X ",
|
||||
" ............................... ",
|
||||
" ...............................X ",
|
||||
" .................................X ",
|
||||
" .................................X ",
|
||||
" .................................XX ",
|
||||
" ...ooooooooooooooooooooooooooo...XX ",
|
||||
" ....ooooooooooooooooooooooooooo....X ",
|
||||
" ....ooooooooooooooooooooooooooo....X ",
|
||||
" ....ooooooooooooooooooooooooooo....XX ",
|
||||
" ....ooooooooooooooooooooooooooo....XX ",
|
||||
" ....ooooooooooooooooooooooooooo....XX ",
|
||||
" ...ooooooooooooooooooooooooooo...XXX ",
|
||||
" ...ooooooooooooooooooooooooooo...XXX ",
|
||||
" .................................XX ",
|
||||
" .................................XX ",
|
||||
" ...............................XXX ",
|
||||
" ...............................XXX ",
|
||||
" .............................XXX ",
|
||||
" ...........................XXXX ",
|
||||
" ...........................XXX ",
|
||||
" .........................XXX ",
|
||||
" .......................XXXX ",
|
||||
" X...................XXXXX ",
|
||||
" X.................XXXXX ",
|
||||
" X.............XXXXX ",
|
||||
" XXXX.....XXXXXXXX ",
|
||||
" XXXXXXXXXXXXX ",
|
||||
" XXXXX ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" "
|
||||
};
|
63
Externals/wxWidgets/art/motif/info.xpm
vendored
Normal file
63
Externals/wxWidgets/art/motif/info.xpm
vendored
Normal file
@ -0,0 +1,63 @@
|
||||
/* XPM */
|
||||
static char *info_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"48 48 9 1",
|
||||
"$ c Black",
|
||||
"O c #FFFFFF",
|
||||
"@ c #808080",
|
||||
"+ c #000080",
|
||||
"o c #E8EB01",
|
||||
" c None",
|
||||
"X c #FFFF40",
|
||||
"# c #C0C0C0",
|
||||
". c #ABAD01",
|
||||
/* pixels */
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ..... ",
|
||||
" ..XXXXX.. ",
|
||||
" ..XXXXXXXXo.. ",
|
||||
" .XXXOXXXXXXXoo. ",
|
||||
" .XOOXXX+XXXXXo. ",
|
||||
" .XOOOXX+++XXXXoo. ",
|
||||
" .XOOXXX+++XXXXXo. ",
|
||||
" .XOOOXXX+++XXXXXXo. ",
|
||||
" .XOOXXXX+++XXXXXXo. ",
|
||||
" .XXXXXXX+++XXXXXXX. ",
|
||||
" .XXXXXXX+++XXXXXXo. ",
|
||||
" .XXXXXXX+++XXXXXoo. ",
|
||||
" .XXXXXX+++XXXXXo. ",
|
||||
" .XXXXXXX+XXXXXXo. ",
|
||||
" .XXXXXXXXXXXXo. ",
|
||||
" .XXXXX+++XXXoo. ",
|
||||
" .XXXX+++XXoo. ",
|
||||
" .XXXXXXXXo. ",
|
||||
" ..XXXXXXo.. ",
|
||||
" .XXXXXo.. ",
|
||||
" @#######@ ",
|
||||
" @@@@@@@@@ ",
|
||||
" @#######@ ",
|
||||
" @@@@@@@@@ ",
|
||||
" @#######@ ",
|
||||
" @@@@@@@ ",
|
||||
" ### ",
|
||||
" $$$ ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" "
|
||||
};
|
75
Externals/wxWidgets/art/motif/question.xpm
vendored
Normal file
75
Externals/wxWidgets/art/motif/question.xpm
vendored
Normal file
@ -0,0 +1,75 @@
|
||||
/* XPM */
|
||||
static char *question_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"48 48 21 1",
|
||||
". c Black",
|
||||
"> c #696969",
|
||||
"O c #1F1F00",
|
||||
"+ c #181818",
|
||||
"o c #F6F900",
|
||||
"; c #3F3F00",
|
||||
"$ c #111111",
|
||||
" c None",
|
||||
"& c #202020",
|
||||
"X c #AAAA00",
|
||||
"@ c #949400",
|
||||
": c #303030",
|
||||
"1 c #383838",
|
||||
"% c #2A2A00",
|
||||
", c #404040",
|
||||
"= c #B4B400",
|
||||
"- c #484848",
|
||||
"# c #151500",
|
||||
"< c #9F9F00",
|
||||
"2 c #6A6A00",
|
||||
"* c #353500",
|
||||
/* pixels */
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ......... ",
|
||||
" ...XXXXXXX.. ",
|
||||
" ..XXXXoooooXXXO+ ",
|
||||
" ..XXooooooooooooX@.. ",
|
||||
" ..XoooooooooooooooXX#. ",
|
||||
" $%XoooooooooooooooooXX#. ",
|
||||
" &.XoooooooXXXXXXooooooXX.. ",
|
||||
" .XooooooXX.$...$XXoooooX*. ",
|
||||
" $.XoooooX%.$ .*oooooo=.. ",
|
||||
" .XooooooX.. -.XoooooX.. ",
|
||||
" .XoooooX..+ .XoooooX;. ",
|
||||
" ...XXXX..: .XoooooX;. ",
|
||||
" ........ >.XoooooX;. ",
|
||||
" +.XoooooX.. ",
|
||||
" ,.Xoooooo<.. ",
|
||||
" 1#XooooooXO.. ",
|
||||
" &#XooooooX2.. ",
|
||||
" $%XooooooXX.. ",
|
||||
" $%XooooooXX.. ",
|
||||
" $%XooooooXX.. ",
|
||||
" &.XooooooXX.. ",
|
||||
" .XooooooXX.. ",
|
||||
" &.XoooooXX.. ",
|
||||
" ..XooooXX.. ",
|
||||
" ..XooooX... ",
|
||||
" ..XXooXX..& ",
|
||||
" ...XXXXX.. ",
|
||||
" ........ ",
|
||||
" ",
|
||||
" ",
|
||||
" ....... ",
|
||||
" ..XXXXX.. ",
|
||||
" ..XXoooXX.. ",
|
||||
" ..XoooooX.. ",
|
||||
" ..XoooooX.. ",
|
||||
" ..XXoooXX.. ",
|
||||
" ..XXXXX.. ",
|
||||
" ....... ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" "
|
||||
};
|
63
Externals/wxWidgets/art/motif/warning.xpm
vendored
Normal file
63
Externals/wxWidgets/art/motif/warning.xpm
vendored
Normal file
@ -0,0 +1,63 @@
|
||||
/* XPM */
|
||||
static char *warning_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"48 48 9 1",
|
||||
"@ c Black",
|
||||
"o c #A6A800",
|
||||
"+ c #8A8C00",
|
||||
"$ c #B8BA00",
|
||||
" c None",
|
||||
"O c #6E7000",
|
||||
"X c #DCDF00",
|
||||
". c #C00000",
|
||||
"# c #373800",
|
||||
/* pixels */
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" . ",
|
||||
" ... ",
|
||||
" ... ",
|
||||
" ..... ",
|
||||
" ...X.. ",
|
||||
" ..XXX.. ",
|
||||
" ...XXX... ",
|
||||
" ..XXXXX.. ",
|
||||
" ..XXXXXX... ",
|
||||
" ...XXoO+XX.. ",
|
||||
" ..XXXO@#XXX.. ",
|
||||
" ..XXXXO@#XXX... ",
|
||||
" ...XXXXO@#XXXX.. ",
|
||||
" ..XXXXXO@#XXXX... ",
|
||||
" ...XXXXXo@OXXXXX.. ",
|
||||
" ...XXXXXXo@OXXXXXX.. ",
|
||||
" ..XXXXXXX$@OXXXXXX... ",
|
||||
" ...XXXXXXXX@XXXXXXXX.. ",
|
||||
" ...XXXXXXXXXXXXXXXXXX... ",
|
||||
" ..XXXXXXXXXXOXXXXXXXXX.. ",
|
||||
" ...XXXXXXXXXO@#XXXXXXXXX.. ",
|
||||
" ..XXXXXXXXXXX#XXXXXXXXXX... ",
|
||||
" ...XXXXXXXXXXXXXXXXXXXXXXX.. ",
|
||||
" ...XXXXXXXXXXXXXXXXXXXXXXXX... ",
|
||||
" .............................. ",
|
||||
" .............................. ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" "
|
||||
};
|
50
Externals/wxWidgets/art/new.xpm
vendored
Normal file
50
Externals/wxWidgets/art/new.xpm
vendored
Normal file
@ -0,0 +1,50 @@
|
||||
/* XPM */
|
||||
static char *new_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"16 15 29 1",
|
||||
"* c #97C4E7",
|
||||
"- c #72A8D2",
|
||||
": c #FFFFFF",
|
||||
"9 c #839CB5",
|
||||
"o c #6B98B8",
|
||||
"X c #5A89A6",
|
||||
"# c #3A749C",
|
||||
", c #D1E5F5",
|
||||
"0 c #85A7BC",
|
||||
"$ c #C3DDF1",
|
||||
"8 c #749BB4",
|
||||
"; c #5F9BC8",
|
||||
" c None",
|
||||
"+ c #538DB3",
|
||||
"= c #85BBE2",
|
||||
"3 c #EFF6FC",
|
||||
"O c #6591AE",
|
||||
"5 c #F7FBFD",
|
||||
"7 c #FAFCFE",
|
||||
"< c #DAEAF7",
|
||||
"4 c #E9F3FA",
|
||||
"6 c #FDFDFE",
|
||||
"1 c #E2EFF8",
|
||||
". c #8EA9BC",
|
||||
"% c #B6D5EE",
|
||||
"& c #A5CCEA",
|
||||
"> c #ACE95B",
|
||||
"2 c #F4F9FD",
|
||||
"@ c #4581AA",
|
||||
/* pixels */
|
||||
" .XoOO+@#. ",
|
||||
" .$$%&*=O-; ",
|
||||
" @@@@$%&*O:*o ",
|
||||
" @>>@$$%&O::*o ",
|
||||
"@@@>>@@@$%OOoO+ ",
|
||||
"@>>>>>>@,$%&*=+ ",
|
||||
"@>>>>>>@<,$%&*+ ",
|
||||
"@@@>>@@@1<,$%&O ",
|
||||
" @>>@2341<,$%O ",
|
||||
" @@@@52341<,$o ",
|
||||
" .:6752341<,8 ",
|
||||
" .::6752341<8 ",
|
||||
" .:::67523419 ",
|
||||
" .::::6752340 ",
|
||||
" ............ "
|
||||
};
|
43
Externals/wxWidgets/art/new_dir.xpm
vendored
Normal file
43
Externals/wxWidgets/art/new_dir.xpm
vendored
Normal file
@ -0,0 +1,43 @@
|
||||
/* XPM */
|
||||
static char *new_dir_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"16 15 22 1",
|
||||
"X c Black",
|
||||
"> c #9BACC2",
|
||||
"o c #547897",
|
||||
"1 c #7F99B4",
|
||||
"O c #D1D9E5",
|
||||
"< c #EAEDF3",
|
||||
"# c #CAD2DC",
|
||||
"3 c #718BA7",
|
||||
"@ c #BECAD9",
|
||||
"& c #E1E6EE",
|
||||
"; c #F5F6F7",
|
||||
". c #FFFF00",
|
||||
", c #8DA0B9",
|
||||
" c None",
|
||||
"% c #D6DFE7",
|
||||
"$ c #D2D9E0",
|
||||
"- c #ADBACE",
|
||||
"= c #EEF1F3",
|
||||
"+ c #B3BFD1",
|
||||
"2 c #7A90AC",
|
||||
": c #A2B3C5",
|
||||
"* c #E5EAF1",
|
||||
/* pixels */
|
||||
" .X .XX.",
|
||||
" ooooo .X.X. ",
|
||||
" oOOOOo XX...XX",
|
||||
" oooooooo.......",
|
||||
" o+@#$%&*XX...XX",
|
||||
" o+@#$%&*=.X.X. ",
|
||||
" o-+@#O%&.X;.X .",
|
||||
" o:-+@#O%&*=;o ",
|
||||
" o>:-+@#O%&*=o ",
|
||||
" o,>:-+@#O%&<o ",
|
||||
" o1,>:-+@#O%&o ",
|
||||
" o21,>:-+@#O%o ",
|
||||
" o321,>:-+@#Oo ",
|
||||
" ooooooooooooo ",
|
||||
" "
|
||||
};
|
46
Externals/wxWidgets/art/paste.xpm
vendored
Normal file
46
Externals/wxWidgets/art/paste.xpm
vendored
Normal file
@ -0,0 +1,46 @@
|
||||
/* XPM */
|
||||
static char *paste_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"16 15 25 1",
|
||||
"< c #FEECE4",
|
||||
"> c #FEE3D7",
|
||||
"O c #FFFFFF",
|
||||
"o c #7B767D",
|
||||
"% c #F79586",
|
||||
"& c #CAE1F3",
|
||||
"@ c #F08B62",
|
||||
"# c #FCCBB8",
|
||||
"- c #FDD8C9",
|
||||
"4 c #FFF8F4",
|
||||
"5 c #FFF5F0",
|
||||
" c None",
|
||||
"$ c #F8AA8F",
|
||||
", c #EFF6FC",
|
||||
"1 c #F7FBFD",
|
||||
"2 c #FAFCFE",
|
||||
"; c #DAEAF7",
|
||||
": c #E9F3FA",
|
||||
"6 c #FFFAF8",
|
||||
". c #3C78A6",
|
||||
"3 c #FFF1ED",
|
||||
"X c #9B8687",
|
||||
"+ c #FBBCA4",
|
||||
"* c #B6D5EE",
|
||||
"= c #F4F9FD",
|
||||
/* pixels */
|
||||
" ...... ",
|
||||
" .XoOOOOoo. ",
|
||||
".+XOOOOOOX@. ",
|
||||
".+XXXXXXXX@. ",
|
||||
".#++$$%@..... ",
|
||||
".##++$$%.&*.=. ",
|
||||
".-##++$$.;&.==. ",
|
||||
".--##++$.:;.... ",
|
||||
".>--##++.,:;&*. ",
|
||||
".<>--##+.1,:;&. ",
|
||||
".<<>--##.21,:;. ",
|
||||
".3<<>--#.O21=:. ",
|
||||
".45<<>--....... ",
|
||||
".6453<>----. ",
|
||||
"............ "
|
||||
};
|
60
Externals/wxWidgets/art/print.xpm
vendored
Normal file
60
Externals/wxWidgets/art/print.xpm
vendored
Normal file
@ -0,0 +1,60 @@
|
||||
/* XPM */
|
||||
static char *print_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"16 15 39 1",
|
||||
"< c #E3E4E6",
|
||||
"+ c #C3C3C4",
|
||||
"i c #FFFFFF",
|
||||
": c #74879B",
|
||||
"# c #5A89A6",
|
||||
"a c #F1F4F7",
|
||||
"r c #5A809C",
|
||||
"@ c #BDCCD9",
|
||||
"e c #7A92A4",
|
||||
"% c #3F6F93",
|
||||
"t c #9FA2A6",
|
||||
"3 c #939495",
|
||||
"w c #5F666D",
|
||||
"9 c #65839E",
|
||||
"5 c #4A7291",
|
||||
"$ c #4B7F9E",
|
||||
" c None",
|
||||
"O c #DFE0E2",
|
||||
"o c #F3F3F3",
|
||||
"; c #84A5BB",
|
||||
"& c #467291",
|
||||
". c #7897AD",
|
||||
"* c #407598",
|
||||
"4 c #CFCFD0",
|
||||
"7 c #6F90A6",
|
||||
"y c #6A89A2",
|
||||
"0 c #AAADB2",
|
||||
"1 c #D2D3D4",
|
||||
"u c #4F7592",
|
||||
", c #BCBDBE",
|
||||
"p c #57778E",
|
||||
"q c #979BA0",
|
||||
"2 c #ABABAC",
|
||||
"- c #E7E7E7",
|
||||
"= c #D6DEE6",
|
||||
"> c #9FA0A0",
|
||||
"8 c #829EB5",
|
||||
"X c #8FB0C3",
|
||||
"6 c #5D7C93",
|
||||
/* pixels */
|
||||
" .XXXXXXXX ",
|
||||
" .oooooooX ",
|
||||
" .OOOOOOOX ",
|
||||
" .+++++++X ",
|
||||
"@##$%&&&&&%*##@ ",
|
||||
"$=-;:>,<123$-=$ ",
|
||||
".44.5678.96$44. ",
|
||||
"7,,,,,,,,,,,,,7 ",
|
||||
"900qwwwwwwwe009 ",
|
||||
"rtt9ryyyyyyuttr ",
|
||||
"6qq6iiiiiii%qq6 ",
|
||||
"633paiiiiii%336 ",
|
||||
"XXX*iiiiiii%XXX ",
|
||||
" 6iiiiiii% ",
|
||||
" $XXXXXXX# "
|
||||
};
|
90
Externals/wxWidgets/art/quit.xpm
vendored
Normal file
90
Externals/wxWidgets/art/quit.xpm
vendored
Normal file
@ -0,0 +1,90 @@
|
||||
/* XPM */
|
||||
static char *quit_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"16 15 69 1",
|
||||
"@ c Black",
|
||||
"i c #9AEA53",
|
||||
"D c #7E9BB1",
|
||||
"H c #839FB4",
|
||||
", c #B7C7D3",
|
||||
"8 c #BCCBD6",
|
||||
"7 c #C1CFDA",
|
||||
"v c #92ABBD",
|
||||
"- c #D0DBE2",
|
||||
"O c #547897",
|
||||
"+ c #376485",
|
||||
"L c #7090A8",
|
||||
"t c #AEC0CE",
|
||||
"g c #B3C4D1",
|
||||
"S c #84A0B4",
|
||||
"G c #89A4B8",
|
||||
"> c #BDCCD7",
|
||||
"F c #5A809C",
|
||||
"2 c #C2D0DA",
|
||||
"k c #93ACBE",
|
||||
"= c #D6E0E6",
|
||||
"* c #446A8C",
|
||||
"z c #A5B9C8",
|
||||
"# c #DEE5EB",
|
||||
"0 c #AFC1CE",
|
||||
"r c #B4C5D2",
|
||||
"p c #B9C9D5",
|
||||
"A c #8AA5B8",
|
||||
"M c #92AABD",
|
||||
"j c #A6BAC9",
|
||||
"K c #7796AC",
|
||||
"l c #ABBECC",
|
||||
"o c #E4EAEF",
|
||||
"9 c #B5C6D2",
|
||||
" c None",
|
||||
"; c #C9D6DF",
|
||||
"X c #305F81",
|
||||
"m c #98AFC0",
|
||||
"V c #9DB3C3",
|
||||
"% c #D1DBE3",
|
||||
"u c #A2B7C6",
|
||||
"y c #A7BBCA",
|
||||
"h c #ACBFCD",
|
||||
"4 c #B6C7D3",
|
||||
"w c #C0CFD9",
|
||||
"d c #982106",
|
||||
"B c #85A0B5",
|
||||
"6 c #C8D4DE",
|
||||
"c c #99B0C1",
|
||||
"x c #9EB4C4",
|
||||
"$ c #D7E0E7",
|
||||
"q c #A8BCCA",
|
||||
"s c #ADC0CD",
|
||||
"3 c #BCCCD7",
|
||||
"N c #8BA5B9",
|
||||
": c #C4D1DB",
|
||||
"1 c #C9D5DE",
|
||||
"f c #9AB1C2",
|
||||
"n c #A4B9C8",
|
||||
"a c #B3C5D1",
|
||||
". c #215579",
|
||||
"J c #7D9AB0",
|
||||
"& c #829EB5",
|
||||
"e c #BBCAD6",
|
||||
"b c #8CA6B9",
|
||||
"Z c #91AABC",
|
||||
"C c #96AEC0",
|
||||
"< c #CFDAE2",
|
||||
"5 c #AFC2CF",
|
||||
/* pixels */
|
||||
" ..XXXXXXXXXX ",
|
||||
" XoO+X@@@@@@X ",
|
||||
" X#$%&X*@@@@X ",
|
||||
" X=-;:>,X@@@X ",
|
||||
" X<12345X@@@X ",
|
||||
" X67890qX@XXX ",
|
||||
" XwertyuX@XiX ",
|
||||
" XpasddfX++iiX ",
|
||||
" XghjddkXiiiiiX ",
|
||||
" XlzxcvbXiiiiiiX",
|
||||
" XnxmMNBXiiiiiX ",
|
||||
" XVCZASDXXXiiX ",
|
||||
" XXFGHJKX XiX ",
|
||||
" FXXFLX XX ",
|
||||
" XX* "
|
||||
};
|
58
Externals/wxWidgets/art/redo.xpm
vendored
Normal file
58
Externals/wxWidgets/art/redo.xpm
vendored
Normal file
@ -0,0 +1,58 @@
|
||||
/* XPM */
|
||||
static char *redo_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"16 15 37 1",
|
||||
"4 c #9BACC2",
|
||||
"; c #4C7398",
|
||||
"3 c #547B99",
|
||||
"* c #547897",
|
||||
"# c #5A89A6",
|
||||
"8 c #3A749C",
|
||||
"5 c #5A809C",
|
||||
", c #7F99B4",
|
||||
"& c #3F6F93",
|
||||
"9 c #85A7BC",
|
||||
"+ c #749BB4",
|
||||
"> c #718BA7",
|
||||
"e c #A5B3C8",
|
||||
"w c #BECAD9",
|
||||
": c #65839D",
|
||||
"u c #E1E6EE",
|
||||
"o c #236289",
|
||||
"r c #ADBED2",
|
||||
"= c #597B9A",
|
||||
"2 c #8DA0B9",
|
||||
" c None",
|
||||
"% c #467291",
|
||||
"1 c #7393AB",
|
||||
"i c #4C809F",
|
||||
"- c #A0BACB",
|
||||
"O c #6591AE",
|
||||
"X c #407598",
|
||||
"6 c #6F90A6",
|
||||
"t c #D2D9E0",
|
||||
"7 c #ADBACE",
|
||||
"@ c #326A8F",
|
||||
"0 c #467A9C",
|
||||
". c #ACC4D3",
|
||||
"< c #7F97B0",
|
||||
"y c #B3BFD1",
|
||||
"q c #A2B3C5",
|
||||
"$ c #8FB0C3",
|
||||
/* pixels */
|
||||
" .XoooO ",
|
||||
" +o@@@@@o# +",
|
||||
" $@%%&@&%%&@ +o",
|
||||
" X*=@+-+@*=;@#&@",
|
||||
" @:=+ @=:=*:@",
|
||||
" &>:$ @:>>>@",
|
||||
" &,<X X>,,,&",
|
||||
" +123 @<2222&",
|
||||
" X44X #@56<44X",
|
||||
" O1748 .9#&o",
|
||||
" 0qwe8 ",
|
||||
" 8rty8 ",
|
||||
" 8wu+ ",
|
||||
" i## ",
|
||||
" "
|
||||
};
|
44
Externals/wxWidgets/art/removable.xpm
vendored
Normal file
44
Externals/wxWidgets/art/removable.xpm
vendored
Normal file
@ -0,0 +1,44 @@
|
||||
/* XPM */
|
||||
static char *removable_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"16 15 23 1",
|
||||
"@ c #C3C3C4",
|
||||
"4 c #FFFFFF",
|
||||
"o c #D5D6D8",
|
||||
"> c #7A92A3",
|
||||
". c #8497A5",
|
||||
"% c #ACAEB2",
|
||||
"2 c #4A7898",
|
||||
": c #DCE2EA",
|
||||
", c #F5F6F7",
|
||||
"= c #EBEBEC",
|
||||
"$ c #B7B7B8",
|
||||
" c None",
|
||||
"X c #DFE0E2",
|
||||
"* c #A6A8AD",
|
||||
"1 c #4C809F",
|
||||
"3 c #407598",
|
||||
"O c #CFCFD0",
|
||||
"; c #9EA2A8",
|
||||
"# c #BCBDBE",
|
||||
"+ c #C6C8CA",
|
||||
"- c #979BA0",
|
||||
"& c #E7E7E7",
|
||||
"< c #8FB0C3",
|
||||
/* pixels */
|
||||
" ......... ",
|
||||
" .XoO+@#$%. ",
|
||||
" .XoO+@#$%. ",
|
||||
" .&XoO+@#$%*. ",
|
||||
" .&XoO+@#$%*. ",
|
||||
" .=&XoO+@#$%*-. ",
|
||||
" .=&XoO+@#$%*;. ",
|
||||
".:=&XoO+@#$%*;>.",
|
||||
".,=&XoO+@#$%*;-.",
|
||||
"<..............<",
|
||||
"<,=&XoO+@#$%%%%.",
|
||||
"<O1111122233*4*.",
|
||||
"<OOOOOOOOOOO***.",
|
||||
" <<<<<<<<<<<<<< ",
|
||||
" "
|
||||
};
|
24
Externals/wxWidgets/art/repview.xpm
vendored
Normal file
24
Externals/wxWidgets/art/repview.xpm
vendored
Normal file
@ -0,0 +1,24 @@
|
||||
/* XPM */
|
||||
static char *repview_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"16 15 3 1",
|
||||
" c Black",
|
||||
"X c #FFFFFF",
|
||||
". c #C0C0C0",
|
||||
/* pixels */
|
||||
" ",
|
||||
" .............. ",
|
||||
" . . . . ",
|
||||
" .............. ",
|
||||
" .............. ",
|
||||
" XXXXXXXXXXXXXX ",
|
||||
" X X X X ",
|
||||
" XXXXXXXXXXXXXX ",
|
||||
" X X X X ",
|
||||
" XXXXXXXXXXXXXX ",
|
||||
" X X X X ",
|
||||
" XXXXXXXXXXXXXX ",
|
||||
" X X X X ",
|
||||
" XXXXXXXXXXXXXX ",
|
||||
" "
|
||||
};
|
17
Externals/wxWidgets/art/tick.xpm
vendored
Normal file
17
Externals/wxWidgets/art/tick.xpm
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
/* XPM */
|
||||
static char *tick_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"10 10 2 1",
|
||||
". c Gray0",
|
||||
" c None",
|
||||
/* pixels */
|
||||
" ",
|
||||
" ..",
|
||||
" ...",
|
||||
" ... ",
|
||||
".. ... ",
|
||||
"... ... ",
|
||||
" ..... ",
|
||||
" ... ",
|
||||
" . ",
|
||||
" "};
|
47
Externals/wxWidgets/art/tipicon.xpm
vendored
Normal file
47
Externals/wxWidgets/art/tipicon.xpm
vendored
Normal file
@ -0,0 +1,47 @@
|
||||
/* XPM */
|
||||
static char *tipicon_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"32 32 9 1",
|
||||
"$ c Black",
|
||||
"O c #FFFFFF",
|
||||
"@ c #808080",
|
||||
"+ c #000080",
|
||||
"o c #E8EB01",
|
||||
" c None",
|
||||
"X c #FFFF40",
|
||||
"# c #C0C0C0",
|
||||
". c #ABAD01",
|
||||
/* pixels */
|
||||
" ",
|
||||
" ..... ",
|
||||
" ..XXXXX.. ",
|
||||
" ..XXXXXXXXo.. ",
|
||||
" .XXXOXXXXXXXoo. ",
|
||||
" .XOOXXX+XXXXXo. ",
|
||||
" .XOOOXX+++XXXXoo. ",
|
||||
" .XOOXXX+++XXXXXo. ",
|
||||
" .XOOOXXX+++XXXXXXo. ",
|
||||
" .XOOXXXX+++XXXXXXo. ",
|
||||
" .XXXXXXX+++XXXXXXX. ",
|
||||
" .XXXXXXX+++XXXXXXo. ",
|
||||
" .XXXXXXX+++XXXXXoo. ",
|
||||
" .XXXXXX+++XXXXXo. ",
|
||||
" .XXXXXXX+XXXXXXo. ",
|
||||
" .XXXXXXXXXXXXo. ",
|
||||
" .XXXXX+++XXXoo. ",
|
||||
" .XXXX+++XXoo. ",
|
||||
" .XXXXXXXXo. ",
|
||||
" ..XXXXXXo.. ",
|
||||
" .XXXXXo.. ",
|
||||
" @#######@ ",
|
||||
" @@@@@@@@@ ",
|
||||
" @#######@ ",
|
||||
" @@@@@@@@@ ",
|
||||
" @#######@ ",
|
||||
" @@@@@@@ ",
|
||||
" ### ",
|
||||
" $$$ ",
|
||||
" ",
|
||||
" ",
|
||||
" "
|
||||
};
|
21
Externals/wxWidgets/art/toparent.xpm
vendored
Normal file
21
Externals/wxWidgets/art/toparent.xpm
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
/* XPM */
|
||||
static char * toparent_xpm[] = {
|
||||
"16 15 3 1",
|
||||
" c None",
|
||||
". c Black",
|
||||
"X c Gray100",
|
||||
" ",
|
||||
" .. ",
|
||||
" .XX. ",
|
||||
" .XXXX. ",
|
||||
" .XXXXXX. ",
|
||||
" .XXXXXXXX. ",
|
||||
" ....XXXX.... ",
|
||||
" .XXXX. ",
|
||||
" .XXXX..... ",
|
||||
" .XXXXXXXX. ",
|
||||
" .XXXXXXXX. ",
|
||||
" .XXXXXXXX. ",
|
||||
" .XXXXXXXX. ",
|
||||
" .......... ",
|
||||
" "};
|
58
Externals/wxWidgets/art/undo.xpm
vendored
Normal file
58
Externals/wxWidgets/art/undo.xpm
vendored
Normal file
@ -0,0 +1,58 @@
|
||||
/* XPM */
|
||||
static char *undo_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"16 15 37 1",
|
||||
"4 c #9BACC2",
|
||||
"* c #4C7398",
|
||||
"2 c #547B99",
|
||||
"- c #547897",
|
||||
"@ c #5A89A6",
|
||||
"8 c #3A749C",
|
||||
"6 c #5A809C",
|
||||
", c #7F99B4",
|
||||
"$ c #3F6F93",
|
||||
"7 c #85A7BC",
|
||||
"+ c #749BB4",
|
||||
"> c #718BA7",
|
||||
"0 c #A5B3C8",
|
||||
"q c #BECAD9",
|
||||
": c #65839D",
|
||||
"u c #E1E6EE",
|
||||
"X c #236289",
|
||||
"y c #ADBED2",
|
||||
"= c #597B9A",
|
||||
"1 c #8DA0B9",
|
||||
" c None",
|
||||
"% c #467291",
|
||||
"3 c #7393AB",
|
||||
"i c #4C809F",
|
||||
"; c #A0BACB",
|
||||
". c #6591AE",
|
||||
"o c #407598",
|
||||
"5 c #6F90A6",
|
||||
"t c #D2D9E0",
|
||||
"9 c #ADBACE",
|
||||
"# c #326A8F",
|
||||
"e c #467A9C",
|
||||
"O c #ACC4D3",
|
||||
"< c #7F97B0",
|
||||
"r c #B3BFD1",
|
||||
"w c #A2B3C5",
|
||||
"& c #8FB0C3",
|
||||
/* pixels */
|
||||
" .XXXoO ",
|
||||
"+ @X#####X+ ",
|
||||
"X+ #$%%$#$%%#& ",
|
||||
"#$@#*=-#+;+#=-o ",
|
||||
"#:-=:=# +=:# ",
|
||||
"#>>>:# &:>$ ",
|
||||
"$,,,>o o<,$ ",
|
||||
"$1111<# 213+ ",
|
||||
"o44<56#@ o44o ",
|
||||
"X$@7O 8493. ",
|
||||
" 80qwe ",
|
||||
" 8rty8 ",
|
||||
" +uq8 ",
|
||||
" @@i ",
|
||||
" "
|
||||
};
|
21
Externals/wxWidgets/art/up.xpm
vendored
Normal file
21
Externals/wxWidgets/art/up.xpm
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
/* XPM */
|
||||
static char * up_xpm[] = {
|
||||
"16 15 3 1",
|
||||
" c None",
|
||||
". c Black",
|
||||
"X c Gray100",
|
||||
" ",
|
||||
" .. ",
|
||||
" .XX. ",
|
||||
" .XXXX. ",
|
||||
" .XXXXXX. ",
|
||||
" .XXXXXXXX. ",
|
||||
" ....XXXX.... ",
|
||||
" .XXXX. ",
|
||||
" .XXXX. ",
|
||||
" .XXXX. ",
|
||||
" .XXXX. ",
|
||||
" .XXXX. ",
|
||||
" .XXXX. ",
|
||||
" ...... ",
|
||||
" "};
|
BIN
Externals/wxWidgets/art/wxwin.ico
vendored
Normal file
BIN
Externals/wxWidgets/art/wxwin.ico
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user