replace SDL_GPU renderer with wgpu
This commit is contained in:
parent
883e13cdf5
commit
ec34b2df61
@ -1,7 +1,7 @@
|
||||
cmake_minimum_required(VERSION 3.25)
|
||||
|
||||
project(mikemon VERSION 0.1 LANGUAGES CXX C)
|
||||
set(CMAKE_C_STANDARD 11)
|
||||
set(CMAKE_C_STANDARD 23)
|
||||
set(CMAKE_C_EXTENSIONS OFF)
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
@ -13,6 +13,9 @@ set(SDL_SHARED OFF)
|
||||
set(SDL_STATIC ON)
|
||||
add_subdirectory(libs/SDL3)
|
||||
|
||||
# wgpu
|
||||
add_subdirectory(libs/wgpu)
|
||||
|
||||
# SDL_mixer
|
||||
set(BUILD_SHARED_LIBS ${SDL_SHARED})
|
||||
set(SDLMIXER_DEPS_SHARED OFF)
|
||||
@ -36,19 +39,14 @@ add_library(imgui STATIC
|
||||
libs/imgui/imgui_tables.cpp
|
||||
libs/imgui/imgui_widgets.cpp
|
||||
libs/imgui/backends/imgui_impl_sdl3.cpp
|
||||
libs/imgui/backends/imgui_impl_sdlgpu3.cpp
|
||||
libs/imgui/backends/imgui_impl_wgpu.cpp
|
||||
)
|
||||
target_include_directories(imgui PUBLIC
|
||||
libs/imgui
|
||||
libs/imgui/backends
|
||||
)
|
||||
target_link_libraries(imgui PRIVATE SDL3::SDL3)
|
||||
|
||||
# Shaders
|
||||
find_program(SLANGC
|
||||
NAMES slangc
|
||||
PATHS /opt/shader-slang-bin/bin
|
||||
)
|
||||
target_link_libraries(imgui PRIVATE SDL3::SDL3 wgpu)
|
||||
target_compile_definitions(imgui PRIVATE IMGUI_IMPL_WEBGPU_BACKEND_WGPU=1)
|
||||
|
||||
# stb_image
|
||||
add_library(stb_image STATIC libs/stb/stb_image.c)
|
||||
@ -58,39 +56,11 @@ target_include_directories(stb_image INTERFACE libs/stb)
|
||||
option(TRACY_ONLY_LOCALHOST "" ON)
|
||||
add_subdirectory(libs/tracy)
|
||||
|
||||
function(add_shader name)
|
||||
set(INPUT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/${name}.slang)
|
||||
set(OUTPUT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/${name}.h)
|
||||
set(DEP_FILE ${CMAKE_CURRENT_BINARY_DIR}/SHADER_${name}.dep)
|
||||
|
||||
if (SLANGC)
|
||||
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
set(SLANG_FLAGS -g3 -O0)
|
||||
else()
|
||||
set(SLANG_FLAGS -O3)
|
||||
endif()
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${OUTPUT_FILE}
|
||||
COMMAND ${SLANGC} -target spirv -validate-uniformity -o ${OUTPUT_FILE} -depfile ${DEP_FILE} -source-embed-style u8 -source-embed-name SPIRV_${name} ${SLANG_FLAGS} -- ${INPUT_FILE}
|
||||
DEPFILE ${DEP_FILE}
|
||||
)
|
||||
endif()
|
||||
|
||||
add_custom_target(SHADER_${name}
|
||||
DEPENDS ${OUTPUT_FILE}
|
||||
)
|
||||
endfunction()
|
||||
|
||||
add_shader(basic)
|
||||
add_shader(world)
|
||||
add_shader(gui_tile)
|
||||
add_shader(grid)
|
||||
|
||||
add_executable(mikemon
|
||||
src/log.cpp
|
||||
src/smol-atlas.cpp
|
||||
src/math_graphics.cpp
|
||||
src/shaders/shaders.c
|
||||
src/main.cpp
|
||||
)
|
||||
target_link_libraries(mikemon
|
||||
@ -100,10 +70,5 @@ target_link_libraries(mikemon
|
||||
stb_image
|
||||
imgui
|
||||
TracyClient
|
||||
)
|
||||
add_dependencies(mikemon
|
||||
SHADER_basic
|
||||
SHADER_world
|
||||
SHADER_gui_tile
|
||||
SHADER_grid
|
||||
wgpu
|
||||
)
|
||||
|
||||
11
libs/wgpu/CMakeLists.txt
Normal file
11
libs/wgpu/CMakeLists.txt
Normal file
@ -0,0 +1,11 @@
|
||||
cmake_minimum_required(VERSION 3.25)
|
||||
|
||||
project(wgpu)
|
||||
|
||||
add_library(wgpu INTERFACE)
|
||||
target_include_directories(wgpu INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/include)
|
||||
if (WIN32)
|
||||
target_link_libraries(wgpu INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/lib/${CMAKE_SYSTEM_NAME}/wgpu_native.lib Opengl32.lib ntdll.lib)
|
||||
ELSE()
|
||||
target_link_libraries(wgpu INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/lib/${CMAKE_SYSTEM_NAME}/libwgpu_native.a)
|
||||
ENDIF()
|
||||
3869
libs/wgpu/include/webgpu/webgpu.h
Normal file
3869
libs/wgpu/include/webgpu/webgpu.h
Normal file
File diff suppressed because it is too large
Load Diff
328
libs/wgpu/include/webgpu/wgpu.h
Normal file
328
libs/wgpu/include/webgpu/wgpu.h
Normal file
@ -0,0 +1,328 @@
|
||||
#ifndef WGPU_H_
|
||||
#define WGPU_H_
|
||||
|
||||
#include "webgpu.h"
|
||||
|
||||
typedef enum WGPUNativeSType {
|
||||
// Start at 0003 since that's allocated range for wgpu-native
|
||||
WGPUSType_DeviceExtras = 0x00030001,
|
||||
WGPUSType_NativeLimits = 0x00030002,
|
||||
WGPUSType_PipelineLayoutExtras = 0x00030003,
|
||||
WGPUSType_ShaderSourceGLSL = 0x00030004,
|
||||
WGPUSType_InstanceExtras = 0x00030006,
|
||||
WGPUSType_BindGroupEntryExtras = 0x00030007,
|
||||
WGPUSType_BindGroupLayoutEntryExtras = 0x00030008,
|
||||
WGPUSType_QuerySetDescriptorExtras = 0x00030009,
|
||||
WGPUSType_SurfaceConfigurationExtras = 0x0003000A,
|
||||
WGPUSType_SurfaceSourceSwapChainPanel = 0x0003000B,
|
||||
WGPUNativeSType_Force32 = 0x7FFFFFFF
|
||||
} WGPUNativeSType;
|
||||
|
||||
typedef enum WGPUNativeFeature {
|
||||
WGPUNativeFeature_PushConstants = 0x00030001,
|
||||
WGPUNativeFeature_TextureAdapterSpecificFormatFeatures = 0x00030002,
|
||||
WGPUNativeFeature_MultiDrawIndirect = 0x00030003,
|
||||
WGPUNativeFeature_MultiDrawIndirectCount = 0x00030004,
|
||||
WGPUNativeFeature_VertexWritableStorage = 0x00030005,
|
||||
WGPUNativeFeature_TextureBindingArray = 0x00030006,
|
||||
WGPUNativeFeature_SampledTextureAndStorageBufferArrayNonUniformIndexing = 0x00030007,
|
||||
WGPUNativeFeature_PipelineStatisticsQuery = 0x00030008,
|
||||
WGPUNativeFeature_StorageResourceBindingArray = 0x00030009,
|
||||
WGPUNativeFeature_PartiallyBoundBindingArray = 0x0003000A,
|
||||
WGPUNativeFeature_TextureFormat16bitNorm = 0x0003000B,
|
||||
WGPUNativeFeature_TextureCompressionAstcHdr = 0x0003000C,
|
||||
WGPUNativeFeature_MappablePrimaryBuffers = 0x0003000E,
|
||||
WGPUNativeFeature_BufferBindingArray = 0x0003000F,
|
||||
WGPUNativeFeature_UniformBufferAndStorageTextureArrayNonUniformIndexing = 0x00030010,
|
||||
// TODO: requires wgpu.h api change
|
||||
// WGPUNativeFeature_AddressModeClampToZero = 0x00030011,
|
||||
// WGPUNativeFeature_AddressModeClampToBorder = 0x00030012,
|
||||
// WGPUNativeFeature_PolygonModeLine = 0x00030013,
|
||||
// WGPUNativeFeature_PolygonModePoint = 0x00030014,
|
||||
// WGPUNativeFeature_ConservativeRasterization = 0x00030015,
|
||||
// WGPUNativeFeature_ClearTexture = 0x00030016,
|
||||
WGPUNativeFeature_SpirvShaderPassthrough = 0x00030017,
|
||||
// WGPUNativeFeature_Multiview = 0x00030018,
|
||||
WGPUNativeFeature_VertexAttribute64bit = 0x00030019,
|
||||
WGPUNativeFeature_TextureFormatNv12 = 0x0003001A,
|
||||
WGPUNativeFeature_RayTracingAccelerationStructure = 0x0003001B,
|
||||
WGPUNativeFeature_RayQuery = 0x0003001C,
|
||||
WGPUNativeFeature_ShaderF64 = 0x0003001D,
|
||||
WGPUNativeFeature_ShaderI16 = 0x0003001E,
|
||||
WGPUNativeFeature_ShaderPrimitiveIndex = 0x0003001F,
|
||||
WGPUNativeFeature_ShaderEarlyDepthTest = 0x00030020,
|
||||
WGPUNativeFeature_Subgroup = 0x00030021,
|
||||
WGPUNativeFeature_SubgroupVertex = 0x00030022,
|
||||
WGPUNativeFeature_SubgroupBarrier = 0x00030023,
|
||||
WGPUNativeFeature_TimestampQueryInsideEncoders = 0x00030024,
|
||||
WGPUNativeFeature_TimestampQueryInsidePasses = 0x00030025,
|
||||
WGPUNativeFeature_ShaderInt64 = 0x00030026,
|
||||
WGPUNativeFeature_Force32 = 0x7FFFFFFF
|
||||
} WGPUNativeFeature;
|
||||
|
||||
typedef enum WGPULogLevel {
|
||||
WGPULogLevel_Off = 0x00000000,
|
||||
WGPULogLevel_Error = 0x00000001,
|
||||
WGPULogLevel_Warn = 0x00000002,
|
||||
WGPULogLevel_Info = 0x00000003,
|
||||
WGPULogLevel_Debug = 0x00000004,
|
||||
WGPULogLevel_Trace = 0x00000005,
|
||||
WGPULogLevel_Force32 = 0x7FFFFFFF
|
||||
} WGPULogLevel;
|
||||
|
||||
typedef WGPUFlags WGPUInstanceBackend;
|
||||
static const WGPUInstanceBackend WGPUInstanceBackend_All = 0x00000000;
|
||||
static const WGPUInstanceBackend WGPUInstanceBackend_Vulkan = 1 << 0;
|
||||
static const WGPUInstanceBackend WGPUInstanceBackend_GL = 1 << 1;
|
||||
static const WGPUInstanceBackend WGPUInstanceBackend_Metal = 1 << 2;
|
||||
static const WGPUInstanceBackend WGPUInstanceBackend_DX12 = 1 << 3;
|
||||
static const WGPUInstanceBackend WGPUInstanceBackend_DX11 = 1 << 4;
|
||||
static const WGPUInstanceBackend WGPUInstanceBackend_BrowserWebGPU = 1 << 5;
|
||||
// Vulkan, Metal, DX12 and BrowserWebGPU
|
||||
static const WGPUInstanceBackend WGPUInstanceBackend_Primary = (1 << 0) | (1 << 2) | (1 << 3) | (1 << 5);
|
||||
// GL and DX11
|
||||
static const WGPUInstanceBackend WGPUInstanceBackend_Secondary = (1 << 1) | (1 << 4);
|
||||
static const WGPUInstanceBackend WGPUInstanceBackend_Force32 = 0x7FFFFFFF;
|
||||
|
||||
typedef WGPUFlags WGPUInstanceFlag;
|
||||
static const WGPUInstanceFlag WGPUInstanceFlag_Default = 0x00000000;
|
||||
static const WGPUInstanceFlag WGPUInstanceFlag_Debug = 1 << 0;
|
||||
static const WGPUInstanceFlag WGPUInstanceFlag_Validation = 1 << 1;
|
||||
static const WGPUInstanceFlag WGPUInstanceFlag_DiscardHalLabels = 1 << 2;
|
||||
static const WGPUInstanceFlag WGPUInstanceFlag_Force32 = 0x7FFFFFFF;
|
||||
|
||||
typedef enum WGPUDx12Compiler {
|
||||
WGPUDx12Compiler_Undefined = 0x00000000,
|
||||
WGPUDx12Compiler_Fxc = 0x00000001,
|
||||
WGPUDx12Compiler_Dxc = 0x00000002,
|
||||
WGPUDx12Compiler_Force32 = 0x7FFFFFFF
|
||||
} WGPUDx12Compiler;
|
||||
|
||||
typedef enum WGPUGles3MinorVersion {
|
||||
WGPUGles3MinorVersion_Automatic = 0x00000000,
|
||||
WGPUGles3MinorVersion_Version0 = 0x00000001,
|
||||
WGPUGles3MinorVersion_Version1 = 0x00000002,
|
||||
WGPUGles3MinorVersion_Version2 = 0x00000003,
|
||||
WGPUGles3MinorVersion_Force32 = 0x7FFFFFFF
|
||||
} WGPUGles3MinorVersion;
|
||||
|
||||
typedef enum WGPUPipelineStatisticName {
|
||||
WGPUPipelineStatisticName_VertexShaderInvocations = 0x00000000,
|
||||
WGPUPipelineStatisticName_ClipperInvocations = 0x00000001,
|
||||
WGPUPipelineStatisticName_ClipperPrimitivesOut = 0x00000002,
|
||||
WGPUPipelineStatisticName_FragmentShaderInvocations = 0x00000003,
|
||||
WGPUPipelineStatisticName_ComputeShaderInvocations = 0x00000004,
|
||||
WGPUPipelineStatisticName_Force32 = 0x7FFFFFFF
|
||||
} WGPUPipelineStatisticName WGPU_ENUM_ATTRIBUTE;
|
||||
|
||||
typedef enum WGPUNativeQueryType {
|
||||
WGPUNativeQueryType_PipelineStatistics = 0x00030000,
|
||||
WGPUNativeQueryType_Force32 = 0x7FFFFFFF
|
||||
} WGPUNativeQueryType WGPU_ENUM_ATTRIBUTE;
|
||||
|
||||
typedef enum WGPUDxcMaxShaderModel {
|
||||
WGPUDxcMaxShaderModel_V6_0 = 0x00000000,
|
||||
WGPUDxcMaxShaderModel_V6_1 = 0x00000001,
|
||||
WGPUDxcMaxShaderModel_V6_2 = 0x00000002,
|
||||
WGPUDxcMaxShaderModel_V6_3 = 0x00000003,
|
||||
WGPUDxcMaxShaderModel_V6_4 = 0x00000004,
|
||||
WGPUDxcMaxShaderModel_V6_5 = 0x00000005,
|
||||
WGPUDxcMaxShaderModel_V6_6 = 0x00000006,
|
||||
WGPUDxcMaxShaderModel_V6_7 = 0x00000007,
|
||||
WGPUDxcMaxShaderModel_Force32 = 0x7FFFFFFF
|
||||
} WGPUDxcMaxShaderModel;
|
||||
|
||||
typedef enum WGPUGLFenceBehaviour {
|
||||
WGPUGLFenceBehaviour_Normal = 0x00000000,
|
||||
WGPUGLFenceBehaviour_AutoFinish = 0x00000001,
|
||||
WGPUGLFenceBehaviour_Force32 = 0x7FFFFFFF
|
||||
} WGPUGLFenceBehaviour;
|
||||
|
||||
typedef struct WGPUInstanceExtras {
|
||||
WGPUChainedStruct chain;
|
||||
WGPUInstanceBackend backends;
|
||||
WGPUInstanceFlag flags;
|
||||
WGPUDx12Compiler dx12ShaderCompiler;
|
||||
WGPUGles3MinorVersion gles3MinorVersion;
|
||||
WGPUGLFenceBehaviour glFenceBehaviour;
|
||||
WGPUStringView dxilPath;
|
||||
WGPUStringView dxcPath;
|
||||
WGPUDxcMaxShaderModel dxcMaxShaderModel;
|
||||
} WGPUInstanceExtras;
|
||||
|
||||
typedef struct WGPUDeviceExtras {
|
||||
WGPUChainedStruct chain;
|
||||
WGPUStringView tracePath;
|
||||
} WGPUDeviceExtras;
|
||||
|
||||
typedef struct WGPUNativeLimits {
|
||||
/** This struct chain is used as mutable in some places and immutable in others. */
|
||||
WGPUChainedStructOut chain;
|
||||
uint32_t maxPushConstantSize;
|
||||
uint32_t maxNonSamplerBindings;
|
||||
} WGPUNativeLimits;
|
||||
|
||||
typedef struct WGPUPushConstantRange {
|
||||
WGPUShaderStage stages;
|
||||
uint32_t start;
|
||||
uint32_t end;
|
||||
} WGPUPushConstantRange;
|
||||
|
||||
typedef struct WGPUPipelineLayoutExtras {
|
||||
WGPUChainedStruct chain;
|
||||
size_t pushConstantRangeCount;
|
||||
WGPUPushConstantRange const * pushConstantRanges;
|
||||
} WGPUPipelineLayoutExtras;
|
||||
|
||||
typedef uint64_t WGPUSubmissionIndex;
|
||||
|
||||
typedef struct WGPUShaderDefine {
|
||||
WGPUStringView name;
|
||||
WGPUStringView value;
|
||||
} WGPUShaderDefine;
|
||||
|
||||
typedef struct WGPUShaderSourceGLSL {
|
||||
WGPUChainedStruct chain;
|
||||
WGPUShaderStage stage;
|
||||
WGPUStringView code;
|
||||
uint32_t defineCount;
|
||||
WGPUShaderDefine * defines;
|
||||
} WGPUShaderSourceGLSL;
|
||||
|
||||
typedef struct WGPUShaderModuleDescriptorSpirV {
|
||||
WGPUStringView label;
|
||||
uint32_t sourceSize;
|
||||
uint32_t const * source;
|
||||
} WGPUShaderModuleDescriptorSpirV;
|
||||
|
||||
typedef struct WGPURegistryReport {
|
||||
size_t numAllocated;
|
||||
size_t numKeptFromUser;
|
||||
size_t numReleasedFromUser;
|
||||
size_t elementSize;
|
||||
} WGPURegistryReport;
|
||||
|
||||
typedef struct WGPUHubReport {
|
||||
WGPURegistryReport adapters;
|
||||
WGPURegistryReport devices;
|
||||
WGPURegistryReport queues;
|
||||
WGPURegistryReport pipelineLayouts;
|
||||
WGPURegistryReport shaderModules;
|
||||
WGPURegistryReport bindGroupLayouts;
|
||||
WGPURegistryReport bindGroups;
|
||||
WGPURegistryReport commandBuffers;
|
||||
WGPURegistryReport renderBundles;
|
||||
WGPURegistryReport renderPipelines;
|
||||
WGPURegistryReport computePipelines;
|
||||
WGPURegistryReport pipelineCaches;
|
||||
WGPURegistryReport querySets;
|
||||
WGPURegistryReport buffers;
|
||||
WGPURegistryReport textures;
|
||||
WGPURegistryReport textureViews;
|
||||
WGPURegistryReport samplers;
|
||||
} WGPUHubReport;
|
||||
|
||||
typedef struct WGPUGlobalReport {
|
||||
WGPURegistryReport surfaces;
|
||||
WGPUHubReport hub;
|
||||
} WGPUGlobalReport;
|
||||
|
||||
typedef struct WGPUInstanceEnumerateAdapterOptions {
|
||||
WGPUChainedStruct const * nextInChain;
|
||||
WGPUInstanceBackend backends;
|
||||
} WGPUInstanceEnumerateAdapterOptions;
|
||||
|
||||
typedef struct WGPUBindGroupEntryExtras {
|
||||
WGPUChainedStruct chain;
|
||||
WGPUBuffer const * buffers;
|
||||
size_t bufferCount;
|
||||
WGPUSampler const * samplers;
|
||||
size_t samplerCount;
|
||||
WGPUTextureView const * textureViews;
|
||||
size_t textureViewCount;
|
||||
} WGPUBindGroupEntryExtras;
|
||||
|
||||
typedef struct WGPUBindGroupLayoutEntryExtras {
|
||||
WGPUChainedStruct chain;
|
||||
uint32_t count;
|
||||
} WGPUBindGroupLayoutEntryExtras;
|
||||
|
||||
typedef struct WGPUQuerySetDescriptorExtras {
|
||||
WGPUChainedStruct chain;
|
||||
WGPUPipelineStatisticName const * pipelineStatistics;
|
||||
size_t pipelineStatisticCount;
|
||||
} WGPUQuerySetDescriptorExtras WGPU_STRUCTURE_ATTRIBUTE;
|
||||
|
||||
typedef struct WGPUSurfaceConfigurationExtras {
|
||||
WGPUChainedStruct chain;
|
||||
uint32_t desiredMaximumFrameLatency;
|
||||
} WGPUSurfaceConfigurationExtras WGPU_STRUCTURE_ATTRIBUTE;
|
||||
|
||||
/**
|
||||
* Chained in @ref WGPUSurfaceDescriptor to make a @ref WGPUSurface wrapping a WinUI [`SwapChainPanel`](https://learn.microsoft.com/en-us/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.controls.swapchainpanel).
|
||||
*/
|
||||
typedef struct WGPUSurfaceSourceSwapChainPanel {
|
||||
WGPUChainedStruct chain;
|
||||
/**
|
||||
* A pointer to the [`ISwapChainPanelNative`](https://learn.microsoft.com/en-us/windows/windows-app-sdk/api/win32/microsoft.ui.xaml.media.dxinterop/nn-microsoft-ui-xaml-media-dxinterop-iswapchainpanelnative)
|
||||
* interface of the SwapChainPanel that will be wrapped by the @ref WGPUSurface.
|
||||
*/
|
||||
void * panelNative;
|
||||
} WGPUSurfaceSourceSwapChainPanel WGPU_STRUCTURE_ATTRIBUTE;
|
||||
|
||||
typedef void (*WGPULogCallback)(WGPULogLevel level, WGPUStringView message, void * userdata);
|
||||
|
||||
typedef enum WGPUNativeTextureFormat {
|
||||
// From Features::TEXTURE_FORMAT_16BIT_NORM
|
||||
WGPUNativeTextureFormat_R16Unorm = 0x00030001,
|
||||
WGPUNativeTextureFormat_R16Snorm = 0x00030002,
|
||||
WGPUNativeTextureFormat_Rg16Unorm = 0x00030003,
|
||||
WGPUNativeTextureFormat_Rg16Snorm = 0x00030004,
|
||||
WGPUNativeTextureFormat_Rgba16Unorm = 0x00030005,
|
||||
WGPUNativeTextureFormat_Rgba16Snorm = 0x00030006,
|
||||
// From Features::TEXTURE_FORMAT_NV12
|
||||
WGPUNativeTextureFormat_NV12 = 0x00030007,
|
||||
} WGPUNativeTextureFormat;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
void wgpuGenerateReport(WGPUInstance instance, WGPUGlobalReport * report);
|
||||
size_t wgpuInstanceEnumerateAdapters(WGPUInstance instance, WGPU_NULLABLE WGPUInstanceEnumerateAdapterOptions const * options, WGPUAdapter * adapters);
|
||||
|
||||
WGPUSubmissionIndex wgpuQueueSubmitForIndex(WGPUQueue queue, size_t commandCount, WGPUCommandBuffer const * commands);
|
||||
|
||||
// Returns true if the queue is empty, or false if there are more queue submissions still in flight.
|
||||
WGPUBool wgpuDevicePoll(WGPUDevice device, WGPUBool wait, WGPU_NULLABLE WGPUSubmissionIndex const * submissionIndex);
|
||||
WGPUShaderModule wgpuDeviceCreateShaderModuleSpirV(WGPUDevice device, WGPUShaderModuleDescriptorSpirV const * descriptor);
|
||||
|
||||
void wgpuSetLogCallback(WGPULogCallback callback, void * userdata);
|
||||
|
||||
void wgpuSetLogLevel(WGPULogLevel level);
|
||||
|
||||
uint32_t wgpuGetVersion(void);
|
||||
|
||||
void wgpuRenderPassEncoderSetPushConstants(WGPURenderPassEncoder encoder, WGPUShaderStage stages, uint32_t offset, uint32_t sizeBytes, void const * data);
|
||||
void wgpuComputePassEncoderSetPushConstants(WGPUComputePassEncoder encoder, uint32_t offset, uint32_t sizeBytes, void const * data);
|
||||
void wgpuRenderBundleEncoderSetPushConstants(WGPURenderBundleEncoder encoder, WGPUShaderStage stages, uint32_t offset, uint32_t sizeBytes, void const * data);
|
||||
|
||||
void wgpuRenderPassEncoderMultiDrawIndirect(WGPURenderPassEncoder encoder, WGPUBuffer buffer, uint64_t offset, uint32_t count);
|
||||
void wgpuRenderPassEncoderMultiDrawIndexedIndirect(WGPURenderPassEncoder encoder, WGPUBuffer buffer, uint64_t offset, uint32_t count);
|
||||
|
||||
void wgpuRenderPassEncoderMultiDrawIndirectCount(WGPURenderPassEncoder encoder, WGPUBuffer buffer, uint64_t offset, WGPUBuffer count_buffer, uint64_t count_buffer_offset, uint32_t max_count);
|
||||
void wgpuRenderPassEncoderMultiDrawIndexedIndirectCount(WGPURenderPassEncoder encoder, WGPUBuffer buffer, uint64_t offset, WGPUBuffer count_buffer, uint64_t count_buffer_offset, uint32_t max_count);
|
||||
|
||||
void wgpuComputePassEncoderBeginPipelineStatisticsQuery(WGPUComputePassEncoder computePassEncoder, WGPUQuerySet querySet, uint32_t queryIndex);
|
||||
void wgpuComputePassEncoderEndPipelineStatisticsQuery(WGPUComputePassEncoder computePassEncoder);
|
||||
void wgpuRenderPassEncoderBeginPipelineStatisticsQuery(WGPURenderPassEncoder renderPassEncoder, WGPUQuerySet querySet, uint32_t queryIndex);
|
||||
void wgpuRenderPassEncoderEndPipelineStatisticsQuery(WGPURenderPassEncoder renderPassEncoder);
|
||||
|
||||
void wgpuComputePassEncoderWriteTimestamp(WGPUComputePassEncoder computePassEncoder, WGPUQuerySet querySet, uint32_t queryIndex);
|
||||
void wgpuRenderPassEncoderWriteTimestamp(WGPURenderPassEncoder renderPassEncoder, WGPUQuerySet querySet, uint32_t queryIndex);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
#endif
|
||||
|
||||
#endif
|
||||
BIN
libs/wgpu/lib/Linux/libwgpu_native.a
Normal file
BIN
libs/wgpu/lib/Linux/libwgpu_native.a
Normal file
Binary file not shown.
BIN
libs/wgpu/lib/Windows/wgpu_native.lib
Normal file
BIN
libs/wgpu/lib/Windows/wgpu_native.lib
Normal file
Binary file not shown.
1
libs/wgpu/wgpu-native-git-tag
Normal file
1
libs/wgpu/wgpu-native-git-tag
Normal file
@ -0,0 +1 @@
|
||||
v25.0.2.2
|
||||
@ -1,39 +0,0 @@
|
||||
From 88da989ad727ca54beb4beca35b6e188be497d70 Mon Sep 17 00:00:00 2001
|
||||
From: Sven Balzer <4653051+Kyuusokuna@users.noreply.github.com>
|
||||
Date: Sat, 8 Mar 2025 19:39:40 +0100
|
||||
Subject: [PATCH] require Vulkan 1.3 and enable shaderDrawParameters
|
||||
---
|
||||
libs/SDL3/src/gpu/vulkan/SDL_gpu_vulkan.c | 10 +++++++++-
|
||||
1 file changed, 9 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libs/SDL3/src/gpu/vulkan/SDL_gpu_vulkan.c b/libs/SDL3/src/gpu/vulkan/SDL_gpu_vulkan.c
|
||||
index bad67db..52c44b0 100644
|
||||
--- a/libs/SDL3/src/gpu/vulkan/SDL_gpu_vulkan.c
|
||||
+++ b/libs/SDL3/src/gpu/vulkan/SDL_gpu_vulkan.c
|
||||
@@ -11070,7 +11070,7 @@ static Uint8 VULKAN_INTERNAL_CreateInstance(VulkanRenderer *renderer)
|
||||
appInfo.applicationVersion = 0;
|
||||
appInfo.pEngineName = "SDLGPU";
|
||||
appInfo.engineVersion = SDL_VERSION;
|
||||
- appInfo.apiVersion = VK_MAKE_VERSION(1, 0, 0);
|
||||
+ appInfo.apiVersion = VK_MAKE_VERSION(1, 3, 0);
|
||||
|
||||
createFlags = 0;
|
||||
|
||||
@@ -11504,6 +11504,14 @@ static Uint8 VULKAN_INTERNAL_CreateLogicalDevice(
|
||||
deviceCreateInfo.ppEnabledExtensionNames = deviceExtensions;
|
||||
deviceCreateInfo.pEnabledFeatures = &desiredDeviceFeatures;
|
||||
|
||||
+ VkPhysicalDeviceVulkan11Features device_features_vulkan11 = {
|
||||
+ .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES,
|
||||
+ .pNext = (void *)deviceCreateInfo.pNext,
|
||||
+ .shaderDrawParameters = VK_TRUE,
|
||||
+ };
|
||||
+
|
||||
+ deviceCreateInfo.pNext = &device_features_vulkan11;
|
||||
+
|
||||
vulkanResult = renderer->vkCreateDevice(
|
||||
renderer->physicalDevice,
|
||||
&deviceCreateInfo,
|
||||
--
|
||||
2.48.1
|
||||
|
||||
@ -1,35 +0,0 @@
|
||||
diff --git forkSrcPrefix/libs/imgui/backends/imgui_impl_sdlgpu3.h forkDstPrefix/libs/imgui/backends/imgui_impl_sdlgpu3.h
|
||||
index 39eb7216e472626a0ef858a41e703bbb12ede51c..c062f654a14ca3e2ed3c8735935f504455c962af 100644
|
||||
--- forkSrcPrefix/libs/imgui/backends/imgui_impl_sdlgpu3.h
|
||||
+++ forkDstPrefix/libs/imgui/backends/imgui_impl_sdlgpu3.h
|
||||
@@ -55,9 +55,11 @@ IMGUI_IMPL_API void ImGui_ImplSDLGPU3_UpdateTexture(ImTextureData* tex);
|
||||
// (Please open an issue if you feel you need access to more data)
|
||||
struct ImGui_ImplSDLGPU3_RenderState
|
||||
{
|
||||
- SDL_GPUDevice* Device;
|
||||
- SDL_GPUSampler* SamplerDefault; // Default sampler (bilinear filtering)
|
||||
- SDL_GPUSampler* SamplerCurrent; // Current sampler (may be changed by callback)
|
||||
+ SDL_GPUDevice* Device;
|
||||
+ SDL_GPUSampler* SamplerDefault; // Default sampler (bilinear filtering)
|
||||
+ SDL_GPUSampler* SamplerCurrent; // Current sampler (may be changed by callback)
|
||||
+ SDL_GPUCommandBuffer* CommandBuffer;
|
||||
+ SDL_GPURenderPass* RenderPass;
|
||||
};
|
||||
|
||||
#endif // #ifndef IMGUI_DISABLE
|
||||
diff --git forkSrcPrefix/libs/imgui/backends/imgui_impl_sdlgpu3.cpp forkDstPrefix/libs/imgui/backends/imgui_impl_sdlgpu3.cpp
|
||||
index 01ad4e6dcb6abf1384fc2e83e95a82516ad4cd73..ac018b1fddaf855210a6462bfc1fac894a30c845 100644
|
||||
--- forkSrcPrefix/libs/imgui/backends/imgui_impl_sdlgpu3.cpp
|
||||
+++ forkDstPrefix/libs/imgui/backends/imgui_impl_sdlgpu3.cpp
|
||||
@@ -234,8 +234,10 @@ void ImGui_ImplSDLGPU3_RenderDrawData(ImDrawData* draw_data, SDL_GPUCommandBuffe
|
||||
// Setup render state structure (for callbacks and custom texture bindings)
|
||||
ImGuiPlatformIO& platform_io = ImGui::GetPlatformIO();
|
||||
ImGui_ImplSDLGPU3_RenderState render_state;
|
||||
- render_state.Device = bd->InitInfo.Device;
|
||||
+ render_state.Device = bd->InitInfo.Device;
|
||||
render_state.SamplerDefault = render_state.SamplerCurrent = bd->TexSampler;
|
||||
+ render_state.CommandBuffer = command_buffer;
|
||||
+ render_state.RenderPass = render_pass;
|
||||
platform_io.Renderer_RenderState = &render_state;
|
||||
|
||||
ImGui_ImplSDLGPU3_SetupRenderState(draw_data, &render_state, pipeline, command_buffer, render_pass, fd, fb_width, fb_height);
|
||||
1627
src/main.cpp
1627
src/main.cpp
File diff suppressed because it is too large
Load Diff
@ -1,176 +0,0 @@
|
||||
const unsigned char SPIRV_basic[] =
|
||||
{
|
||||
0x03, 0x02, 0x23, 0x07, 0x00, 0x05, 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x11, 0x00, 0x02, 0x00, 0x32, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00,
|
||||
0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00,
|
||||
0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x0e, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78,
|
||||
0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00,
|
||||
0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x0b, 0x00, 0x04,
|
||||
0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e,
|
||||
0x74, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00,
|
||||
0x00, 0x10, 0x00, 0x03, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x0b, 0x00,
|
||||
0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, 0x74,
|
||||
0x2e, 0x70, 0x6f, 0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x08, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75,
|
||||
0x74, 0x2e, 0x70, 0x6f, 0x73, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x09, 0x00, 0x00,
|
||||
0x00, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x75, 0x76, 0x30, 0x75, 0x76, 0x31, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00,
|
||||
0x06, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x75, 0x76, 0x32, 0x75, 0x76, 0x33, 0x00,
|
||||
0x00, 0x00, 0x00, 0x05, 0x00, 0x0a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x5f, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x53,
|
||||
0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x78, 0x34, 0x73, 0x74, 0x64, 0x31,
|
||||
0x34, 0x30, 0x00, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x61,
|
||||
0x74, 0x61, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x0b, 0x00, 0x11, 0x00, 0x00, 0x00, 0x53, 0x4c, 0x41, 0x4e, 0x47,
|
||||
0x5f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x63, 0x61, 0x6d,
|
||||
0x65, 0x72, 0x61, 0x5f, 0x73, 0x74, 0x64, 0x31, 0x34, 0x30, 0x00, 0x00, 0x06, 0x00, 0x09, 0x00, 0x11, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f,
|
||||
0x6e, 0x5f, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00, 0x63,
|
||||
0x61, 0x6d, 0x65, 0x72, 0x61, 0x00, 0x00, 0x05, 0x00, 0x0a, 0x00, 0x05, 0x00, 0x00, 0x00, 0x65, 0x6e, 0x74, 0x72,
|
||||
0x79, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x5f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x76, 0x65,
|
||||
0x72, 0x74, 0x65, 0x78, 0x2e, 0x75, 0x76, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x6d, 0x61,
|
||||
0x69, 0x6e, 0x5f, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x00, 0x05, 0x00, 0x05, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x69,
|
||||
0x6e, 0x70, 0x75, 0x74, 0x2e, 0x75, 0x76, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00,
|
||||
0x74, 0x65, 0x78, 0x31, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x12, 0x00, 0x00, 0x00, 0x53, 0x4c, 0x41,
|
||||
0x4e, 0x47, 0x5f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x66,
|
||||
0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x73, 0x5f, 0x73,
|
||||
0x74, 0x64, 0x31, 0x34, 0x30, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x74, 0x69, 0x6e, 0x74, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x66, 0x72, 0x61,
|
||||
0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x73, 0x00, 0x00, 0x05, 0x00,
|
||||
0x0b, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x50, 0x61, 0x72,
|
||||
0x61, 0x6d, 0x5f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x6f,
|
||||
0x6c, 0x6f, 0x72, 0x00, 0x05, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x66, 0x72,
|
||||
0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0b, 0x00,
|
||||
0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
|
||||
0x47, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04,
|
||||
0x00, 0x0a, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x13, 0x00,
|
||||
0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x11, 0x00, 0x00, 0x00,
|
||||
0x02, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47,
|
||||
0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00,
|
||||
0x05, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0f, 0x00, 0x00,
|
||||
0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x21, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x02,
|
||||
0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x12, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00,
|
||||
0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04,
|
||||
0x00, 0x0d, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00,
|
||||
0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x1e,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x14, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00,
|
||||
0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x16, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00,
|
||||
0x00, 0x17, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x17, 0x00,
|
||||
0x04, 0x00, 0x18, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x19,
|
||||
0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x03, 0x00,
|
||||
0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x20,
|
||||
0x00, 0x04, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00,
|
||||
0x19, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00,
|
||||
0x00, 0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x04, 0x00, 0x13, 0x00, 0x00, 0x00, 0x17, 0x00,
|
||||
0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x10, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x1e,
|
||||
0x00, 0x03, 0x00, 0x11, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00,
|
||||
0x02, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x22, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
|
||||
0x00, 0x10, 0x00, 0x00, 0x00, 0x18, 0x00, 0x04, 0x00, 0x23, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x04, 0x00,
|
||||
0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b,
|
||||
0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x20, 0x00, 0x04, 0x00,
|
||||
0x26, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x27, 0x00, 0x00,
|
||||
0x00, 0x03, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x28, 0x00, 0x00, 0x00, 0x01, 0x00,
|
||||
0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x29, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x01,
|
||||
0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04,
|
||||
0x00, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x2c, 0x00,
|
||||
0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0x2d,
|
||||
0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00,
|
||||
0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x1e, 0x00, 0x03, 0x00, 0x12, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00,
|
||||
0x00, 0x20, 0x00, 0x04, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x20, 0x00,
|
||||
0x04, 0x00, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x1a,
|
||||
0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00,
|
||||
0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00,
|
||||
0x00, 0x01, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x01, 0x00,
|
||||
0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3b,
|
||||
0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00,
|
||||
0x26, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x27, 0x00, 0x00,
|
||||
0x00, 0x05, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x28, 0x00, 0x00, 0x00, 0x0f, 0x00,
|
||||
0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
|
||||
0x3b, 0x00, 0x04, 0x00, 0x26, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03,
|
||||
0x00, 0x18, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0x32, 0x00,
|
||||
0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x14, 0x00, 0x00, 0x00, 0x02,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x33, 0x00, 0x00, 0x00,
|
||||
0x3d, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04,
|
||||
0x00, 0x1b, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x1c, 0x00,
|
||||
0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x37,
|
||||
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00,
|
||||
0x09, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00,
|
||||
0x00, 0x41, 0x00, 0x05, 0x00, 0x22, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x1f, 0x00,
|
||||
0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x51,
|
||||
0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x51, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x51, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x01, 0x00,
|
||||
0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x02,
|
||||
0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, 0x23, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00,
|
||||
0x00, 0x3e, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x18, 0x00,
|
||||
0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
|
||||
0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x18, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00,
|
||||
0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00,
|
||||
0x00, 0x44, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x50, 0x00, 0x06, 0x00, 0x17, 0x00,
|
||||
0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x90,
|
||||
0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00,
|
||||
0xf7, 0x00, 0x03, 0x00, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x0b, 0x00, 0x35, 0x00, 0x00,
|
||||
0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x4a, 0x00,
|
||||
0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0xf8,
|
||||
0x00, 0x02, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x18, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00,
|
||||
0x39, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02,
|
||||
0x00, 0x47, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x18, 0x00,
|
||||
0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
|
||||
0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x47, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x4a, 0x00, 0x00, 0x00,
|
||||
0x4f, 0x00, 0x07, 0x00, 0x18, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00,
|
||||
0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x47, 0x00, 0x00, 0x00, 0xf8, 0x00,
|
||||
0x02, 0x00, 0x49, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x18, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x38,
|
||||
0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00,
|
||||
0x47, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x48, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x47, 0x00, 0x00,
|
||||
0x00, 0xf8, 0x00, 0x02, 0x00, 0x47, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x0d, 0x00, 0x18, 0x00, 0x00, 0x00, 0x51, 0x00,
|
||||
0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x4f,
|
||||
0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00,
|
||||
0x48, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03,
|
||||
0x00, 0x05, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00, 0x36, 0x00,
|
||||
0x05, 0x00, 0x14, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0xf8,
|
||||
0x00, 0x02, 0x00, 0x52, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00,
|
||||
0x0f, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00,
|
||||
0x00, 0x64, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x67, 0x00,
|
||||
0x05, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x51,
|
||||
0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x70, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05,
|
||||
0x00, 0x1b, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x70, 0x00,
|
||||
0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x18,
|
||||
0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00,
|
||||
0x18, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06,
|
||||
0x00, 0x18, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x5c, 0x00,
|
||||
0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x18, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0a,
|
||||
0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00,
|
||||
0x5c, 0x00, 0x00, 0x00, 0x88, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00,
|
||||
0x00, 0x5f, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x18, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x01, 0x00,
|
||||
0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x18,
|
||||
0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00,
|
||||
0x18, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x88, 0x00, 0x05,
|
||||
0x00, 0x18, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x57, 0x00,
|
||||
0x06, 0x00, 0x17, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x4f, 0x00, 0x08, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00,
|
||||
0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05,
|
||||
0x00, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x3d, 0x00,
|
||||
0x04, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x08, 0x00, 0x1c,
|
||||
0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00,
|
||||
0x00, 0x66, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x16, 0x00, 0x00, 0x00, 0x6b, 0x00,
|
||||
0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x06, 0x00, 0x17, 0x00, 0x00, 0x00, 0x6c,
|
||||
0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00,
|
||||
0x16, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x52, 0x00, 0x06,
|
||||
0x00, 0x17, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x01, 0x00,
|
||||
0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x16, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x02,
|
||||
0x00, 0x00, 0x00, 0x52, 0x00, 0x06, 0x00, 0x17, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00,
|
||||
0x6e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
|
||||
0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00,
|
||||
};
|
||||
|
||||
const size_t SPIRV_basic_sizeInBytes = 3220;
|
||||
|
||||
@ -1,55 +0,0 @@
|
||||
#include "common.slang"
|
||||
|
||||
struct VertexShaderInput {
|
||||
// Per Vertex
|
||||
uint vertex_id : SV_VertexID;
|
||||
float3 pos;
|
||||
|
||||
// Per Instance
|
||||
float4 pos_size;
|
||||
float4 uv0uv1;
|
||||
float4 uv2uv3;
|
||||
};
|
||||
|
||||
struct VertexShaderOutput {
|
||||
float4 pos : SV_POSITION;
|
||||
float2 uv;
|
||||
};
|
||||
|
||||
struct PixelShaderOutput {
|
||||
float4 color : SV_TARGET;
|
||||
};
|
||||
|
||||
[shader("vertex")]
|
||||
VertexShaderOutput main_vertex(VertexShaderInput input) {
|
||||
VertexShaderOutput output;
|
||||
|
||||
output.pos = mul(view_projection_matrix, float4(input.pos_size.xy + input.pos.xy, 0, 1));
|
||||
|
||||
switch(input.vertex_id) {
|
||||
case 0: output.uv = input.uv0uv1.xy; break;
|
||||
case 1: output.uv = input.uv0uv1.zw; break;
|
||||
case 2: output.uv = input.uv2uv3.xy; break;
|
||||
case 3: output.uv = input.uv2uv3.zw; break;
|
||||
}
|
||||
|
||||
return output;
|
||||
}
|
||||
|
||||
[[vk::binding(0, 2)]]
|
||||
Sampler2D<float4> tex1;
|
||||
|
||||
[[vk::binding(0, 3)]]
|
||||
cbuffer fragment_constants {
|
||||
float3 tint;
|
||||
}
|
||||
|
||||
[shader("pixel")]
|
||||
PixelShaderOutput main_fragment(VertexShaderOutput input) {
|
||||
PixelShaderOutput output;
|
||||
|
||||
output.color = tex1.PixelArtSample(input.uv);
|
||||
output.color.rgb *= tint.rgb;
|
||||
|
||||
return output;
|
||||
}
|
||||
62
src/shaders/basic.wgsl
Normal file
62
src/shaders/basic.wgsl
Normal file
@ -0,0 +1,62 @@
|
||||
struct VertexShaderInput {
|
||||
// Per Vertex
|
||||
@builtin(vertex_index) vertex_index: u32,
|
||||
|
||||
@location(0) pos: vec3<f32>,
|
||||
|
||||
// Per Instance
|
||||
@location(1) pos_size: vec4<f32>,
|
||||
@location(2) uv0uv1: vec4<f32>,
|
||||
@location(3) uv2uv3: vec4<f32>,
|
||||
};
|
||||
|
||||
struct VertexShaderOutput {
|
||||
@builtin(position) pos: vec4<f32>,
|
||||
|
||||
@location(0) uv: vec2<f32>,
|
||||
};
|
||||
|
||||
struct FragmentShaderOutput {
|
||||
@location(0) color: vec4<f32>,
|
||||
};
|
||||
|
||||
@group(0) @binding(0) var<uniform> view_projection_matrix: mat4x4<f32>;
|
||||
|
||||
@vertex fn main_vertex(input: VertexShaderInput) -> VertexShaderOutput {
|
||||
var output: VertexShaderOutput;
|
||||
|
||||
output.pos = vec4<f32>(input.pos_size.xy + input.pos.xy, 0, 1) * view_projection_matrix;
|
||||
|
||||
switch (input.vertex_index) {
|
||||
case 0: { output.uv = input.uv0uv1.xy; }
|
||||
case 1: { output.uv = input.uv0uv1.zw; }
|
||||
case 2: { output.uv = input.uv2uv3.xy; }
|
||||
case 3: { output.uv = input.uv2uv3.zw; }
|
||||
default: {}
|
||||
}
|
||||
|
||||
return output;
|
||||
}
|
||||
|
||||
@group(1) @binding(0) var texture1: texture_2d<f32>;
|
||||
@group(1) @binding(1) var sampler1: sampler;
|
||||
|
||||
@group(1) @binding(2) var<uniform> tint: vec3<f32>;
|
||||
|
||||
@fragment fn main_fragment(input: VertexShaderOutput) -> FragmentShaderOutput {
|
||||
var output: FragmentShaderOutput;
|
||||
|
||||
output.color = pixel_art_sample(texture1, sampler1, input.uv);
|
||||
output.color = vec4<f32>(output.color.rgb * tint.rgb, output.color.a);
|
||||
|
||||
return output;
|
||||
}
|
||||
|
||||
fn pixel_art_sample(input_texture: texture_2d<f32>, input_sampler: sampler, input_uv: vec2<f32>) -> vec4<f32> {
|
||||
let dimensions = vec2<f32>(textureDimensions(input_texture));
|
||||
|
||||
let texture_uv = input_uv * dimensions.xy;
|
||||
let sample_uv = (floor(texture_uv) + min(fract(texture_uv) / fwidth(texture_uv), vec2<f32>(1.0, 1.0)) - 0.5) / dimensions.xy;
|
||||
|
||||
return textureSample(input_texture, input_sampler, sample_uv);
|
||||
}
|
||||
@ -1,42 +0,0 @@
|
||||
#define NEAR_PLANE (0.01f)
|
||||
|
||||
|
||||
[[vk::binding(0, 1)]]
|
||||
cbuffer camera {
|
||||
row_major float4x4 view_projection_matrix;
|
||||
};
|
||||
|
||||
[[vk::binding(1, 1)]]
|
||||
cbuffer constants {
|
||||
int2 drag_start;
|
||||
int2 mouse;
|
||||
float2 grid_offset;
|
||||
int grid_width;
|
||||
int map_width;
|
||||
};
|
||||
|
||||
extension<T: ITexelElement, int format> Sampler2D<T, 0, format> {
|
||||
T PixelArtSample(float2 location) {
|
||||
float2 texture_size;
|
||||
this.GetDimensions(texture_size.x, texture_size.y);
|
||||
|
||||
float2 uv = location * texture_size;
|
||||
uv = floor(uv) + min(fract(uv) / fwidth(uv), 1.0) - 0.5;
|
||||
uv /= texture_size;
|
||||
|
||||
return this.Sample(uv);
|
||||
}
|
||||
}
|
||||
|
||||
extension<T: ITexelElement, int format> Sampler2DArray<T, 0, format> {
|
||||
T PixelArtSample(float3 location) {
|
||||
float3 texture_size;
|
||||
this.GetDimensions(texture_size.x, texture_size.y, texture_size.z);
|
||||
|
||||
float2 uv = location.xy * texture_size.xy;
|
||||
uv = floor(uv) + min(fract(uv) / fwidth(uv), 1.0) - 0.5;
|
||||
uv /= texture_size.xy;
|
||||
|
||||
return this.Sample(float3(uv, location.z));
|
||||
}
|
||||
}
|
||||
@ -1,177 +0,0 @@
|
||||
const unsigned char SPIRV_grid[] =
|
||||
{
|
||||
0x03, 0x02, 0x23, 0x07, 0x00, 0x05, 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x11, 0x00, 0x02, 0x00, 0x4b, 0x11, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00,
|
||||
0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00,
|
||||
0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x0d, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78,
|
||||
0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00,
|
||||
0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0a,
|
||||
0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x00, 0x00, 0x00,
|
||||
0x0b, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x10, 0x00, 0x03, 0x00, 0x0a, 0x00, 0x00,
|
||||
0x00, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x05, 0x00,
|
||||
0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x70, 0x6f, 0x73, 0x00, 0x00, 0x00, 0x05,
|
||||
0x00, 0x0c, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x53, 0x4c, 0x41, 0x4e, 0x47, 0x5f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65,
|
||||
0x74, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x73, 0x5f,
|
||||
0x73, 0x74, 0x64, 0x31, 0x34, 0x30, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x64, 0x72, 0x61, 0x67, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x0e,
|
||||
0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00,
|
||||
0x0e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x67, 0x72, 0x69, 0x64, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74,
|
||||
0x00, 0x06, 0x00, 0x06, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x67, 0x72, 0x69, 0x64, 0x5f, 0x77,
|
||||
0x69, 0x64, 0x74, 0x68, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d,
|
||||
0x61, 0x70, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x03, 0x00, 0x00, 0x00,
|
||||
0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x0f, 0x00, 0x00,
|
||||
0x00, 0x74, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x0a, 0x00, 0x10, 0x00,
|
||||
0x00, 0x00, 0x5f, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x66, 0x6c,
|
||||
0x6f, 0x61, 0x74, 0x34, 0x78, 0x34, 0x73, 0x74, 0x64, 0x31, 0x34, 0x30, 0x00, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x61, 0x74, 0x61, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x0b,
|
||||
0x00, 0x11, 0x00, 0x00, 0x00, 0x53, 0x4c, 0x41, 0x4e, 0x47, 0x5f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65,
|
||||
0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x5f, 0x73, 0x74, 0x64, 0x31, 0x34,
|
||||
0x30, 0x00, 0x00, 0x06, 0x00, 0x09, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0x69, 0x65, 0x77,
|
||||
0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x00,
|
||||
0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x00, 0x00, 0x05, 0x00,
|
||||
0x0c, 0x00, 0x06, 0x00, 0x00, 0x00, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x50, 0x61, 0x72,
|
||||
0x61, 0x6d, 0x5f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x2e, 0x73, 0x65, 0x6c, 0x65,
|
||||
0x63, 0x74, 0x65, 0x64, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69,
|
||||
0x6e, 0x5f, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x00, 0x05, 0x00, 0x06, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x69, 0x6e,
|
||||
0x70, 0x75, 0x74, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x00, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x12,
|
||||
0x00, 0x00, 0x00, 0x53, 0x4c, 0x41, 0x4e, 0x47, 0x5f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x47,
|
||||
0x72, 0x6f, 0x75, 0x70, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74,
|
||||
0x61, 0x6e, 0x74, 0x73, 0x5f, 0x73, 0x74, 0x64, 0x31, 0x34, 0x30, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x12, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x69, 0x6e, 0x74, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x07, 0x00, 0x12,
|
||||
0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6e,
|
||||
0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e,
|
||||
0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x73, 0x00, 0x00, 0x05, 0x00, 0x0b, 0x00, 0x0c, 0x00,
|
||||
0x00, 0x00, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x5f, 0x6d,
|
||||
0x61, 0x69, 0x6e, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x00,
|
||||
0x05, 0x00, 0x06, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65,
|
||||
0x6e, 0x74, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x49, 0x11, 0x00, 0x00, 0x47,
|
||||
0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00,
|
||||
0x0e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x01, 0x00,
|
||||
0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x02,
|
||||
0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00,
|
||||
0x00, 0x04, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x03, 0x00,
|
||||
0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00, 0x22,
|
||||
0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x13, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x11, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x48, 0x00,
|
||||
0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47,
|
||||
0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00,
|
||||
0x04, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x05, 0x00, 0x00,
|
||||
0x00, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1e, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00,
|
||||
0x12, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00,
|
||||
0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x21,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x13, 0x00, 0x02, 0x00, 0x14, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, 0x14, 0x00,
|
||||
0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x16, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x17,
|
||||
0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00,
|
||||
0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, 0x19, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04,
|
||||
0x00, 0x1a, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x1b, 0x00,
|
||||
0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x20,
|
||||
0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
|
||||
0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
|
||||
0x00, 0x17, 0x00, 0x04, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x00,
|
||||
0x07, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x1c,
|
||||
0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
|
||||
0x0e, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00,
|
||||
0x00, 0x20, 0x00, 0x04, 0x00, 0x22, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x2b, 0x00,
|
||||
0x04, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x1c,
|
||||
0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x04, 0x00, 0x13, 0x00, 0x00, 0x00,
|
||||
0x17, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x10, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00,
|
||||
0x00, 0x1e, 0x00, 0x03, 0x00, 0x11, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x25, 0x00,
|
||||
0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x26, 0x00, 0x00, 0x00, 0x02,
|
||||
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x18, 0x00, 0x04, 0x00, 0x27, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
|
||||
0x04, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
|
||||
0x00, 0x20, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x2b, 0x00,
|
||||
0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x16,
|
||||
0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x20, 0x00, 0x04, 0x00, 0x2c, 0x00, 0x00, 0x00,
|
||||
0x02, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00,
|
||||
0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x02, 0x00,
|
||||
0x00, 0x00, 0x2a, 0x00, 0x03, 0x00, 0x19, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x30,
|
||||
0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x31, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
|
||||
0x00, 0x18, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x1e, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x20,
|
||||
0x00, 0x04, 0x00, 0x34, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
|
||||
0x35, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00,
|
||||
0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x09, 0x00,
|
||||
0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01,
|
||||
0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
|
||||
0x3b, 0x00, 0x04, 0x00, 0x25, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04,
|
||||
0x00, 0x30, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x31, 0x00,
|
||||
0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x0d,
|
||||
0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x34, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00,
|
||||
0x02, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x30, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00,
|
||||
0x00, 0x36, 0x00, 0x05, 0x00, 0x14, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x00,
|
||||
0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x36, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x37,
|
||||
0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00,
|
||||
0x09, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00,
|
||||
0x00, 0x82, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x38, 0x00,
|
||||
0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x41,
|
||||
0x00, 0x05, 0x00, 0x22, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00,
|
||||
0x3d, 0x00, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04,
|
||||
0x00, 0x18, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x89, 0x00, 0x05, 0x00, 0x18, 0x00,
|
||||
0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x70, 0x00, 0x04, 0x00, 0x16,
|
||||
0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x86, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00,
|
||||
0x41, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x70, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00,
|
||||
0x00, 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x0f, 0x00,
|
||||
0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, 0x43,
|
||||
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x10, 0x00, 0x00, 0x00,
|
||||
0x44, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00,
|
||||
0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, 0x46, 0x00,
|
||||
0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, 0x47,
|
||||
0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00,
|
||||
0x48, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00,
|
||||
0x00, 0x49, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, 0x27, 0x00,
|
||||
0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x49,
|
||||
0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
|
||||
0x28, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00,
|
||||
0x00, 0x81, 0x00, 0x05, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x4c, 0x00,
|
||||
0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x37,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x1f, 0x00, 0x00, 0x00,
|
||||
0x4f, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x50, 0x00, 0x06, 0x00, 0x17, 0x00, 0x00,
|
||||
0x00, 0x50, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x90, 0x00,
|
||||
0x05, 0x00, 0x17, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x0c,
|
||||
0x00, 0x06, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
|
||||
0x4c, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00,
|
||||
0x00, 0x52, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x04, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x53, 0x00,
|
||||
0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x23,
|
||||
0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00,
|
||||
0x41, 0x00, 0x05, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00,
|
||||
0x00, 0x3d, 0x00, 0x04, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x0c, 0x00,
|
||||
0x07, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x56,
|
||||
0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05,
|
||||
0x00, 0x2e, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x9b, 0x00,
|
||||
0x04, 0x00, 0x19, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x5d,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00,
|
||||
0x5f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x5f, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x5d, 0x00, 0x00,
|
||||
0x00, 0xf8, 0x00, 0x02, 0x00, 0x5e, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x05, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x60, 0x00,
|
||||
0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, 0x61,
|
||||
0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x5d, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00,
|
||||
0x5d, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x19, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00,
|
||||
0x00, 0x5f, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x06, 0x00, 0x1c, 0x00,
|
||||
0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x7c,
|
||||
0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00,
|
||||
0x05, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x06, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00,
|
||||
0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00, 0x36, 0x00, 0x05, 0x00, 0x14, 0x00, 0x00, 0x00, 0x0a, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x65, 0x00, 0x00, 0x00, 0x3d,
|
||||
0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0xab, 0x00, 0x05, 0x00,
|
||||
0x19, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05,
|
||||
0x00, 0x35, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x3d, 0x00,
|
||||
0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x35,
|
||||
0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
|
||||
0x17, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x06, 0x00, 0x17, 0x00, 0x00,
|
||||
0x00, 0x6c, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x3e, 0x00,
|
||||
0x03, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00,
|
||||
};
|
||||
|
||||
const size_t SPIRV_grid_sizeInBytes = 3248;
|
||||
|
||||
@ -1,49 +0,0 @@
|
||||
#include "common.slang"
|
||||
|
||||
struct VertexShaderInput {
|
||||
// Per Vertex
|
||||
uint vertex_id : SV_VertexID;
|
||||
float3 pos;
|
||||
|
||||
// Per Instance
|
||||
uint instance_id : SV_InstanceID;
|
||||
};
|
||||
|
||||
struct VertexShaderOutput {
|
||||
float4 pos : SV_POSITION;
|
||||
uint selected;
|
||||
};
|
||||
|
||||
struct PixelShaderOutput {
|
||||
float4 color : SV_TARGET;
|
||||
};
|
||||
|
||||
[shader("vertex")]
|
||||
VertexShaderOutput main_vertex(VertexShaderInput input) {
|
||||
VertexShaderOutput output;
|
||||
|
||||
float2 tile_pos = float2(input.instance_id % grid_width, float(input.instance_id / grid_width));
|
||||
output.pos = mul(view_projection_matrix, float4(tile_pos + grid_offset + input.pos.xy, 0, 1));
|
||||
|
||||
int2 pos = int2(tile_pos + round(grid_offset));
|
||||
int2 selection_min = min(int2(drag_start), int2(mouse));
|
||||
int2 selection_max = max(int2(drag_start), int2(mouse));
|
||||
output.selected = select(all(pos >= selection_min) && all(pos <= selection_max), 1, 0);
|
||||
|
||||
return output;
|
||||
}
|
||||
|
||||
[[vk::binding(0, 3)]]
|
||||
cbuffer fragment_constants {
|
||||
float4 tint;
|
||||
float4 selected_tint;
|
||||
}
|
||||
|
||||
[shader("fragment")]
|
||||
PixelShaderOutput main_fragment(VertexShaderOutput input) {
|
||||
PixelShaderOutput output;
|
||||
|
||||
output.color = select(input.selected != 0, selected_tint, tint);
|
||||
|
||||
return output;
|
||||
}
|
||||
55
src/shaders/grid.wgsl
Normal file
55
src/shaders/grid.wgsl
Normal file
@ -0,0 +1,55 @@
|
||||
struct VertexShaderInput {
|
||||
// Per Vertex
|
||||
@builtin(vertex_index) vertex_index: u32,
|
||||
|
||||
@location(0) pos: vec3<f32>,
|
||||
|
||||
// Per Instance
|
||||
@builtin(instance_index) instance_index: u32,
|
||||
};
|
||||
|
||||
struct VertexShaderOutput {
|
||||
@builtin(position) pos: vec4<f32>,
|
||||
|
||||
@location(1) selected: i32,
|
||||
};
|
||||
|
||||
struct FragmentShaderOutput {
|
||||
@location(0) color: vec4<f32>,
|
||||
};
|
||||
|
||||
struct Per_Frame_Data {
|
||||
drag_start: vec2<i32>,
|
||||
mouse: vec2<i32>,
|
||||
grid_offset: vec2<f32>,
|
||||
grid_width: u32,
|
||||
map_width: u32,
|
||||
};
|
||||
|
||||
@group(0) @binding(0) var<uniform> view_projection_matrix: mat4x4<f32>;
|
||||
@group(0) @binding(1) var<uniform> per_frame: Per_Frame_Data;
|
||||
|
||||
@vertex fn main_vertex(input: VertexShaderInput) -> VertexShaderOutput {
|
||||
var output: VertexShaderOutput;
|
||||
|
||||
let tile_pos = vec2<f32>(f32(input.instance_index % per_frame.grid_width), f32(input.instance_index / per_frame.grid_width));
|
||||
output.pos = vec4<f32>(tile_pos + per_frame.grid_offset + input.pos.xy, 0, 1) * view_projection_matrix;
|
||||
|
||||
let pos = vec2<i32>(tile_pos + round(per_frame.grid_offset));
|
||||
let selection_min = min(per_frame.drag_start, per_frame.mouse);
|
||||
let selection_max = max(per_frame.drag_start, per_frame.mouse);
|
||||
output.selected = select(1, 0, all(pos >= selection_min) && all(pos <= selection_max));
|
||||
|
||||
return output;
|
||||
}
|
||||
|
||||
const tint = vec4<f32>(1.0, 1.0, 1.0, 0.1);
|
||||
const selected_tint = vec4<f32>(1.0, 0.0, 1.0, 1.0);
|
||||
|
||||
@fragment fn main_fragment(input: VertexShaderOutput) -> FragmentShaderOutput {
|
||||
var output: FragmentShaderOutput;
|
||||
|
||||
output.color = select(selected_tint, tint, input.selected != 0);
|
||||
|
||||
return output;
|
||||
}
|
||||
@ -1,118 +0,0 @@
|
||||
const unsigned char SPIRV_gui_tile[] =
|
||||
{
|
||||
0x03, 0x02, 0x23, 0x07, 0x00, 0x05, 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
|
||||
0x00, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x5f,
|
||||
0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
|
||||
0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x0c,
|
||||
0x00, 0x04, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d,
|
||||
0x65, 0x6e, 0x74, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d,
|
||||
0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x10, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x03, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00,
|
||||
0x00, 0x61, 0x50, 0x6f, 0x73, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x00, 0x61, 0x55,
|
||||
0x56, 0x00, 0x05, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x61, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x00, 0x00, 0x05,
|
||||
0x00, 0x0c, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x53, 0x4c, 0x41, 0x4e, 0x47, 0x5f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65,
|
||||
0x74, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x73, 0x5f,
|
||||
0x73, 0x74, 0x64, 0x31, 0x34, 0x30, 0x00, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x75, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x01,
|
||||
0x00, 0x00, 0x00, 0x75, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x65, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00,
|
||||
0x02, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x0b,
|
||||
0x00, 0x04, 0x00, 0x00, 0x00, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61,
|
||||
0x6d, 0x5f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x2e, 0x43, 0x6f, 0x6c, 0x6f, 0x72,
|
||||
0x00, 0x00, 0x00, 0x05, 0x00, 0x0a, 0x00, 0x05, 0x00, 0x00, 0x00, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x69,
|
||||
0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x5f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78,
|
||||
0x2e, 0x55, 0x56, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x76,
|
||||
0x65, 0x72, 0x74, 0x65, 0x78, 0x00, 0x05, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6c, 0x6f, 0x72,
|
||||
0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x75, 0x76, 0x00, 0x00, 0x05, 0x00, 0x0e, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x53, 0x4c, 0x41, 0x4e, 0x47, 0x5f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72,
|
||||
0x47, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x73,
|
||||
0x74, 0x61, 0x6e, 0x74, 0x73, 0x5f, 0x73, 0x74, 0x64, 0x31, 0x34, 0x30, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x10,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x00, 0x00,
|
||||
0x05, 0x00, 0x07, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f,
|
||||
0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x73, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x74, 0x69,
|
||||
0x6c, 0x65, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x11,
|
||||
0x00, 0x00, 0x00, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x64, 0x00, 0x05, 0x00, 0x0b, 0x00, 0x0c, 0x00, 0x00, 0x00,
|
||||
0x65, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x5f, 0x6d, 0x61, 0x69,
|
||||
0x6e, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x00, 0x05, 0x00,
|
||||
0x06, 0x00, 0x09, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74,
|
||||
0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x47, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04,
|
||||
0x00, 0x08, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x0f, 0x00,
|
||||
0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
|
||||
0x23, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x02, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x01, 0x00,
|
||||
0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47,
|
||||
0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00,
|
||||
0x05, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00,
|
||||
0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x1e, 0x00,
|
||||
0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x48,
|
||||
0x00, 0x05, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x47, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04,
|
||||
0x00, 0x0a, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0b, 0x00,
|
||||
0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x22,
|
||||
0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x12, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x13, 0x00, 0x00,
|
||||
0x00, 0x12, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00,
|
||||
0x04, 0x00, 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x16,
|
||||
0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
|
||||
0x00, 0x15, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00,
|
||||
0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b,
|
||||
0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x04, 0x00,
|
||||
0x0f, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x1c, 0x00, 0x00,
|
||||
0x00, 0x02, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x02, 0x00,
|
||||
0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f,
|
||||
0x2b, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xbf, 0x20, 0x00, 0x04,
|
||||
0x00, 0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x22, 0x00,
|
||||
0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x23, 0x00, 0x00, 0x00, 0x20,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x10, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00,
|
||||
0x20, 0x00, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04,
|
||||
0x00, 0x25, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x26, 0x00,
|
||||
0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x27, 0x00, 0x00, 0x00, 0x14,
|
||||
0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, 0x28, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00,
|
||||
0x00, 0x20, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x3b, 0x00,
|
||||
0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x17,
|
||||
0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00,
|
||||
0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
|
||||
0x00, 0x02, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00,
|
||||
0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x3b,
|
||||
0x00, 0x04, 0x00, 0x22, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00,
|
||||
0x18, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00,
|
||||
0x00, 0x0e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00, 0x0a, 0x00,
|
||||
0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
|
||||
0x36, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00,
|
||||
0x00, 0xf8, 0x00, 0x02, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x2b, 0x00,
|
||||
0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x07,
|
||||
0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
|
||||
0x41, 0x00, 0x05, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00,
|
||||
0x00, 0x3d, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x85, 0x00,
|
||||
0x05, 0x00, 0x16, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x41,
|
||||
0x00, 0x05, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00,
|
||||
0x3d, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05,
|
||||
0x00, 0x16, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x50, 0x00,
|
||||
0x06, 0x00, 0x15, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x1f,
|
||||
0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x14, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x14, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00,
|
||||
0x00, 0x20, 0x00, 0x00, 0x00, 0x52, 0x00, 0x06, 0x00, 0x15, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x36, 0x00,
|
||||
0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x37,
|
||||
0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00,
|
||||
0x05, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00, 0x36, 0x00, 0x05,
|
||||
0x00, 0x12, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0xf8, 0x00,
|
||||
0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x0d,
|
||||
0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00,
|
||||
0x41, 0x00, 0x05, 0x00, 0x25, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00,
|
||||
0x00, 0x3d, 0x00, 0x04, 0x00, 0x23, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x70, 0x00,
|
||||
0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x26,
|
||||
0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
|
||||
0x28, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x57, 0x00, 0x06, 0x00, 0x15, 0x00, 0x00,
|
||||
0x00, 0x11, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x00,
|
||||
0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x3e,
|
||||
0x00, 0x03, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00,
|
||||
};
|
||||
|
||||
const size_t SPIRV_gui_tile_sizeInBytes = 2128;
|
||||
|
||||
@ -1,47 +0,0 @@
|
||||
struct VertexShaderInput {
|
||||
float2 aPos;
|
||||
float2 aUV;
|
||||
float4 aColor;
|
||||
};
|
||||
|
||||
struct VertexShaderOutput {
|
||||
float4 Pos : SV_POSITION;
|
||||
float4 Color;
|
||||
float2 UV;
|
||||
};
|
||||
|
||||
[[vk::binding(0, 1)]]
|
||||
cbuffer constants {
|
||||
float2 uScale;
|
||||
float2 uTranslate;
|
||||
};
|
||||
|
||||
[shader("vertex")]
|
||||
VertexShaderOutput main_vertex(float2 aPos, float2 aUV, float4 aColor)
|
||||
{
|
||||
VertexShaderOutput Out;
|
||||
Out.Color = aColor;
|
||||
Out.UV = aUV;
|
||||
Out.Pos = float4(aPos * uScale + uTranslate, 0, 1);
|
||||
Out.Pos.y *= -1.0f;
|
||||
return Out;
|
||||
}
|
||||
|
||||
struct PixelShaderOutput {
|
||||
float4 color : SV_TARGET;
|
||||
};
|
||||
|
||||
[[vk::binding(0, 2)]]
|
||||
Sampler2DArray tile_textures;
|
||||
|
||||
[[vk::binding(0, 3)]]
|
||||
cbuffer fragment_constants {
|
||||
uint tile_index;
|
||||
}
|
||||
|
||||
[shader("fragment")]
|
||||
PixelShaderOutput main_fragment(float4 color, float2 uv) {
|
||||
PixelShaderOutput Out;
|
||||
Out.color = color * tile_textures.Sample(float3(uv, tile_index));
|
||||
return Out;
|
||||
}
|
||||
19
src/shaders/shaders.c
Normal file
19
src/shaders/shaders.c
Normal file
@ -0,0 +1,19 @@
|
||||
#include <stddef.h>
|
||||
|
||||
static const char _WGSL_basic[] = {
|
||||
#embed "basic.wgsl"
|
||||
};
|
||||
const char *WGSL_basic = _WGSL_basic;
|
||||
size_t WGSL_basic_num_bytes = sizeof(_WGSL_basic);
|
||||
|
||||
static const char _WGSL_world[] = {
|
||||
#embed "world.wgsl"
|
||||
};
|
||||
const char *WGSL_world = _WGSL_world;
|
||||
size_t WGSL_world_num_bytes = sizeof(_WGSL_world);
|
||||
|
||||
static const char _WGSL_grid[] = {
|
||||
#embed "grid.wgsl"
|
||||
};
|
||||
const char *WGSL_grid = _WGSL_grid;
|
||||
size_t WGSL_grid_num_bytes = sizeof(_WGSL_grid);
|
||||
7
src/shaders/shaders.h
Normal file
7
src/shaders/shaders.h
Normal file
@ -0,0 +1,7 @@
|
||||
#include <stddef.h>
|
||||
|
||||
#define SHADER(name) extern "C" size_t WGSL_##name##_num_bytes; extern "C" const char *WGSL_##name;
|
||||
SHADER(basic)
|
||||
SHADER(world)
|
||||
SHADER(grid)
|
||||
#undef SHADER
|
||||
@ -1,307 +0,0 @@
|
||||
const unsigned char SPIRV_world[] =
|
||||
{
|
||||
0x03, 0x02, 0x23, 0x07, 0x00, 0x05, 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x11, 0x00, 0x02, 0x00, 0x4b, 0x11, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x32, 0x00, 0x00, 0x00, 0x11, 0x00,
|
||||
0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x0b, 0x00, 0x53, 0x50, 0x56, 0x5f, 0x4b, 0x48, 0x52, 0x5f, 0x73,
|
||||
0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61,
|
||||
0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00,
|
||||
0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
|
||||
0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x00, 0x03, 0x00, 0x00, 0x00,
|
||||
0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00,
|
||||
0x00, 0x09, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00,
|
||||
0x00, 0x00, 0x0f, 0x00, 0x0c, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x5f,
|
||||
0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
|
||||
0x11, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x10, 0x00, 0x03, 0x00, 0x0e, 0x00, 0x00,
|
||||
0x00, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x05, 0x00,
|
||||
0x05, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x70, 0x6f, 0x73, 0x00, 0x00, 0x00, 0x05,
|
||||
0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x74, 0x69, 0x6c, 0x65, 0x5f, 0x69,
|
||||
0x6e, 0x66, 0x6f, 0x00, 0x05, 0x00, 0x0c, 0x00, 0x14, 0x00, 0x00, 0x00, 0x53, 0x4c, 0x41, 0x4e, 0x47, 0x5f, 0x50,
|
||||
0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74,
|
||||
0x61, 0x6e, 0x74, 0x73, 0x5f, 0x73, 0x74, 0x64, 0x31, 0x34, 0x30, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x14,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x72, 0x61, 0x67, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x00, 0x00,
|
||||
0x06, 0x00, 0x05, 0x00, 0x14, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x00, 0x00,
|
||||
0x00, 0x06, 0x00, 0x06, 0x00, 0x14, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x67, 0x72, 0x69, 0x64, 0x5f, 0x6f,
|
||||
0x66, 0x66, 0x73, 0x65, 0x74, 0x00, 0x06, 0x00, 0x06, 0x00, 0x14, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x67,
|
||||
0x72, 0x69, 0x64, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x14, 0x00, 0x00, 0x00,
|
||||
0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x70, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05,
|
||||
0x00, 0x03, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x73, 0x00, 0x00, 0x00, 0x05, 0x00,
|
||||
0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x74, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x00, 0x00, 0x00, 0x00, 0x05,
|
||||
0x00, 0x05, 0x00, 0x16, 0x00, 0x00, 0x00, 0x74, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x00, 0x00, 0x00, 0x00,
|
||||
0x05, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, 0x74, 0x69, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x00, 0x00,
|
||||
0x00, 0x05, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x00, 0x00,
|
||||
0x00, 0x00, 0x05, 0x00, 0x0a, 0x00, 0x19, 0x00, 0x00, 0x00, 0x5f, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x53, 0x74,
|
||||
0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x78, 0x34, 0x73, 0x74, 0x64, 0x31, 0x34,
|
||||
0x30, 0x00, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x61, 0x74,
|
||||
0x61, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x0b, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x53, 0x4c, 0x41, 0x4e, 0x47, 0x5f,
|
||||
0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x63, 0x61, 0x6d, 0x65,
|
||||
0x72, 0x61, 0x5f, 0x73, 0x74, 0x64, 0x31, 0x34, 0x30, 0x00, 0x00, 0x06, 0x00, 0x09, 0x00, 0x1a, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x5f, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x63, 0x61,
|
||||
0x6d, 0x65, 0x72, 0x61, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x53, 0x74, 0x72, 0x75, 0x63,
|
||||
0x74, 0x75, 0x72, 0x65, 0x64, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00,
|
||||
0x05, 0x00, 0x00, 0x00, 0x74, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x00, 0x00, 0x05, 0x00, 0x0a,
|
||||
0x00, 0x07, 0x00, 0x00, 0x00, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61,
|
||||
0x6d, 0x5f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x2e, 0x75, 0x76, 0x00, 0x00, 0x05,
|
||||
0x00, 0x0b, 0x00, 0x08, 0x00, 0x00, 0x00, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x50, 0x61,
|
||||
0x72, 0x61, 0x6d, 0x5f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x2e, 0x74, 0x69, 0x6c,
|
||||
0x65, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x76,
|
||||
0x65, 0x72, 0x74, 0x65, 0x78, 0x00, 0x05, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, 0x74,
|
||||
0x2e, 0x75, 0x76, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75,
|
||||
0x74, 0x2e, 0x74, 0x69, 0x6c, 0x65, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x74, 0x65, 0x78,
|
||||
0x31, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x53, 0x4c, 0x41, 0x4e, 0x47, 0x5f,
|
||||
0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x66, 0x72, 0x61, 0x67,
|
||||
0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x73, 0x5f, 0x73, 0x74, 0x64, 0x31,
|
||||
0x34, 0x30, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x69, 0x6e,
|
||||
0x74, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x10, 0x00, 0x00, 0x00, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65,
|
||||
0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x73, 0x00, 0x00, 0x05, 0x00, 0x0b, 0x00, 0x11,
|
||||
0x00, 0x00, 0x00, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x5f,
|
||||
0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x6f, 0x6c, 0x6f, 0x72,
|
||||
0x00, 0x05, 0x00, 0x06, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d,
|
||||
0x65, 0x6e, 0x74, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x2a,
|
||||
0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x49, 0x11, 0x00, 0x00, 0x47, 0x00, 0x04,
|
||||
0x00, 0x0c, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0b, 0x00,
|
||||
0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x14, 0x00, 0x00, 0x00, 0x02,
|
||||
0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x14, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00,
|
||||
0x00, 0x08, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x14, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x23, 0x00,
|
||||
0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x14, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x23,
|
||||
0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x14, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
|
||||
0x23, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00,
|
||||
0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x01, 0x00,
|
||||
0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x48,
|
||||
0x00, 0x05, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x47, 0x00, 0x03, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x04, 0x00,
|
||||
0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x22,
|
||||
0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05,
|
||||
0x00, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00,
|
||||
0x04, 0x00, 0x05, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x05,
|
||||
0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x05, 0x00, 0x00, 0x00,
|
||||
0x18, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x47, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00,
|
||||
0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x12,
|
||||
0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x13, 0x00, 0x00, 0x00,
|
||||
0x1e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x13, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00,
|
||||
0x00, 0x47, 0x00, 0x04, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00,
|
||||
0x04, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x1c,
|
||||
0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x10, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x10, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x03, 0x00,
|
||||
0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13,
|
||||
0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x20, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00,
|
||||
0x16, 0x00, 0x03, 0x00, 0x21, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x22, 0x00, 0x00,
|
||||
0x00, 0x21, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x23, 0x00, 0x00, 0x00, 0x21, 0x00,
|
||||
0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x25, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
|
||||
0x20, 0x00, 0x04, 0x00, 0x26, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04,
|
||||
0x00, 0x27, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x28, 0x00,
|
||||
0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, 0x01,
|
||||
0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00,
|
||||
0x02, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x07, 0x00, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00,
|
||||
0x00, 0x23, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x2b, 0x00,
|
||||
0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x25, 0x00, 0x00, 0x00, 0x2c,
|
||||
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
|
||||
0x25, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x3f, 0x2c, 0x00, 0x05, 0x00, 0x23, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x2e, 0x00,
|
||||
0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x2b,
|
||||
0x00, 0x04, 0x00, 0x25, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00,
|
||||
0x24, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x25, 0x00, 0x00,
|
||||
0x00, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x22, 0x00,
|
||||
0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x19, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1e,
|
||||
0x00, 0x03, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x34, 0x00, 0x00, 0x00,
|
||||
0x02, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
|
||||
0x00, 0x19, 0x00, 0x00, 0x00, 0x18, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x04, 0x00,
|
||||
0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b,
|
||||
0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x20, 0x00, 0x04, 0x00,
|
||||
0x39, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x03, 0x00, 0x1e, 0x00, 0x00,
|
||||
0x00, 0x22, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x20, 0x00,
|
||||
0x04, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x3b,
|
||||
0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x3c, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00,
|
||||
0x00, 0x24, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x23, 0x00,
|
||||
0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02,
|
||||
0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x1b, 0x00, 0x03, 0x00, 0x40, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00, 0x24, 0x00,
|
||||
0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x05, 0x00, 0x23, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x38,
|
||||
0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00,
|
||||
0x20, 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04,
|
||||
0x00, 0x45, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x26, 0x00,
|
||||
0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x28, 0x00, 0x00, 0x00, 0x0a,
|
||||
0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x26, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x26, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
|
||||
0x00, 0x3b, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3b, 0x00,
|
||||
0x04, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x34,
|
||||
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x3a, 0x00, 0x00, 0x00,
|
||||
0x05, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00,
|
||||
0x00, 0x03, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00,
|
||||
0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x3b,
|
||||
0x00, 0x04, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00,
|
||||
0x29, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00,
|
||||
0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x00, 0x10, 0x00,
|
||||
0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x03,
|
||||
0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x23, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00,
|
||||
0x21, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x48, 0x00, 0x00, 0x00, 0x3d, 0x00,
|
||||
0x04, 0x00, 0x25, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x24,
|
||||
0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x27, 0x00, 0x00, 0x00,
|
||||
0x4b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x25, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00,
|
||||
0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x25, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x0c, 0x00,
|
||||
0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x25, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x4c,
|
||||
0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00,
|
||||
0x3d, 0x00, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05,
|
||||
0x00, 0x2d, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x3d, 0x00,
|
||||
0x04, 0x00, 0x25, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x24,
|
||||
0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x89, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00,
|
||||
0x54, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x70, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00,
|
||||
0x00, 0x55, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x86, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, 0x56, 0x00,
|
||||
0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x70, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x57,
|
||||
0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x23, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00,
|
||||
0x55, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, 0x23, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00,
|
||||
0x00, 0x15, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, 0x17, 0x00,
|
||||
0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, 0x58,
|
||||
0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00,
|
||||
0x18, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00,
|
||||
0x00, 0x59, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x19, 0x00,
|
||||
0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x5b,
|
||||
0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x22, 0x00, 0x00, 0x00,
|
||||
0x5c, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x22, 0x00, 0x00,
|
||||
0x00, 0x5d, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x22, 0x00,
|
||||
0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x22,
|
||||
0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00,
|
||||
0x36, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00,
|
||||
0x00, 0x5f, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x23, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x4b, 0x00,
|
||||
0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x23,
|
||||
0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x50, 0x00, 0x06, 0x00,
|
||||
0x22, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00,
|
||||
0x00, 0x90, 0x00, 0x05, 0x00, 0x22, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x60, 0x00,
|
||||
0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x39, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x33,
|
||||
0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x22, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00,
|
||||
0x65, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x0b,
|
||||
0x00, 0x18, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x01, 0x00,
|
||||
0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x6c,
|
||||
0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x6c, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x6d, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x0b, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x6f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x71, 0x00,
|
||||
0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x72, 0x00, 0x00, 0x00, 0x4f,
|
||||
0x00, 0x07, 0x00, 0x23, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00,
|
||||
0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x6d, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02,
|
||||
0x00, 0x71, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x23, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x66, 0x00,
|
||||
0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x6d,
|
||||
0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x70, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x23, 0x00, 0x00, 0x00,
|
||||
0x75, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
|
||||
0x00, 0xf9, 0x00, 0x02, 0x00, 0x6d, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x4f, 0x00,
|
||||
0x07, 0x00, 0x23, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x6d, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00,
|
||||
0x6e, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x6d, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x6d, 0x00, 0x00,
|
||||
0x00, 0xf5, 0x00, 0x0d, 0x00, 0x23, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x72, 0x00,
|
||||
0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x76,
|
||||
0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00,
|
||||
0x67, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x6b, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x78, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x0b, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7c,
|
||||
0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x7d, 0x00, 0x00, 0x00,
|
||||
0x4f, 0x00, 0x07, 0x00, 0x23, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00,
|
||||
0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x78, 0x00, 0x00, 0x00, 0xf8, 0x00,
|
||||
0x02, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x23, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x66,
|
||||
0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00,
|
||||
0x78, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x23, 0x00, 0x00,
|
||||
0x00, 0x80, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00,
|
||||
0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x78, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x4f,
|
||||
0x00, 0x07, 0x00, 0x23, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00,
|
||||
0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x78, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02,
|
||||
0x00, 0x79, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x78, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x78, 0x00,
|
||||
0x00, 0x00, 0xf5, 0x00, 0x0d, 0x00, 0x23, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x7d,
|
||||
0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00,
|
||||
0x81, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02,
|
||||
0x00, 0x67, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x6a, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x83, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x0b, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
|
||||
0x87, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x88, 0x00, 0x00,
|
||||
0x00, 0x4f, 0x00, 0x07, 0x00, 0x23, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x66, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x83, 0x00, 0x00, 0x00, 0xf8,
|
||||
0x00, 0x02, 0x00, 0x87, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x23, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00,
|
||||
0x66, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02,
|
||||
0x00, 0x83, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x86, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x23, 0x00,
|
||||
0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03,
|
||||
0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x83, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x85, 0x00, 0x00, 0x00,
|
||||
0x4f, 0x00, 0x07, 0x00, 0x23, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00,
|
||||
0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x83, 0x00, 0x00, 0x00, 0xf8, 0x00,
|
||||
0x02, 0x00, 0x84, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x83, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x83,
|
||||
0x00, 0x00, 0x00, 0xf5, 0x00, 0x0d, 0x00, 0x23, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00,
|
||||
0x88, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00,
|
||||
0x00, 0x8c, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0xf9, 0x00,
|
||||
0x02, 0x00, 0x67, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x69, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x8e,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x0b, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
|
||||
0x00, 0x92, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x93, 0x00,
|
||||
0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x23, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x66,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x8e, 0x00, 0x00, 0x00,
|
||||
0xf8, 0x00, 0x02, 0x00, 0x92, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x23, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00,
|
||||
0x00, 0x66, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf9, 0x00,
|
||||
0x02, 0x00, 0x8e, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x91, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x23,
|
||||
0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x8e, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x90, 0x00, 0x00,
|
||||
0x00, 0x4f, 0x00, 0x07, 0x00, 0x23, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x66, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x8e, 0x00, 0x00, 0x00, 0xf8,
|
||||
0x00, 0x02, 0x00, 0x8f, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x8e, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00,
|
||||
0x8e, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x0d, 0x00, 0x23, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00,
|
||||
0x00, 0x93, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x91, 0x00,
|
||||
0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, 0xf9,
|
||||
0x00, 0x02, 0x00, 0x67, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x68, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00,
|
||||
0x67, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x67, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x0d, 0x00, 0x23, 0x00, 0x00,
|
||||
0x00, 0x99, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x78, 0x00,
|
||||
0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, 0x46,
|
||||
0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x06, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00,
|
||||
0x3e, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x08, 0x00, 0x00,
|
||||
0x00, 0x17, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00, 0x36, 0x00, 0x05, 0x00, 0x1f, 0x00,
|
||||
0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x9a,
|
||||
0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x23, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
|
||||
0x3d, 0x00, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x70, 0x00, 0x04,
|
||||
0x00, 0x21, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x27, 0x00,
|
||||
0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x40,
|
||||
0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00,
|
||||
0xa0, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x67, 0x00, 0x05, 0x00, 0x42, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00,
|
||||
0x00, 0xa0, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, 0xa2, 0x00,
|
||||
0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0xa3,
|
||||
0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00,
|
||||
0xa1, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x70, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00,
|
||||
0x00, 0xa4, 0x00, 0x00, 0x00, 0x50, 0x00, 0x06, 0x00, 0x27, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0xa3, 0x00,
|
||||
0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x23, 0x00, 0x00, 0x00, 0xa7,
|
||||
0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
|
||||
0x4f, 0x00, 0x07, 0x00, 0x23, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x23, 0x00, 0x00, 0x00, 0xa9, 0x00,
|
||||
0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x23, 0x00, 0x00, 0x00, 0xaa,
|
||||
0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00,
|
||||
0x23, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00,
|
||||
0x00, 0xd1, 0x00, 0x04, 0x00, 0x23, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, 0x88, 0x00,
|
||||
0x05, 0x00, 0x23, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, 0x0c,
|
||||
0x00, 0x07, 0x00, 0x23, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00,
|
||||
0xad, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x23, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00,
|
||||
0x00, 0xaa, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, 0x23, 0x00, 0x00, 0x00, 0xb0, 0x00,
|
||||
0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x88, 0x00, 0x05, 0x00, 0x23, 0x00, 0x00, 0x00, 0xb1,
|
||||
0x00, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x27, 0x00, 0x00, 0x00,
|
||||
0xb2, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x57, 0x00, 0x06, 0x00, 0x22, 0x00, 0x00,
|
||||
0x00, 0xb3, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4f, 0x00,
|
||||
0x08, 0x00, 0x27, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x45, 0x00, 0x00, 0x00,
|
||||
0xb5, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x27, 0x00, 0x00,
|
||||
0x00, 0xb6, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x08, 0x00, 0x27, 0x00, 0x00, 0x00, 0xb7, 0x00,
|
||||
0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02,
|
||||
0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x27, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00,
|
||||
0xb7, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x21, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x06, 0x00, 0x22, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0xb9, 0x00,
|
||||
0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x21, 0x00, 0x00, 0x00, 0xbb,
|
||||
0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x52, 0x00, 0x06, 0x00, 0x22, 0x00, 0x00, 0x00,
|
||||
0xbc, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05,
|
||||
0x00, 0x21, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x52, 0x00,
|
||||
0x06, 0x00, 0x22, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, 0x02,
|
||||
0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x11, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00,
|
||||
0x38, 0x00, 0x01, 0x00,
|
||||
};
|
||||
|
||||
const size_t SPIRV_world_sizeInBytes = 5704;
|
||||
|
||||
@ -1,89 +0,0 @@
|
||||
#include "common.slang"
|
||||
|
||||
struct VertexShaderInput {
|
||||
// Per Vertex
|
||||
uint vertex_id : SV_VertexID;
|
||||
float3 pos;
|
||||
|
||||
// Per Instance
|
||||
uint instance_id : SV_InstanceID;
|
||||
uint tile_info;
|
||||
};
|
||||
|
||||
struct VertexShaderOutput {
|
||||
float4 pos : SV_POSITION;
|
||||
float2 uv;
|
||||
uint tile;
|
||||
};
|
||||
|
||||
struct PixelShaderOutput {
|
||||
float4 color : SV_TARGET;
|
||||
};
|
||||
|
||||
[[vk::binding(0, 0)]]
|
||||
StructuredBuffer<float4> tile_infos;
|
||||
|
||||
[shader("vertex")]
|
||||
VertexShaderOutput main_vertex(VertexShaderInput input) {
|
||||
VertexShaderOutput output;
|
||||
float2 tile_pos = float2(input.instance_id % map_width, float(input.instance_id / map_width));
|
||||
tile_pos -= float2(0.5, 0.5);
|
||||
|
||||
uint tile_type = input.tile_info & 0xffff;
|
||||
uint rotation = (input.tile_info >> 16) & 0x3;
|
||||
|
||||
output.tile = tile_type;
|
||||
output.pos = mul(view_projection_matrix, float4(tile_pos + input.pos.xy, 0, 1));
|
||||
|
||||
float4 uv_min_max = tile_infos.Load(tile_type);
|
||||
|
||||
switch (rotation) {
|
||||
case 0: switch (input.vertex_id) {
|
||||
case 0: output.uv = uv_min_max.xy; break;
|
||||
case 1: output.uv = uv_min_max.zy; break;
|
||||
case 2: output.uv = uv_min_max.zw; break;
|
||||
case 3: output.uv = uv_min_max.xw; break;
|
||||
} break;
|
||||
|
||||
case 1: switch (input.vertex_id) {
|
||||
case 0: output.uv = uv_min_max.zy; break;
|
||||
case 1: output.uv = uv_min_max.zw; break;
|
||||
case 2: output.uv = uv_min_max.xw; break;
|
||||
case 3: output.uv = uv_min_max.xy; break;
|
||||
} break;
|
||||
|
||||
case 2: switch (input.vertex_id) {
|
||||
case 0: output.uv = uv_min_max.zw; break;
|
||||
case 1: output.uv = uv_min_max.xw; break;
|
||||
case 2: output.uv = uv_min_max.xy; break;
|
||||
case 3: output.uv = uv_min_max.zy; break;
|
||||
} break;
|
||||
|
||||
case 3: switch (input.vertex_id) {
|
||||
case 0: output.uv = uv_min_max.xw; break;
|
||||
case 1: output.uv = uv_min_max.xy; break;
|
||||
case 2: output.uv = uv_min_max.zy; break;
|
||||
case 3: output.uv = uv_min_max.zw; break;
|
||||
} break;
|
||||
}
|
||||
|
||||
return output;
|
||||
}
|
||||
|
||||
[[vk::binding(0, 2)]]
|
||||
Sampler2DArray<float4> tex1;
|
||||
|
||||
[[vk::binding(0, 3)]]
|
||||
cbuffer fragment_constants {
|
||||
float3 tint;
|
||||
}
|
||||
|
||||
[shader("fragment")]
|
||||
PixelShaderOutput main_fragment(VertexShaderOutput input) {
|
||||
PixelShaderOutput output;
|
||||
|
||||
output.color = tex1.PixelArtSample(float3(input.uv, input.tile));
|
||||
output.color.rgb *= tint.rgb;
|
||||
|
||||
return output;
|
||||
}
|
||||
118
src/shaders/world.wgsl
Normal file
118
src/shaders/world.wgsl
Normal file
@ -0,0 +1,118 @@
|
||||
struct VertexShaderInput {
|
||||
// Per Vertex
|
||||
@builtin(vertex_index) vertex_index: u32,
|
||||
|
||||
@location(0) pos: vec3<f32>,
|
||||
|
||||
// Per Instance
|
||||
@builtin(instance_index) instance_index: u32,
|
||||
|
||||
@location(1) tile_info: u32,
|
||||
};
|
||||
|
||||
struct VertexShaderOutput {
|
||||
@builtin(position) pos: vec4<f32>,
|
||||
|
||||
@location(0) uv: vec2<f32>,
|
||||
@location(1) tile: u32,
|
||||
};
|
||||
|
||||
struct FragmentShaderOutput {
|
||||
@location(0) color: vec4<f32>,
|
||||
};
|
||||
|
||||
struct Per_Frame_Data {
|
||||
drag_start: vec2<i32>,
|
||||
mouse: vec2<i32>,
|
||||
grid_offset: vec2<f32>,
|
||||
grid_width: u32,
|
||||
map_width: u32,
|
||||
};
|
||||
|
||||
@group(0) @binding(0) var<uniform> view_projection_matrix: mat4x4<f32>;
|
||||
@group(0) @binding(1) var<uniform> per_frame: Per_Frame_Data;
|
||||
|
||||
@group(1) @binding(3) var<storage, read> tile_infos: array<vec4<f32>>;
|
||||
|
||||
@vertex fn main_vertex(input: VertexShaderInput) -> VertexShaderOutput {
|
||||
var output: VertexShaderOutput;
|
||||
|
||||
let tile_type = extractBits(input.tile_info, 0, 16);
|
||||
let rotation = extractBits(input.tile_info, 16, 2);
|
||||
|
||||
let tile_pos = vec2<f32>(f32(input.instance_index % per_frame.map_width), f32(input.instance_index / per_frame.map_width)) - vec2<f32>(0.5, 0.5);
|
||||
|
||||
output.tile = tile_type;
|
||||
output.pos = vec4<f32>(tile_pos + input.pos.xy, 0, 1) * view_projection_matrix;
|
||||
|
||||
let uv_min_max = tile_infos[tile_type];
|
||||
|
||||
switch (rotation) {
|
||||
case 0: {
|
||||
switch (input.vertex_index) {
|
||||
case 0: { output.uv = uv_min_max.xy; }
|
||||
case 1: { output.uv = uv_min_max.zy; }
|
||||
case 2: { output.uv = uv_min_max.zw; }
|
||||
case 3: { output.uv = uv_min_max.xw; }
|
||||
default: {}
|
||||
}
|
||||
}
|
||||
|
||||
case 1: {
|
||||
switch (input.vertex_index) {
|
||||
case 0: { output.uv = uv_min_max.zy; }
|
||||
case 1: { output.uv = uv_min_max.zw; }
|
||||
case 2: { output.uv = uv_min_max.xw; }
|
||||
case 3: { output.uv = uv_min_max.xy; }
|
||||
default: {}
|
||||
}
|
||||
}
|
||||
|
||||
case 2: {
|
||||
switch (input.vertex_index) {
|
||||
case 0: { output.uv = uv_min_max.zw; }
|
||||
case 1: { output.uv = uv_min_max.xw; }
|
||||
case 2: { output.uv = uv_min_max.xy; }
|
||||
case 3: { output.uv = uv_min_max.zy; }
|
||||
default: {}
|
||||
}
|
||||
}
|
||||
|
||||
case 3: {
|
||||
switch (input.vertex_index) {
|
||||
case 0: { output.uv = uv_min_max.xw; }
|
||||
case 1: { output.uv = uv_min_max.xy; }
|
||||
case 2: { output.uv = uv_min_max.zy; }
|
||||
case 3: { output.uv = uv_min_max.zw; }
|
||||
default: {}
|
||||
}
|
||||
}
|
||||
|
||||
default: {}
|
||||
}
|
||||
|
||||
return output;
|
||||
}
|
||||
|
||||
@group(1) @binding(0) var texture1: texture_2d_array<f32>;
|
||||
@group(1) @binding(1) var sampler1: sampler;
|
||||
|
||||
@group(1) @binding(2) var<uniform> tint: vec3<f32>;
|
||||
|
||||
@fragment fn main_fragment(input: VertexShaderOutput) -> FragmentShaderOutput {
|
||||
var output: FragmentShaderOutput;
|
||||
|
||||
output.color = pixel_art_sample(texture1, sampler1, input.uv, input.tile);
|
||||
output.color = vec4<f32>(output.color.rgb * tint.rgb, output.color.a);
|
||||
|
||||
return output;
|
||||
}
|
||||
|
||||
fn pixel_art_sample(input_texture: texture_2d_array<f32>, input_sampler: sampler, input_uv: vec2<f32>, index: u32) -> vec4<f32> {
|
||||
let dimensions = vec2<f32>(textureDimensions(input_texture));
|
||||
|
||||
let texture_uv = input_uv * dimensions.xy;
|
||||
let sample_uv = (floor(texture_uv) + min(fract(texture_uv) / fwidth(texture_uv), vec2<f32>(1.0, 1.0)) - 0.5) / dimensions.xy;
|
||||
|
||||
return textureSample(input_texture, input_sampler, sample_uv, index);
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user