Mercurial > games > semicongine
comparison fuhtark_test/include/winapi/schemadef.h @ 1500:91c8c3b7cbf0
add: futhark tests for generating vulkan api
| author | sam <sam@basx.dev> |
|---|---|
| date | Wed, 26 Nov 2025 21:36:48 +0700 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 1499:1f58458b7ef7 | 1500:91c8c3b7cbf0 |
|---|---|
| 1 /** | |
| 2 * This file has no copyright assigned and is placed in the Public Domain. | |
| 3 * This file is part of the w64 mingw-runtime package. | |
| 4 * No warranty is given; refer to the file DISCLAIMER within this package. | |
| 5 */ | |
| 6 #ifndef SCHEMA_STRINGS | |
| 7 | |
| 8 #ifndef SCHEMADEF_H | |
| 9 #define SCHEMADEF_H | |
| 10 | |
| 11 #define SCHEMADEF_VERSION 1 | |
| 12 | |
| 13 struct TMPROPINFO { | |
| 14 LPCWSTR pszName; | |
| 15 SHORT sEnumVal; | |
| 16 BYTE bPrimVal; | |
| 17 }; | |
| 18 | |
| 19 struct TMSCHEMAINFO { | |
| 20 DWORD dwSize; | |
| 21 int iSchemaDefVersion; | |
| 22 int iThemeMgrVersion; | |
| 23 int iPropCount; | |
| 24 const struct TMPROPINFO *pPropTable; | |
| 25 }; | |
| 26 | |
| 27 #define BEGIN_TM_SCHEMA(name) | |
| 28 #define BEGIN_TM_PROPS() enum PropValues { DummyProp = 49, | |
| 29 #define BEGIN_TM_ENUM(name) enum name { | |
| 30 #define BEGIN_TM_CLASS_PARTS(name) enum name##PARTS { name##PartFiller0, | |
| 31 #define BEGIN_TM_PART_STATES(name) enum name##STATES { name##StateFiller0, | |
| 32 | |
| 33 #define TM_PROP(val,prefix,name,primval) prefix##_##name = val, | |
| 34 #define TM_ENUM(val,prefix,name) prefix##_##name = val, | |
| 35 #define TM_PART(val,prefix,name) prefix##_##name = val, | |
| 36 #define TM_STATE(val,prefix,name) prefix##_##name = val, | |
| 37 | |
| 38 #define END_TM_CLASS_PARTS() }; | |
| 39 #define END_TM_PART_STATES() }; | |
| 40 #define END_TM_PROPS() }; | |
| 41 #define END_TM_ENUM() }; | |
| 42 #define END_TM_SCHEMA(name) | |
| 43 #endif | |
| 44 #else | |
| 45 | |
| 46 #undef BEGIN_TM_SCHEMA | |
| 47 #undef BEGIN_TM_PROPS | |
| 48 #undef BEGIN_TM_ENUM | |
| 49 #undef BEGIN_TM_CLASS_PARTS | |
| 50 #undef BEGIN_TM_PART_STATES | |
| 51 #undef TM_PROP | |
| 52 #undef TM_PART | |
| 53 #undef TM_STATE | |
| 54 #undef TM_ENUM | |
| 55 #undef END_TM_CLASS_PARTS | |
| 56 #undef END_TM_PART_STATES | |
| 57 #undef END_TM_PROPS | |
| 58 #undef END_TM_ENUM | |
| 59 #undef END_TM_SCHEMA | |
| 60 | |
| 61 #define BEGIN_TM_SCHEMA(name) static const TMPROPINFO name[] = { | |
| 62 #define BEGIN_TM_PROPS() | |
| 63 #define BEGIN_TM_ENUM(name) {L#name,TMT_ENUMDEF,TMT_ENUMDEF}, | |
| 64 #define BEGIN_TM_CLASS_PARTS(name) {L#name L"PARTS",TMT_ENUMDEF,TMT_ENUMDEF}, | |
| 65 #define BEGIN_TM_PART_STATES(name) {L#name L"STATES",TMT_ENUMDEF,TMT_ENUMDEF}, | |
| 66 | |
| 67 #define TM_PROP(val,prefix,name,primval) {L#name,prefix##_##name,TMT_##primval}, | |
| 68 #define TM_PART(val,prefix,name) {L#name,prefix##_##name,TMT_ENUMVAL}, | |
| 69 #define TM_STATE(val,prefix,name) {L#name,prefix##_##name,TMT_ENUMVAL}, | |
| 70 #define TM_ENUM(val,prefix,name) {L#name,prefix##_##name,TMT_ENUMVAL}, | |
| 71 | |
| 72 #define END_TM_CLASS_PARTS() | |
| 73 #define END_TM_PART_STATES() | |
| 74 #define END_TM_PROPS() | |
| 75 #define END_TM_ENUM() | |
| 76 #define END_TM_SCHEMA(name) }; static const TMSCHEMAINFO *GetSchemaInfo() { static TMSCHEMAINFO si = {sizeof(si)}; si.iSchemaDefVersion = SCHEMADEF_VERSION; si.iThemeMgrVersion = THEMEMGR_VERSION; si.iPropCount = sizeof(name)/sizeof(name[0]); si.pPropTable = name; return &si; } | |
| 77 #endif |
